From 6ade9fac52f3ede7982b577a4e600d8ec18f0506 Mon Sep 17 00:00:00 2001 From: kth5 Date: Sun, 9 Feb 2025 22:10:16 +0100 Subject: [PATCH] * add dovecot --- dovecot/.SRCINFO | 58 +++++++ dovecot/.nvchecker.toml | 3 + dovecot/PKGBUILD | 147 ++++++++++++++++++ dovecot/dovecot-2.3.14-opensslv3.patch | 34 ++++ dovecot/dovecot-2.3.21.1-fixicu.patch | 13 ++ dovecot/dovecot.ld.so.conf | 1 + dovecot/dovecot.pam | 5 + dovecot/dovecot.sysusersd | 2 + dovecot/dovecot.tmpfilesd | 1 + ...E74AAB3EE754DFB9C80D3318A348AEED409DA1.asc | 51 ++++++ ...43F0BDFDCD04D9FFCB6279C948525140558AC9.asc | 39 +++++ 11 files changed, 354 insertions(+) create mode 100644 dovecot/.SRCINFO create mode 100644 dovecot/.nvchecker.toml create mode 100644 dovecot/PKGBUILD create mode 100644 dovecot/dovecot-2.3.14-opensslv3.patch create mode 100644 dovecot/dovecot-2.3.21.1-fixicu.patch create mode 100644 dovecot/dovecot.ld.so.conf create mode 100644 dovecot/dovecot.pam create mode 100644 dovecot/dovecot.sysusersd create mode 100644 dovecot/dovecot.tmpfilesd create mode 100644 dovecot/keys/pgp/2BE74AAB3EE754DFB9C80D3318A348AEED409DA1.asc create mode 100644 dovecot/keys/pgp/E643F0BDFDCD04D9FFCB6279C948525140558AC9.asc diff --git a/dovecot/.SRCINFO b/dovecot/.SRCINFO new file mode 100644 index 0000000000..c94db386a2 --- /dev/null +++ b/dovecot/.SRCINFO @@ -0,0 +1,58 @@ +pkgbase = dovecot + pkgdesc = An IMAP and POP3 server written with security primarily in mind + pkgver = 2.3.21.1 + pkgrel = 3 + url = https://dovecot.org/ + arch = x86_64 + arch = powerpc64le + arch = powerpc64 + arch = powerpc + arch = riscv64 + license = MIT + license = LGPL-2.1-only + makedepends = libcap + makedepends = libldap + makedepends = lua53 + makedepends = xz + makedepends = clucene + makedepends = systemd + depends = krb5 + depends = openssl + depends = sqlite + depends = mariadb-libs + depends = libsodium + depends = postgresql-libs + depends = bzip2 + depends = lz4 + depends = expat + depends = curl + depends = pam + depends = systemd-libs + optdepends = libldap: ldap plugin + optdepends = lua53: LUA auth and push support + optdepends = clucene: alternative FTS indexer + provides = imap-server + provides = pop3-server + options = !emptydirs + options = !lto + backup = etc/pam.d/dovecot + source = https://dovecot.org/releases/2.3/dovecot-2.3.21.1.tar.gz + source = https://dovecot.org/releases/2.3/dovecot-2.3.21.1.tar.gz.sig + source = dovecot-2.3.14-opensslv3.patch + source = dovecot-2.3.21.1-fixicu.patch + source = dovecot.sysusersd + source = dovecot.tmpfilesd + source = dovecot.ld.so.conf + source = dovecot.pam + validpgpkeys = E643F0BDFDCD04D9FFCB6279C948525140558AC9 + validpgpkeys = 2BE74AAB3EE754DFB9C80D3318A348AEED409DA1 + sha256sums = 2d90a178c4297611088bf7daae5492a3bc3d5ab6328c3a032eb425d2c249097e + sha256sums = SKIP + sha256sums = 356e5761dc9161283cb795e62997c807ca081f4b42b443001cce07c03c47876d + sha256sums = 9fe66602ee7d3c180c8d65ce705464e491777bdf60550d104c825593b8e0399b + sha256sums = c5e3a8ffe23e5deb4f7893d9877d972347c2ee45c4ebf713de85c537e47cfcaf + sha256sums = 0b0625b1e66ca6a95d506fd00d6a68e70620c8ea28606e2528953ffb1806b08e + sha256sums = a457a1691cfa82495fc0503bfa4b61e54b149e63400fe0f568dff2c24a3f7858 + sha256sums = ad9245f5e916480edd67139603cbe52e7a868233075f900ab63a0ce58f03741a + +pkgname = dovecot diff --git a/dovecot/.nvchecker.toml b/dovecot/.nvchecker.toml new file mode 100644 index 0000000000..091654595f --- /dev/null +++ b/dovecot/.nvchecker.toml @@ -0,0 +1,3 @@ +[dovecot] +source = "git" +git = "https://github.com/dovecot/core.git" diff --git a/dovecot/PKGBUILD b/dovecot/PKGBUILD new file mode 100644 index 0000000000..2e6ab43e3a --- /dev/null +++ b/dovecot/PKGBUILD @@ -0,0 +1,147 @@ +# POWER Maintainer: Alexander Baldeck +# Maintainer: Johannes Löthberg +# Maintainer: Thore Bödecker +# Contributor: Bartłomiej Piotrowski +# Contributor: Andreas Radke +# Contributor: Paul Mattal +# Contributor: Federico Quagliata (quaqo) +# Contributor: GARETTE Emmanuel +# Contributor: Phillip Schichtel + +# --->>> remember to rebuild/bump the following packages TOGETHER with a new dovecot ABI: +# +pigeonhole +# +dovecot-fts-elastic +# +dovecot-fts-xapian + +pkgname=dovecot +pkgver=2.3.21.1 +pkgrel=3 + +pkgdesc="An IMAP and POP3 server written with security primarily in mind" +url="https://dovecot.org/" +arch=(x86_64 powerpc64le powerpc64 powerpc riscv64) +license=('MIT' + 'LGPL-2.1-only') + +depends=('krb5' 'openssl' 'sqlite' 'mariadb-libs' 'libsodium' + 'postgresql-libs' 'bzip2' 'lz4' 'expat' 'curl' 'pam' 'systemd-libs') +makedepends=('libcap' 'libldap' 'lua53' 'xz' 'clucene' 'systemd') +optdepends=('libldap: ldap plugin' + 'lua53: LUA auth and push support' + 'clucene: alternative FTS indexer') + +provides=('imap-server' 'pop3-server') + +backup=('etc/pam.d/dovecot') + +# LTO seems to cause issues with at least up to 2.3.17.1 +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=997513 +# TODO regularly check if upstream has implemented in-code fixes w.r.t. LTO +options=('!emptydirs' '!lto') + +source=("https://dovecot.org/releases/2.3/${pkgname}-${pkgver}.tar.gz"{,.sig} + 'dovecot-2.3.14-opensslv3.patch' + 'dovecot-2.3.21.1-fixicu.patch' + 'dovecot.sysusersd' + 'dovecot.tmpfilesd' + 'dovecot.ld.so.conf' + 'dovecot.pam') + +sha256sums=('2d90a178c4297611088bf7daae5492a3bc3d5ab6328c3a032eb425d2c249097e' + 'SKIP' + '356e5761dc9161283cb795e62997c807ca081f4b42b443001cce07c03c47876d' + '9fe66602ee7d3c180c8d65ce705464e491777bdf60550d104c825593b8e0399b' + 'c5e3a8ffe23e5deb4f7893d9877d972347c2ee45c4ebf713de85c537e47cfcaf' + '0b0625b1e66ca6a95d506fd00d6a68e70620c8ea28606e2528953ffb1806b08e' + 'a457a1691cfa82495fc0503bfa4b61e54b149e63400fe0f568dff2c24a3f7858' + 'ad9245f5e916480edd67139603cbe52e7a868233075f900ab63a0ce58f03741a') + +validpgpkeys=( + 'E643F0BDFDCD04D9FFCB6279C948525140558AC9' # Timo Sirainen + '2BE74AAB3EE754DFB9C80D3318A348AEED409DA1' # Dovecot Community Edition +) + +prepare() { + cd "${pkgname}-${pkgver}" + patch -Np1 -i ../dovecot-2.3.14-opensslv3.patch + + # fix path in helper script + sed -i 's:OPENSSLCONFIG=${OPENSSLCONFIG-dovecot-openssl.cnf}:OPENSSLCONFIG=${OPENSSLCONFIG- /etc/ssl/dovecot-openssl.cnf}:' doc/mkcert.sh + + # fix build + patch -Np1 -i ../dovecot-2.3.21.1-fixicu.patch + autoreconf -vfi +} + +build() { + cd "${pkgname}-${pkgver}" + + # this uses malloc_usable_size, which is incompatible with fortification level 3 + export CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" + export CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" + + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --libexecdir=/usr/lib \ + --with-rundir=/run/dovecot \ + --with-moduledir=/usr/lib/dovecot/modules \ + --disable-static \ + --with-nss \ + --with-pam \ + --with-sqlite \ + --with-pgsql \ + --with-mysql \ + --with-ssl=openssl \ + --with-ssldir=/etc/ssl \ + --with-gssapi \ + --with-ldap=plugin \ + --with-lua=plugin \ + --with-zlib \ + --with-bzlib \ + --with-lzma \ + --with-lz4 \ + --with-zstd \ + --with-lucene \ + --with-solr \ + --with-sodium \ + --with-libcap \ + --with-docs + + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + + make +} + +check() { + cd "${pkgname}-${pkgver}" + make check +} + +package() { + # system user/group dovenull - 74 + # system user/group dovecot - 76 + + cd "${pkgname}-${pkgver}" + make DESTDIR="$pkgdir" install + install -Dm644 "${srcdir}/dovecot.sysusersd" \ + "${pkgdir}/usr/lib/sysusers.d/dovecot.conf" + install -Dm644 "${srcdir}/dovecot.tmpfilesd" \ + "${pkgdir}/usr/lib/tmpfiles.d/dovecot.conf" + install -d -m755 "${pkgdir}/etc/dovecot/conf.d" + rm -f "${pkgdir}/etc/dovecot/README" + + # install mkcert helper script + install -m 755 doc/mkcert.sh "${pkgdir}/usr/lib/dovecot/mkcert.sh" + + # add dovecot libdir + install -Dm644 "${srcdir}/dovecot.ld.so.conf" "${pkgdir}/etc/ld.so.conf.d/dovecot.conf" + + # install PAM snippet for dovecot + install -Dm644 "${srcdir}/dovecot.pam" "${pkgdir}/etc/pam.d/dovecot" + + # license + install -D -m644 COPYING.MIT "${pkgdir}"/usr/share/licenses/${pkgname}/COPYING.MIT +} diff --git a/dovecot/dovecot-2.3.14-opensslv3.patch b/dovecot/dovecot-2.3.14-opensslv3.patch new file mode 100644 index 0000000000..fa6c44f672 --- /dev/null +++ b/dovecot/dovecot-2.3.14-opensslv3.patch @@ -0,0 +1,34 @@ +diff -up dovecot-2.3.14/src/lib-dcrypt/dcrypt-openssl.c.opensslv3 dovecot-2.3.14/src/lib-dcrypt/dcrypt-openssl.c +--- dovecot-2.3.14/src/lib-dcrypt/dcrypt-openssl.c.opensslv3 2021-06-03 18:56:52.573174433 +0200 ++++ dovecot-2.3.14/src/lib-dcrypt/dcrypt-openssl.c 2021-06-03 18:56:52.585174274 +0200 +@@ -73,10 +73,30 @@ + 2key algo oid1symmetric algo namesalthash algoroundsE(RSA = i2d_PrivateKey, EC=Private Point)key id + **/ + ++#if OPENSSL_VERSION_MAJOR == 3 ++static EC_KEY *EVP_PKEY_get0_EC_KEYv3(EVP_PKEY *key) ++{ ++ EC_KEY *eck = EVP_PKEY_get1_EC_KEY(key); ++ EVP_PKEY_set1_EC_KEY(key, eck); ++ EC_KEY_free(eck); ++ return eck; ++} ++ ++static EC_KEY *EVP_PKEY_get1_EC_KEYv3(EVP_PKEY *key) ++{ ++ EC_KEY *eck = EVP_PKEY_get1_EC_KEY(key); ++ EVP_PKEY_set1_EC_KEY(key, eck); ++ return eck; ++} ++ ++#define EVP_PKEY_get0_EC_KEY EVP_PKEY_get0_EC_KEYv3 ++#define EVP_PKEY_get1_EC_KEY EVP_PKEY_get1_EC_KEYv3 ++#else + #ifndef HAVE_EVP_PKEY_get0 + #define EVP_PKEY_get0_EC_KEY(x) x->pkey.ec + #define EVP_PKEY_get0_RSA(x) x->pkey.rsa + #endif ++#endif + + #ifndef HAVE_OBJ_LENGTH + #define OBJ_length(o) ((o)->length) diff --git a/dovecot/dovecot-2.3.21.1-fixicu.patch b/dovecot/dovecot-2.3.21.1-fixicu.patch new file mode 100644 index 0000000000..19f0658031 --- /dev/null +++ b/dovecot/dovecot-2.3.21.1-fixicu.patch @@ -0,0 +1,13 @@ +diff -up dovecot-2.3.20/m4/want_icu.m4.fixicu dovecot-2.3.20/m4/want_icu.m4 +--- dovecot-2.3.20/m4/want_icu.m4.fixicu 2022-12-21 09:49:12.000000000 +0100 ++++ dovecot-2.3.20/m4/want_icu.m4 2025-01-29 10:47:25.765768562 +0100 +@@ -1,7 +1,7 @@ + AC_DEFUN([DOVECOT_WANT_ICU], [ + if test "$want_icu" != "no"; then +- if test "$PKG_CONFIG" != "" && $PKG_CONFIG --exists icu-i18n 2>/dev/null; then +- PKG_CHECK_MODULES(LIBICU, icu-i18n) ++ if test "$PKG_CONFIG" != "" && $PKG_CONFIG --exists icu-i18n icu-uc 2>/dev/null; then ++ PKG_CHECK_MODULES(LIBICU, icu-i18n icu-uc) + have_icu=yes + AC_DEFINE(HAVE_LIBICU,, [Define if you want ICU normalization support for FTS]) + elif test "$want_icu" = "yes"; then diff --git a/dovecot/dovecot.ld.so.conf b/dovecot/dovecot.ld.so.conf new file mode 100644 index 0000000000..061a50c90c --- /dev/null +++ b/dovecot/dovecot.ld.so.conf @@ -0,0 +1 @@ +/usr/lib/dovecot diff --git a/dovecot/dovecot.pam b/dovecot/dovecot.pam new file mode 100644 index 0000000000..829469f3eb --- /dev/null +++ b/dovecot/dovecot.pam @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth include system-auth +account include system-auth +session include system-auth +password include system-auth diff --git a/dovecot/dovecot.sysusersd b/dovecot/dovecot.sysusersd new file mode 100644 index 0000000000..ab705bd53e --- /dev/null +++ b/dovecot/dovecot.sysusersd @@ -0,0 +1,2 @@ +u dovenull 74 "Dovecot user for completely untrustworthy processes" - +u dovecot 76 "Dovecot user" - diff --git a/dovecot/dovecot.tmpfilesd b/dovecot/dovecot.tmpfilesd new file mode 100644 index 0000000000..c5398b6b77 --- /dev/null +++ b/dovecot/dovecot.tmpfilesd @@ -0,0 +1 @@ +d /run/dovecot 0755 root dovecot - diff --git a/dovecot/keys/pgp/2BE74AAB3EE754DFB9C80D3318A348AEED409DA1.asc b/dovecot/keys/pgp/2BE74AAB3EE754DFB9C80D3318A348AEED409DA1.asc new file mode 100644 index 0000000000..c490707421 --- /dev/null +++ b/dovecot/keys/pgp/2BE74AAB3EE754DFB9C80D3318A348AEED409DA1.asc @@ -0,0 +1,51 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +BWoyZxpdESCzsL3JU8wy7TQ= +=Z5jJ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/dovecot/keys/pgp/E643F0BDFDCD04D9FFCB6279C948525140558AC9.asc b/dovecot/keys/pgp/E643F0BDFDCD04D9FFCB6279C948525140558AC9.asc new file mode 100644 index 0000000000..ba0a3ed144 --- /dev/null +++ b/dovecot/keys/pgp/E643F0BDFDCD04D9FFCB6279C948525140558AC9.asc @@ -0,0 +1,39 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQGiBDzvn9MRBACSMUcjmGC8Fr2Z0dlMOR9FyFL57MxhyguFlczxSdnaMA78nzlQ +/GHMuk7mcrZ4mdUqRtpP/JuP0gQU5FNcLnPZgP75CxuWDdviE/EXALotsY5rvYYK +mupCa9OU0rfuLnjihr80KiQl91MMW+nLB+KBEp1aTiMU4lip50ZARsAnIwCgpyQf +ElFZALK6QpwUdm2iDUvaefUD+wbA7m0WBS3lCHRTaWAstdtGCsuYkeC2iplnzKn4 +Gya/9HTet45unzEQTVBtWCrixvXXjgrwgw/q84qyzwYHcIn5Zu9Ca/ApRkECFAPt +dRwvCKjWsyiGccDL2EGD6RGFtuNYP4qWGy46PuuLhbQePdsjW0sVnnb8fAPlmQbN +LpGzA/4nhML70GITkYdk10Nzh2KczlAySW1d9sTNQisSmZqYaoAKkS/MioVU9WUn +VB+0SrJzG0Muj6eLvP6vxXVgsliruuZDjPD5wO2b54PFZP2WdsP81+LZm9acTM0O +wBK/5nWoxB7cxcnL9breDJ2iA2b3sbtpqVqOK2CPxoBWs4PI/bQaVGltbyBTaXJh +aW5lbiA8dHNzQGlraS5maT6IZAQTEQIAHAUCPsedGQIbAwQLBwMCAxUCAwMWAgEC +HgECF4AAEgkQyUhSUUBViskHZUdQRwABAZibAJ9/XNts92Xhhqp3p9y2kV4k5UoV +0wCfWrfwvXuGjtPIUmYjJmgp25iVd425BA0EPO+gChAQAI0xA9nbA3VahQFiH3+K +y8EzvGz27al1zEIhagBaSU6DRZOilyUwP5igaBBjj/uZsyim6Wv3I0FSrYLKoe+G +F4WNFZyedvhHkB0fBno33otVWPGySgmo6T4ND5D1WFY6Vu3nc+mgzf/LuB3B0hds +Y4AKXFAwka42unAiXNuioo6/PwqzErP3I0Rh8xlhPaMUiakY5Es4ltcBYEhCkB7g +G6FX0PDal3d1Bzkh8Emn4rEjJ9rjzKpSKa84A3bXlMntTymftE4+QQUVEgmztY3n +PU8fckPOmbuybvRacfRBgFNyDVfcDk9LMVFfyHYVufE9+k4IqGfiHXvA/fuBzyQf +sD1W5ii0ZWB1+RGkFCVN+R7YlbktOJXHIz4tR3hWP4DKjmQklcvHh5dfzXGp2sbM +bC5/LKc8BUaFgRWIjKxb41MYFqFcIQLztsuChdaWUJZBbNuXmBlM+AyE6KruEaz1 +Z5hzUjCo4yOWaTG680caNPl5JK2KBo0JIAFXeRQMvxrrptTLvTv9pCKz/giWopZR +1Y7QlKW7J7k5YdFDpWRjuecPofrXukHC+kx3WTyT/6aO+8Rk21YnfBsWLfEv5Qgf +yxABnhnkZ5h2og6jfa0ty55qd+0/BPGROG89g3Zt0uFwOSkb14Co1D/r9ZG6gkEG +oAbQVFrTkP+MnW+WndJMZIwLAAMGD/9qgoYrVCOtyrKS7rJ/6i40rXNpsOYy1Wla +M43exbMuY1Bp90WfJtOqenCWYvNO9bgEGUpwVgKSz8I0PTJp2NlbF3uNvKyY42Ki +BOD7xmbQK8aCrNw7mO9jlhQnXe2H29dAnEZZ7RzaWkC+piftD9xzNa88eoE4inry +7Fpybmw6i+OsGJP3unj3XvkOvNlUrFjFx3BJYMKTonSp9+lkkoKj0mLyobegugQ8 +JP40q2LwOcuJuCMwjGxKx3RPx/tL/ejnOqjNFsDajbWtlG4fH8AtSrkftt7jucED +CsUMEA7QGkEIP4bSu2Qn/hjzHCB86SdwYh/7RSQBq232sXMe/kDEeMF2MSyca6yB +7sJF/ryaTxGyLOMvYdRIlu/Icj33l90dpgEkR3XZHSoBIRlKdFyIXeGr+lRV1k2B +iXeEa+6FeVAZAlzPxQzY4srZAgSeNw1NjHB929OB1AhemD76AxkOWpyNMF6DfZT7 +ASoB/zQEzdCNwyd1dQ7po7M1pfoQlyAQRUtbfdIVeKcWOlOHXUTxnYn99Hi3A3ew +4OP7wLGXQ0T3lfF4eUZogSHZ29gq9lnTBYzWNKGi8HFQG/gPKpvdtJYYAiaNm5I2 +7WN+erIegU5DNyb+hucSjro7YC80s17TS50NdPihmIjZBUkDkVbfmA0e0EriL/Ka +Tz9IGjo6O4hOBBgRAgAGBQI+x50MABIJEMlIUlFAVYrJB2VHUEcAAQFSygCgnnwI +VLtaOkCEY9+0rhRvymQd/ZQAn2rtAG95tL/FVBBEFentvLx7dv62 +=iGR+ +-----END PGP PUBLIC KEY BLOCK-----