diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-20 14:54:46 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-20 14:54:46 -0500 |
| commit | 1a4479b4e0368c8d5ff241ebad17b2541a7e3ba0 (patch) | |
| tree | 18e2e784f9fb0dbc3546537acc42ad51b366d90e /mail-mta | |
| parent | 9f6a581d94412ab1cf4b35c33101f6be0ddc7777 (diff) | |
| download | baldeagleos-repo-1a4479b4e0368c8d5ff241ebad17b2541a7e3ba0.tar.gz baldeagleos-repo-1a4479b4e0368c8d5ff241ebad17b2541a7e3ba0.tar.xz baldeagleos-repo-1a4479b4e0368c8d5ff241ebad17b2541a7e3ba0.zip | |
Adding metadata
Diffstat (limited to 'mail-mta')
40 files changed, 2288 insertions, 1084 deletions
diff --git a/mail-mta/opensmtpd/Manifest b/mail-mta/opensmtpd/Manifest index d5c4bf8526d2..584dcaf412de 100644 --- a/mail-mta/opensmtpd/Manifest +++ b/mail-mta/opensmtpd/Manifest @@ -1,2 +1,8 @@ -DIST opensmtpd-7.8.0p0.tar.gz 744995 BLAKE2B 39b8122ef064142130603dd1712ee5cf9bbf6173d821c48dee81a9e8287085305b77ae8c0bd46a10f1226ed556c2a5e528849ee9461ef901dfb614f2e5d0f88b SHA512 ef4233909497c604c5c3de18c5ff50ee1e04f417d6ef0e6def3ebef214acee3a63306b27f5c7eab00992e24f3a7f2b2f2748fee2e535b3b291e194f1b8bd8652 +DIST opensmtpd-7.5.0p0.sum.sig 256 BLAKE2B 535753841c0bb6201a6dcc7c1659436fa25270ed2b0066b97b4e8e8934c5bc131c51e5337ef97c33661c3086071be92ccc31cdf6cf3a774caa34f62e701d7b53 SHA512 78075cc0170cbbf9367cde1201aaa34c3a86e023b3d4f1f79ffc28bfe90bcb74236b48e2242e3076294b1cb9133b9ecd720c10011b7508a9cc67cb9221d911cd +DIST opensmtpd-7.5.0p0.tar.gz 926333 BLAKE2B 25c5786f423bd3efeae0b00de56ae1737e53b2206c179ba7650012ba7eaaefbfec8d942a3eba43d3b56e83616d8adb7e808f0ff35cb93e64439790f3f7045347 SHA512 1e4bf23e623d40732e4055a8db330b0dc69dbfbd4f3d89ef092ead3359aac4123f8a58feb61661be47d84c58e27d22c706dc308dfa245fa76f1d36ed2bb9a822 +DIST opensmtpd-7.6.0p1.sum.sig 256 BLAKE2B 8a15e253f22b3f653d5175b781fba83e1ca97c49d4b3a7b87d70adee46b4d8ce9eb7a8178b00770af8f647f9a2c466e331f4c99260bfcd3e06b60d9ee8d25a09 SHA512 20b6ac2df808ce17e058e8d10a8c30c73f51f723c570233cff9471707950a3c31edb01f00914bf085bac21a98d0d9f006c053a04bb53a9169532f4e800837593 +DIST opensmtpd-7.6.0p1.tar.gz 933649 BLAKE2B 15a392c411d19741963de6910f929c5528205a5d16ea3bb6bd8e4a1afa51f8f4b6ff541346c41d142e0a6d97b3817f67977988b33f5014c20084bdb251e64af7 SHA512 1e5ff894635f4b91a6b61aecafba588e58dda73cf17dc8595cd96120523e5efa479b5d888a363158f7e9cb73f15d5084f413cef1a6eb48f533c61cc350e0d328 +DIST opensmtpd-7.7.0p0.sum.sig 256 BLAKE2B 4a57ed2b3f93b224f66280bc4c98181d77f2512a457e277f96114c91f64618a0f7190568903f3fd049f6b9e4e11ea7bc9fc00cb687b0619405b5b971e77fd6a1 SHA512 4d49fdc24b5a72f7d4f87a1732d591b86ff33e272c3f0b2bb92fbda32eb7905f7a994c869cb013c91a957425351db61423a66bf2d37f8f351030e0c10aef9d5b +DIST opensmtpd-7.7.0p0.tar.gz 978481 BLAKE2B 0462c7f9c92c2af61498c0a2633e9f8863951cf4edfcfc6bf6683520a2653aa3e148cb90075a73b53135396f0b2a903685c9469f83362c25725a1e637a29c219 SHA512 6a46a93bc0689603250376e414fc481fd5997c2bc7fc4e12d1522a9f4a2cad610f1c9452e9501b077e3ba2219a253e693160540fcfba595da8f68349bf795b92 +DIST opensmtpd-7.8.0p1.sum.sig 256 BLAKE2B 5b463c124b15ce68660dacf5553a62fdaea031980b5e0868a8713a129a407ca71651d92e8c73351cec377ef231b9010945e5297e2c6da9703908f71bd1691a9d SHA512 e77b1538660c95bd9c3c0bdd6aa7ba65066fba7edb6c294d396b80aa82f202ec2ca966fe7ee6c6eac2f863a9b1ce9b8184938b93bceb24a87d802605bc10e375 DIST opensmtpd-7.8.0p1.tar.gz 745487 BLAKE2B c263b5203e0a9e299900ba4d6d8c7ad036afb1e05d6b0e4c060a1bbfdfb398349d4bd3af3b0b865506e6d0a35edd149ef0f33a69847e26909e50a3d7a6b3ca64 SHA512 5364036cc0503436ed0836ccd8b5a756e1aec3625b142f15fc3a029dba47e05e6c9fe94e40d6d475a1bfb1b0ca1ee39ba21a4c9d8a98eb5d97b335f5e1389a3a diff --git a/mail-mta/opensmtpd/files/smtpd.service b/mail-mta/opensmtpd/files/smtpd-r1.service index fd2a65010604..fccd88f31472 100644 --- a/mail-mta/opensmtpd/files/smtpd.service +++ b/mail-mta/opensmtpd/files/smtpd-r1.service @@ -5,6 +5,7 @@ After=network.target [Service] Type=forking ExecStart=/usr/sbin/smtpd +PIDFile=/run/smtpd.pid [Install] WantedBy=multi-user.target diff --git a/mail-mta/opensmtpd/files/smtpd.socket b/mail-mta/opensmtpd/files/smtpd.socket deleted file mode 100644 index fb42f8557323..000000000000 --- a/mail-mta/opensmtpd/files/smtpd.socket +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=OpenSMTPD Socket - -[Socket] -ListenStream=/var/run/smtpd.sock - -[Install] -WantedBy=sockets.target diff --git a/mail-mta/opensmtpd/metadata.xml b/mail-mta/opensmtpd/metadata.xml index 27015403287a..3a5c05d927c9 100644 --- a/mail-mta/opensmtpd/metadata.xml +++ b/mail-mta/opensmtpd/metadata.xml @@ -1,22 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="project"> - <email>dev@liguros.net</email> - <name>Development</name> - </maintainer> <maintainer type="person"> - <email>zx2c4@gentoo.org</email> - <name>Jason A. Donenfeld</name> + <email>cedk@gentoo.org</email> </maintainer> <longdescription lang="en"> -OpenSMTPD is an implementation of the server-side SMTP protocol as defined by RFC 5321, with some additional standard extensions. It allows ordinary machines to exchange e-mails with other systems speaking the SMTP protocol. -</longdescription> - <upstream> - <remote-id type="cpe">cpe:/a:opensmtpd:opensmtpd</remote-id> - </upstream> + OpenSMTPD is an implementation of the server-side SMTP protocol as defined by RFC 5321, with some additional standard extensions. It allows ordinary machines to exchange e-mails with other systems speaking the SMTP protocol. + </longdescription> <use> <flag name="mta">Enable this to install as system-wide MTA</flag> </use> + <upstream> + <bugs-to>mailto:bugs@opensmtpd.org</bugs-to> + </upstream> <origin>baldeagleos-repo</origin> </pkgmetadata> diff --git a/mail-mta/opensmtpd/opensmtpd-7.5.0_p0.ebuild b/mail-mta/opensmtpd/opensmtpd-7.5.0_p0.ebuild new file mode 100644 index 000000000000..0adad4bafef7 --- /dev/null +++ b/mail-mta/opensmtpd/opensmtpd-7.5.0_p0.ebuild @@ -0,0 +1,111 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_METHOD="signify" +inherit pam systemd verify-sig + +DESCRIPTION="Lightweight but featured SMTP daemon from OpenBSD" +HOMEPAGE="https://www.opensmtpd.org" +SRC_URI=" + https://www.opensmtpd.org/archives/${P/_}.tar.gz + verify-sig? ( https://www.opensmtpd.org/archives/${P/_}.sum.sig ) +" +S="${WORKDIR}/${P/_}" + +LICENSE="ISC BSD BSD-1 BSD-2 BSD-4" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv x86" +IUSE="berkdb +mta pam split-usr" + +DEPEND=" + dev-libs/libbsd + dev-libs/libevent:= + dev-libs/openssl:= + virtual/zlib:= + virtual/libcrypt:= + berkdb? ( sys-libs/db:= ) + elibc_musl? ( sys-libs/fts-standalone ) + pam? ( sys-libs/pam ) +" +RDEPEND="${DEPEND} + acct-user/smtpd + acct-user/smtpq + app-misc/ca-certificates + net-mail/mailbase + !mail-client/mailx-support + !mail-mta/courier + !mail-mta/esmtp + !mail-mta/exim + !mail-mta/msmtp[mta] + !mail-mta/netqmail + !mail-mta/nullmailer + !mail-mta/postfix + !mail-mta/sendmail + !mail-mta/ssmtp[mta] +" +BDEPEND=" + app-alternatives/yacc + virtual/pkgconfig + verify-sig? ( sec-keys/signify-keys-opensmtpd ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/signify-keys/${PN}.pub" + +QA_CONFIG_IMPL_DECL_SKIP=( closefrom ) + +DOCS=( {CHANGES,README}.md ) + +src_unpack() { + if use verify-sig; then + # Too many levels of symbolic links + cp "${DISTDIR}"/${P/_}.{sum.sig,tar.gz} "${WORKDIR}" || die + verify-sig_verify_signed_checksums \ + ${P/_}.sum.sig sha256 ${P/_}.tar.gz + fi + default +} + +src_configure() { + local myeconfargs=( + --sysconfdir="${EPREFIX}"/etc/smtpd + --with-path-CAfile="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt + --with-path-empty="${EPREFIX}"/var/empty + --with-path-mbox="${EPREFIX}"/var/spool/mail + --with-path-queue="${EPREFIX}"/var/spool/smtpd + --with-path-pidfile=/run + --with-path-socket=/run + --with-user-smtpd=smtpd + --with-user-queue=smtpq + --with-group-queue=smtpq + --with-libevent="${EPREFIX}"/usr/$(get_libdir) + --with-libssl="${EPREFIX}"/usr/$(get_libdir) + $(use_with berkdb table-db) + $(use_with pam auth-pam) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + newinitd "${FILESDIR}"/smtpd.initd smtpd + systemd_newunit "${FILESDIR}"/smtpd-r1.service smtpd.service + + use pam && newpamd "${FILESDIR}"/smtpd.pam smtpd + + dosym smtpctl /usr/sbin/makemap + dosym smtpctl /usr/sbin/newaliases + + if use mta; then + dodir /usr/sbin + dosym smtpctl /usr/sbin/sendmail + # on USE="-split-usr" system sbin and bin are merged + # so symlink made above will collide with one below + use split-usr && dosym ../sbin/smtpctl /usr/bin/sendmail + dodir /usr/$(get_libdir) + dosym -r /usr/sbin/smtpctl /usr/$(get_libdir)/sendmail + fi +} diff --git a/mail-mta/opensmtpd/opensmtpd-7.6.0_p1.ebuild b/mail-mta/opensmtpd/opensmtpd-7.6.0_p1.ebuild new file mode 100644 index 000000000000..f38bd8c0d8d3 --- /dev/null +++ b/mail-mta/opensmtpd/opensmtpd-7.6.0_p1.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_METHOD="signify" +inherit pam systemd verify-sig + +DESCRIPTION="Lightweight but featured SMTP daemon from OpenBSD" +HOMEPAGE="https://www.opensmtpd.org" +SRC_URI=" + https://www.opensmtpd.org/archives/${P/_}.tar.gz + verify-sig? ( https://www.opensmtpd.org/archives/${P/_}.sum.sig ) +" +S="${WORKDIR}/${P/_}" + +LICENSE="ISC BSD BSD-1 BSD-2 BSD-4" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv x86" +IUSE="berkdb +mta pam split-usr" + +DEPEND=" + dev-libs/libbsd + dev-libs/libevent:= + dev-libs/openssl:= + virtual/zlib:= + virtual/libcrypt:= + berkdb? ( sys-libs/db:= ) + elibc_musl? ( sys-libs/fts-standalone ) + pam? ( sys-libs/pam ) +" +RDEPEND="${DEPEND} + acct-user/smtpd + acct-user/smtpq + app-misc/ca-certificates + net-mail/mailbase + !mail-client/mailx-support + !mail-mta/courier + !mail-mta/esmtp + !mail-mta/exim + !mail-mta/msmtp[mta] + !mail-mta/netqmail + !mail-mta/nullmailer + !mail-mta/postfix + !mail-mta/sendmail + !mail-mta/ssmtp[mta] +" +BDEPEND=" + app-alternatives/yacc + virtual/pkgconfig + verify-sig? ( sec-keys/signify-keys-opensmtpd ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/signify-keys/${PN}.pub" + +QA_CONFIG_IMPL_DECL_SKIP=( closefrom ) + +DOCS=( {CHANGES,README}.md ) + +src_unpack() { + if use verify-sig; then + # Too many levels of symbolic links + cp "${DISTDIR}"/${P/_}.{sum.sig,tar.gz} "${WORKDIR}" || die + verify-sig_verify_signed_checksums \ + ${P/_}.sum.sig sha256 ${P/_}.tar.gz + fi + default +} + +src_configure() { + local myeconfargs=( + --sysconfdir="${EPREFIX}"/etc/smtpd + --with-path-CAfile="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt + --with-path-empty="${EPREFIX}"/var/empty + --with-path-mbox="${EPREFIX}"/var/spool/mail + --with-path-queue="${EPREFIX}"/var/spool/smtpd + --with-path-pidfile=/run + --with-path-socket=/run + --with-user-smtpd=smtpd + --with-user-queue=smtpq + --with-group-queue=smtpq + --with-libevent="${EPREFIX}"/usr/$(get_libdir) + --with-libssl="${EPREFIX}"/usr/$(get_libdir) + --with-libz=="${EPREFIX}"/usr/$(get_libdir) + $(use_with berkdb table-db) + $(use_with pam auth-pam) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + newinitd "${FILESDIR}"/smtpd.initd smtpd + systemd_newunit "${FILESDIR}"/smtpd-r1.service smtpd.service + + use pam && newpamd "${FILESDIR}"/smtpd.pam smtpd + + dosym smtpctl /usr/sbin/makemap + dosym smtpctl /usr/sbin/newaliases + + if use mta; then + dodir /usr/sbin + dosym smtpctl /usr/sbin/sendmail + # on USE="-split-usr" system sbin and bin are merged + # so symlink made above will collide with one below + use split-usr && dosym ../sbin/smtpctl /usr/bin/sendmail + dodir /usr/$(get_libdir) + dosym -r /usr/sbin/smtpctl /usr/$(get_libdir)/sendmail + fi +} diff --git a/mail-mta/opensmtpd/opensmtpd-7.7.0_p0.ebuild b/mail-mta/opensmtpd/opensmtpd-7.7.0_p0.ebuild new file mode 100644 index 000000000000..f38bd8c0d8d3 --- /dev/null +++ b/mail-mta/opensmtpd/opensmtpd-7.7.0_p0.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_METHOD="signify" +inherit pam systemd verify-sig + +DESCRIPTION="Lightweight but featured SMTP daemon from OpenBSD" +HOMEPAGE="https://www.opensmtpd.org" +SRC_URI=" + https://www.opensmtpd.org/archives/${P/_}.tar.gz + verify-sig? ( https://www.opensmtpd.org/archives/${P/_}.sum.sig ) +" +S="${WORKDIR}/${P/_}" + +LICENSE="ISC BSD BSD-1 BSD-2 BSD-4" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv x86" +IUSE="berkdb +mta pam split-usr" + +DEPEND=" + dev-libs/libbsd + dev-libs/libevent:= + dev-libs/openssl:= + virtual/zlib:= + virtual/libcrypt:= + berkdb? ( sys-libs/db:= ) + elibc_musl? ( sys-libs/fts-standalone ) + pam? ( sys-libs/pam ) +" +RDEPEND="${DEPEND} + acct-user/smtpd + acct-user/smtpq + app-misc/ca-certificates + net-mail/mailbase + !mail-client/mailx-support + !mail-mta/courier + !mail-mta/esmtp + !mail-mta/exim + !mail-mta/msmtp[mta] + !mail-mta/netqmail + !mail-mta/nullmailer + !mail-mta/postfix + !mail-mta/sendmail + !mail-mta/ssmtp[mta] +" +BDEPEND=" + app-alternatives/yacc + virtual/pkgconfig + verify-sig? ( sec-keys/signify-keys-opensmtpd ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/signify-keys/${PN}.pub" + +QA_CONFIG_IMPL_DECL_SKIP=( closefrom ) + +DOCS=( {CHANGES,README}.md ) + +src_unpack() { + if use verify-sig; then + # Too many levels of symbolic links + cp "${DISTDIR}"/${P/_}.{sum.sig,tar.gz} "${WORKDIR}" || die + verify-sig_verify_signed_checksums \ + ${P/_}.sum.sig sha256 ${P/_}.tar.gz + fi + default +} + +src_configure() { + local myeconfargs=( + --sysconfdir="${EPREFIX}"/etc/smtpd + --with-path-CAfile="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt + --with-path-empty="${EPREFIX}"/var/empty + --with-path-mbox="${EPREFIX}"/var/spool/mail + --with-path-queue="${EPREFIX}"/var/spool/smtpd + --with-path-pidfile=/run + --with-path-socket=/run + --with-user-smtpd=smtpd + --with-user-queue=smtpq + --with-group-queue=smtpq + --with-libevent="${EPREFIX}"/usr/$(get_libdir) + --with-libssl="${EPREFIX}"/usr/$(get_libdir) + --with-libz=="${EPREFIX}"/usr/$(get_libdir) + $(use_with berkdb table-db) + $(use_with pam auth-pam) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + newinitd "${FILESDIR}"/smtpd.initd smtpd + systemd_newunit "${FILESDIR}"/smtpd-r1.service smtpd.service + + use pam && newpamd "${FILESDIR}"/smtpd.pam smtpd + + dosym smtpctl /usr/sbin/makemap + dosym smtpctl /usr/sbin/newaliases + + if use mta; then + dodir /usr/sbin + dosym smtpctl /usr/sbin/sendmail + # on USE="-split-usr" system sbin and bin are merged + # so symlink made above will collide with one below + use split-usr && dosym ../sbin/smtpctl /usr/bin/sendmail + dodir /usr/$(get_libdir) + dosym -r /usr/sbin/smtpctl /usr/$(get_libdir)/sendmail + fi +} diff --git a/mail-mta/opensmtpd/opensmtpd-7.8.0_p0.ebuild b/mail-mta/opensmtpd/opensmtpd-7.8.0_p0.ebuild deleted file mode 100644 index 8ea7bff1b7f3..000000000000 --- a/mail-mta/opensmtpd/opensmtpd-7.8.0_p0.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 2023-2025 Liguros Authors -# Distributed under the terms of the GNU General Public License v2 -EAPI=8 - -inherit pam systemd - -DESCRIPTION="Lightweight but featured SMTP daemon from OpenBSD" -HOMEPAGE="https://www.opensmtpd.org" -SRC_URI="https://www.opensmtpd.org/archives/${P/_}.tar.gz" - -LICENSE="ISC BSD BSD-1 BSD-2 BSD-4" -SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86" -IUSE=" pam +mta berkdb" - -DEPEND=" - acct-user/smtpd - acct-user/smtpq - >=dev-libs/openssl-1.1:0= - - elibc_musl? ( sys-libs/fts-standalone ) - sys-libs/zlib - pam? ( sys-libs/pam ) - berkdb? ( sys-libs/db:= ) - dev-libs/libevent - app-misc/ca-certificates - net-mail/mailbase - net-libs/libasr - !mail-mta/courier - !mail-mta/esmtp - !mail-mta/exim - !mail-mta/mini-qmail - !mail-mta/msmtp[mta] - !mail-mta/netqmail - !mail-mta/nullmailer - !mail-mta/postfix - !mail-mta/qmail-ldap - !mail-mta/sendmail - !mail-mta/ssmtp[mta] -" -RDEPEND="${DEPEND}" - -S=${WORKDIR}/${P/_} - -src_configure() { - econf \ - --sysconfdir=/etc/smtpd \ - --with-path-mbox=/var/spool/mail \ - --with-path-empty=/var/empty \ - --with-path-socket=/run \ - --with-path-CAfile=/etc/ssl/certs/ca-certificates.crt \ - --with-user-smtpd=smtpd \ - --with-user-queue=smtpq \ - --with-group-queue=smtpq \ - $(use_with pam auth-pam) \ - $(use_with berkdb table-db) -} - -src_install() { - default - newinitd "${FILESDIR}"/smtpd.initd smtpd - systemd_dounit "${FILESDIR}"/smtpd.{service,socket} - use pam && newpamd "${FILESDIR}"/smtpd.pam smtpd - dosym smtpctl /usr/sbin/makemap - dosym smtpctl /usr/sbin/newaliases - if use mta ; then - dodir /usr/sbin - dosym smtpctl /usr/sbin/sendmail - dosym ../sbin/smtpctl /usr/bin/sendmail - mkdir -p "${ED}"/usr/$(get_libdir) || die - ln -s --relative "${ED}"/usr/sbin/smtpctl "${ED}"/usr/$(get_libdir)/sendmail || die - fi -} diff --git a/mail-mta/opensmtpd/opensmtpd-7.8.0_p1.ebuild b/mail-mta/opensmtpd/opensmtpd-7.8.0_p1.ebuild index 01811764daaa..662a1278e0d7 100644 --- a/mail-mta/opensmtpd/opensmtpd-7.8.0_p1.ebuild +++ b/mail-mta/opensmtpd/opensmtpd-7.8.0_p1.ebuild @@ -1,73 +1,117 @@ -# Copyright 2023-2026 Liguros Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 + EAPI=8 -inherit pam systemd +VERIFY_SIG_METHOD="signify" +inherit autotools pam systemd verify-sig DESCRIPTION="Lightweight but featured SMTP daemon from OpenBSD" HOMEPAGE="https://www.opensmtpd.org" -SRC_URI="https://www.opensmtpd.org/archives/${P/_}.tar.gz" +SRC_URI=" + https://www.opensmtpd.org/archives/${P/_}.tar.gz + verify-sig? ( https://www.opensmtpd.org/archives/${P/_}.sum.sig ) +" +S="${WORKDIR}/${P/_}" LICENSE="ISC BSD BSD-1 BSD-2 BSD-4" SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86" -IUSE=" pam +mta berkdb" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="berkdb +mta pam split-usr" DEPEND=" - acct-user/smtpd - acct-user/smtpq - >=dev-libs/openssl-1.1:0= - + dev-libs/libbsd + dev-libs/libevent:= + dev-libs/openssl:= + virtual/zlib:= + virtual/libcrypt:= + berkdb? ( sys-libs/db:= ) elibc_musl? ( sys-libs/fts-standalone ) - sys-libs/zlib pam? ( sys-libs/pam ) - berkdb? ( sys-libs/db:= ) - dev-libs/libevent +" +RDEPEND="${DEPEND} + acct-user/smtpd + acct-user/smtpq app-misc/ca-certificates net-mail/mailbase - net-libs/libasr + !mail-client/mailx-support !mail-mta/courier !mail-mta/esmtp !mail-mta/exim - !mail-mta/mini-qmail !mail-mta/msmtp[mta] !mail-mta/netqmail !mail-mta/nullmailer !mail-mta/postfix - !mail-mta/qmail-ldap !mail-mta/sendmail !mail-mta/ssmtp[mta] " -RDEPEND="${DEPEND}" +BDEPEND=" + app-alternatives/yacc + virtual/pkgconfig + verify-sig? ( sec-keys/signify-keys-opensmtpd ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/signify-keys/${PN}.pub" + +QA_CONFIG_IMPL_DECL_SKIP=( closefrom ) -S=${WORKDIR}/${P/_} +DOCS=( {CHANGES,README}.md ) + +src_unpack() { + if use verify-sig; then + # Too many levels of symbolic links + cp "${DISTDIR}"/${P/_}.{sum.sig,tar.gz} "${WORKDIR}" || die + verify-sig_verify_signed_checksums \ + ${P/_}.sum.sig sha256 ${P/_}.tar.gz + fi + default +} + +src_prepare() { + default + eautoreconf +} src_configure() { - econf \ - --sysconfdir=/etc/smtpd \ - --with-path-mbox=/var/spool/mail \ - --with-path-empty=/var/empty \ - --with-path-socket=/run \ - --with-path-CAfile=/etc/ssl/certs/ca-certificates.crt \ - --with-user-smtpd=smtpd \ - --with-user-queue=smtpq \ - --with-group-queue=smtpq \ - $(use_with pam auth-pam) \ + local myeconfargs=( + --sysconfdir="${EPREFIX}"/etc/smtpd + --with-path-CAfile="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt + --with-path-empty="${EPREFIX}"/var/empty + --with-path-mbox="${EPREFIX}"/var/spool/mail + --with-path-queue="${EPREFIX}"/var/spool/smtpd + --with-path-pidfile=/run + --with-path-socket=/run + --with-user-smtpd=smtpd + --with-user-queue=smtpq + --with-group-queue=smtpq + --with-libevent="${EPREFIX}"/usr/$(get_libdir) + --with-libssl="${EPREFIX}"/usr/$(get_libdir) + --with-libz=="${EPREFIX}"/usr/$(get_libdir) $(use_with berkdb table-db) + $(use_with pam auth-pam) + ) + + econf "${myeconfargs[@]}" } src_install() { default + newinitd "${FILESDIR}"/smtpd.initd smtpd - systemd_dounit "${FILESDIR}"/smtpd.{service,socket} + systemd_newunit "${FILESDIR}"/smtpd-r1.service smtpd.service + use pam && newpamd "${FILESDIR}"/smtpd.pam smtpd + dosym smtpctl /usr/sbin/makemap dosym smtpctl /usr/sbin/newaliases - if use mta ; then + + if use mta; then dodir /usr/sbin dosym smtpctl /usr/sbin/sendmail - dosym ../sbin/smtpctl /usr/bin/sendmail - mkdir -p "${ED}"/usr/$(get_libdir) || die - ln -s --relative "${ED}"/usr/sbin/smtpctl "${ED}"/usr/$(get_libdir)/sendmail || die + # on USE="-split-usr" system sbin and bin are merged + # so symlink made above will collide with one below + use split-usr && dosym ../sbin/smtpctl /usr/bin/sendmail + dodir /usr/$(get_libdir) + dosym -r /usr/sbin/smtpctl /usr/$(get_libdir)/sendmail fi } diff --git a/mail-mta/postfix/Manifest b/mail-mta/postfix/Manifest index d9a78df48826..5de478fece1d 100644 --- a/mail-mta/postfix/Manifest +++ b/mail-mta/postfix/Manifest @@ -1,4 +1,8 @@ -DIST postfix-3.10.8.tar.gz 5040857 BLAKE2B db3bad6842f2067e62e681bc3a1ed6766f95a587220167889778c05e7fb37180ffb2b368a00267543913dca30306afc8dac9dc3242796e902a74c0a87f6997fb SHA512 a34e9f84ec96c47765a417801a303bea32ca42bb16c6ae665c771f1a37c8369f6d140999f1015c8c28aa18dad86e918e0a072ea67dea644d271b1ed3beaf61ea -DIST postfix-3.11.0.tar.gz 5279929 BLAKE2B 1b9b68ab201dfbe9e0dc06a1cdb2712c5ab28d0ab73e98b1cfaef07a3c9b02fc4552577c1fe739aafd2e53bda4dccb81973b954b0cb89acd3c7ce5d923b7d7b4 SHA512 aa377e3cb889aec166c73e90b3c7d3fbc1db48a558b13948d76b2a7aaccaee202dad7252e973d503800d97a4e6da9091ca792d037528f90521d04729594b23cc -DIST postfix-3.11.1.tar.gz 5280696 BLAKE2B 38f5579b9252c6b91f1ea5af170fef3f1348dccdb41aaf0ab1c33eaaca2789d0b757bb03ef4b0e5ade1f69d7b195cbac4a714a0e5f0d2c8768d62db8adce23fc SHA512 065aee35d462a7121ef870f1af5b3d7efedd08e18f18c5d04d7c731b3b051ab8f70499cbdcea6cb559fbfb2115ff39509fa145abf6e99dade232ac4943d178d1 -DIST postfix-3.5.25.tar.gz 4660537 BLAKE2B b4738785f142a67c3a12fadd0d90067dd5c8bdc5e13fbe9295cd23e7519e2eb28769f0ad79318a8255f9adfa6524edbd340b806bc752ed0b9c013500c2ed0e6c SHA512 25d654fb49429d9c361579e20ca1762ec66e7b71a53b4dbf6057a61f4afee9052ce2f43a55e0349fb4e716b28406fbde69f592855117d28153aecf74434ded0b +DIST postfix-3.11.2.tar.gz 5282053 BLAKE2B 94f19c22b5c5047c6f31fb8c73863598bf3a789f2b8d3019b76bde6bb2bd439aed21c509563d7134946aba4d51b8cdddcabc86fc52007839f4ee6b56d4fa820e SHA512 1929bd640bbc0952dc3057fa46990fce23b968ef69e8c051d7f5661c5a99f36657983aa0c0f621430abfe0cf6c1ad5c88a00372864b1093f25cf8fcb1477f119 +DIST postfix-3.11.2.tar.gz.asc 220 BLAKE2B a2960fcc939dc9462f70307648c7c169a9895c01244aef90ebafdb5ea8867e04cfe4df2b53e798de35862a23063b89473e1ee206bd916f15705149cdec2a6a1e SHA512 ad35331f72be947ebdac6f75e53d6b7e9bb1404ad74c30513d3c79d72f3e065e37f83ffc244a39148c8e0c6cf3bb1feeee178fb1943d0ad1802873256f92c7a1 +DIST postfix-3.11.3.tar.gz 5282523 BLAKE2B f88dd4e4b607ef729892ba3843c08b9d54864a2cc6605d9578eee85291be9918bf7f0d69cb2cff0b7e756de540c63c6ede1244557eb0027ca978484460085f6b SHA512 d1293c209a7033309975308991a2efa4f077bc7eb93b50a560ea714ea6280ada3726f5266c6b58926a326fda5a0fa68b486b543de092432ac9025dd424d24dd3 +DIST postfix-3.11.3.tar.gz.asc 220 BLAKE2B cca2a1aa33b4e8041703687c127848e5ac6cab7726b71985c9f83d3d5591a99469b32f0798127d2d8d79ed6ba35fabda8d63cabc57af9828662099618d670153 SHA512 b4d7d2f8c45aed1aee80a8416ddc424f15b916f55dcfc206500bc515dc3d491c1a56bd757ec7b384816f2182198943f97fa3bf3cc9f86c8757ba0982323411f8 +DIST postfix-3.11.4.tar.gz 5285318 BLAKE2B 7c41d43987949076d45507372cce748b6bd1a8a1407fa032ecaf91ab1ad086068e7920d43df0c8b8c47f415c8ccbeaeb7862470aa322f51176e197fbe941ca4f SHA512 0ff931861ab250bccff6a9592115b8991980c33574db14af9e5d1e1e42d896be41a5b1a38e41ce4f6b5cec236df37581ae52bd37a2810443e1ba17bbeb2bfaab +DIST postfix-3.11.4.tar.gz.asc 220 BLAKE2B 8b7d008a5e068b0d6a08453cae3059d70ac5f16763102108f0c152acaed859a544e8ae152d0e3bae4bbe3fbba686174c0b4c21a37be3ea49deda7560ec2f4c45 SHA512 ab683d67ee0d776432547d640b2ae6339cecf4976e0b44eab068da619f5f8c532df5ec1b1676aa030ea98e882bbcbd43be13923f709b1f2938d54d5d0a292f52 +DIST postfix-3.12-20260615.tar.gz 5403254 BLAKE2B 4ed67d3e437714fa20e20b98f8c4203230584d6237a0ed6a97ea512659c7742886783b39ab948475b4fe431dbf0fa81221c3a15c441c26ee821e1a05db829410 SHA512 b3c7440ec7d7a7a1c127a27346157e004fdddcc730869fe4b176c85a04132280279086c571e9368b102bdcf1f10e19d2bf076561462021341c89bf80dd43337f +DIST postfix-3.12-20260615.tar.gz.asc 220 BLAKE2B 4015509eddb850aa7dcd263171f33313ad4ccea07294aa0795639b93ff3b94f5adef910c746bae54bdf5b3fae4551e6d13f384fc6251685c21cceb24c26a7b0f SHA512 900aac7f29c6a5a5050010156572a309641dd2f23707b7761af1c1977c44973ed3d3f5672ed71fc05480daeccd4b57b1bd3004bc5aae3185bf1f9545bdc4caa3 diff --git a/mail-mta/postfix/files/makedefs.patch b/mail-mta/postfix/files/makedefs.patch deleted file mode 100644 index dcb9811f3e63..000000000000 --- a/mail-mta/postfix/files/makedefs.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN postfix-3.7.3.orig/makedefs postfix-3.7.3/makedefs ---- postfix-3.7.3.orig/makedefs 2022-10-08 22:46:54.898431414 +0200 -+++ postfix-3.7.3/makedefs 2022-10-08 22:47:28.181433811 +0200 -@@ -627,7 +627,7 @@ - : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"} - : ${PLUGIN_LD="${CC-gcc} -shared"} - ;; -- Linux.[345].*) SYSTYPE=LINUX$RELEASE_MAJOR -+ Linux.[3456].*) SYSTYPE=LINUX$RELEASE_MAJOR - case "$CCARGS" in - *-DNO_DB*) ;; - *-DHAS_DB*) ;; diff --git a/mail-mta/postfix/files/postfix-glibc-2.34.patch b/mail-mta/postfix/files/postfix-glibc-2.34.patch deleted file mode 100644 index 0da3ddf5ecdb..000000000000 --- a/mail-mta/postfix/files/postfix-glibc-2.34.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/src/util/sys_defs.h 2020-05-21 16:34:23.000000000 +0300 -+++ b/src/util/sys_defs.h 2021-08-07 19:14:20.000000000 +0300 -@@ -827,6 +827,9 @@ - #define HAVE_POSIX_GETPW_R - #endif - #endif -+#if HAVE_GLIBC_API_VERSION_SUPPORT(2, 34) -+#define HAS_CLOSEFROM -+#endif - - #endif - diff --git a/mail-mta/postfix/files/postfix-libressl-certkey.patch b/mail-mta/postfix/files/postfix-libressl-certkey.patch deleted file mode 100644 index b6ab8aeb7901..000000000000 --- a/mail-mta/postfix/files/postfix-libressl-certkey.patch +++ /dev/null @@ -1,13 +0,0 @@ -see https://bugs.gentoo.org/678874 - ---- a/src/tls/tls_certkey.c.orig 2019-03-07 23:57:10 UTC -+++ b/src/tls/tls_certkey.c -@@ -144,7 +144,7 @@ static void init_pem_load_state(pem_load - - /* use_chain - load cert, key and chain into ctx or ssl */ - --#if OPENSSL_VERSION_NUMBER >= 0x1010100fUL -+#if OPENSSL_VERSION_NUMBER >= 0x1010100fUL && !defined(LIBRESSL_VERSION_NUMBER) - static int use_chain(pem_load_state_t *st) - { - int ret; diff --git a/mail-mta/postfix/files/postfix-libressl-server.patch b/mail-mta/postfix/files/postfix-libressl-server.patch deleted file mode 100644 index 8573bb80bb59..000000000000 --- a/mail-mta/postfix/files/postfix-libressl-server.patch +++ /dev/null @@ -1,14 +0,0 @@ -see https://bugs.gentoo.org/678874 - ---- a/src/tls/tls_server.c.orig 2018-12-26 19:21:49 UTC -+++ b/src/tls/tls_server.c -@@ -518,7 +518,9 @@ TLS_APPL_STATE *tls_server_init(const TL - * ticket decryption callback already (since 2.11) asks OpenSSL to - * avoid issuing new tickets when the presented ticket is re-usable. - */ -+#ifndef LIBRESSL_VERSION_NUMBER - SSL_CTX_set_num_tickets(server_ctx, 1); -+#endif - } - #endif - if (!ticketable) diff --git a/mail-mta/postfix/files/postfix.rc6.2.7 b/mail-mta/postfix/files/postfix.rc6.2.7 index 5d429a597cce..62f6dda38cf4 100644 --- a/mail-mta/postfix/files/postfix.rc6.2.7 +++ b/mail-mta/postfix/files/postfix.rc6.2.7 @@ -45,7 +45,7 @@ start() { stop() { ebegin "Stopping postfix ${CONF_MESSAGE}" /usr/sbin/postfix ${CONF_PARAM} stop >/dev/null 2>&1 - eend + eend $? } status() { diff --git a/mail-mta/postfix/files/postfix.service b/mail-mta/postfix/files/postfix.service index db585b3e29db..7a72aaa8e50b 100644 --- a/mail-mta/postfix/files/postfix.service +++ b/mail-mta/postfix/files/postfix.service @@ -12,7 +12,7 @@ ExecReload=/usr/sbin/postfix reload PrivateTmp=yes PrivateDevices=yes ProtectSystem=full -ReadWritePaths=-/etc/mail/aliases.db +ReadWritePaths=-/etc/mail/aliases.db -/etc/mail/aliases.cdb -/etc/mail/aliases.lmdb CapabilityBoundingSet=~ CAP_NET_ADMIN CAP_SYS_ADMIN CAP_SYS_BOOT CAP_SYS_MODULE MemoryDenyWriteExecute=true ProtectKernelModules=true diff --git a/mail-mta/postfix/files/src_tls_tls_certkey_c.patch b/mail-mta/postfix/files/src_tls_tls_certkey_c.patch deleted file mode 100644 index 21ef1223ebc2..000000000000 --- a/mail-mta/postfix/files/src_tls_tls_certkey_c.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: src/tls/tls_certkey.c ---- src/tls/tls_certkey.c.orig -+++ src/tls/tls_certkey.c -@@ -149,7 +149,7 @@ static void init_pem_load_state(pem_load_state_t *st, - - /* use_chain - load cert, key and chain into ctx or ssl */ - --#if OPENSSL_VERSION_NUMBER >= 0x1010100fUL -+#if OPENSSL_VERSION_NUMBER >= 0x1010100fUL && !defined(LIBRESSL_VERSION_NUMBER) - static int use_chain(pem_load_state_t *st) - { - int ret; diff --git a/mail-mta/postfix/files/src_tls_tls_misc_c.patch b/mail-mta/postfix/files/src_tls_tls_misc_c.patch deleted file mode 100644 index b1028c5d739c..000000000000 --- a/mail-mta/postfix/files/src_tls_tls_misc_c.patch +++ /dev/null @@ -1,45 +0,0 @@ -Index: src/tls/tls_misc.c ---- src/tls/tls_misc.c.orig -+++ src/tls/tls_misc.c -@@ -657,7 +657,7 @@ void tls_param_init(void) - - int tls_library_init(void) - { -- OPENSSL_INIT_SETTINGS *init_settings; -+ // OPENSSL_INIT_SETTINGS *init_settings; - char *conf_name = *var_tls_cnf_name ? var_tls_cnf_name : 0; - char *conf_file = 0; - unsigned long init_opts = 0; -@@ -681,6 +681,7 @@ int tls_library_init(void) - msg_info("tls_library_init: using backwards-compatible defaults"); - return (init_res = TLS_LIB_INIT_OK); - } -+#if 0 - if ((init_settings = OPENSSL_INIT_new()) == 0) { - msg_warn("error allocating OpenSSL init settings, " - "disabling TLS support"); -@@ -763,6 +764,8 @@ int tls_library_init(void) - TLS_LIB_INIT_RETURN(TLS_LIB_INIT_ERR); - } - TLS_LIB_INIT_RETURN(TLS_LIB_INIT_OK); -+#endif -+ return init_res = TLS_LIB_INIT_OK; - } - - /* tls_pre_jail_init - Load TLS related pre-jail tables */ -@@ -1644,6 +1647,7 @@ int tls_validate_digest(const char *dgst) - * Improves interoperability with clients and servers that prematurely - * deploy SHA-2 certificates. Also facilitates DANE and TA support. - */ -+#ifndef LIBRESSL_VERSION_NUMBER - #if defined(LN_sha256) && defined(NID_sha256) && !defined(OPENSSL_NO_SHA256) - if (!tls_digest_byname(LN_sha224, NULL)) - EVP_add_digest(EVP_sha224()); -@@ -1655,6 +1659,7 @@ int tls_validate_digest(const char *dgst) - EVP_add_digest(EVP_sha384()); - if (!tls_digest_byname(LN_sha512, NULL)) - EVP_add_digest(EVP_sha512()); -+#endif - #endif - - /* diff --git a/mail-mta/postfix/files/src_tls_tls_server_c.patch b/mail-mta/postfix/files/src_tls_tls_server_c.patch deleted file mode 100644 index 7db3472cf46e..000000000000 --- a/mail-mta/postfix/files/src_tls_tls_server_c.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: src/tls/tls_server.c ---- src/tls/tls_server.c.orig -+++ src/tls/tls_server.c -@@ -541,7 +541,9 @@ TLS_APPL_STATE *tls_server_init(const TLS_SERVER_INIT_ - * ticket decryption callback already (since 2.11) asks OpenSSL to - * avoid issuing new tickets when the presented ticket is re-usable. - */ -+#ifndef LIBRESSL_VERSION_NUMBER - SSL_CTX_set_num_tickets(server_ctx, 1); -+#endif - } - #endif - if (!ticketable) diff --git a/mail-mta/postfix/files/sys_defs_h.patch b/mail-mta/postfix/files/sys_defs_h.patch deleted file mode 100644 index 411277bdfc9b..000000000000 --- a/mail-mta/postfix/files/sys_defs_h.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN postfix-3.7.3.orig/src/util/sys_defs.h postfix-3.7.3/src/util/sys_defs.h ---- postfix-3.7.3.orig/src/util/sys_defs.h 2022-10-08 23:04:26.876507181 +0200 -+++ postfix-3.7.3/src/util/sys_defs.h 2022-10-08 23:05:13.566510543 +0200 -@@ -751,7 +751,7 @@ - /* - * LINUX. - */ --#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5) -+#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5) || defined(LINUX6) - #define SUPPORTED - #define UINT32_TYPE unsigned int - #define UINT16_TYPE unsigned short diff --git a/mail-mta/postfix/metadata.xml b/mail-mta/postfix/metadata.xml index a0cfeac4192a..4e305bcea621 100644 --- a/mail-mta/postfix/metadata.xml +++ b/mail-mta/postfix/metadata.xml @@ -1,32 +1,28 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="project"> - <email>dev@liguros.net</email> - <name>Development</name> - </maintainer> <maintainer type="person"> <email>eras@gentoo.org</email> - <name> - Eray Aslan - </name> + <name>Eray Aslan</name> </maintainer> <maintainer type="person"> <email>williamh@gentoo.org</email> - <name> - William Hubbs - </name> + <name>William Hubbs</name> </maintainer> - <upstream> - <remote-id type="cpe">cpe:/a:postfix:postfix</remote-id> - </upstream> <use> - <flag name="dovecot-sasl">Enable <pkg>net-mail/dovecot</pkg> protocol version 1 (server only) SASL implementation</flag> + <flag name="dovecot-sasl">Enable <pkg>net-mail/dovecot</pkg> protocol + version 1 (server only) SASL implementation</flag> <flag name="eai">Add support for SMTPUTF8</flag> - <flag name="ldap-bind">Add support for binding to LDAP backend using <pkg>dev-libs/cyrus-sasl</pkg> + <flag name="ldap-bind">Add support for binding to LDAP backend + using <pkg>dev-libs/cyrus-sasl</pkg> </flag> - <flag name="memcached">Add support for using <pkg>net-misc/memcached</pkg> for lookup tables</flag> - <flag name="lmdb">Add support for using <pkg>dev-db/lmdb</pkg> for lookup tables</flag> + <flag name="memcached">Add support for using <pkg>net-misc/memcached</pkg> + for lookup tables</flag> + <flag name="lmdb">Add support for using <pkg>dev-db/lmdb</pkg> + for lookup tables</flag> + <flag name="mongodb">Add support for using <pkg>dev-db/mongodb</pkg> + for lookup tables</flag> + <flag name="tlsrpt">Add support for TLSRPT protocol</flag> </use> <origin>baldeagleos-repo</origin> </pkgmetadata> diff --git a/mail-mta/postfix/postfix-3.10.8.ebuild b/mail-mta/postfix/postfix-3.11.2.ebuild index 7dc56163dc23..c8d03d9425d1 100644 --- a/mail-mta/postfix/postfix-3.10.8.ebuild +++ b/mail-mta/postfix/postfix-3.11.2.ebuild @@ -1,9 +1,15 @@ -# Copyright 2023-2026 Liguros Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 + EAPI=8 -inherit flag-o-matic pam systemd toolchain-funcs +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/postfix.asc +inherit eapi9-ver pam systemd toolchain-funcs verify-sig -MY_PV="${PV/_pre/-}" +if [[ ${PV} == *_rc* ]]; then + MY_PV="${PV/_rc/-RC}" +else + MY_PV="${PV/_pre/-}" +fi MY_SRC="${PN}-${MY_PV}" MY_URI="http://ftp.porcupine.org/mirrors/postfix-release/official" RC_VER="2.7" @@ -11,20 +17,20 @@ RC_VER="2.7" DESCRIPTION="A fast and secure drop-in replacement for sendmail" HOMEPAGE="https://www.postfix.org/" SRC_URI="${MY_URI}/${MY_SRC}.tar.gz" +SRC_URI+=" verify-sig? ( ${MY_URI}/${MY_SRC}.tar.gz.gpg2 -> ${MY_SRC}.tar.gz.asc )" S="${WORKDIR}/${MY_SRC}" LICENSE="|| ( IBM EPL-2.0 )" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+berkdb cdb dovecot-sasl +eai ldap ldap-bind lmdb mbox memcached mongodb mariadb nis pam postgres sasl selinux sqlite ssl tlsrpt" +IUSE="+berkdb cdb dovecot-sasl +eai ldap ldap-bind +lmdb mbox memcached mongodb mysql nis pam postgres sasl selinux sqlite ssl tlsrpt" DEPEND=" acct-group/postfix acct-group/postdrop acct-user/postfix dev-libs/libpcre2:0 - dev-lang/perl berkdb? ( >=sys-libs/db-3.2:* ) cdb? ( || ( >=dev-db/tinycdb-0.76 >=dev-db/cdb-0.75-r4 ) ) eai? ( dev-libs/icu:= ) @@ -32,7 +38,7 @@ DEPEND=" ldap-bind? ( net-nds/openldap:=[sasl] ) lmdb? ( >=dev-db/lmdb-0.9.11:= ) mongodb? ( >=dev-libs/mongo-c-driver-1.23.0 >=dev-libs/libbson-1.23.0 ) - mariadb? ( dev-db/mariadb-connector-c:0= ) + mysql? ( dev-db/mysql-connector-c:0= ) nis? ( net-libs/libnsl:= ) pam? ( sys-libs/pam ) postgres? ( dev-db/postgresql:* ) @@ -43,6 +49,7 @@ DEPEND=" " RDEPEND="${DEPEND} + dev-lang/perl memcached? ( net-misc/memcached ) net-mail/mailbase !mail-mta/courier @@ -56,17 +63,16 @@ RDEPEND="${DEPEND} !mail-mta/ssmtp[mta] selinux? ( sec-policy/selinux-postfix )" -# require at least one db implementation for newalias (and postmap) -# command to function properly +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-postfix )" + REQUIRED_USE=" - || ( berkdb cdb lmdb ) ldap-bind? ( ldap sasl ) tlsrpt? ( ssl ) " src_prepare() { default - sed -i -e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:/etc/mail/aliases|" \ + sed -i -e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:${EPREFIX}/etc/mail/aliases|" \ src/util/sys_defs.h || die "sed failed" # change default paths to better comply with portage standard paths sed -i -e "s:/usr/local/:/usr/:g" conf/master.cf || die "sed failed" @@ -76,9 +82,6 @@ src_configure() { # bug #915670 unset LD_LIBRARY_PATH - # https://marc.info/?l=postfix-users&m=173542420611213&w=2 (bug #945733) - append-cflags -std=gnu17 - for name in CDB LDAP LMDB MONGODB MYSQL PCRE PGSQL SDBM SQLITE TLSRPT do local AUXLIBS_${name}="" @@ -87,9 +90,25 @@ src_configure() { # Make sure LDFLAGS get passed down to the executables. local mycc="" mylibs="${LDFLAGS} -ldl" + # Determine local database type defaults + local default_database_type="lmdb" + local default_cache_db_type="lmdb" + if ! use lmdb; then + if use berkdb; then + default_database_type="hash" + default_cache_db_type="btree" + elif use cdb; then + default_database_type="cdb" + ewarn + ewarn "cdb USE flag is on but lmdb USE flag is not. Local database files" + ewarn "for caches will not work. Consider turning lmdb USE flag on." + ewarn + fi + fi + # libpcre is EOL. prefer libpcre2 mycc=" -DHAS_PCRE=2" - AUXLIBS_PCRE="$(pcre2-config --libs8)" + AUXLIBS_PCRE="$($(tc-getPKG_CONFIG) --libs libpcre2-8)" use pam && mylibs="${mylibs} -lpam" @@ -113,18 +132,18 @@ src_configure() { fi if use mongodb; then - mycc="${mycc} -DHAS_MONGODB $(pkg-config --cflags libmongoc-1.0)" + mycc="${mycc} -DHAS_MONGODB $($(tc-getPKG_CONFIG) --cflags libmongoc-1.0)" AUXLIBS_MONGODB="-lmongoc-1.0 -lbson-1.0" fi - if use mariadb; then - mycc="${mycc} -DHAS_MYSQL $(mariadb-config --include)" - AUXLIBS_MYSQL="$(mariadb-config --libs)" + if use mysql; then + mycc="${mycc} -DHAS_MYSQL $(mysql_config --include)" + AUXLIBS_MYSQL="$(mysql_config --libs)" fi if use postgres; then - mycc="${mycc} -DHAS_PGSQL -I$(pg_config --includedir)" - AUXLIBS_PGSQL="-L$(pg_config --libdir) -lpq" + mycc="${mycc} -DHAS_PGSQL $($(tc-getPKG_CONFIG) --cflags libpq)" + AUXLIBS_PGSQL="$($(tc-getPKG_CONFIG) --libs libpq)" fi if use sqlite; then @@ -145,7 +164,7 @@ src_configure() { if use ldap-bind; then mycc="${mycc} -DUSE_LDAP_SASL" fi - mycc="${mycc} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" + mycc="${mycc} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${ESYSROOT}/usr/include/sasl" mylibs="${mylibs} -lsasl2" elif use dovecot-sasl; then mycc="${mycc} -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\\\"dovecot\\\"" @@ -157,24 +176,16 @@ src_configure() { if ! use berkdb; then mycc="${mycc} -DNO_DB" - # change default database type - if use lmdb; then - mycc="${mycc} -DDEF_DB_TYPE=\\\"lmdb\\\"" - elif use cdb; then - mycc="${mycc} -DDEF_DB_TYPE=\\\"cdb\\\"" - fi fi if use cdb; then - mycc="${mycc} -DHAS_CDB -I/usr/include/cdb" + mycc="${mycc} -DHAS_CDB -I${ESYSROOT}/usr/include/cdb" # Tinycdb is preferred. if has_version dev-db/tinycdb ; then AUXLIBS_CDB="-lcdb" else - CDB_PATH="/usr/$(get_libdir)" - for i in cdb.a alloc.a buffer.a unix.a byte.a ; do - AUXLIBS_CDB="${AUXLIBS_CDB} ${CDB_PATH}/${i}" - done + printf -v AUXLIBS_CDB "${ESYSROOT}/usr/$(get_libdir)/%s " \ + cdb.a alloc.a buffer.a unix.a byte.a || die fi fi @@ -185,6 +196,8 @@ src_configure() { shared=yes \ dynamicmaps=no \ pie=yes \ + default_database_type="${default_database_type}" \ + default_cache_db_type="${default_cache_db_type}" \ shlib_directory="/usr/$(get_libdir)/postfix/MAIL_VERSION" \ DEBUG="" \ CC="$(tc-getCC)" \ @@ -216,7 +229,7 @@ src_install() { || die "postfix-install failed" # Fix spool removal on upgrade - rm -Rf "${D}"/var + rm -Rf "${ED}"/var keepdir /var/spool/postfix # Install rmail for UUCP, closes bug #19127 @@ -254,7 +267,7 @@ src_install() { mypostconf="home_mailbox=.maildir/" fi LD_LIBRARY_PATH="${S}/lib" \ - "${D}"/usr/sbin/postconf -c "${D}"/etc/postfix \ + "${ED}"/usr/sbin/postconf -c "${ED}"/etc/postfix \ -e ${mypostconf} || die "postconf failed" insinto /etc/postfix @@ -262,9 +275,9 @@ src_install() { fperms 600 /etc/postfix/saslpass newinitd "${FILESDIR}"/postfix.rc6.${RC_VER} postfix - # do not start maridb/postgres unnecessarily - bug #359913 - use mariadb || sed -i -e "s/mysql //" "${D}/etc/init.d/postfix" - use postgres || sed -i -e "s/postgresql //" "${D}/etc/init.d/postfix" + # do not start mysql/postgres unnecessarily - bug #359913 + use mysql || sed -i -e "s/mysql //" "${ED}/etc/init.d/postfix" + use postgres || sed -i -e "s/postgresql //" "${ED}/etc/init.d/postfix" dodoc *README COMPATIBILITY HISTORY PORTING RELEASE_NOTES* dodoc -r README_FILES/ examples/ @@ -288,20 +301,34 @@ src_install() { } pkg_postinst() { - # warn if no aliases database - # do not assume berkdb - if [[ ! -e /etc/mail/aliases.db \ - && ! -e /etc/mail/aliases.cdb \ - && ! -e /etc/mail/aliases.lmdb ]] ; then + if ver_replacing -lt 3.11 ; then + # This is an upgrade which requires user review + ewarn "Default database and cache type changed to lmdb" + ewarn "with postfix-3.11. Please read the migration guide:" + ewarn " https://www.postfix.org/NON_BERKELEYDB_README.html" + fi + + if ! use berkdb && ! use cdb && ! use lmdb; then ewarn - ewarn "You must edit /etc/mail/aliases to suit your needs" - ewarn "and then run /usr/bin/newaliases. Postfix will not" - ewarn "work correctly without it." + ewarn "No backend for local database files is configured." + ewarn "newaliases and postmap commands will not work. This" + ewarn "is not a supported configuration and you are strongly" + ewarn "recommended to turn one of berkdb, cdb or lmdb USE flags" + ewarn "on." ewarn + else + # warn if no aliases database + # do not assume berkdb + if [[ ! -e /etc/mail/aliases.db \ + && ! -e /etc/mail/aliases.cdb \ + && ! -e /etc/mail/aliases.lmdb ]] ; then + ewarn "You must edit /etc/mail/aliases to suit your needs" + ewarn "and then run /usr/bin/newaliases." + fi + # run newaliases anyway. otherwise, we might break when switching + # default database implementation + "${EROOT}"/usr/bin/newaliases fi - # run newaliases anyway. otherwise, we might break when switching - # default database implementation - from berkdb to cdb for example - "${EROOT}"/usr/bin/newaliases # check and fix file permissions "${EROOT}"/usr/sbin/postfix set-permissions diff --git a/mail-mta/postfix/postfix-3.11.0.ebuild b/mail-mta/postfix/postfix-3.11.3.ebuild index 7dc56163dc23..f99930a59667 100644 --- a/mail-mta/postfix/postfix-3.11.0.ebuild +++ b/mail-mta/postfix/postfix-3.11.3.ebuild @@ -1,9 +1,15 @@ -# Copyright 2023-2026 Liguros Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 + EAPI=8 -inherit flag-o-matic pam systemd toolchain-funcs +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/postfix.asc +inherit eapi9-ver pam systemd toolchain-funcs verify-sig -MY_PV="${PV/_pre/-}" +if [[ ${PV} == *_rc* ]]; then + MY_PV="${PV/_rc/-RC}" +else + MY_PV="${PV/_pre/-}" +fi MY_SRC="${PN}-${MY_PV}" MY_URI="http://ftp.porcupine.org/mirrors/postfix-release/official" RC_VER="2.7" @@ -11,20 +17,20 @@ RC_VER="2.7" DESCRIPTION="A fast and secure drop-in replacement for sendmail" HOMEPAGE="https://www.postfix.org/" SRC_URI="${MY_URI}/${MY_SRC}.tar.gz" +SRC_URI+=" verify-sig? ( ${MY_URI}/${MY_SRC}.tar.gz.gpg2 -> ${MY_SRC}.tar.gz.asc )" S="${WORKDIR}/${MY_SRC}" LICENSE="|| ( IBM EPL-2.0 )" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="+berkdb cdb dovecot-sasl +eai ldap ldap-bind lmdb mbox memcached mongodb mariadb nis pam postgres sasl selinux sqlite ssl tlsrpt" +IUSE="+berkdb cdb dovecot-sasl +eai ldap ldap-bind +lmdb mbox memcached mongodb mysql nis pam postgres sasl selinux sqlite ssl tlsrpt" DEPEND=" acct-group/postfix acct-group/postdrop acct-user/postfix dev-libs/libpcre2:0 - dev-lang/perl berkdb? ( >=sys-libs/db-3.2:* ) cdb? ( || ( >=dev-db/tinycdb-0.76 >=dev-db/cdb-0.75-r4 ) ) eai? ( dev-libs/icu:= ) @@ -32,7 +38,7 @@ DEPEND=" ldap-bind? ( net-nds/openldap:=[sasl] ) lmdb? ( >=dev-db/lmdb-0.9.11:= ) mongodb? ( >=dev-libs/mongo-c-driver-1.23.0 >=dev-libs/libbson-1.23.0 ) - mariadb? ( dev-db/mariadb-connector-c:0= ) + mysql? ( dev-db/mysql-connector-c:0= ) nis? ( net-libs/libnsl:= ) pam? ( sys-libs/pam ) postgres? ( dev-db/postgresql:* ) @@ -43,6 +49,7 @@ DEPEND=" " RDEPEND="${DEPEND} + dev-lang/perl memcached? ( net-misc/memcached ) net-mail/mailbase !mail-mta/courier @@ -56,17 +63,16 @@ RDEPEND="${DEPEND} !mail-mta/ssmtp[mta] selinux? ( sec-policy/selinux-postfix )" -# require at least one db implementation for newalias (and postmap) -# command to function properly +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-postfix )" + REQUIRED_USE=" - || ( berkdb cdb lmdb ) ldap-bind? ( ldap sasl ) tlsrpt? ( ssl ) " src_prepare() { default - sed -i -e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:/etc/mail/aliases|" \ + sed -i -e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:${EPREFIX}/etc/mail/aliases|" \ src/util/sys_defs.h || die "sed failed" # change default paths to better comply with portage standard paths sed -i -e "s:/usr/local/:/usr/:g" conf/master.cf || die "sed failed" @@ -76,9 +82,6 @@ src_configure() { # bug #915670 unset LD_LIBRARY_PATH - # https://marc.info/?l=postfix-users&m=173542420611213&w=2 (bug #945733) - append-cflags -std=gnu17 - for name in CDB LDAP LMDB MONGODB MYSQL PCRE PGSQL SDBM SQLITE TLSRPT do local AUXLIBS_${name}="" @@ -87,9 +90,25 @@ src_configure() { # Make sure LDFLAGS get passed down to the executables. local mycc="" mylibs="${LDFLAGS} -ldl" + # Determine local database type defaults + local default_database_type="lmdb" + local default_cache_db_type="lmdb" + if ! use lmdb; then + if use berkdb; then + default_database_type="hash" + default_cache_db_type="btree" + elif use cdb; then + default_database_type="cdb" + ewarn + ewarn "cdb USE flag is on but lmdb USE flag is not. Local database files" + ewarn "for caches will not work. Consider turning lmdb USE flag on." + ewarn + fi + fi + # libpcre is EOL. prefer libpcre2 mycc=" -DHAS_PCRE=2" - AUXLIBS_PCRE="$(pcre2-config --libs8)" + AUXLIBS_PCRE="$($(tc-getPKG_CONFIG) --libs libpcre2-8)" use pam && mylibs="${mylibs} -lpam" @@ -113,18 +132,18 @@ src_configure() { fi if use mongodb; then - mycc="${mycc} -DHAS_MONGODB $(pkg-config --cflags libmongoc-1.0)" + mycc="${mycc} -DHAS_MONGODB $($(tc-getPKG_CONFIG) --cflags libmongoc-1.0)" AUXLIBS_MONGODB="-lmongoc-1.0 -lbson-1.0" fi - if use mariadb; then - mycc="${mycc} -DHAS_MYSQL $(mariadb-config --include)" - AUXLIBS_MYSQL="$(mariadb-config --libs)" + if use mysql; then + mycc="${mycc} -DHAS_MYSQL $(mysql_config --include)" + AUXLIBS_MYSQL="$(mysql_config --libs)" fi if use postgres; then - mycc="${mycc} -DHAS_PGSQL -I$(pg_config --includedir)" - AUXLIBS_PGSQL="-L$(pg_config --libdir) -lpq" + mycc="${mycc} -DHAS_PGSQL $($(tc-getPKG_CONFIG) --cflags libpq)" + AUXLIBS_PGSQL="$($(tc-getPKG_CONFIG) --libs libpq)" fi if use sqlite; then @@ -145,7 +164,7 @@ src_configure() { if use ldap-bind; then mycc="${mycc} -DUSE_LDAP_SASL" fi - mycc="${mycc} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" + mycc="${mycc} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${ESYSROOT}/usr/include/sasl" mylibs="${mylibs} -lsasl2" elif use dovecot-sasl; then mycc="${mycc} -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\\\"dovecot\\\"" @@ -157,24 +176,16 @@ src_configure() { if ! use berkdb; then mycc="${mycc} -DNO_DB" - # change default database type - if use lmdb; then - mycc="${mycc} -DDEF_DB_TYPE=\\\"lmdb\\\"" - elif use cdb; then - mycc="${mycc} -DDEF_DB_TYPE=\\\"cdb\\\"" - fi fi if use cdb; then - mycc="${mycc} -DHAS_CDB -I/usr/include/cdb" + mycc="${mycc} -DHAS_CDB -I${ESYSROOT}/usr/include/cdb" # Tinycdb is preferred. if has_version dev-db/tinycdb ; then AUXLIBS_CDB="-lcdb" else - CDB_PATH="/usr/$(get_libdir)" - for i in cdb.a alloc.a buffer.a unix.a byte.a ; do - AUXLIBS_CDB="${AUXLIBS_CDB} ${CDB_PATH}/${i}" - done + printf -v AUXLIBS_CDB "${ESYSROOT}/usr/$(get_libdir)/%s " \ + cdb.a alloc.a buffer.a unix.a byte.a || die fi fi @@ -185,6 +196,8 @@ src_configure() { shared=yes \ dynamicmaps=no \ pie=yes \ + default_database_type="${default_database_type}" \ + default_cache_db_type="${default_cache_db_type}" \ shlib_directory="/usr/$(get_libdir)/postfix/MAIL_VERSION" \ DEBUG="" \ CC="$(tc-getCC)" \ @@ -216,7 +229,7 @@ src_install() { || die "postfix-install failed" # Fix spool removal on upgrade - rm -Rf "${D}"/var + rm -Rf "${ED}"/var keepdir /var/spool/postfix # Install rmail for UUCP, closes bug #19127 @@ -254,7 +267,7 @@ src_install() { mypostconf="home_mailbox=.maildir/" fi LD_LIBRARY_PATH="${S}/lib" \ - "${D}"/usr/sbin/postconf -c "${D}"/etc/postfix \ + "${ED}"/usr/sbin/postconf -c "${ED}"/etc/postfix \ -e ${mypostconf} || die "postconf failed" insinto /etc/postfix @@ -262,9 +275,9 @@ src_install() { fperms 600 /etc/postfix/saslpass newinitd "${FILESDIR}"/postfix.rc6.${RC_VER} postfix - # do not start maridb/postgres unnecessarily - bug #359913 - use mariadb || sed -i -e "s/mysql //" "${D}/etc/init.d/postfix" - use postgres || sed -i -e "s/postgresql //" "${D}/etc/init.d/postfix" + # do not start mysql/postgres unnecessarily - bug #359913 + use mysql || sed -i -e "s/mysql //" "${ED}/etc/init.d/postfix" + use postgres || sed -i -e "s/postgresql //" "${ED}/etc/init.d/postfix" dodoc *README COMPATIBILITY HISTORY PORTING RELEASE_NOTES* dodoc -r README_FILES/ examples/ @@ -288,20 +301,34 @@ src_install() { } pkg_postinst() { - # warn if no aliases database - # do not assume berkdb - if [[ ! -e /etc/mail/aliases.db \ - && ! -e /etc/mail/aliases.cdb \ - && ! -e /etc/mail/aliases.lmdb ]] ; then + if ver_replacing -lt 3.11 ; then + # This is an upgrade which requires user review + ewarn "Default database and cache type changed to lmdb" + ewarn "with postfix-3.11. Please read the migration guide:" + ewarn " https://www.postfix.org/NON_BERKELEYDB_README.html" + fi + + if ! use berkdb && ! use cdb && ! use lmdb; then ewarn - ewarn "You must edit /etc/mail/aliases to suit your needs" - ewarn "and then run /usr/bin/newaliases. Postfix will not" - ewarn "work correctly without it." + ewarn "No backend for local database files is configured." + ewarn "newaliases and postmap commands will not work. This" + ewarn "is not a supported configuration and you are strongly" + ewarn "recommended to turn one of berkdb, cdb or lmdb USE flags" + ewarn "on." ewarn + else + # warn if no aliases database + # do not assume berkdb + if [[ ! -e /etc/mail/aliases.db \ + && ! -e /etc/mail/aliases.cdb \ + && ! -e /etc/mail/aliases.lmdb ]] ; then + ewarn "You must edit /etc/mail/aliases to suit your needs" + ewarn "and then run /usr/bin/newaliases." + fi + # run newaliases anyway. otherwise, we might break when switching + # default database implementation + "${EROOT}"/usr/bin/newaliases fi - # run newaliases anyway. otherwise, we might break when switching - # default database implementation - from berkdb to cdb for example - "${EROOT}"/usr/bin/newaliases # check and fix file permissions "${EROOT}"/usr/sbin/postfix set-permissions diff --git a/mail-mta/postfix/postfix-3.11.1.ebuild b/mail-mta/postfix/postfix-3.11.4.ebuild index 7dc56163dc23..f99930a59667 100644 --- a/mail-mta/postfix/postfix-3.11.1.ebuild +++ b/mail-mta/postfix/postfix-3.11.4.ebuild @@ -1,9 +1,15 @@ -# Copyright 2023-2026 Liguros Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 + EAPI=8 -inherit flag-o-matic pam systemd toolchain-funcs +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/postfix.asc +inherit eapi9-ver pam systemd toolchain-funcs verify-sig -MY_PV="${PV/_pre/-}" +if [[ ${PV} == *_rc* ]]; then + MY_PV="${PV/_rc/-RC}" +else + MY_PV="${PV/_pre/-}" +fi MY_SRC="${PN}-${MY_PV}" MY_URI="http://ftp.porcupine.org/mirrors/postfix-release/official" RC_VER="2.7" @@ -11,20 +17,20 @@ RC_VER="2.7" DESCRIPTION="A fast and secure drop-in replacement for sendmail" HOMEPAGE="https://www.postfix.org/" SRC_URI="${MY_URI}/${MY_SRC}.tar.gz" +SRC_URI+=" verify-sig? ( ${MY_URI}/${MY_SRC}.tar.gz.gpg2 -> ${MY_SRC}.tar.gz.asc )" S="${WORKDIR}/${MY_SRC}" LICENSE="|| ( IBM EPL-2.0 )" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="+berkdb cdb dovecot-sasl +eai ldap ldap-bind lmdb mbox memcached mongodb mariadb nis pam postgres sasl selinux sqlite ssl tlsrpt" +IUSE="+berkdb cdb dovecot-sasl +eai ldap ldap-bind +lmdb mbox memcached mongodb mysql nis pam postgres sasl selinux sqlite ssl tlsrpt" DEPEND=" acct-group/postfix acct-group/postdrop acct-user/postfix dev-libs/libpcre2:0 - dev-lang/perl berkdb? ( >=sys-libs/db-3.2:* ) cdb? ( || ( >=dev-db/tinycdb-0.76 >=dev-db/cdb-0.75-r4 ) ) eai? ( dev-libs/icu:= ) @@ -32,7 +38,7 @@ DEPEND=" ldap-bind? ( net-nds/openldap:=[sasl] ) lmdb? ( >=dev-db/lmdb-0.9.11:= ) mongodb? ( >=dev-libs/mongo-c-driver-1.23.0 >=dev-libs/libbson-1.23.0 ) - mariadb? ( dev-db/mariadb-connector-c:0= ) + mysql? ( dev-db/mysql-connector-c:0= ) nis? ( net-libs/libnsl:= ) pam? ( sys-libs/pam ) postgres? ( dev-db/postgresql:* ) @@ -43,6 +49,7 @@ DEPEND=" " RDEPEND="${DEPEND} + dev-lang/perl memcached? ( net-misc/memcached ) net-mail/mailbase !mail-mta/courier @@ -56,17 +63,16 @@ RDEPEND="${DEPEND} !mail-mta/ssmtp[mta] selinux? ( sec-policy/selinux-postfix )" -# require at least one db implementation for newalias (and postmap) -# command to function properly +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-postfix )" + REQUIRED_USE=" - || ( berkdb cdb lmdb ) ldap-bind? ( ldap sasl ) tlsrpt? ( ssl ) " src_prepare() { default - sed -i -e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:/etc/mail/aliases|" \ + sed -i -e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:${EPREFIX}/etc/mail/aliases|" \ src/util/sys_defs.h || die "sed failed" # change default paths to better comply with portage standard paths sed -i -e "s:/usr/local/:/usr/:g" conf/master.cf || die "sed failed" @@ -76,9 +82,6 @@ src_configure() { # bug #915670 unset LD_LIBRARY_PATH - # https://marc.info/?l=postfix-users&m=173542420611213&w=2 (bug #945733) - append-cflags -std=gnu17 - for name in CDB LDAP LMDB MONGODB MYSQL PCRE PGSQL SDBM SQLITE TLSRPT do local AUXLIBS_${name}="" @@ -87,9 +90,25 @@ src_configure() { # Make sure LDFLAGS get passed down to the executables. local mycc="" mylibs="${LDFLAGS} -ldl" + # Determine local database type defaults + local default_database_type="lmdb" + local default_cache_db_type="lmdb" + if ! use lmdb; then + if use berkdb; then + default_database_type="hash" + default_cache_db_type="btree" + elif use cdb; then + default_database_type="cdb" + ewarn + ewarn "cdb USE flag is on but lmdb USE flag is not. Local database files" + ewarn "for caches will not work. Consider turning lmdb USE flag on." + ewarn + fi + fi + # libpcre is EOL. prefer libpcre2 mycc=" -DHAS_PCRE=2" - AUXLIBS_PCRE="$(pcre2-config --libs8)" + AUXLIBS_PCRE="$($(tc-getPKG_CONFIG) --libs libpcre2-8)" use pam && mylibs="${mylibs} -lpam" @@ -113,18 +132,18 @@ src_configure() { fi if use mongodb; then - mycc="${mycc} -DHAS_MONGODB $(pkg-config --cflags libmongoc-1.0)" + mycc="${mycc} -DHAS_MONGODB $($(tc-getPKG_CONFIG) --cflags libmongoc-1.0)" AUXLIBS_MONGODB="-lmongoc-1.0 -lbson-1.0" fi - if use mariadb; then - mycc="${mycc} -DHAS_MYSQL $(mariadb-config --include)" - AUXLIBS_MYSQL="$(mariadb-config --libs)" + if use mysql; then + mycc="${mycc} -DHAS_MYSQL $(mysql_config --include)" + AUXLIBS_MYSQL="$(mysql_config --libs)" fi if use postgres; then - mycc="${mycc} -DHAS_PGSQL -I$(pg_config --includedir)" - AUXLIBS_PGSQL="-L$(pg_config --libdir) -lpq" + mycc="${mycc} -DHAS_PGSQL $($(tc-getPKG_CONFIG) --cflags libpq)" + AUXLIBS_PGSQL="$($(tc-getPKG_CONFIG) --libs libpq)" fi if use sqlite; then @@ -145,7 +164,7 @@ src_configure() { if use ldap-bind; then mycc="${mycc} -DUSE_LDAP_SASL" fi - mycc="${mycc} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" + mycc="${mycc} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${ESYSROOT}/usr/include/sasl" mylibs="${mylibs} -lsasl2" elif use dovecot-sasl; then mycc="${mycc} -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\\\"dovecot\\\"" @@ -157,24 +176,16 @@ src_configure() { if ! use berkdb; then mycc="${mycc} -DNO_DB" - # change default database type - if use lmdb; then - mycc="${mycc} -DDEF_DB_TYPE=\\\"lmdb\\\"" - elif use cdb; then - mycc="${mycc} -DDEF_DB_TYPE=\\\"cdb\\\"" - fi fi if use cdb; then - mycc="${mycc} -DHAS_CDB -I/usr/include/cdb" + mycc="${mycc} -DHAS_CDB -I${ESYSROOT}/usr/include/cdb" # Tinycdb is preferred. if has_version dev-db/tinycdb ; then AUXLIBS_CDB="-lcdb" else - CDB_PATH="/usr/$(get_libdir)" - for i in cdb.a alloc.a buffer.a unix.a byte.a ; do - AUXLIBS_CDB="${AUXLIBS_CDB} ${CDB_PATH}/${i}" - done + printf -v AUXLIBS_CDB "${ESYSROOT}/usr/$(get_libdir)/%s " \ + cdb.a alloc.a buffer.a unix.a byte.a || die fi fi @@ -185,6 +196,8 @@ src_configure() { shared=yes \ dynamicmaps=no \ pie=yes \ + default_database_type="${default_database_type}" \ + default_cache_db_type="${default_cache_db_type}" \ shlib_directory="/usr/$(get_libdir)/postfix/MAIL_VERSION" \ DEBUG="" \ CC="$(tc-getCC)" \ @@ -216,7 +229,7 @@ src_install() { || die "postfix-install failed" # Fix spool removal on upgrade - rm -Rf "${D}"/var + rm -Rf "${ED}"/var keepdir /var/spool/postfix # Install rmail for UUCP, closes bug #19127 @@ -254,7 +267,7 @@ src_install() { mypostconf="home_mailbox=.maildir/" fi LD_LIBRARY_PATH="${S}/lib" \ - "${D}"/usr/sbin/postconf -c "${D}"/etc/postfix \ + "${ED}"/usr/sbin/postconf -c "${ED}"/etc/postfix \ -e ${mypostconf} || die "postconf failed" insinto /etc/postfix @@ -262,9 +275,9 @@ src_install() { fperms 600 /etc/postfix/saslpass newinitd "${FILESDIR}"/postfix.rc6.${RC_VER} postfix - # do not start maridb/postgres unnecessarily - bug #359913 - use mariadb || sed -i -e "s/mysql //" "${D}/etc/init.d/postfix" - use postgres || sed -i -e "s/postgresql //" "${D}/etc/init.d/postfix" + # do not start mysql/postgres unnecessarily - bug #359913 + use mysql || sed -i -e "s/mysql //" "${ED}/etc/init.d/postfix" + use postgres || sed -i -e "s/postgresql //" "${ED}/etc/init.d/postfix" dodoc *README COMPATIBILITY HISTORY PORTING RELEASE_NOTES* dodoc -r README_FILES/ examples/ @@ -288,20 +301,34 @@ src_install() { } pkg_postinst() { - # warn if no aliases database - # do not assume berkdb - if [[ ! -e /etc/mail/aliases.db \ - && ! -e /etc/mail/aliases.cdb \ - && ! -e /etc/mail/aliases.lmdb ]] ; then + if ver_replacing -lt 3.11 ; then + # This is an upgrade which requires user review + ewarn "Default database and cache type changed to lmdb" + ewarn "with postfix-3.11. Please read the migration guide:" + ewarn " https://www.postfix.org/NON_BERKELEYDB_README.html" + fi + + if ! use berkdb && ! use cdb && ! use lmdb; then ewarn - ewarn "You must edit /etc/mail/aliases to suit your needs" - ewarn "and then run /usr/bin/newaliases. Postfix will not" - ewarn "work correctly without it." + ewarn "No backend for local database files is configured." + ewarn "newaliases and postmap commands will not work. This" + ewarn "is not a supported configuration and you are strongly" + ewarn "recommended to turn one of berkdb, cdb or lmdb USE flags" + ewarn "on." ewarn + else + # warn if no aliases database + # do not assume berkdb + if [[ ! -e /etc/mail/aliases.db \ + && ! -e /etc/mail/aliases.cdb \ + && ! -e /etc/mail/aliases.lmdb ]] ; then + ewarn "You must edit /etc/mail/aliases to suit your needs" + ewarn "and then run /usr/bin/newaliases." + fi + # run newaliases anyway. otherwise, we might break when switching + # default database implementation + "${EROOT}"/usr/bin/newaliases fi - # run newaliases anyway. otherwise, we might break when switching - # default database implementation - from berkdb to cdb for example - "${EROOT}"/usr/bin/newaliases # check and fix file permissions "${EROOT}"/usr/sbin/postfix set-permissions diff --git a/mail-mta/postfix/postfix-3.12_pre20260615.ebuild b/mail-mta/postfix/postfix-3.12_pre20260615.ebuild new file mode 100644 index 000000000000..d906b77193bb --- /dev/null +++ b/mail-mta/postfix/postfix-3.12_pre20260615.ebuild @@ -0,0 +1,346 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/postfix.asc +inherit eapi9-ver pam systemd toolchain-funcs verify-sig + +if [[ ${PV} == *_rc* ]]; then + MY_PV="${PV/_rc/-RC}" +else + MY_PV="${PV/_pre/-}" +fi +MY_SRC="${PN}-${MY_PV}" +MY_URI="http://ftp.porcupine.org/mirrors/postfix-release/experimental" +RC_VER="2.7" + +DESCRIPTION="A fast and secure drop-in replacement for sendmail" +HOMEPAGE="https://www.postfix.org/" +SRC_URI="${MY_URI}/${MY_SRC}.tar.gz" +SRC_URI+=" verify-sig? ( ${MY_URI}/${MY_SRC}.tar.gz.gpg2 -> ${MY_SRC}.tar.gz.asc )" +S="${WORKDIR}/${MY_SRC}" + +LICENSE="|| ( IBM EPL-2.0 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +IUSE="berkdb cdb dovecot-sasl +eai ldap ldap-bind +lmdb mbox memcached mongodb mysql nis pam postgres sasl selinux sqlite ssl tlsrpt" + +DEPEND=" + acct-group/postfix + acct-group/postdrop + acct-user/postfix + dev-libs/libpcre2:0 + berkdb? ( >=sys-libs/db-3.2:* ) + cdb? ( || ( >=dev-db/tinycdb-0.76 >=dev-db/cdb-0.75-r4 ) ) + eai? ( dev-libs/icu:= ) + ldap? ( net-nds/openldap:= ) + ldap-bind? ( net-nds/openldap:=[sasl] ) + lmdb? ( >=dev-db/lmdb-0.9.11:= ) + mongodb? ( >=dev-libs/mongo-c-driver-1.23.0 >=dev-libs/libbson-1.23.0 ) + mysql? ( dev-db/mysql-connector-c:0= ) + nis? ( net-libs/libnsl:= ) + pam? ( sys-libs/pam ) + postgres? ( dev-db/postgresql:* ) + sasl? ( >=dev-libs/cyrus-sasl-2 ) + sqlite? ( dev-db/sqlite:3 ) + ssl? ( >=dev-libs/openssl-1.1.1:0= ) + tlsrpt? ( net-libs/libtlsrpt ) + " + +RDEPEND="${DEPEND} + dev-lang/perl + memcached? ( net-misc/memcached ) + net-mail/mailbase + !mail-mta/courier + !mail-mta/esmtp + !mail-mta/exim + !mail-mta/msmtp[mta] + !mail-mta/netqmail + !mail-mta/nullmailer + !mail-mta/sendmail + !mail-mta/opensmtpd + !mail-mta/ssmtp[mta] + selinux? ( sec-policy/selinux-postfix )" + +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-postfix )" + +REQUIRED_USE=" + ldap-bind? ( ldap sasl ) + tlsrpt? ( ssl ) + " + +src_prepare() { + default + sed -i -e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:${EPREFIX}/etc/mail/aliases|" \ + src/util/sys_defs.h || die "sed failed" + # change default paths to better comply with portage standard paths + sed -i -e "s:/usr/local/:/usr/:g" conf/master.cf || die "sed failed" +} + +src_configure() { + # bug #915670 + unset LD_LIBRARY_PATH + + for name in CDB LDAP LMDB MONGODB MYSQL PCRE PGSQL SDBM SQLITE TLSRPT + do + local AUXLIBS_${name}="" + done + + # Make sure LDFLAGS get passed down to the executables. + local mycc="" mylibs="${LDFLAGS} -ldl" + + # Determine local database type defaults + local default_database_type="lmdb" + local default_cache_db_type="lmdb" + if ! use lmdb; then + if use berkdb; then + default_database_type="hash" + default_cache_db_type="btree" + elif use cdb; then + default_database_type="cdb" + ewarn + ewarn "cdb USE flag is on but lmdb USE flag is not. Local database files" + ewarn "for caches will not work. Consider turning lmdb USE flag on." + ewarn + fi + fi + + # libpcre is EOL. prefer libpcre2 + mycc=" -DHAS_PCRE=2" + AUXLIBS_PCRE="$($(tc-getPKG_CONFIG) --libs libpcre2-8)" + + use pam && mylibs="${mylibs} -lpam" + + if use ssl; then + mycc="${mycc} -DUSE_TLS" + mylibs="${mylibs} -lssl -lcrypto" + fi + + if ! use eai; then + mycc="${mycc} -DNO_EAI" + fi + + if use ldap; then + mycc="${mycc} -DHAS_LDAP" + AUXLIBS_LDAP="-lldap -llber" + fi + + if use lmdb; then + mycc="${mycc} -DHAS_LMDB" + AUXLIBS_LMDB="-llmdb -lpthread" + fi + + if use mongodb; then + mycc="${mycc} -DHAS_MONGODB $($(tc-getPKG_CONFIG) --cflags libmongoc-1.0)" + AUXLIBS_MONGODB="-lmongoc-1.0 -lbson-1.0" + fi + + if use mysql; then + mycc="${mycc} -DHAS_MYSQL $(mysql_config --include)" + AUXLIBS_MYSQL="$(mysql_config --libs)" + fi + + if use postgres; then + mycc="${mycc} -DHAS_PGSQL $($(tc-getPKG_CONFIG) --cflags libpq)" + AUXLIBS_PGSQL="$($(tc-getPKG_CONFIG) --libs libpq)" + fi + + if use sqlite; then + mycc="${mycc} -DHAS_SQLITE" + AUXLIBS_SQLITE="-lsqlite3 -lpthread" + fi + + if use tlsrpt; then + mycc="${mycc} -DUSE_TLSRPT" + AUXLIBS_TLSRPT="-ltlsrpt" + fi + + if use sasl; then + if use dovecot-sasl; then + # Set dovecot as default. + mycc="${mycc} -DDEF_SASL_SERVER=\\\"dovecot\\\"" + fi + if use ldap-bind; then + mycc="${mycc} -DUSE_LDAP_SASL" + fi + mycc="${mycc} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${ESYSROOT}/usr/include/sasl" + mylibs="${mylibs} -lsasl2" + elif use dovecot-sasl; then + mycc="${mycc} -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\\\"dovecot\\\"" + fi + + if ! use nis; then + mycc="${mycc} -DNO_NIS" + fi + + if ! use berkdb; then + mycc="${mycc} -DNO_DB" + fi + + if use cdb; then + mycc="${mycc} -DHAS_CDB -I${ESYSROOT}/usr/include/cdb" + # Tinycdb is preferred. + if has_version dev-db/tinycdb ; then + AUXLIBS_CDB="-lcdb" + else + printf -v AUXLIBS_CDB "${ESYSROOT}/usr/$(get_libdir)/%s " \ + cdb.a alloc.a buffer.a unix.a byte.a || die + fi + fi + + sed -i -e "/^RANLIB/s/ranlib/$(tc-getRANLIB)/g" "${S}"/makedefs + sed -i -e "/^AR/s/ar/$(tc-getAR)/g" "${S}"/makedefs + + emake makefiles \ + shared=yes \ + dynamicmaps=no \ + pie=yes \ + default_database_type="${default_database_type}" \ + default_cache_db_type="${default_cache_db_type}" \ + shlib_directory="/usr/$(get_libdir)/postfix/MAIL_VERSION" \ + DEBUG="" \ + CC="$(tc-getCC)" \ + OPT="${CFLAGS}" \ + CCARGS="${mycc}" \ + AUXLIBS="${mylibs} ${AUXLIBS_TLSRPT}" \ + AUXLIBS_CDB="${AUXLIBS_CDB}" \ + AUXLIBS_LDAP="${AUXLIBS_LDAP}" \ + AUXLIBS_LMDB="${AUXLIBS_LMDB}" \ + AUXLIBS_MONGODB="${AUXLIBS_MONGODB}" \ + AUXLIBS_MYSQL="${AUXLIBS_MYSQL}" \ + AUXLIBS_PCRE="${AUXLIBS_PCRE}" \ + AUXLIBS_PGSQL="${AUXLIBS_PGSQL}" \ + AUXLIBS_SDBM="${AUXLIBS_SDBM}" \ + AUXLIBS_SQLITE="${AUXLIBS_SQLITE}" +} + +src_install() { + LD_LIBRARY_PATH="${S}/lib" \ + /bin/sh postfix-install \ + -non-interactive \ + install_root="${D}" \ + config_directory="/etc/postfix" \ + manpage_directory="/usr/share/man" \ + command_directory="/usr/sbin" \ + mailq_path="/usr/bin/mailq" \ + newaliases_path="/usr/bin/newaliases" \ + sendmail_path="/usr/sbin/sendmail" \ + || die "postfix-install failed" + + # Fix spool removal on upgrade + rm -Rf "${ED}"/var + keepdir /var/spool/postfix + + # Install rmail for UUCP, closes bug #19127 + dobin auxiliary/rmail/rmail + + # Provide another link for legacy FSH + dosym ../sbin/sendmail /usr/$(get_libdir)/sendmail + + # Install qshape, posttls-finger, collate and tlstype + dobin auxiliary/qshape/qshape.pl + doman man/man1/qshape.1 + dobin bin/posttls-finger + doman man/man1/posttls-finger.1 + dobin auxiliary/collate/collate.pl + newdoc auxiliary/collate/README README.collate + dobin auxiliary/collate/tlstype.pl + dodoc auxiliary/collate/README.tlstype + + # Performance tuning tools and their manuals + dosbin bin/smtp-{source,sink} bin/qmqp-{source,sink} + doman man/man1/smtp-{source,sink}.1 man/man1/qmqp-{source,sink}.1 + + # Set proper permissions on required files/directories + keepdir /var/lib/postfix + fowners -R postfix:postfix /var/lib/postfix + fperms 0750 /var/lib/postfix + fowners root:postdrop /usr/sbin/post{drop,queue,log} + fperms 02755 /usr/sbin/post{drop,queue,log} + + keepdir /etc/postfix + keepdir /etc/postfix/postfix-files.d + if use mbox; then + mypostconf="mail_spool_directory=/var/mail" + else + mypostconf="home_mailbox=.maildir/" + fi + LD_LIBRARY_PATH="${S}/lib" \ + "${ED}"/usr/sbin/postconf -c "${ED}"/etc/postfix \ + -e ${mypostconf} || die "postconf failed" + + insinto /etc/postfix + newins "${FILESDIR}"/smtp.pass saslpass + fperms 600 /etc/postfix/saslpass + + newinitd "${FILESDIR}"/postfix.rc6.${RC_VER} postfix + # do not start mysql/postgres unnecessarily - bug #359913 + use mysql || sed -i -e "s/mysql //" "${ED}/etc/init.d/postfix" + use postgres || sed -i -e "s/postgresql //" "${ED}/etc/init.d/postfix" + + dodoc *README COMPATIBILITY HISTORY PORTING RELEASE_NOTES* + dodoc -r README_FILES/ examples/ + # postfix set-permissions expects uncompressed man files + docompress -x /usr/share/man + + if use pam; then + pamd_mimic_system smtp auth account + fi + + if use sasl; then + insinto /etc/sasl2 + newins "${FILESDIR}"/smtp.sasl smtpd.conf + fi + + # header files + insinto /usr/include/postfix + doins include/*.h + + systemd_dounit "${FILESDIR}/${PN}.service" +} + +pkg_postinst() { + if ver_replacing -lt 3.12; then + ewarn "berkdb USE flag is off by default in postfix-3.12." + ewarn "Remember to turn it on if you are still using hash" + ewarn "or btree local database files." + fi + + if ! use berkdb && ! use cdb && ! use lmdb; then + ewarn + ewarn "No backend for local database files is configured." + ewarn "newaliases and postmap commands will not work. This" + ewarn "is not a supported configuration and you are strongly" + ewarn "recommended to turn one of berkdb, cdb or lmdb USE flags" + ewarn "on." + ewarn + else + # warn if no aliases database + # do not assume berkdb + if [[ ! -e /etc/mail/aliases.db \ + && ! -e /etc/mail/aliases.cdb \ + && ! -e /etc/mail/aliases.lmdb ]] ; then + ewarn "You must edit /etc/mail/aliases to suit your needs" + ewarn "and then run /usr/bin/newaliases." + fi + # run newaliases anyway. otherwise, we might break when switching + # default database implementation + "${EROOT}"/usr/bin/newaliases + fi + + # check and fix file permissions + "${EROOT}"/usr/sbin/postfix set-permissions + + # hint for configuring tls + if use ssl ; then + if "${EROOT}"/usr/sbin/postfix tls all-default-client; then + elog "To configure client side TLS settings, please run:" + elog "${EROOT}"/usr/sbin/postfix tls enable-client + fi + if "${EROOT}"/usr/sbin/postfix tls all-default-server; then + elog "To configure server side TLS settings, please run:" + elog "${EROOT}"/usr/sbin/postfix tls enable-server + fi + fi +} diff --git a/mail-mta/postfix/postfix-3.5.25.ebuild b/mail-mta/postfix/postfix-3.5.25.ebuild deleted file mode 100644 index 1b552a65cf8a..000000000000 --- a/mail-mta/postfix/postfix-3.5.25.ebuild +++ /dev/null @@ -1,317 +0,0 @@ -# Copyright 2021-2025 Liguros Authors -# Distributed under the terms of the GNU General Public License v2 -EAPI=8 - -inherit flag-o-matic pam systemd toolchain-funcs - -MY_PV="${PV/_rc/-RC}" -MY_SRC="${PN}-${MY_PV}" -MY_URI="ftp://ftp.porcupine.org/mirrors/postfix-release/official" -RC_VER="2.7" - -DESCRIPTION="A fast and secure drop-in replacement for sendmail" -HOMEPAGE="http://www.postfix.org/" -SRC_URI="${MY_URI}/${MY_SRC}.tar.gz" - -LICENSE="|| ( IBM EPL-2.0 )" -SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 ~sparc x86" -IUSE="+berkdb cdb dovecot-sasl +eai hardened ldap ldap-bind lmdb memcached mbox mariadb nis pam postgres sasl selinux sqlite ssl" - -DEPEND=" - acct-group/postfix - acct-group/postdrop - acct-user/postfix - >=dev-libs/libpcre-3.4 - dev-lang/perl - berkdb? ( >=sys-libs/db-3.2:* ) - cdb? ( || ( >=dev-db/tinycdb-0.76 >=dev-db/cdb-0.75-r4 ) ) - eai? ( dev-libs/icu:= ) - ldap? ( net-nds/openldap ) - ldap-bind? ( net-nds/openldap[sasl] ) - lmdb? ( >=dev-db/lmdb-0.9.11 ) - mariadb? ( dev-db/mariadb-connector-c:0= ) - nis? ( net-libs/libnsl ) - pam? ( sys-libs/pam ) - postgres? ( dev-db/postgresql:* ) - sasl? ( >=dev-libs/cyrus-sasl-2 ) - sqlite? ( dev-db/sqlite:3 ) - ssl? ( - dev-libs/openssl:0= - - ) -" - -RDEPEND="${DEPEND} - memcached? ( net-misc/memcached ) - net-mail/mailbase - !mail-mta/courier - !mail-mta/esmtp - !mail-mta/exim - !mail-mta/mini-qmail - !mail-mta/msmtp[mta] - !mail-mta/netqmail - !mail-mta/nullmailer - !mail-mta/qmail-ldap - !mail-mta/sendmail - !mail-mta/opensmtpd - !mail-mta/ssmtp[mta] - !net-mail/fastforward - selinux? ( sec-policy/selinux-postfix )" - -REQUIRED_USE="ldap-bind? ( ldap sasl )" - -S="${WORKDIR}/${MY_SRC}" - -PATCHES=( - "${FILESDIR}/${PN}-glibc-2.34.patch" -) - -src_prepare() { - default - sed -i -e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:/etc/mail/aliases|" \ - src/util/sys_defs.h || die "sed failed" - # change default paths to better comply with portage standard paths - sed -i -e "s:/usr/local/:/usr/:g" conf/master.cf || die "sed failed" -} - -src_configure() { - - for name in CDB LDAP LMDB MYSQL PCRE PGSQL SDBM SQLITE - do - local AUXLIBS_${name}="" - done - - # Make sure LDFLAGS get passed down to the executables. - local mycc="-DHAS_PCRE" mylibs="${LDFLAGS} -ldl" - AUXLIBS_PCRE="$(pcre-config --libs)" - - use pam && mylibs="${mylibs} -lpam" - - if use ldap; then - mycc="${mycc} -DHAS_LDAP" - AUXLIBS_LDAP="-lldap -llber" - fi - - if use mariadb; then - mycc="${mycc} -DHAS_MYSQL $(mariadb-config --include)" - AUXLIBS_MYSQL="$(mariadb-config --libs)" - fi - - if use postgres; then - mycc="${mycc} -DHAS_PGSQL -I$(pg_config --includedir)" - AUXLIBS_PGSQL="-L$(pg_config --libdir) -lpq" - fi - - if use sqlite; then - mycc="${mycc} -DHAS_SQLITE" - AUXLIBS_SQLITE="-lsqlite3 -lpthread" - fi - - if use ssl; then - mycc="${mycc} -DUSE_TLS" - mylibs="${mylibs} -lssl -lcrypto" - fi - - if use lmdb; then - mycc="${mycc} -DHAS_LMDB" - AUXLIBS_LMDB="-llmdb -lpthread" - fi - - if ! use eai; then - mycc="${mycc} -DNO_EAI" - fi - - # broken. and "in other words, not supported" by upstream. - # Use inet_protocols setting in main.cf - #if ! use ipv6; then - # mycc="${mycc} -DNO_IPV6" - #fi - - if use sasl; then - if use dovecot-sasl; then - # Set dovecot as default. - mycc="${mycc} -DDEF_SASL_SERVER=\\\"dovecot\\\"" - fi - if use ldap-bind; then - mycc="${mycc} -DUSE_LDAP_SASL" - fi - mycc="${mycc} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" - mylibs="${mylibs} -lsasl2" - elif use dovecot-sasl; then - mycc="${mycc} -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\\\"dovecot\\\"" - fi - - if ! use nis; then - mycc="${mycc} -DNO_NIS" - fi - - if ! use berkdb; then - mycc="${mycc} -DNO_DB" - if use cdb; then - # change default hash format from Berkeley DB to cdb - mycc="${mycc} -DDEF_DB_TYPE=\\\"cdb\\\"" - fi - fi - - if use cdb; then - mycc="${mycc} -DHAS_CDB -I/usr/include/cdb" - # Tinycdb is preferred. - if has_version dev-db/tinycdb ; then - einfo "Building with dev-db/tinycdb" - AUXLIBS_CDB="-lcdb" - else - einfo "Building with dev-db/cdb" - CDB_PATH="/usr/$(get_libdir)" - for i in cdb.a alloc.a buffer.a unix.a byte.a ; do - AUXLIBS_CDB="${AUXLIBS_CDB} ${CDB_PATH}/${i}" - done - fi - fi - - # Robin H. Johnson <robbat2@gentoo.org> 17/Nov/2006 - # Fix because infra boxes hit 2Gb .db files that fail a 32-bit fstat signed check. - mycc="${mycc} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" - filter-lfs-flags - - # Workaround for bug #76512 - if use hardened; then - [[ "$(gcc-version)" == "3.4" ]] && replace-flags -O? -Os - fi - - # Remove annoying C++ comment style warnings - bug #378099 - append-flags -Wno-comment -std=gnu17 - - sed -i -e "/^RANLIB/s/ranlib/$(tc-getRANLIB)/g" "${S}"/makedefs - sed -i -e "/^AR/s/ar/$(tc-getAR)/g" "${S}"/makedefs - - emake makefiles shared=yes dynamicmaps=no pie=yes \ - shlib_directory="/usr/$(get_libdir)/postfix/MAIL_VERSION" \ - DEBUG="" CC="$(tc-getCC)" OPT="${CFLAGS}" CCARGS="${mycc}" AUXLIBS="${mylibs}" \ - AUXLIBS_CDB="${AUXLIBS_CDB}" AUXLIBS_LDAP="${AUXLIBS_LDAP}" \ - AUXLIBS_LMDB="${AUXLIBS_LMDB}" AUXLIBS_MYSQL="${AUXLIBS_MYSQL}" \ - AUXLIBS_PCRE="${AUXLIBS_PCRE}" AUXLIBS_PGSQL="${AUXLIBS_PGSQL}" \ - AUXLIBS_SQLITE="${AUXLIBS_SQLITE}" -} - -src_install() { - LD_LIBRARY_PATH="${S}/lib" \ - /bin/sh postfix-install \ - -non-interactive \ - install_root="${D}" \ - config_directory="/etc/postfix" \ - manpage_directory="/usr/share/man" \ - command_directory="/usr/sbin" \ - mailq_path="/usr/bin/mailq" \ - newaliases_path="/usr/bin/newaliases" \ - sendmail_path="/usr/sbin/sendmail" \ - || die "postfix-install failed" - - # Fix spool removal on upgrade - rm -Rf "${D}"/var - keepdir /var/spool/postfix - - # Install rmail for UUCP, closes bug #19127 - dobin auxiliary/rmail/rmail - - # Provide another link for legacy FSH - dosym ../sbin/sendmail /usr/$(get_libdir)/sendmail - - # Install qshape, posttls-finger and collate - dobin auxiliary/qshape/qshape.pl - doman man/man1/qshape.1 - dobin bin/posttls-finger - doman man/man1/posttls-finger.1 - dobin auxiliary/collate/collate.pl - newdoc auxiliary/collate/README README.collate - - # Performance tuning tools and their manuals - dosbin bin/smtp-{source,sink} bin/qmqp-{source,sink} - doman man/man1/smtp-{source,sink}.1 man/man1/qmqp-{source,sink}.1 - - # Set proper permissions on required files/directories - keepdir /var/lib/postfix - fowners -R postfix:postfix /var/lib/postfix - fperms 0750 /var/lib/postfix - fowners root:postdrop /usr/sbin/post{drop,queue} - fperms 02755 /usr/sbin/post{drop,queue} - - keepdir /etc/postfix - keepdir /etc/postfix/postfix-files.d - if use mbox; then - mypostconf="mail_spool_directory=/var/spool/mail" - else - mypostconf="home_mailbox=.maildir/" - fi - LD_LIBRARY_PATH="${S}/lib" \ - "${D}"/usr/sbin/postconf -c "${D}"/etc/postfix \ - -e ${mypostconf} || die "postconf failed" - - insinto /etc/postfix - newins "${FILESDIR}"/smtp.pass saslpass - fperms 600 /etc/postfix/saslpass - - newinitd "${FILESDIR}"/postfix.rc6.${RC_VER} postfix - # do not start mariadb/postgres unnecessarily - bug #359913 - use mariadb || sed -i -e "s/mysql //" "${D}/etc/init.d/postfix" - use postgres || sed -i -e "s/postgresql //" "${D}/etc/init.d/postfix" - - dodoc *README COMPATIBILITY HISTORY PORTING RELEASE_NOTES* - mv "${S}"/examples "${D}"/usr/share/doc/${PF}/ - # postfix set-permissions expects uncompressed man files - docompress -x /usr/share/man - - pamd_mimic_system smtp auth account - - if use sasl; then - insinto /etc/sasl2 - newins "${FILESDIR}"/smtp.sasl smtpd.conf - fi - - # header files - insinto /usr/include/postfix - doins include/*.h - - if has_version mail-mta/postfix; then - # let the sysadmin decide when to change the compatibility_level - sed -i -e /^compatibility_level/"s/^/#/" "${D}"/etc/postfix/main.cf || die - fi - - systemd_dounit "${FILESDIR}/${PN}.service" -} - -pkg_preinst() { - if has_version '<mail-mta/postfix-3.4'; then - elog - elog "Postfix-3.4 introduces a new master.cf service 'postlog'" - elog "with type 'unix-dgram' that is used by the new postlogd(8) daemon." - elog "Before backing out to an older Postfix version, edit the master.cf" - elog "file and remove the postlog entry." - elog - fi -} - -pkg_postinst() { - if [[ ! -e /etc/mail/aliases.db ]] ; then - ewarn - ewarn "You must edit /etc/mail/aliases to suit your needs" - ewarn "and then run /usr/bin/newaliases. Postfix will not" - ewarn "work correctly without it." - ewarn - fi - - # check and fix file permissions - "${EROOT}"/usr/sbin/postfix set-permissions - - # configure tls - if use ssl ; then - if "${EROOT}"/usr/sbin/postfix tls all-default-client; then - elog "To configure client side TLS settings:" - elog "${EROOT}"/usr/sbin/postfix tls enable-client - fi - if "${EROOT}"/usr/sbin/postfix tls all-default-server; then - elog "To configure server side TLS settings:" - elog "${EROOT}"/usr/sbin/postfix tls enable-server - fi - fi -} diff --git a/mail-mta/sendmail/Manifest b/mail-mta/sendmail/Manifest index 2c24d661f727..b51e8467be82 100644 --- a/mail-mta/sendmail/Manifest +++ b/mail-mta/sendmail/Manifest @@ -1,2 +1,6 @@ -DIST sendmail.8.18.1.tar.gz 2401566 BLAKE2B 3afa36073fd611c7fdb43ef0ab9f02d5fb8ae388e9471bdc7275c6c9dcee0a654f46ddef505b70e978cb1b818b0da375250678e501676d8bace534d59ee40d90 SHA512 9ce713b44439d4de6faa9e3cdfa2226b44b4fbeb352a5f81584c062570e9472da244158287e489aabe258d28fe54ca4964565c7b0adc7e1763d212be42f98061 DIST sendmail.8.18.2.tar.gz 2372458 BLAKE2B a291006fd498d61b8fe19eb02cdeb92f83cef68b5c3db0c8b6479edb8e4722ed2d2ae03cf39553c0631224a1dfa00754cf4ea32bb7bc762ad8152ccaebe606dc SHA512 55515220ea84db4b56b8154efbf21aeb7161943c92bd63527cfc20169ea566e299cc289f0a6e160dc5637f656bdc451707003750d4b42a7894d40f35f51f6040 +DIST sendmail.8.18.2.tar.gz.sig 543 BLAKE2B 6c397ada6b93de4608d11bc09d58c687819f333161865129d70d5dd3fc35124fda3f5c8d2533a10b8a327804feb261b4abd3506bb9a8ede686cc0b3f159203c5 SHA512 4e531f89e5e10dba7d3c66c8c5378aadeb139ec9d2f6ac6568f272adea4d1515c1ba858bb34585e0d52ac070185052e901d58bd677ef59a5cc733b4f60fb827f +DIST sendmail.8.19.0.0.tar.gz 2379422 BLAKE2B a5e8b10853f4a1eba9db8e2e8a7cfb39c1dafb79fce2d10b0045089b60888f17802e8cb5af6db2c8f1d8e8dc0a59069fd9e6cf51ec6d49d44bd09b2618f12518 SHA512 4f3b76d60f13ed5ce9c334788ae6efad42beb47b2ce649bd83572da8fef2d7607e0a30ec2a1a1613fccfd942162168cc0ecfd6604ca0d5bcdaa83a929bfaa634 +DIST sendmail.8.19.0.0.tar.gz.sig 543 BLAKE2B a9bf1f101c18ac3ff41654d04ca79dd3e0bad06d46c490b565332c945ae78b1a96da64c92a593cbb2b78c1465b0d88a9b903f90f55d03046163a807ba2cb984c SHA512 4952ef892e3dd68afe27f1fbf1c8e4916b17ec59092d4724168bb51bf793fbd4bf513f88c1578dfb96a645bab186a7c4508335cf816fe2b61624320158d016cf +DIST sendmail.8.19.0.1.tar.gz 2373351 BLAKE2B d8f0a589185a0b3311a7fa7132f61e5ad6ce140f29af70bd4e6d2793d3736b1cb32c913ef543901255a50a912d06bc62b9dec18448c4bdb5bf45600c13c4b905 SHA512 11d48f31ee36f6b2bceefed9a79c4a8f35c38bcdaae120427b45bcd0baa4a68cdf8065a94a883dce13b9162dd0fa1ead6cf6d1742e7388e309c0bf13e234c617 +DIST sendmail.8.19.0.1.tar.gz.sig 543 BLAKE2B 3359056cab08a27e453dcb85535cc2b26b81db54ed6e64effa3e540b7847eb7fd08707648e36b96129e49a489a1f8390b2748032111827b57caf9bce838d5d09 SHA512 64af4ab600959d2975d9e0bfe423d64903be94c4734dbcd2623ff6b0f6b7682e2bcd2f45b9a24f6b6e70600f4b1dc724677e95aa98e75124fdb4cbd06865ae4f diff --git a/mail-mta/sendmail/files/sendmail-delivered_hdr.patch b/mail-mta/sendmail/files/sendmail-8.13.1-delivered_hdr.patch index 6837fed1c46d..7ea73bad3f52 100644 --- a/mail-mta/sendmail/files/sendmail-delivered_hdr.patch +++ b/mail-mta/sendmail/files/sendmail-8.13.1-delivered_hdr.patch @@ -1,5 +1,5 @@ ---- sendmail/conf.c.orig 2004-07-14 21:54:23.000000000 +0000 -+++ sendmail/conf.c 2004-12-06 15:22:05.000000000 +0000 +--- a/sendmail/conf.c ++++ b/sendmail/conf.c @@ -117,6 +117,7 @@ { "content-length", H_ACHECK, NULL }, { "subject", H_ENCODABLE, NULL }, diff --git a/mail-mta/sendmail/files/sendmail-8.18.1-cdb.patch b/mail-mta/sendmail/files/sendmail-8.18.1-cdb.patch new file mode 100644 index 000000000000..aee9a747b73d --- /dev/null +++ b/mail-mta/sendmail/files/sendmail-8.18.1-cdb.patch @@ -0,0 +1,47 @@ +Link: https://narkive.com/tsmcN7nY.2 + +--- a/sendmail/map.c ++++ b/sendmail/map.c +@@ -3042,7 +3042,7 @@ + char **av; + int *statp; + { +- char *data; ++ char *data, *result; + struct cdb *cdbmap; + unsigned int klen, dlen; + int st, fd; +@@ -3050,6 +3050,7 @@ + char buf[MAXPATHLEN]; + + data = NULL; ++ result = NULL; + cdbmap = map->map_db1; + if (tTd(38, 20)) + sm_dprintf("cdb_map_lookup(%s, %s)\n", map->map_mname, name); +@@ -3136,14 +3137,22 @@ + else + { + dlen = cdb_datalen(cdbmap); +- data = malloc(dlen + 1); ++ data = (char *) sm_malloc(dlen + 1); ++ if (NULL == data) ++ { ++ *statp = EX_TEMPFAIL; ++ return NULL; ++ } + cdb_read(cdbmap, data, dlen, cdb_datapos(cdbmap)); + data[dlen] = '\0'; + } + if (bitset(MF_MATCHONLY, map->map_mflags)) +- return map_rewrite(map, name, strlen(name), NULL); ++ result = map_rewrite(map, name, strlen(name), NULL); + else +- return map_rewrite(map, data, dlen, av); ++ result = map_rewrite(map, data, dlen, av); ++ ++ SM_FREE(data); ++ return result; + } + + /* diff --git a/mail-mta/sendmail/files/sendmail-8.19.0.0-newdb.patch b/mail-mta/sendmail/files/sendmail-8.19.0.0-newdb.patch new file mode 100644 index 000000000000..0310e7f9dff1 --- /dev/null +++ b/mail-mta/sendmail/files/sendmail-8.19.0.0-newdb.patch @@ -0,0 +1,14 @@ +Link: https://narkive.com/H54UQbMD.3 +Bug: https://bugs.gentoo.org/971182 + +--- a/libsmdb/smdb2.c ++++ b/libsmdb/smdb2.c +@@ -440,7 +440,7 @@ + + static void + db_err_cb( +-# if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3 ++# if DB_VERSION_MAJOR > 4 || DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3 + const DB_ENV *dbenv, const char *errpfx, const char *msg + # else + const char *errpfx, char *msg diff --git a/mail-mta/sendmail/files/sendmail-procmail.mc b/mail-mta/sendmail/files/sendmail-maildir.mc index af994ae33ad0..eb8a3f06c48f 100644 --- a/mail-mta/sendmail/files/sendmail-procmail.mc +++ b/mail-mta/sendmail/files/sendmail-maildir.mc @@ -7,6 +7,7 @@ DOMAIN(generic)dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl FEATURE(`local_lmtp',`/usr/sbin/mail.local')dnl FEATURE(`local_procmail')dnl +dnl FEATURE(`local_procmail',`/usr/bin/maildrop',`maildrop -d $u')dnl MAILER(local)dnl MAILER(smtp)dnl MAILER(procmail)dnl diff --git a/mail-mta/sendmail/files/sendmail-musl-disable-cdefs.patch b/mail-mta/sendmail/files/sendmail-musl-disable-cdefs.patch new file mode 100644 index 000000000000..6dc4ac63105e --- /dev/null +++ b/mail-mta/sendmail/files/sendmail-musl-disable-cdefs.patch @@ -0,0 +1,11 @@ +--- a/include/sm/os/sm_os_linux.h 2020-06-09 11:57:46.789786561 +0200 ++++ b/include/sm/os/sm_os_linux.h 2020-06-09 11:57:49.174781812 +0200 +@@ -33,7 +33,7 @@ + # endif /* LINUX_VERSION_CODE */ + #endif /* SM_CONF_SHM */ + +-#define SM_CONF_SYS_CDEFS_H 1 ++#define SM_CONF_SYS_CDEFS_H 0 + #ifndef SM_CONF_SEM + # define SM_CONF_SEM 2 + #endif /* SM_CONF_SEM */ diff --git a/mail-mta/sendmail/files/sendmail-musl-stack-size.patch b/mail-mta/sendmail/files/sendmail-musl-stack-size.patch new file mode 100644 index 000000000000..9993adfece34 --- /dev/null +++ b/mail-mta/sendmail/files/sendmail-musl-stack-size.patch @@ -0,0 +1,42 @@ +Set default pthread stack size to 256 KB + +This patch tries to fix various crashes for applications depending on libmilter +by setting the stack size for pthreads to 256 KB. The default stack size for +musl libc is set to 80 KB whereas glibc has it set to 8 MB. This causes problems +when a large amount of memory is allocated on the stack. + +For example, opendkim allocates blocks of 64 KB multiple times, which causes +libmilter (and therefore opendkim) to crash. For now, a stack size of 256 KB +looks sufficient and makes opendkim stop crashing. + +Fixes https://bugs.alpinelinux.org/issues/6360 + +--- a/libmilter/libmilter.h ++++ b/libmilter/libmilter.h +@@ -127,10 +127,10 @@ + # define MI_SOCK_READ(s, b, l) read(s, b, l) + # define MI_SOCK_READ_FAIL(x) ((x) < 0) + # define MI_SOCK_WRITE(s, b, l) write(s, b, l) +- +-# define thread_create(ptid,wr,arg) pthread_create(ptid, NULL, wr, arg) + # define sthread_get_id() pthread_self() + ++extern int thread_create(pthread_t *ptid, void *(*wr) (void *), void *arg); ++ + typedef pthread_mutex_t smutex_t; + # define smutex_init(mp) (pthread_mutex_init(mp, NULL) == 0) + # define smutex_destroy(mp) (pthread_mutex_destroy(mp) == 0) +--- a/libmilter/main.c ++++ b/libmilter/main.c +@@ -16,6 +16,12 @@ + #include <fcntl.h> + #include <sys/stat.h> + ++int thread_create(pthread_t *ptid, void *(*wr) (void *), void *arg) { ++ pthread_attr_t attr; ++ pthread_attr_init(&attr); ++ pthread_attr_setstacksize(&attr,256*1024); ++ return pthread_create(ptid, &attr, wr, arg); ++} + + static smfiDesc_ptr smfi = NULL; diff --git a/mail-mta/sendmail/files/tls.patch b/mail-mta/sendmail/files/tls.patch deleted file mode 100644 index 0c2f5e8a7d47..000000000000 --- a/mail-mta/sendmail/files/tls.patch +++ /dev/null @@ -1,15 +0,0 @@ -$OpenBSD: patch-sendmail_tls_c,v 1.2 2022/01/26 13:01:08 ajacoutot Exp $ - -Unbreak build with opaque DH in LibreSSL 3.5: force use of DH_set0_pqg(). - -Index: sendmail/tls.c ---- sendmail/tls.c.orig -+++ sendmail/tls.c -@@ -43,6 +43,7 @@ SM_RCSID("@(#)$Id: tls.c,v 8.127 2013-11-27 02:51:11 g - # include <openssl/bn.h> - # include <openssl/dsa.h> - # else -+# define MTA_HAVE_DH_set0_pqg 1 - # define X509_STORE_CTX_get0_cert(ctx) (ctx)->cert - # define MTA_RSA_TMP_CB 1 - # define MTA_ASN1_STRING_data ASN1_STRING_data diff --git a/mail-mta/sendmail/metadata.xml b/mail-mta/sendmail/metadata.xml index 03034e7904ff..b57d3624d689 100644 --- a/mail-mta/sendmail/metadata.xml +++ b/mail-mta/sendmail/metadata.xml @@ -1,12 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="project"> - <email>dev@liguros.net</email> - <name>Development</name> + <maintainer type="person" proxied="yes"> + <email>cfuga@cfuga.mx</email> + <name>Cristian Othón MartÃnez Vera</name> </maintainer> - <upstream> - <remote-id type="cpe">cpe:/a:sendmail:sendmail</remote-id> - </upstream> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <use> + <flag name="eai">Add support for SMTPUTF8</flag> + <flag name="fips">Add support for FIPS mode (experimental)</flag> + <flag name="tinycdb">Add support for using <pkg>dev-db/tinycdb</pkg> + for lookup tables</flag> + </use> <origin>baldeagleos-repo</origin> </pkgmetadata> diff --git a/mail-mta/sendmail/sendmail-8.18.1.ebuild b/mail-mta/sendmail/sendmail-8.18.1.ebuild deleted file mode 100644 index 94acfacb7112..000000000000 --- a/mail-mta/sendmail/sendmail-8.18.1.ebuild +++ /dev/null @@ -1,211 +0,0 @@ -# Copyright 2021-2024 Liguros Authors -# Distributed under the terms of the GNU General Public License v2 -EAPI=8 - -inherit multilib systemd toolchain-funcs - -DESCRIPTION="Widely-used Mail Transport Agent (MTA)" -HOMEPAGE="https://www.sendmail.org/" -SRC_URI="ftp://ftp.sendmail.org/pub/${PN}/${PN}.${PV}.tar.gz" - -LICENSE="Sendmail GPL-2" # GPL-2 is here for initscript -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" -IUSE="ipv6 ldap mbox nis sasl sockets ssl tcpd" - -BDEPEND="sys-devel/m4" -DEPEND="net-mail/mailbase - sasl? ( >=dev-libs/cyrus-sasl-2.1.10 ) - tcpd? ( sys-apps/tcp-wrappers ) - ssl? ( - dev-libs/openssl:0= - - ) - dev-perl/File-Flock - ldap? ( net-nds/openldap ) - >=sys-libs/db-3.2:= - !net-mail/vacation" -RDEPEND="${DEPEND} - acct-group/smmsp - acct-user/smmsp - >=net-mail/mailbase-0.00 - >=mail-filter/libmilter-1.0.2_p1-r1 - !mail-mta/courier - !mail-mta/esmtp - !mail-mta/exim - !mail-mta/mini-qmail - !mail-mta/msmtp[mta] - !mail-mta/netqmail - !mail-mta/nullmailer - !mail-mta/postfix - !mail-mta/opensmtpd - !mail-mta/qmail-ldap - !>=mail-mta/ssmtp-2.64-r2[mta]" - -PDEPEND="!mbox? ( mail-filter/procmail )" - -src_prepare() { - eapply "${FILESDIR}"/"${PN}"-8.16.1-build-system.patch - eapply -p0 "${FILESDIR}"/sendmail-delivered_hdr.patch - eapply -p0 "${FILESDIR}"/tls.patch - - local confCC="$(tc-getCC)" - local confCCOPTS="${CFLAGS}" - local confLDOPTS="${LDFLAGS}" - local confMAPDEF="-DMAP_REGEX -DHASFLOCK" - local confENVDEF="-DMAXDAEMONS=64" - local conf_sendmail_LIBS="" - - confENVDEF="${confLIBS} -DHAS_GETHOSTBYNAME2=1" - - use sasl && confLIBS="${confLIBS} -lsasl2" \ - && confENVDEF="${confENVDEF} -DSASL=2" \ - && confCCOPTS="${confCCOPTS} -I/usr/include/sasl" \ - && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lsasl2" - - use tcpd && confENVDEF="${confENVDEF} -DTCPWRAPPERS" \ - && confLIBS="${confLIBS} -lwrap" - - # Bug #542370 - lets add support for modern crypto (PFS) - use ssl && confENVDEF="${confENVDEF} -DSTARTTLS -D_FFR_DEAL_WITH_ERROR_SSL" \ - && confENVDEF="${confENVDEF} -D_FFR_TLS_1 -D_FFR_TLS_EC" \ - && confLIBS="${confLIBS} -lssl -lcrypto" \ - && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lssl -lcrypto" - - use ldap && confMAPDEF="${confMAPDEF} -DLDAPMAP" \ - && confLIBS="${confLIBS} -lldap -llber" - - use ipv6 && confENVDEF="${confENVDEF} -DNETINET6" - - use nis && confENVDEF="${confENVDEF} -DNIS" - - use sockets && confENVDEF="${confENVDEF} -DSOCKETMAP" - - sed -e "s:@@confCCOPTS@@:${confCCOPTS}:" \ - -e "s/@@confLDOPTS@@/${confLDOPTS}/" \ - -e "s/@@confCC@@/${confCC}/" \ - -e "s/@@confMAPDEF@@/${confMAPDEF}/" \ - -e "s/@@confENVDEF@@/${confENVDEF}/" \ - -e "s/@@confLIBS@@/${confLIBS}/" \ - -e "s/@@conf_sendmail_LIBS@@/${conf_sendmail_LIBS}/" \ - "${FILESDIR}"/site.config.m4 > devtools/Site/site.config.m4 || die "sed failed" - - echo "APPENDDEF(\`confLIBDIRS', \`-L${EPREFIX}/usr/$(get_libdir)')" >> devtools/Site/site.config.m4 || die "echo failed" - - eapply_user -} - -src_compile() { - sh Build AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" || die "compilation failed in main build script" -} - -src_install() { - local MY_LIBDIR=/usr/$(get_libdir) - local MY_OBJDIR="obj.`uname -s`.`uname -r`.`uname -m`" - - dodir /usr/bin ${MY_LIBDIR} - dodir /usr/share/man/man{1,5,8} /usr/sbin /usr/share/sendmail-cf - dodir /var/spool/{mqueue,clientmqueue} /etc/conf.d - - keepdir /var/spool/{clientmqueue,mqueue} - - for dir in libsmutil sendmail mailstats praliases smrsh makemap vacation editmap - do - make DESTDIR="${D}" LIBDIR="${MY_LIBDIR}" MANROOT=/usr/share/man/man \ - SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \ - MANOWN=root MANGRP=root INCOWN=root INCGRP=root \ - LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \ - MSPQOWN=root CFOWN=root CFGRP=root \ - install -C "${MY_OBJDIR}/${dir}" \ - || die "install 1 failed" - done - - for dir in rmail mail.local - do - make DESTDIR="${D}" LIBDIR="${MY_LIBDIR}" MANROOT=/usr/share/man/man \ - SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \ - MANOWN=root MANGRP=root INCOWN=root INCGRP=root \ - LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \ - MSPQOWN=root CFOWN=root CFGRP=root \ - force-install -C "${MY_OBJDIR}/${dir}" \ - || die "install 2 failed" - done - - fowners root:smmsp /usr/sbin/sendmail - fperms 2555 /usr/sbin/sendmail - fowners smmsp:smmsp /var/spool/clientmqueue - fperms 770 /var/spool/clientmqueue - fperms 700 /var/spool/mqueue - dosym ../sbin/makemap /usr/bin/makemap - dodoc FAQ KNOWNBUGS README RELEASE_NOTES doc/op/op.ps - - newdoc sendmail/README README.sendmail - newdoc sendmail/SECURITY SECURITY - newdoc sendmail/TUNING TUNING - newdoc smrsh/README README.smrsh - - newdoc cf/README README.cf - newdoc cf/cf/README README.install-cf - - cp -pPR cf/* "${ED}"/usr/share/sendmail-cf || die "copy failed" - - docinto contrib - dodoc contrib/* - - insinto /etc/mail - - if use mbox; then - newins "${FILESDIR}"/sendmail.mc-r1 sendmail.mc - else - newins "${FILESDIR}"/sendmail-procmail.mc sendmail.mc - fi - - # See discussion on bug #730890 - m4 "${ED}"/usr/share/sendmail-cf/m4/cf.m4 \ - <(grep -v "${EPREFIX}"/usr/share/sendmail-cf/m4/cf.m4 "${ED}"/etc/mail/sendmail.mc) \ - > "${ED}"/etc/mail/sendmail.cf || die "cf.m4 failed" - - echo "include(\`/usr/share/sendmail-cf/m4/cf.m4')dnl" \ - > "${ED}"/etc/mail/submit.mc || die "echo failed" - - cat "${ED}"/usr/share/sendmail-cf/cf/submit.mc >> "${ED}"/etc/mail/submit.mc || die "submit.mc cat failed" - - echo "# local-host-names - include all aliases for your machine here" \ - > "${D}"/etc/mail/local-host-names || die "local-host-names echo failed" - - cat <<- EOF > "${ED}"/etc/mail/trusted-users - # trusted-users - users that can send mail as others without a warning - # apache, mailman, majordomo, uucp are good candidates - EOF - - cat <<- EOF > "${ED}"/etc/mail/access - # Check the /usr/share/doc/sendmail/README.cf file for a description - # of the format of this file. (search for access_db in that file) - # The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc - # package. - # - - EOF - - cat <<- EOF > "${ED}"/etc/conf.d/sendmail - # Config file for /etc/init.d/sendmail - # add start-up options here - SENDMAIL_OPTS="-bd -q30m -L sm-mta" # default daemon mode - CLIENTMQUEUE_OPTS="-Ac -q30m -L sm-cm" # clientmqueue - KILL_OPTS="" # add -9/-15/your favorite evil SIG level here - - EOF - - if use sasl; then - dodir /etc/sasl2 - cat <<- EOF > "${ED}"/etc/sasl2/Sendmail.conf - pwcheck_method: saslauthd - mech_list: PLAIN LOGIN - - EOF - fi - - doinitd "${FILESDIR}"/sendmail - systemd_dounit "${FILESDIR}"/sendmail.service - systemd_dounit "${FILESDIR}"/sm-client.service -} diff --git a/mail-mta/sendmail/sendmail-8.18.2-r1.ebuild b/mail-mta/sendmail/sendmail-8.18.2-r1.ebuild new file mode 100644 index 000000000000..bed697169c2b --- /dev/null +++ b/mail-mta/sendmail/sendmail-8.18.2-r1.ebuild @@ -0,0 +1,310 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Note: please bump this together with mail-filter/libmilter and app-shells/smrsh + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/sendmail.asc" +inherit systemd toolchain-funcs verify-sig + +DESCRIPTION="Widely-used Mail Transport Agent (MTA)" +HOMEPAGE="https://www.sendmail.org/" +if [[ -n $(ver_cut 4) ]] ; then + # Snapshots have an extra version component (e.g. 8.17.1 vs 8.17.1.9) + SRC_URI=" + https://ftp.sendmail.org/snapshots/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/snapshots/${PN}.${PV}.tar.gz.sig ) + " +fi + +SRC_URI+=" + https://ftp.sendmail.org/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/${PN}.${PV}.tar.gz.sig ) +" +SRC_URI+=" + https://ftp.sendmail.org/past-releases/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/past-releases/${PN}.${PV}.tar.gz.sig ) +" + +LICENSE="Sendmail GPL-2" # GPL-2 is here for initscript +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+berkdb eai fips ldap mbox nis sasl selinux ssl tcpd tinycdb" +REQUIRED_USE=" + || ( berkdb tinycdb ) + fips? ( ssl ) +" + +DEPEND=" + acct-group/smmsp + >=acct-user/smmsp-0-r2 + net-mail/mailbase + berkdb? ( >=sys-libs/db-3.2:= ) + eai? ( dev-libs/icu:= ) + elibc_musl? ( virtual/libcrypt:= ) + ldap? ( net-nds/openldap:= ) + nis? ( net-libs/libnsl:= ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.10 ) + ssl? ( + >=dev-libs/openssl-1.1.1:= + fips? ( >=dev-libs/openssl-3:=[fips] ) + ) + tcpd? ( sys-apps/tcp-wrappers ) + tinycdb? ( dev-db/tinycdb ) +" +RDEPEND=" + ${DEPEND} + >=mail-filter/libmilter-1.0.2_p2 + sys-devel/m4 + !mail-mta/courier + !mail-mta/esmtp + !mail-mta/exim + !mail-mta/msmtp[mta] + !mail-mta/netqmail + !mail-mta/notqmail + !mail-mta/nullmailer + !mail-mta/opensmtpd + !mail-mta/postfix + !>=mail-mta/ssmtp-2.64-r2[mta] + selinux? ( sec-policy/selinux-sendmail ) +" +BDEPEND=" + sys-devel/m4 + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-sendmail-20250220 ) +" +PDEPEND=" + !mbox? ( + || ( + mail-filter/procmail + mail-filter/maildrop + ) + ) +" +PATCHES=( + "${FILESDIR}"/${PN}-8.13.1-delivered_hdr.patch + "${FILESDIR}"/${PN}-8.16.1-build-system.patch + "${FILESDIR}"/${PN}-8.18.1-cdb.patch +) + +src_prepare() { + default + + local confCCOPTS="${CFLAGS}" + local confENVDEF="-DMAXDAEMONS=64 -DHAS_GETHOSTBYNAME2=1" + local confLDOPTS="${LDFLAGS}" + local confLIBS= + local confMAPDEF="-DMAP_REGEX" + local conf_sendmail_LIBS= + + # Always enable ipv6 and sockets + confENVDEF+=" -DNETINET6 -DSOCKETMAP" + + # Enable same domain/one domain features + confENVDEV+=" -D_FFR_SAMEDOMAIN -D_FFR_MF_ONEDOMAIN" + + if use berkdb; then + # See bug #808954 for FLOCK + confENVDEF+=" -DHASFLOCK=1" + confMAPDEF+=" -DNEWDB" + confLIBS+=" -ldb" + else + confMAPDEF+=" -UNEWDB" + fi + + if use eai; then + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags icu-uc)" + confENVDEF+=" -DUSE_EAI" + confLIBS+=" $($(tc-getPKG_CONFIG) --libs icu-uc)" + fi + + if use ldap; then + confMAPDEF+=" -DLDAPMAP" + confLIBS+=" -lldap -llber" + fi + + use nis && confENVDEF+=" -DNIS" + + if use sasl; then + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags libsasl2)" + confENVDEF+=" -DSASL=2" + conf_sendmail_LIBS+=" $($(tc-getPKG_CONFIG) --libs libsasl2)" + fi + + if use ssl; then + # Bug #542370 - lets add support for modern crypto (PFS) + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags openssl)" + confENVDEF+=" -DSTARTTLS -D_FFR_DEAL_WITH_ERROR_SSL" + confENVDEF+=" -D_FFR_TLS_1 -D_FFR_TLS_EC" + # Bug #944822 - fix certification chain with intermediate cert file + confENVDEF+=" -D_FFR_TLS_USE_CERTIFICATE_CHAIN_FILE" + confENVDEF+=" -DDANE" + + if use fips; then + confENVDEF+=" -D_FFR_FIPSMODE" + fi + + conf_sendmail_LIBS+=" $($(tc-getPKG_CONFIG) --libs openssl)" + fi + + if use tcpd; then + confENVDEF+=" -DTCPWRAPPERS" + confLIBS+=" -lwrap" + fi + + if use tinycdb; then + confMAPDEF+=" -DCDB=2" + confLIBS+=" -lcdb" + else + confMAPDEF+=" -UCDB" + fi + + if use elibc_musl; then + confENVDEF+=" -DHASSTRERROR -DHASRRESVPORT=0 -DNEEDSGETIPNODE" + + eapply "${FILESDIR}"/${PN}-musl-stack-size.patch + eapply "${FILESDIR}"/${PN}-musl-disable-cdefs.patch + fi + + sed -e "s|@@confCC@@|$(tc-getCC)|" \ + -e "s|@@confCCOPTS@@|${confCCOPTS}|" \ + -e "s|@@confENVDEF@@|${confENVDEF}|" \ + -e "s|@@confLDOPTS@@|${confLDOPTS}|" \ + -e "s|@@confLIBS@@|${confLIBS}|" \ + -e "s|@@confMAPDEF@@|${confMAPDEF}|" \ + -e "s|@@conf_sendmail_LIBS@@|${conf_sendmail_LIBS}|" \ + "${FILESDIR}"/site.config.m4 > devtools/Site/site.config.m4 \ + || die "failed to generate site.config.m4" + + echo "APPENDDEF(\`confLIBDIRS', \`-L${EPREFIX}/usr/$(get_libdir)')" \ + >> devtools/Site/site.config.m4 || die "failed adding to site.config.m4" +} + +src_compile() { + sh Build AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" || die "compilation failed in main build script" +} + +src_install() { + dodir /usr/{bin,$(get_libdir)} + dodir /usr/share/man/man{1,5,8} /usr/sbin /usr/share/sendmail-cf + dodir /var/spool/{mqueue,clientmqueue} /etc/conf.d + + keepdir /var/spool/{clientmqueue,mqueue} + + local emakeargs=( + DESTDIR="${D}" LIBDIR="/usr/$(get_libdir)" + MANROOT=/usr/share/man/man + SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root + MANOWN=root MANGRP=root INCOWN=root INCGRP=root + LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root + MSPQOWN=root CFOWN=root CFGRP=root + ) + + local dir + for dir in libsmutil sendmail mailstats praliases smrsh makemap vacation editmap; do + emake -j1 -C obj.*/${dir} "${emakeargs[@]}" install + done + for dir in rmail mail.local; do + emake -j1 -C obj.*/${dir} "${emakeargs[@]}" force-install + done + + fowners root:smmsp /usr/sbin/sendmail + fperms 2555 /usr/sbin/sendmail + fowners smmsp:smmsp /var/spool/clientmqueue + fperms 770 /var/spool/clientmqueue + fperms 700 /var/spool/mqueue + dodoc FAQ KNOWNBUGS README RELEASE_NOTES doc/op/op.ps + + dodoc sendmail/{SECURITY,TUNING} + newdoc sendmail/README README.sendmail + newdoc smrsh/README README.smrsh + + newdoc cf/README README.cf + newdoc cf/cf/README README.install-cf + + dodoc -r contrib + + cp -pPR cf/. "${ED}"/usr/share/sendmail-cf || die + + insinto /etc/mail + if use mbox; then + newins "${FILESDIR}"/sendmail.mc-r1 sendmail.mc + else + newins "${FILESDIR}"/sendmail-maildir.mc sendmail.mc + fi + + # See discussion on bug #730890 + m4 "${ED}"/usr/share/sendmail-cf/m4/cf.m4 \ + <(grep -v "${EPREFIX}"/usr/share/sendmail-cf/m4/cf.m4 "${ED}"/etc/mail/sendmail.mc) \ + > "${ED}"/etc/mail/sendmail.cf || die "cf.m4 failed" + + echo "include(\`/usr/share/sendmail-cf/m4/cf.m4')dnl" \ + > "${ED}"/etc/mail/submit.mc || die "submit.mc echo failed" + + cat "${ED}"/usr/share/sendmail-cf/cf/submit.mc \ + >> "${ED}"/etc/mail/submit.mc || die "submit.mc cat failed" + + echo "# local-host-names - include all aliases for your machine here" \ + > "${ED}"/etc/mail/local-host-names || die "local-host-names echo failed" + + cat <<- EOF > "${ED}"/etc/mail/trusted-users || die "trusted-users cat failed" + # trusted-users - users that can send mail as others without a warning + # apache, mailman, majordomo, uucp are good candidates + EOF + + cat <<- EOF > "${ED}"/etc/mail/access || die "access cat failed" + # Check the ${EPREFIX}/usr/share/sendmail-cf/README file for a description + # of the format of this file. (search for access_db in that file) + # + + EOF + + cat <<- EOF > "${ED}"/etc/conf.d/sendmail || die "sendmail cat failed" + # Config file for /etc/init.d/sendmail + # add start-up options here + SENDMAIL_OPTS="-bd -q30m -L sm-mta" # default daemon mode + CLIENTMQUEUE_OPTS="-Ac -q30m -L sm-cm" # clientmqueue + KILL_OPTS="" # add -9/-15/your favorite evil SIG level here + + EOF + + if use sasl; then + dodir /etc/sasl2 + cat <<- EOF > "${ED}"/etc/sasl2/Sendmail.conf || die "Sendmail.conf cat failed" + pwcheck_method: saslauthd + mech_list: PLAIN LOGIN + + EOF + fi + + doinitd "${FILESDIR}"/sendmail + systemd_dounit "${FILESDIR}"/sendmail.service + systemd_dounit "${FILESDIR}"/sm-client.service +} + +pkg_postinst() { + if ! use berkdb; then + ewarn "If your configuration relies on userdb, you should install" + ewarn "this package with USE=berkdb." + fi + + if ! use mbox; then + elog "Starting with mail-mta/sendmail-8.18.1 you could use either" + elog "procmail or maildrop to use maildir-style mailbox in user's home directory." + elog "" + elog "If you prefer procmail (default), emerge mail-filter/procmail with USE=-mbox" + elog "and include the following lines in sendmail.mc to create your sendmail.cf" + elog "configuration file:" + elog "\tFEATURE(\`local_procmail')dnl" + elog "\tMAILER(\`procmail')dnl" + elog "" + elog "If you prefer maildrop, you'll need to ensure that you configure a mail" + elog "storage location using DEFAULT in /etc/maildroprc, for example:" + elog "\tDEFAULT=\$HOME/.maildir" + elog "" + elog "and include the following line in sendmail.mc to create your sendmail.cf" + elog "configuration file:" + elog "\tFEATURE(\`local_procmail',\`/usr/bin/maildrop',\`maildrop -d $u')dnl" + fi +} diff --git a/mail-mta/sendmail/sendmail-8.18.2.ebuild b/mail-mta/sendmail/sendmail-8.18.2.ebuild index f625c9200a49..380a790f0957 100644 --- a/mail-mta/sendmail/sendmail-8.18.2.ebuild +++ b/mail-mta/sendmail/sendmail-8.18.2.ebuild @@ -1,98 +1,183 @@ -# Copyright 2021-2025 Liguros Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 + EAPI=8 -inherit multilib systemd toolchain-funcs +# Note: please bump this together with mail-filter/libmilter and app-shells/smrsh + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/sendmail.asc" +inherit systemd toolchain-funcs verify-sig DESCRIPTION="Widely-used Mail Transport Agent (MTA)" HOMEPAGE="https://www.sendmail.org/" -SRC_URI="ftp://ftp.sendmail.org/pub/${PN}/${PN}.${PV}.tar.gz" +if [[ -n $(ver_cut 4) ]] ; then + # Snapshots have an extra version component (e.g. 8.17.1 vs 8.17.1.9) + SRC_URI=" + https://ftp.sendmail.org/snapshots/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/snapshots/${PN}.${PV}.tar.gz.sig ) + " +fi + +SRC_URI+=" + https://ftp.sendmail.org/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/${PN}.${PV}.tar.gz.sig ) +" +SRC_URI+=" + https://ftp.sendmail.org/past-releases/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/past-releases/${PN}.${PV}.tar.gz.sig ) +" LICENSE="Sendmail GPL-2" # GPL-2 is here for initscript SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" -IUSE="ipv6 ldap mbox nis sasl sockets ssl tcpd" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="+berkdb eai fips ldap mbox nis sasl selinux ssl tcpd tinycdb" +REQUIRED_USE=" + || ( berkdb tinycdb ) + fips? ( ssl ) +" -BDEPEND="sys-devel/m4" -DEPEND="net-mail/mailbase +DEPEND=" + acct-group/smmsp + >=acct-user/smmsp-0-r2 + net-mail/mailbase + berkdb? ( >=sys-libs/db-3.2:= ) + eai? ( dev-libs/icu:= ) + elibc_musl? ( virtual/libcrypt:= ) + ldap? ( net-nds/openldap:= ) + nis? ( net-libs/libnsl:= ) sasl? ( >=dev-libs/cyrus-sasl-2.1.10 ) - tcpd? ( sys-apps/tcp-wrappers ) ssl? ( - dev-libs/openssl:0= - + >=dev-libs/openssl-1.1.1:= + fips? ( >=dev-libs/openssl-3:=[fips] ) ) - dev-perl/File-Flock - ldap? ( net-nds/openldap ) - >=sys-libs/db-3.2:= - !net-mail/vacation" -RDEPEND="${DEPEND} - acct-group/smmsp - acct-user/smmsp - >=net-mail/mailbase-0.00 - >=mail-filter/libmilter-1.0.2_p1-r1 + tcpd? ( sys-apps/tcp-wrappers ) + tinycdb? ( dev-db/tinycdb ) +" +RDEPEND=" + ${DEPEND} + >=mail-filter/libmilter-1.0.2_p2 + sys-devel/m4 !mail-mta/courier !mail-mta/esmtp !mail-mta/exim - !mail-mta/mini-qmail !mail-mta/msmtp[mta] !mail-mta/netqmail + !mail-mta/notqmail !mail-mta/nullmailer - !mail-mta/postfix !mail-mta/opensmtpd - !mail-mta/qmail-ldap - !>=mail-mta/ssmtp-2.64-r2[mta]" - -PDEPEND="!mbox? ( mail-filter/procmail )" + !mail-mta/postfix + !>=mail-mta/ssmtp-2.64-r2[mta] + selinux? ( sec-policy/selinux-sendmail ) +" +BDEPEND=" + sys-devel/m4 + virtual/pkgconfig + verify-sig? ( ~sec-keys/openpgp-keys-sendmail-20250220 ) +" +PDEPEND=" + !mbox? ( + || ( + mail-filter/procmail + mail-filter/maildrop + ) + ) +" +PATCHES=( + "${FILESDIR}"/${PN}-8.13.1-delivered_hdr.patch + "${FILESDIR}"/${PN}-8.16.1-build-system.patch +) src_prepare() { - eapply "${FILESDIR}"/"${PN}"-8.16.1-build-system.patch - eapply -p0 "${FILESDIR}"/sendmail-delivered_hdr.patch -# eapply -p0 "${FILESDIR}"/tls.patch + default - local confCC="$(tc-getCC)" local confCCOPTS="${CFLAGS}" + local confENVDEF="-DMAXDAEMONS=64 -DHAS_GETHOSTBYNAME2=1" local confLDOPTS="${LDFLAGS}" - local confMAPDEF="-DMAP_REGEX -DHASFLOCK" - local confENVDEF="-DMAXDAEMONS=64" - local conf_sendmail_LIBS="" + local confLIBS= + local confMAPDEF="-DMAP_REGEX" + local conf_sendmail_LIBS= + + # Always enable ipv6 and sockets + confENVDEF+=" -DNETINET6 -DSOCKETMAP" + + # Enable same domain/one domain features + confENVDEV+=" -D_FFR_SAMEDOMAIN -D_FFR_MF_ONEDOMAIN" + + if use berkdb; then + # See bug #808954 for FLOCK + confENVDEF+=" -DHASFLOCK=1" + confMAPDEF+=" -DNEWDB" + confLIBS+=" -ldb" + else + confMAPDEF+=" -UNEWDB" + fi + + if use eai; then + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags icu-uc)" + confENVDEF+=" -DUSE_EAI" + confLIBS+=" $($(tc-getPKG_CONFIG) --libs icu-uc)" + fi - confENVDEF="${confLIBS} -DHAS_GETHOSTBYNAME2=1" + if use ldap; then + confMAPDEF+=" -DLDAPMAP" + confLIBS+=" -lldap -llber" + fi - use sasl && confLIBS="${confLIBS} -lsasl2" \ - && confENVDEF="${confENVDEF} -DSASL=2" \ - && confCCOPTS="${confCCOPTS} -I/usr/include/sasl" \ - && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lsasl2" + use nis && confENVDEF+=" -DNIS" - use tcpd && confENVDEF="${confENVDEF} -DTCPWRAPPERS" \ - && confLIBS="${confLIBS} -lwrap" + if use sasl; then + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags libsasl2)" + confENVDEF+=" -DSASL=2" + conf_sendmail_LIBS+=" $($(tc-getPKG_CONFIG) --libs libsasl2)" + fi - # Bug #542370 - lets add support for modern crypto (PFS) - use ssl && confENVDEF="${confENVDEF} -DSTARTTLS -D_FFR_DEAL_WITH_ERROR_SSL" \ - && confENVDEF="${confENVDEF} -D_FFR_TLS_1 -D_FFR_TLS_EC" \ - && confLIBS="${confLIBS} -lssl -lcrypto" \ - && conf_sendmail_LIBS="${conf_sendmail_LIBS} -lssl -lcrypto" + if use ssl; then + # Bug #542370 - lets add support for modern crypto (PFS) + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags openssl)" + confENVDEF+=" -DSTARTTLS -D_FFR_DEAL_WITH_ERROR_SSL" + confENVDEF+=" -D_FFR_TLS_1 -D_FFR_TLS_EC" + # Bug #944822 - fix certification chain with intermediate cert file + confENVDEF+=" -D_FFR_TLS_USE_CERTIFICATE_CHAIN_FILE" + confENVDEF+=" -DDANE" - use ldap && confMAPDEF="${confMAPDEF} -DLDAPMAP" \ - && confLIBS="${confLIBS} -lldap -llber" + if use fips; then + confENVDEF+=" -D_FFR_FIPSMODE" + fi + + conf_sendmail_LIBS+=" $($(tc-getPKG_CONFIG) --libs openssl)" + fi - use ipv6 && confENVDEF="${confENVDEF} -DNETINET6" + if use tcpd; then + confENVDEF+=" -DTCPWRAPPERS" + confLIBS+=" -lwrap" + fi - use nis && confENVDEF="${confENVDEF} -DNIS" + if use tinycdb; then + confMAPDEF+=" -DCDB=2" + confLIBS+=" -lcdb" + else + confMAPDEF+=" -UCDB" + fi - use sockets && confENVDEF="${confENVDEF} -DSOCKETMAP" + if use elibc_musl; then + confENVDEF+=" -DHASSTRERROR -DHASRRESVPORT=0 -DNEEDSGETIPNODE" - sed -e "s:@@confCCOPTS@@:${confCCOPTS}:" \ - -e "s/@@confLDOPTS@@/${confLDOPTS}/" \ - -e "s/@@confCC@@/${confCC}/" \ - -e "s/@@confMAPDEF@@/${confMAPDEF}/" \ - -e "s/@@confENVDEF@@/${confENVDEF}/" \ - -e "s/@@confLIBS@@/${confLIBS}/" \ - -e "s/@@conf_sendmail_LIBS@@/${conf_sendmail_LIBS}/" \ - "${FILESDIR}"/site.config.m4 > devtools/Site/site.config.m4 || die "sed failed" + eapply "${FILESDIR}"/${PN}-musl-stack-size.patch + eapply "${FILESDIR}"/${PN}-musl-disable-cdefs.patch + fi - echo "APPENDDEF(\`confLIBDIRS', \`-L${EPREFIX}/usr/$(get_libdir)')" >> devtools/Site/site.config.m4 || die "echo failed" + sed -e "s|@@confCC@@|$(tc-getCC)|" \ + -e "s|@@confCCOPTS@@|${confCCOPTS}|" \ + -e "s|@@confENVDEF@@|${confENVDEF}|" \ + -e "s|@@confLDOPTS@@|${confLDOPTS}|" \ + -e "s|@@confLIBS@@|${confLIBS}|" \ + -e "s|@@confMAPDEF@@|${confMAPDEF}|" \ + -e "s|@@conf_sendmail_LIBS@@|${conf_sendmail_LIBS}|" \ + "${FILESDIR}"/site.config.m4 > devtools/Site/site.config.m4 \ + || die "failed to generate site.config.m4" - eapply_user + echo "APPENDDEF(\`confLIBDIRS', \`-L${EPREFIX}/usr/$(get_libdir)')" \ + >> devtools/Site/site.config.m4 || die "failed adding to site.config.m4" } src_compile() { @@ -100,35 +185,27 @@ src_compile() { } src_install() { - local MY_LIBDIR=/usr/$(get_libdir) - local MY_OBJDIR="obj.`uname -s`.`uname -r`.`uname -m`" - - dodir /usr/bin ${MY_LIBDIR} + dodir /usr/{bin,$(get_libdir)} dodir /usr/share/man/man{1,5,8} /usr/sbin /usr/share/sendmail-cf dodir /var/spool/{mqueue,clientmqueue} /etc/conf.d keepdir /var/spool/{clientmqueue,mqueue} - for dir in libsmutil sendmail mailstats praliases smrsh makemap vacation editmap - do - make DESTDIR="${D}" LIBDIR="${MY_LIBDIR}" MANROOT=/usr/share/man/man \ - SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \ - MANOWN=root MANGRP=root INCOWN=root INCGRP=root \ - LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \ - MSPQOWN=root CFOWN=root CFGRP=root \ - install -C "${MY_OBJDIR}/${dir}" \ - || die "install 1 failed" - done + local emakeargs=( + DESTDIR="${D}" LIBDIR="/usr/$(get_libdir)" + MANROOT=/usr/share/man/man + SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root + MANOWN=root MANGRP=root INCOWN=root INCGRP=root + LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root + MSPQOWN=root CFOWN=root CFGRP=root + ) - for dir in rmail mail.local - do - make DESTDIR="${D}" LIBDIR="${MY_LIBDIR}" MANROOT=/usr/share/man/man \ - SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root \ - MANOWN=root MANGRP=root INCOWN=root INCGRP=root \ - LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root \ - MSPQOWN=root CFOWN=root CFGRP=root \ - force-install -C "${MY_OBJDIR}/${dir}" \ - || die "install 2 failed" + local dir + for dir in libsmutil sendmail mailstats praliases smrsh makemap vacation editmap; do + emake -j1 -C obj.*/${dir} "${emakeargs[@]}" install + done + for dir in rmail mail.local; do + emake -j1 -C obj.*/${dir} "${emakeargs[@]}" force-install done fowners root:smmsp /usr/sbin/sendmail @@ -136,58 +213,53 @@ src_install() { fowners smmsp:smmsp /var/spool/clientmqueue fperms 770 /var/spool/clientmqueue fperms 700 /var/spool/mqueue - dosym ../sbin/makemap /usr/bin/makemap dodoc FAQ KNOWNBUGS README RELEASE_NOTES doc/op/op.ps + dodoc sendmail/{SECURITY,TUNING} newdoc sendmail/README README.sendmail - newdoc sendmail/SECURITY SECURITY - newdoc sendmail/TUNING TUNING newdoc smrsh/README README.smrsh newdoc cf/README README.cf newdoc cf/cf/README README.install-cf - cp -pPR cf/* "${ED}"/usr/share/sendmail-cf || die "copy failed" + dodoc -r contrib - docinto contrib - dodoc contrib/* + cp -pPR cf/. "${ED}"/usr/share/sendmail-cf || die insinto /etc/mail - if use mbox; then newins "${FILESDIR}"/sendmail.mc-r1 sendmail.mc else - newins "${FILESDIR}"/sendmail-procmail.mc sendmail.mc + newins "${FILESDIR}"/sendmail-maildir.mc sendmail.mc fi # See discussion on bug #730890 m4 "${ED}"/usr/share/sendmail-cf/m4/cf.m4 \ - <(grep -v "${EPREFIX}"/usr/share/sendmail-cf/m4/cf.m4 "${ED}"/etc/mail/sendmail.mc) \ - > "${ED}"/etc/mail/sendmail.cf || die "cf.m4 failed" + <(grep -v "${EPREFIX}"/usr/share/sendmail-cf/m4/cf.m4 "${ED}"/etc/mail/sendmail.mc) \ + > "${ED}"/etc/mail/sendmail.cf || die "cf.m4 failed" echo "include(\`/usr/share/sendmail-cf/m4/cf.m4')dnl" \ - > "${ED}"/etc/mail/submit.mc || die "echo failed" + > "${ED}"/etc/mail/submit.mc || die "submit.mc echo failed" - cat "${ED}"/usr/share/sendmail-cf/cf/submit.mc >> "${ED}"/etc/mail/submit.mc || die "submit.mc cat failed" + cat "${ED}"/usr/share/sendmail-cf/cf/submit.mc \ + >> "${ED}"/etc/mail/submit.mc || die "submit.mc cat failed" echo "# local-host-names - include all aliases for your machine here" \ - > "${D}"/etc/mail/local-host-names || die "local-host-names echo failed" + > "${ED}"/etc/mail/local-host-names || die "local-host-names echo failed" - cat <<- EOF > "${ED}"/etc/mail/trusted-users + cat <<- EOF > "${ED}"/etc/mail/trusted-users || die "trusted-users cat failed" # trusted-users - users that can send mail as others without a warning # apache, mailman, majordomo, uucp are good candidates EOF - cat <<- EOF > "${ED}"/etc/mail/access - # Check the /usr/share/doc/sendmail/README.cf file for a description + cat <<- EOF > "${ED}"/etc/mail/access || die "access cat failed" + # Check the ${EPREFIX}/usr/share/sendmail-cf/README file for a description # of the format of this file. (search for access_db in that file) - # The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc - # package. # EOF - cat <<- EOF > "${ED}"/etc/conf.d/sendmail + cat <<- EOF > "${ED}"/etc/conf.d/sendmail || die "sendmail cat failed" # Config file for /etc/init.d/sendmail # add start-up options here SENDMAIL_OPTS="-bd -q30m -L sm-mta" # default daemon mode @@ -198,9 +270,9 @@ src_install() { if use sasl; then dodir /etc/sasl2 - cat <<- EOF > "${ED}"/etc/sasl2/Sendmail.conf - pwcheck_method: saslauthd - mech_list: PLAIN LOGIN + cat <<- EOF > "${ED}"/etc/sasl2/Sendmail.conf || die "Sendmail.conf cat failed" + pwcheck_method: saslauthd + mech_list: PLAIN LOGIN EOF fi @@ -209,3 +281,29 @@ src_install() { systemd_dounit "${FILESDIR}"/sendmail.service systemd_dounit "${FILESDIR}"/sm-client.service } + +pkg_postinst() { + if ! use berkdb; then + ewarn "If your configuration relies on userdb, you should install" + ewarn "this package with USE=berkdb." + fi + + if ! use mbox; then + elog "Starting with mail-mta/sendmail-8.18.1 you could use either" + elog "procmail or maildrop to use maildir-style mailbox in user's home directory." + elog "" + elog "If you prefer procmail (default), emerge mail-filter/procmail with USE=-mbox" + elog "and include the following lines in sendmail.mc to create your sendmail.cf" + elog "configuration file:" + elog "\tFEATURE(\`local_procmail')dnl" + elog "\tMAILER(\`procmail')dnl" + elog "" + elog "If you prefer maildrop, you'll need to ensure that you configure a mail" + elog "storage location using DEFAULT in /etc/maildroprc, for example:" + elog "\tDEFAULT=\$HOME/.maildir" + elog "" + elog "and include the following line in sendmail.mc to create your sendmail.cf" + elog "configuration file:" + elog "\tFEATURE(\`local_procmail',\`/usr/bin/maildrop',\`maildrop -d $u')dnl" + fi +} diff --git a/mail-mta/sendmail/sendmail-8.19.0.0-r1.ebuild b/mail-mta/sendmail/sendmail-8.19.0.0-r1.ebuild new file mode 100644 index 000000000000..221c435e3c60 --- /dev/null +++ b/mail-mta/sendmail/sendmail-8.19.0.0-r1.ebuild @@ -0,0 +1,310 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Note: please bump this together with mail-filter/libmilter and app-shells/smrsh + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/sendmail.asc" +inherit systemd toolchain-funcs verify-sig + +DESCRIPTION="Widely-used Mail Transport Agent (MTA)" +HOMEPAGE="https://www.sendmail.org/" +if [[ -n $(ver_cut 4) ]] ; then + # Snapshots have an extra version component (e.g. 8.17.1 vs 8.17.1.9) + SRC_URI=" + https://ftp.sendmail.org/snapshots/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/snapshots/${PN}.${PV}.tar.gz.sig ) + " +fi + +SRC_URI+=" + https://ftp.sendmail.org/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/${PN}.${PV}.tar.gz.sig ) +" +SRC_URI+=" + https://ftp.sendmail.org/past-releases/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/past-releases/${PN}.${PV}.tar.gz.sig ) +" + +LICENSE="Sendmail GPL-2" # GPL-2 is here for initscript +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+berkdb eai fips ldap mbox nis sasl selinux ssl tcpd tinycdb" +REQUIRED_USE=" + || ( berkdb tinycdb ) + fips? ( ssl ) +" + +DEPEND=" + acct-group/smmsp + >=acct-user/smmsp-0-r2 + net-mail/mailbase + berkdb? ( >=sys-libs/db-3.2:= ) + eai? ( dev-libs/icu:= ) + elibc_musl? ( virtual/libcrypt:= ) + ldap? ( net-nds/openldap:= ) + nis? ( net-libs/libnsl:= ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.10 ) + ssl? ( + >=dev-libs/openssl-1.1.1:= + fips? ( >=dev-libs/openssl-3:=[fips] ) + ) + tcpd? ( sys-apps/tcp-wrappers ) + tinycdb? ( dev-db/tinycdb ) +" +RDEPEND=" + ${DEPEND} + >=mail-filter/libmilter-1.0.2_p2 + sys-devel/m4 + !mail-mta/courier + !mail-mta/esmtp + !mail-mta/exim + !mail-mta/msmtp[mta] + !mail-mta/netqmail + !mail-mta/notqmail + !mail-mta/nullmailer + !mail-mta/opensmtpd + !mail-mta/postfix + !>=mail-mta/ssmtp-2.64-r2[mta] + selinux? ( sec-policy/selinux-sendmail ) +" +BDEPEND=" + sys-devel/m4 + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-sendmail-20251229 ) +" +PDEPEND=" + !mbox? ( + || ( + mail-filter/procmail + mail-filter/maildrop + ) + ) +" +PATCHES=( + "${FILESDIR}"/${PN}-8.13.1-delivered_hdr.patch + "${FILESDIR}"/${PN}-8.16.1-build-system.patch + "${FILESDIR}"/${PN}-8.19.0.0-newdb.patch +) + +src_prepare() { + default + + local confCCOPTS="${CFLAGS}" + local confENVDEF="-DMAXDAEMONS=64 -DHAS_GETHOSTBYNAME2=1" + local confLDOPTS="${LDFLAGS}" + local confLIBS= + local confMAPDEF="-DMAP_REGEX" + local conf_sendmail_LIBS= + + # Always enable ipv6 and sockets + confENVDEF+=" -DNETINET6 -DSOCKETMAP" + + # Enable same domain/one domain features + confENVDEV+=" -D_FFR_SAMEDOMAIN -D_FFR_MF_ONEDOMAIN" + + if use berkdb; then + # See bug #808954 for FLOCK + confENVDEF+=" -DHASFLOCK=1" + confMAPDEF+=" -DNEWDB" + confLIBS+=" -ldb" + else + confMAPDEF+=" -UNEWDB" + fi + + if use eai; then + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags icu-uc)" + confENVDEF+=" -DUSE_EAI" + confLIBS+=" $($(tc-getPKG_CONFIG) --libs icu-uc)" + fi + + if use ldap; then + confMAPDEF+=" -DLDAPMAP" + confLIBS+=" -lldap -llber" + fi + + use nis && confENVDEF+=" -DNIS" + + if use sasl; then + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags libsasl2)" + confENVDEF+=" -DSASL=2" + conf_sendmail_LIBS+=" $($(tc-getPKG_CONFIG) --libs libsasl2)" + fi + + if use ssl; then + # Bug #542370 - lets add support for modern crypto (PFS) + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags openssl)" + confENVDEF+=" -DSTARTTLS -D_FFR_DEAL_WITH_ERROR_SSL" + confENVDEF+=" -D_FFR_TLS_1 -D_FFR_TLS_EC" + # Bug #944822 - fix certification chain with intermediate cert file + confENVDEF+=" -D_FFR_TLS_USE_CERTIFICATE_CHAIN_FILE" + confENVDEF+=" -DDANE" + + if use fips; then + confENVDEF+=" -D_FFR_FIPSMODE" + fi + + conf_sendmail_LIBS+=" $($(tc-getPKG_CONFIG) --libs openssl)" + fi + + if use tcpd; then + confENVDEF+=" -DTCPWRAPPERS" + confLIBS+=" -lwrap" + fi + + if use tinycdb; then + confMAPDEF+=" -DCDB=2" + confLIBS+=" -lcdb" + else + confMAPDEF+=" -UCDB" + fi + + if use elibc_musl; then + confENVDEF+=" -DHASSTRERROR -DHASRRESVPORT=0 -DNEEDSGETIPNODE" + + eapply "${FILESDIR}"/${PN}-musl-stack-size.patch + eapply "${FILESDIR}"/${PN}-musl-disable-cdefs.patch + fi + + sed -e "s|@@confCC@@|$(tc-getCC)|" \ + -e "s|@@confCCOPTS@@|${confCCOPTS}|" \ + -e "s|@@confENVDEF@@|${confENVDEF}|" \ + -e "s|@@confLDOPTS@@|${confLDOPTS}|" \ + -e "s|@@confLIBS@@|${confLIBS}|" \ + -e "s|@@confMAPDEF@@|${confMAPDEF}|" \ + -e "s|@@conf_sendmail_LIBS@@|${conf_sendmail_LIBS}|" \ + "${FILESDIR}"/site.config.m4 > devtools/Site/site.config.m4 \ + || die "failed to generate site.config.m4" + + echo "APPENDDEF(\`confLIBDIRS', \`-L${EPREFIX}/usr/$(get_libdir)')" \ + >> devtools/Site/site.config.m4 || die "failed adding to site.config.m4" +} + +src_compile() { + sh Build AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" || die "compilation failed in main build script" +} + +src_install() { + dodir /usr/{bin,$(get_libdir)} + dodir /usr/share/man/man{1,5,8} /usr/sbin /usr/share/sendmail-cf + dodir /var/spool/{mqueue,clientmqueue} /etc/conf.d + + keepdir /var/spool/{clientmqueue,mqueue} + + local emakeargs=( + DESTDIR="${D}" LIBDIR="/usr/$(get_libdir)" + MANROOT=/usr/share/man/man + SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root + MANOWN=root MANGRP=root INCOWN=root INCGRP=root + LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root + MSPQOWN=root CFOWN=root CFGRP=root + ) + + local dir + for dir in libsmutil sendmail mailstats praliases smrsh makemap vacation editmap; do + emake -j1 -C obj.*/${dir} "${emakeargs[@]}" install + done + for dir in rmail mail.local; do + emake -j1 -C obj.*/${dir} "${emakeargs[@]}" force-install + done + + fowners root:smmsp /usr/sbin/sendmail + fperms 2555 /usr/sbin/sendmail + fowners smmsp:smmsp /var/spool/clientmqueue + fperms 770 /var/spool/clientmqueue + fperms 700 /var/spool/mqueue + dodoc FAQ KNOWNBUGS README RELEASE_NOTES doc/op/op.ps + + dodoc sendmail/{SECURITY,TUNING} + newdoc sendmail/README README.sendmail + newdoc smrsh/README README.smrsh + + newdoc cf/README README.cf + newdoc cf/cf/README README.install-cf + + dodoc -r contrib + + cp -pPR cf/. "${ED}"/usr/share/sendmail-cf || die + + insinto /etc/mail + if use mbox; then + newins "${FILESDIR}"/sendmail.mc-r1 sendmail.mc + else + newins "${FILESDIR}"/sendmail-maildir.mc sendmail.mc + fi + + # See discussion on bug #730890 + m4 "${ED}"/usr/share/sendmail-cf/m4/cf.m4 \ + <(grep -v "${EPREFIX}"/usr/share/sendmail-cf/m4/cf.m4 "${ED}"/etc/mail/sendmail.mc) \ + > "${ED}"/etc/mail/sendmail.cf || die "cf.m4 failed" + + echo "include(\`/usr/share/sendmail-cf/m4/cf.m4')dnl" \ + > "${ED}"/etc/mail/submit.mc || die "submit.mc echo failed" + + cat "${ED}"/usr/share/sendmail-cf/cf/submit.mc \ + >> "${ED}"/etc/mail/submit.mc || die "submit.mc cat failed" + + echo "# local-host-names - include all aliases for your machine here" \ + > "${ED}"/etc/mail/local-host-names || die "local-host-names echo failed" + + cat <<- EOF > "${ED}"/etc/mail/trusted-users || die "trusted-users cat failed" + # trusted-users - users that can send mail as others without a warning + # apache, mailman, majordomo, uucp are good candidates + EOF + + cat <<- EOF > "${ED}"/etc/mail/access || die "access cat failed" + # Check the ${EPREFIX}/usr/share/sendmail-cf/README file for a description + # of the format of this file. (search for access_db in that file) + # + + EOF + + cat <<- EOF > "${ED}"/etc/conf.d/sendmail || die "sendmail cat failed" + # Config file for /etc/init.d/sendmail + # add start-up options here + SENDMAIL_OPTS="-bd -q30m -L sm-mta" # default daemon mode + CLIENTMQUEUE_OPTS="-Ac -q30m -L sm-cm" # clientmqueue + KILL_OPTS="" # add -9/-15/your favorite evil SIG level here + + EOF + + if use sasl; then + dodir /etc/sasl2 + cat <<- EOF > "${ED}"/etc/sasl2/Sendmail.conf || die "Sendmail.conf cat failed" + pwcheck_method: saslauthd + mech_list: PLAIN LOGIN + + EOF + fi + + doinitd "${FILESDIR}"/sendmail + systemd_dounit "${FILESDIR}"/sendmail.service + systemd_dounit "${FILESDIR}"/sm-client.service +} + +pkg_postinst() { + if ! use berkdb; then + ewarn "If your configuration relies on userdb, you should install" + ewarn "this package with USE=berkdb." + fi + + if ! use mbox; then + elog "Starting with mail-mta/sendmail-8.18.1 you could use either" + elog "procmail or maildrop to use maildir-style mailbox in user's home directory." + elog "" + elog "If you prefer procmail (default), emerge mail-filter/procmail with USE=-mbox" + elog "and include the following lines in sendmail.mc to create your sendmail.cf" + elog "configuration file:" + elog "\tFEATURE(\`local_procmail')dnl" + elog "\tMAILER(\`procmail')dnl" + elog "" + elog "If you prefer maildrop, you'll need to ensure that you configure a mail" + elog "storage location using DEFAULT in /etc/maildroprc, for example:" + elog "\tDEFAULT=\$HOME/.maildir" + elog "" + elog "and include the following line in sendmail.mc to create your sendmail.cf" + elog "configuration file:" + elog "\tFEATURE(\`local_procmail',\`/usr/bin/maildrop',\`maildrop -d $u')dnl" + fi +} diff --git a/mail-mta/sendmail/sendmail-8.19.0.1.ebuild b/mail-mta/sendmail/sendmail-8.19.0.1.ebuild new file mode 100644 index 000000000000..8b7f6c28c5fb --- /dev/null +++ b/mail-mta/sendmail/sendmail-8.19.0.1.ebuild @@ -0,0 +1,309 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Note: please bump this together with mail-filter/libmilter and app-shells/smrsh + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/sendmail.asc" +inherit systemd toolchain-funcs verify-sig + +DESCRIPTION="Widely-used Mail Transport Agent (MTA)" +HOMEPAGE="https://www.sendmail.org/" +if [[ -n $(ver_cut 4) ]] ; then + # Snapshots have an extra version component (e.g. 8.17.1 vs 8.17.1.9) + SRC_URI=" + https://ftp.sendmail.org/snapshots/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/snapshots/${PN}.${PV}.tar.gz.sig ) + " +fi + +SRC_URI+=" + https://ftp.sendmail.org/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/${PN}.${PV}.tar.gz.sig ) +" +SRC_URI+=" + https://ftp.sendmail.org/past-releases/${PN}.${PV}.tar.gz + verify-sig? ( https://ftp.sendmail.org/past-releases/${PN}.${PV}.tar.gz.sig ) +" + +LICENSE="Sendmail GPL-2" # GPL-2 is here for initscript +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+berkdb eai fips ldap mbox nis sasl selinux ssl tcpd tinycdb" +REQUIRED_USE=" + || ( berkdb tinycdb ) + fips? ( ssl ) +" + +DEPEND=" + acct-group/smmsp + >=acct-user/smmsp-0-r2 + net-mail/mailbase + berkdb? ( >=sys-libs/db-3.2:= ) + eai? ( dev-libs/icu:= ) + elibc_musl? ( virtual/libcrypt:= ) + ldap? ( net-nds/openldap:= ) + nis? ( net-libs/libnsl:= ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.10 ) + ssl? ( + >=dev-libs/openssl-1.1.1:= + fips? ( >=dev-libs/openssl-3:=[fips] ) + ) + tcpd? ( sys-apps/tcp-wrappers ) + tinycdb? ( dev-db/tinycdb ) +" +RDEPEND=" + ${DEPEND} + >=mail-filter/libmilter-1.0.2_p2 + sys-devel/m4 + !mail-mta/courier + !mail-mta/esmtp + !mail-mta/exim + !mail-mta/msmtp[mta] + !mail-mta/netqmail + !mail-mta/notqmail + !mail-mta/nullmailer + !mail-mta/opensmtpd + !mail-mta/postfix + !>=mail-mta/ssmtp-2.64-r2[mta] + selinux? ( sec-policy/selinux-sendmail ) +" +BDEPEND=" + sys-devel/m4 + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-sendmail-20251229 ) +" +PDEPEND=" + !mbox? ( + || ( + mail-filter/procmail + mail-filter/maildrop + ) + ) +" +PATCHES=( + "${FILESDIR}"/${PN}-8.13.1-delivered_hdr.patch + "${FILESDIR}"/${PN}-8.16.1-build-system.patch +) + +src_prepare() { + default + + local confCCOPTS="${CFLAGS}" + local confENVDEF="-DMAXDAEMONS=64 -DHAS_GETHOSTBYNAME2=1" + local confLDOPTS="${LDFLAGS}" + local confLIBS= + local confMAPDEF="-DMAP_REGEX" + local conf_sendmail_LIBS= + + # Always enable ipv6 and sockets + confENVDEF+=" -DNETINET6 -DSOCKETMAP" + + # Enable same domain/one domain features + confENVDEV+=" -D_FFR_SAMEDOMAIN -D_FFR_MF_ONEDOMAIN" + + if use berkdb; then + # See bug #808954 for FLOCK + confENVDEF+=" -DHASFLOCK=1" + confMAPDEF+=" -DNEWDB" + confLIBS+=" -ldb" + else + confMAPDEF+=" -UNEWDB" + fi + + if use eai; then + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags icu-uc)" + confENVDEF+=" -DUSE_EAI" + confLIBS+=" $($(tc-getPKG_CONFIG) --libs icu-uc)" + fi + + if use ldap; then + confMAPDEF+=" -DLDAPMAP" + confLIBS+=" -lldap -llber" + fi + + use nis && confENVDEF+=" -DNIS" + + if use sasl; then + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags libsasl2)" + confENVDEF+=" -DSASL=2" + conf_sendmail_LIBS+=" $($(tc-getPKG_CONFIG) --libs libsasl2)" + fi + + if use ssl; then + # Bug #542370 - lets add support for modern crypto (PFS) + confCCOPTS+=" $($(tc-getPKG_CONFIG) --cflags openssl)" + confENVDEF+=" -DSTARTTLS -D_FFR_DEAL_WITH_ERROR_SSL" + confENVDEF+=" -D_FFR_TLS_1 -D_FFR_TLS_EC" + # Bug #944822 - fix certification chain with intermediate cert file + confENVDEF+=" -D_FFR_TLS_USE_CERTIFICATE_CHAIN_FILE" + confENVDEF+=" -DDANE" + + if use fips; then + confENVDEF+=" -D_FFR_FIPSMODE" + fi + + conf_sendmail_LIBS+=" $($(tc-getPKG_CONFIG) --libs openssl)" + fi + + if use tcpd; then + confENVDEF+=" -DTCPWRAPPERS" + confLIBS+=" -lwrap" + fi + + if use tinycdb; then + confMAPDEF+=" -DCDB=2" + confLIBS+=" -lcdb" + else + confMAPDEF+=" -UCDB" + fi + + if use elibc_musl; then + confENVDEF+=" -DHASSTRERROR -DHASRRESVPORT=0 -DNEEDSGETIPNODE" + + eapply "${FILESDIR}"/${PN}-musl-stack-size.patch + eapply "${FILESDIR}"/${PN}-musl-disable-cdefs.patch + fi + + sed -e "s|@@confCC@@|$(tc-getCC)|" \ + -e "s|@@confCCOPTS@@|${confCCOPTS}|" \ + -e "s|@@confENVDEF@@|${confENVDEF}|" \ + -e "s|@@confLDOPTS@@|${confLDOPTS}|" \ + -e "s|@@confLIBS@@|${confLIBS}|" \ + -e "s|@@confMAPDEF@@|${confMAPDEF}|" \ + -e "s|@@conf_sendmail_LIBS@@|${conf_sendmail_LIBS}|" \ + "${FILESDIR}"/site.config.m4 > devtools/Site/site.config.m4 \ + || die "failed to generate site.config.m4" + + echo "APPENDDEF(\`confLIBDIRS', \`-L${EPREFIX}/usr/$(get_libdir)')" \ + >> devtools/Site/site.config.m4 || die "failed adding to site.config.m4" +} + +src_compile() { + sh Build AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" || die "compilation failed in main build script" +} + +src_install() { + dodir /usr/{bin,$(get_libdir)} + dodir /usr/share/man/man{1,5,8} /usr/sbin /usr/share/sendmail-cf + dodir /var/spool/{mqueue,clientmqueue} /etc/conf.d + + keepdir /var/spool/{clientmqueue,mqueue} + + local emakeargs=( + DESTDIR="${D}" LIBDIR="/usr/$(get_libdir)" + MANROOT=/usr/share/man/man + SBINOWN=root SBINGRP=root UBINOWN=root UBINGRP=root + MANOWN=root MANGRP=root INCOWN=root INCGRP=root + LIBOWN=root LIBGRP=root GBINOWN=root GBINGRP=root + MSPQOWN=root CFOWN=root CFGRP=root + ) + + local dir + for dir in libsmutil sendmail mailstats praliases smrsh makemap vacation editmap; do + emake -j1 -C obj.*/${dir} "${emakeargs[@]}" install + done + for dir in rmail mail.local; do + emake -j1 -C obj.*/${dir} "${emakeargs[@]}" force-install + done + + fowners root:smmsp /usr/sbin/sendmail + fperms 2555 /usr/sbin/sendmail + fowners smmsp:smmsp /var/spool/clientmqueue + fperms 770 /var/spool/clientmqueue + fperms 700 /var/spool/mqueue + dodoc FAQ KNOWNBUGS README RELEASE_NOTES doc/op/op.ps + + dodoc sendmail/{SECURITY,TUNING} + newdoc sendmail/README README.sendmail + newdoc smrsh/README README.smrsh + + newdoc cf/README README.cf + newdoc cf/cf/README README.install-cf + + dodoc -r contrib + + cp -pPR cf/. "${ED}"/usr/share/sendmail-cf || die + + insinto /etc/mail + if use mbox; then + newins "${FILESDIR}"/sendmail.mc-r1 sendmail.mc + else + newins "${FILESDIR}"/sendmail-maildir.mc sendmail.mc + fi + + # See discussion on bug #730890 + m4 "${ED}"/usr/share/sendmail-cf/m4/cf.m4 \ + <(grep -v "${EPREFIX}"/usr/share/sendmail-cf/m4/cf.m4 "${ED}"/etc/mail/sendmail.mc) \ + > "${ED}"/etc/mail/sendmail.cf || die "cf.m4 failed" + + echo "include(\`/usr/share/sendmail-cf/m4/cf.m4')dnl" \ + > "${ED}"/etc/mail/submit.mc || die "submit.mc echo failed" + + cat "${ED}"/usr/share/sendmail-cf/cf/submit.mc \ + >> "${ED}"/etc/mail/submit.mc || die "submit.mc cat failed" + + echo "# local-host-names - include all aliases for your machine here" \ + > "${ED}"/etc/mail/local-host-names || die "local-host-names echo failed" + + cat <<- EOF > "${ED}"/etc/mail/trusted-users || die "trusted-users cat failed" + # trusted-users - users that can send mail as others without a warning + # apache, mailman, majordomo, uucp are good candidates + EOF + + cat <<- EOF > "${ED}"/etc/mail/access || die "access cat failed" + # Check the ${EPREFIX}/usr/share/sendmail-cf/README file for a description + # of the format of this file. (search for access_db in that file) + # + + EOF + + cat <<- EOF > "${ED}"/etc/conf.d/sendmail || die "sendmail cat failed" + # Config file for /etc/init.d/sendmail + # add start-up options here + SENDMAIL_OPTS="-bd -q30m -L sm-mta" # default daemon mode + CLIENTMQUEUE_OPTS="-Ac -q30m -L sm-cm" # clientmqueue + KILL_OPTS="" # add -9/-15/your favorite evil SIG level here + + EOF + + if use sasl; then + dodir /etc/sasl2 + cat <<- EOF > "${ED}"/etc/sasl2/Sendmail.conf || die "Sendmail.conf cat failed" + pwcheck_method: saslauthd + mech_list: PLAIN LOGIN + + EOF + fi + + doinitd "${FILESDIR}"/sendmail + systemd_dounit "${FILESDIR}"/sendmail.service + systemd_dounit "${FILESDIR}"/sm-client.service +} + +pkg_postinst() { + if ! use berkdb; then + ewarn "If your configuration relies on userdb, you should install" + ewarn "this package with USE=berkdb." + fi + + if ! use mbox; then + elog "Starting with mail-mta/sendmail-8.18.1 you could use either" + elog "procmail or maildrop to use maildir-style mailbox in user's home directory." + elog "" + elog "If you prefer procmail (default), emerge mail-filter/procmail with USE=-mbox" + elog "and include the following lines in sendmail.mc to create your sendmail.cf" + elog "configuration file:" + elog "\tFEATURE(\`local_procmail')dnl" + elog "\tMAILER(\`procmail')dnl" + elog "" + elog "If you prefer maildrop, you'll need to ensure that you configure a mail" + elog "storage location using DEFAULT in /etc/maildroprc, for example:" + elog "\tDEFAULT=\$HOME/.maildir" + elog "" + elog "and include the following line in sendmail.mc to create your sendmail.cf" + elog "configuration file:" + elog "\tFEATURE(\`local_procmail',\`/usr/bin/maildrop',\`maildrop -d $u')dnl" + fi +} |
