From bb59556b3302a941db4630613c604644d5f7a617 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 11 Apr 2025 08:43:59 +0100 Subject: gentoo auto-resync : 11:04:2025 - 08:43:58 --- mail-mta/Manifest.gz | Bin 2381 -> 2377 bytes mail-mta/postfix/Manifest | 4 +- mail-mta/postfix/postfix-3.11_pre20250323.ebuild | 321 --------------------- mail-mta/postfix/postfix-3.11_pre20250409.ebuild | 321 +++++++++++++++++++++ mail-mta/sendmail/Manifest | 8 +- .../sendmail/files/sendmail-8.18.1-ctime.patch | 13 + mail-mta/sendmail/files/sendmail-maildir.mc | 13 + .../files/sendmail-musl-disable-cdefs.patch | 11 + .../sendmail/files/sendmail-musl-stack-size.patch | 42 +++ mail-mta/sendmail/metadata.xml | 14 +- mail-mta/sendmail/sendmail-8.18.1.ebuild | 280 ++++++++++++++++++ 11 files changed, 702 insertions(+), 325 deletions(-) delete mode 100644 mail-mta/postfix/postfix-3.11_pre20250323.ebuild create mode 100644 mail-mta/postfix/postfix-3.11_pre20250409.ebuild create mode 100644 mail-mta/sendmail/files/sendmail-8.18.1-ctime.patch create mode 100644 mail-mta/sendmail/files/sendmail-maildir.mc create mode 100644 mail-mta/sendmail/files/sendmail-musl-disable-cdefs.patch create mode 100644 mail-mta/sendmail/files/sendmail-musl-stack-size.patch create mode 100644 mail-mta/sendmail/sendmail-8.18.1.ebuild (limited to 'mail-mta') diff --git a/mail-mta/Manifest.gz b/mail-mta/Manifest.gz index 2483f10aed3f..97afcfad6cb8 100644 Binary files a/mail-mta/Manifest.gz and b/mail-mta/Manifest.gz differ diff --git a/mail-mta/postfix/Manifest b/mail-mta/postfix/Manifest index 5bb334aa8bc1..bab020dad20f 100644 --- a/mail-mta/postfix/Manifest +++ b/mail-mta/postfix/Manifest @@ -5,13 +5,13 @@ AUX smtp.pass 29 BLAKE2B 589915bd2856fa64e22caa12fca54ef342eb07606de38d3879c13ac AUX smtp.sasl 42 BLAKE2B 67e9108101779b6027fa1e5cc7c9256a606d440e15bb037a0da186e6b4983ab26e88ede2f0604737c78144c03e182f66005062f1d49e10443d1ddb9757461d1f SHA512 a48e2bd173c4443dd2c389f6973a541dbcba4223b52b42b409a68d934a7fc82a98d4027267befcd5db6ec628cce6a9dffdf044e6fbd774b6e748f07f4106db47 DIST postfix-3.10.0.tar.gz 5047589 BLAKE2B b1788cabe0e2013ae01f3f8b8d78e2a191e2d439ce7a60948216f36201096027c3b926e23494fe6ccaced715a2ef2640a3420965ce94ada1fe5a7a1c65ac3022 SHA512 dbb492ce7747c196ca99a345bcafe7f0d905f80e38ecf680ab8976d3391a1eb1c80e4b0fec487947ed793a3163e39a9fcd34dc6f172dee7cac4c11a1ef76275e DIST postfix-3.10.1.tar.gz 5047708 BLAKE2B ff2ff4a6fc61eb7f513124abc7a03f69b4c195967816a28a4708fbe7256e78959d499941747ef2fea7999bd2754e2e640e98e247a7870449cffb66ebf30ffee9 SHA512 f977668a3475493c679884fb06e7b6aee33e082b2a828e63e1f67515907ded7b406468d2bb03685275b9cde50ac04c03415876119401d0ca45c5b28ca0277cfe -DIST postfix-3.11-20250323.tar.gz 5052693 BLAKE2B b62e4b44fcc4059e392df2a20159a4a216ecbc592f280c2c981c56cfbbcd3e2bbbb5dd48cb1d2042e7c462829460927a7d622da92f8c7e5ffa92d64549c627b1 SHA512 71461277ffad0e8cf0d20aa79983b4e4e8fe6028cdae28b25892cb004586b897a8fdf61a3344064fe450811e16421282b5ad8f9df0c70e15b6045d6aa9d422d3 +DIST postfix-3.11-20250409.tar.gz 5056704 BLAKE2B 15209a920be4e89d8843667eaaf75fb41c9a1ca05e5cfaab57fc12514f4f9e8bb8639c5c42563557be599e82e83f2e8372b2d0582c9f8c2332845e6863056f01 SHA512 a010a311aca481ad62fa15744ca3b2e9216686ed283b0240d5bd05e93c404e4fe0a9996c7d0a2769b9eef38011cabaed1008a9a5da54ea043d5c3591a3c6ead4 DIST postfix-3.9.1.tar.gz 4953855 BLAKE2B 78be7bf0f0d9e46429b40f98ddc98cac442cfdb404d77073346c973f3d0d4c52f299fc7f5d64bddaaf2db60dd234c52790f1efe4995faee8e2cd10c6f8e2096f SHA512 79109d9f19e51d9089a0f2b5c6134972148a6e1a7e385aabc79c0a32e09c78715ad94a93ae3eca1171b770c62d6bf3b8e079b94183ae851001db1a0cf21fff15 DIST postfix-3.9.2.tar.gz 4956185 BLAKE2B 539a09282e939a62de1f7aab4648a399872df744cb6e6ec4bd63c5281ada9c439c953e5da524d59dfe3c59debab8a6933046a6099efff2688dc1b3824edaa35d SHA512 14154077bd474283e522c427d9e45b3599be0c748c0bd2131309fcc506162e8522669a230c1a35bb467a5216d7e99c3d9685fc8f581232cd12e9337ea48d1981 DIST postfix-3.9.3.tar.gz 4956314 BLAKE2B 01d69092483f3894a54489c7455a4a1a0125e13b3e7675316ce0a34a193004c488a123c473d243f6b3ca6e288807a7251d165d64f0e448e198ebee6422e97851 SHA512 7539d81296da6d7d569a1f7ad0cee413a87e0293f09b5fbcc7d4b847dfbfba02c106a4d6be87c7443831fee1d0d6cc7fa152133dd784e960865afc240fda1946 EBUILD postfix-3.10.0.ebuild 8664 BLAKE2B 5f4df04cbc8753bf4ba1af87859e88937ca53bcac6ae87700b2bb9da95202b32e206c27f28166e7fc1a18d77ccccb711166e21c1dc3082d01193106a60268ab1 SHA512 95c5f5604faaf8004963f7350cdb786dbadce2418a2d35c3834d76ece5e57dc475de0b56c504367e9e432ac35254f647e95295613fc54317b15536bd4e7d2d1f EBUILD postfix-3.10.1.ebuild 8687 BLAKE2B a1a76fa33ce58bc3e6c95fbee92b0215a70813b29a80e6a51d8baf5f16809c792d273c26ce2daaa97f748eb71f82b62f539a03436c835a6c2a694ed6bd876df5 SHA512 c0bd9537e7df80aa51ae23684105c00e6a6adcc236782e4322d9d8b4977a6f2a7e224f8a0ed6a20c37b1571c4ea2f2c155f52fc929371877f2090bde9e3d0bfb -EBUILD postfix-3.11_pre20250323.ebuild 8691 BLAKE2B 359cd413ca41738457b8fad02a55ad5622bdf5a0a828665a80cc8dc94e126810f59592dc78c82231472af0d98de63a1ffb7257e8318bbc95b4859eda508d318d SHA512 0cc5cc9ea55df612e63ccbd52ccf4ac5eb7fe3ae706e52289da2e34c1856501fa6e7f095e6f91e8b2dded43fff9f83b618ffb2e8b5de8cc0142eb394cc816498 +EBUILD postfix-3.11_pre20250409.ebuild 8691 BLAKE2B 359cd413ca41738457b8fad02a55ad5622bdf5a0a828665a80cc8dc94e126810f59592dc78c82231472af0d98de63a1ffb7257e8318bbc95b4859eda508d318d SHA512 0cc5cc9ea55df612e63ccbd52ccf4ac5eb7fe3ae706e52289da2e34c1856501fa6e7f095e6f91e8b2dded43fff9f83b618ffb2e8b5de8cc0142eb394cc816498 EBUILD postfix-3.9.1.ebuild 8593 BLAKE2B 1dc0370fc86b3e1370b8d267a0c3b202e3543eb530877a8ca579b20535a051bf3c28fd5f0c370fd12f520e82d751356cd79849e56a53ed880fa8f93757e347aa SHA512 df4f65a343059bf6fc9746d0a525178a052e33e74e395a9b3dda1458242677a47dde5d278d09a5b3ecb4ad905b50e5bfa28a493c2f031acc790dac7dc732ecec EBUILD postfix-3.9.2.ebuild 8599 BLAKE2B 9968c98b1752d75ee80adf3e287ebd99d2a9212b6343ddd174923824aae005fded4ef166ff0a9d170a9606b17d57bf66ffddf71ac21bec403283cfb967012a3b SHA512 740877cc65837a620de3f49b7bf47aa55f99cb67b303a7337b4ed9b5d683134961d085394b6c9255b01529af147f956332f345f2f1c575342a1022a47702bb8f EBUILD postfix-3.9.3.ebuild 8599 BLAKE2B 9968c98b1752d75ee80adf3e287ebd99d2a9212b6343ddd174923824aae005fded4ef166ff0a9d170a9606b17d57bf66ffddf71ac21bec403283cfb967012a3b SHA512 740877cc65837a620de3f49b7bf47aa55f99cb67b303a7337b4ed9b5d683134961d085394b6c9255b01529af147f956332f345f2f1c575342a1022a47702bb8f diff --git a/mail-mta/postfix/postfix-3.11_pre20250323.ebuild b/mail-mta/postfix/postfix-3.11_pre20250323.ebuild deleted file mode 100644 index 32a53e98dd5c..000000000000 --- a/mail-mta/postfix/postfix-3.11_pre20250323.ebuild +++ /dev/null @@ -1,321 +0,0 @@ -# Copyright 1999-2025 Gentoo 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/_pre/-}" -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" -S="${WORKDIR}/${MY_SRC}" - -LICENSE="|| ( IBM EPL-2.0 )" -SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~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 - 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:= ) - 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} - 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 )" - -# require at least one db implementation for newalias (and postmap) -# command to function properly -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|" \ - 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 - - # 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}="" - done - - # Make sure LDFLAGS get passed down to the executables. - local mycc="" mylibs="${LDFLAGS} -ldl" - - # libpcre is EOL. prefer libpcre2 - mycc=" -DHAS_PCRE=2" - AUXLIBS_PCRE="$(pcre2-config --libs8)" - - 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 $(pkg-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 -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 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/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" - # 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" - # 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 - 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 \ - 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 "${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, 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" \ - "${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 mysql/postgres unnecessarily - bug #359913 - use mysql || 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* - 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() { - # 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 - 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 - # 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 - - # 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.11_pre20250409.ebuild b/mail-mta/postfix/postfix-3.11_pre20250409.ebuild new file mode 100644 index 000000000000..32a53e98dd5c --- /dev/null +++ b/mail-mta/postfix/postfix-3.11_pre20250409.ebuild @@ -0,0 +1,321 @@ +# Copyright 1999-2025 Gentoo 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/_pre/-}" +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" +S="${WORKDIR}/${MY_SRC}" + +LICENSE="|| ( IBM EPL-2.0 )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~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 + 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:= ) + 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} + 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 )" + +# require at least one db implementation for newalias (and postmap) +# command to function properly +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|" \ + 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 + + # 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}="" + done + + # Make sure LDFLAGS get passed down to the executables. + local mycc="" mylibs="${LDFLAGS} -ldl" + + # libpcre is EOL. prefer libpcre2 + mycc=" -DHAS_PCRE=2" + AUXLIBS_PCRE="$(pcre2-config --libs8)" + + 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 $(pkg-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 -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 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/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" + # 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" + # 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 + 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 \ + 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 "${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, 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" \ + "${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 mysql/postgres unnecessarily - bug #359913 + use mysql || 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* + 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() { + # 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 + 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 + # 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 + + # 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/sendmail/Manifest b/mail-mta/sendmail/Manifest index 646d3b3f91a7..8ee1e3f627dc 100644 --- a/mail-mta/sendmail/Manifest +++ b/mail-mta/sendmail/Manifest @@ -1,11 +1,17 @@ AUX sendmail 595 BLAKE2B fe4532e30c6bc84effbdd59de70a27e2565fa7b4437c1fdc64ca169adf14702b8fa739123f2b0f0d2069b33939efe0c3382ea51716bf5fb1905f04f6074c8ac2 SHA512 0a1611eeec33a7d7eecff75ed6c8f70abf0d6d8cf4a5242f084da0d4139e0e871239e9893a53782e5dab80c4386c62d96ec03839fc98a497e697fce1f7a149aa AUX sendmail-8.16.1-build-system.patch 9701 BLAKE2B f1bbf82ab321b502ecbd5d2658e549275330ec6f6fdd2a31af36aba580adc1fafa74acaf1213798787c5b6c985e86f366f68e4c260212e4856e5778201400bfc SHA512 9a3dad2df6a84729a5dd7dfc7c696acacdb96d1b0856f763604e1183f9fb7e7e5fc6012d4299c9e0a6a57c65d763d4ca607f3c7862a2055aa3aedf3994ed22fe +AUX sendmail-8.18.1-ctime.patch 322 BLAKE2B 743939a84a2b59bbe47dcec7e33a2c96aa34597fc625440820fd55f49aacd87f95e266f170a250c8bb897e8b6c75a1cead2877b95e013feff42519488376c9c2 SHA512 d651ee21468422957c3da908af12d180b2dd870d39c48a8a1b2ed24ade2aae17a1b60ef79fe2ae089930f20d7b8f374cdb2dce7e96a49dc6db98adb19e392d74 AUX sendmail-delivered_hdr.patch 341 BLAKE2B a29362584d77bd317de58c1967a9cfb3a2e0d1c5f0b37504d13c1404830687137f9342fe567ea969b40989115a292d947064f37b307c2a3e9b75051ee53d28ff SHA512 1e97ca1b32e6cbb69fe08d4e1c5dee0763ef874537448e60129f71f82bc92c78fc5d9e124568d21188b6e6e2186a1a3c9f1362b0d0734f7e12e2272643238254 +AUX sendmail-maildir.mc 365 BLAKE2B fa7a8d7d53ab57d41625957d3906022412f5aaf11be6f29c716f6e9c9aec62ebfef29aef12b28268811f9ec00b8e8d5795c38ae56089592ff230f40c51d49d20 SHA512 5c12d3803737364d5747790ada59224192fb4676db4580b85c94176c5c0bb499a2ce13d47e99ab8a6d23f4a70fa9e08e4d7d7ed86f7ba695792c63219b48160d +AUX sendmail-musl-disable-cdefs.patch 352 BLAKE2B 192218bd59e4b5b4b7b7dd8f0a7a3ea19a3df1de3d32ad11c3b7159e55d92d7a2a500c7449dcd2c63b2d84934a18205f45b2962e7a80621697e81bcfbd7e1bdf SHA512 1305d7b0d0742d26fcb742b8751672ec03033abc2b01bb95a31c533dd197903138c3d39468fe104fb4779017d036f5c1656e06454e891e08155b34bbe1718292 +AUX sendmail-musl-stack-size.patch 1522 BLAKE2B c2348f569cf69d52418beef8b2fc5fea31d5e100ab849220aca1ebbae44a955c482c375a02ddf43524894574355cebdc292b9566bfa420dead96df2d229a44a8 SHA512 d3e12943fe7e9babdf700a2d8c0229bc16fa2ea16097615600341dee13f137b157ffa4b03f76c92ba9c5552ca3bf01cb598f6a6201720408df3a37247001a219 AUX sendmail-procmail.mc 295 BLAKE2B ca3a2e0939dbf09ab8e4042737bc8c5489bae114baad9a9c09f1d698ad881fd050e57cec42929709b5635e83d3f6393ea1b70c51e01af8110d145d46ec4ec70a SHA512 eb693fb91acdc3cbc4601d517119300f238c20e86dc0dbc137a209ce56bd5bf7d7a8c9848a143daf932be487d919004da994ba2dbd7494ea5be6e08929549d58 AUX sendmail.mc-r1 285 BLAKE2B 7710e6ae53d3b8e8756a63629a3c6c7f0c8dd21b7f6dc82b9d0bafe426f450132a85f2163f6b832ea6b100eba70c95a4a2927b6a0848faf45891777e0a6eb51d SHA512 f197572f4004cd1f9de4c423d1d5ded382535b9643b32aa8dc03889cdf76bf918702a77a20edde5f2d19276ca7ec473cac5db01c42b0833cda950cfc11cbbf41 AUX sendmail.service 349 BLAKE2B dc154b2fed04553247f3a64e31351377e18f95830dac22b4498f8e2afd7e91844081d7f8eb2efb2e8b9ec9fdf022d919eccb4f383b99c1fa9ec989cc5b69cbde SHA512 4e0f263e5d125cfb0c80f96416ffd1bdb7ce3f53fa78fc516fadd3ef10c6bd6f148e081c2b9f1be4394198fd45713b47520462b70b16bdf6a3c771fa18bbe5e7 AUX site.config.m4 564 BLAKE2B 85bcbe7b9a26071aedf0d1b530c1276d93de21d82972add0908c035a958dc34ebe15941a37add15f24116e3cf2779bf003d965baae10dbbcafdb61f0af453227 SHA512 82d9bbb233e6ffbcef411f8a8184b47aea27f3dc0b41ace053e0107e05a5fe6929d9dd76d3d1baf0ce43be78dc46f40888ad0c93e4f126f6ce0c0372007a262d AUX sm-client.service 418 BLAKE2B a9057cac008c11d3cfd5a4b662cf3fc71a33be79e8890a54e556a258b098ceccc2e9941f62dce868498751bd22f23f45289bc84a8250020b140acbd2b6508b58 SHA512 26e5a64790fd7106e45de0f4dfafb3b648094953bd1831a223ca7c60b7cb75b673fb554b426a6aa0e7dc200a134fd042b4ecc6795641cfddd82bd04e4c7ea324 DIST sendmail.8.17.1.9.tar.gz 2345302 BLAKE2B 378f2f98ffff6457c49f934228964e792acec6f33fbabd89a8712f09f1dc7afc951b7c984a397aa7dd3773d86bdf57a946ea9ac54ae426bc0b8ea4c040e2ad4a SHA512 ad8198b12bdc0037de5b64b2504bd5e0a42bf054274a4834163a7c46953b9aec23d52d58063cc6b925d90199973608f35edeb40128671ae32889f4558e5c0d4b +DIST sendmail.8.18.1.tar.gz 2401566 BLAKE2B 3afa36073fd611c7fdb43ef0ab9f02d5fb8ae388e9471bdc7275c6c9dcee0a654f46ddef505b70e978cb1b818b0da375250678e501676d8bace534d59ee40d90 SHA512 9ce713b44439d4de6faa9e3cdfa2226b44b4fbeb352a5f81584c062570e9472da244158287e489aabe258d28fe54ca4964565c7b0adc7e1763d212be42f98061 EBUILD sendmail-8.17.1.9.ebuild 6460 BLAKE2B 5347fbc062ff276b90f385fd47a48f8f8fa886556c41e89eaea9fd61ee841dce1fab76a1fedf55613f8ea189519a3663376f859c0ca0d0dbd142cd7ab2d0ce4c SHA512 f32e6f63b722ed778b0fa9e2071673de1a76a2c1eed3c28b2c270dab6eeafbf87dedeecb4aa7b93717eb97318d7e93b6cd443483396264f189f0d49b02dea671 -MISC metadata.xml 168 BLAKE2B 2e0e000b4c3b6ca04c12903fdbe278415c05a822623c52e9aa95cbbf3d50bcb1246b7edbda7d2f6b559af8950c6374e6e0a69b76319964cfe686bf50b0604a57 SHA512 4dcf45d1809e8390a2d8155c8ebfe0dd610203e392aeab0ccd8a10f42cc8532a4925eff32b35e7a6c35598a4efd288229034ec0732299dbd8cfa0acff705fed3 +EBUILD sendmail-8.18.1.ebuild 8338 BLAKE2B b209bd9d3028122a90fabbc1204632ddda5c318c62bf81a6770b6caca27efeb5134f6f1f934fcb9163a37d0016747426eadac765c5ed93d86fd5b878b1bb712e SHA512 8d97b4e6a6b444df1a52a13ba5737c788a1cdc3056c932b696d06dfc29e06c7db31e5476fc9e288a656819f82d99324cf44667ccfec9090bf514a88f79bde055 +MISC metadata.xml 573 BLAKE2B 011a4aeedbe6ced9d79254008d489322c93e117dfe3f8b8a4e65ff6f1da3bbe32963744192c3f3ed7e73e2535449bbe0e3141a3b51798d3b7834657be1a3c859 SHA512 99f44116dd7a9a6e11b66328851be56bb1de62cf72a2dcc345810b3ac31f1abc3039d3e1aa3ccdd90d0a02083614bde43717056f3c3d31d42f33f5837a8bff31 diff --git a/mail-mta/sendmail/files/sendmail-8.18.1-ctime.patch b/mail-mta/sendmail/files/sendmail-8.18.1-ctime.patch new file mode 100644 index 000000000000..2db37c424652 --- /dev/null +++ b/mail-mta/sendmail/files/sendmail-8.18.1-ctime.patch @@ -0,0 +1,13 @@ +Bug: https://bugs.gentoo.org/945726 + +--- a/mailstats/mailstats.c ++++ b/mailstats/mailstats.c +@@ -65,7 +65,7 @@ + char sfilebuf[MAXPATHLEN]; + char buf[MAXLINE]; + struct statistics stats; +- extern char *ctime(); ++ extern char *ctime(const time_t *); + extern char *optarg; + extern int optind; + # define MSOPTS "cC:f:opP" diff --git a/mail-mta/sendmail/files/sendmail-maildir.mc b/mail-mta/sendmail/files/sendmail-maildir.mc new file mode 100644 index 000000000000..eb8a3f06c48f --- /dev/null +++ b/mail-mta/sendmail/files/sendmail-maildir.mc @@ -0,0 +1,13 @@ +divert(-1) +divert(0)dnl +include(`/usr/share/sendmail-cf/m4/cf.m4')dnl +VERSIONID(`$Id$')dnl +OSTYPE(linux)dnl +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 + #include + ++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/metadata.xml b/mail-mta/sendmail/metadata.xml index 115e9d64a669..588af3680863 100644 --- a/mail-mta/sendmail/metadata.xml +++ b/mail-mta/sendmail/metadata.xml @@ -1,5 +1,17 @@ - + + cfuga@cfuga.mx + Cristian Othón Martínez Vera + + + proxy-maint@gentoo.org + Proxy Maintainers + + + Add support for SMTPUTF8 + Add support for using dev-db/tinycdb + for lookup tables + diff --git a/mail-mta/sendmail/sendmail-8.18.1.ebuild b/mail-mta/sendmail/sendmail-8.18.1.ebuild new file mode 100644 index 000000000000..95e367ed3452 --- /dev/null +++ b/mail-mta/sendmail/sendmail-8.18.1.ebuild @@ -0,0 +1,280 @@ +# Copyright 1999-2025 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 + +inherit systemd toolchain-funcs + +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" +fi +SRC_URI+=" https://ftp.sendmail.org/${PN}.${PV}.tar.gz" +SRC_URI+=" https://ftp.sendmail.org/past-releases/${PN}.${PV}.tar.gz" + +LICENSE="Sendmail GPL-2" # GPL-2 is here for initscript +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+berkdb eai ipv6 ldap mbox nis sasl selinux sockets ssl tinycdb tcpd" +REQUIRED_USE="|| ( berkdb tinycdb )" + +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:= ) + tcpd? ( sys-apps/tcp-wrappers ) + tinycdb? ( dev-db/tinycdb ) +" +RDEPEND=" + ${DEPEND} + >=mail-filter/libmilter-1.0.2_p2 + !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 +" +PDEPEND=" + !mbox? ( + || ( + mail-filter/procmail + mail-filter/maildrop + ) + ) +" + +src_prepare() { + eapply "${FILESDIR}"/${PN}-8.16.1-build-system.patch + eapply "${FILESDIR}"/${PN}-8.18.1-ctime.patch + eapply -p0 "${FILESDIR}"/${PN}-delivered_hdr.patch + eapply_user + + local confCCOPTS="${CFLAGS}" + local confENVDEF="-DMAXDAEMONS=64 -DHAS_GETHOSTBYNAME2=1" + local confLDOPTS="${LDFLAGS}" + local confLIBS= + local confMAPDEF="-DMAP_REGEX" + local conf_sendmail_LIBS= + + 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 + + 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" + 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 + + use ipv6 && confENVDEF+=" -DNETINET6" + use nis && confENVDEF+=" -DNIS" + use sockets && confENVDEF+=" -DSOCKETMAP" + + if use elibc_musl; then + confENVDEF+=" -DHASSTRERROR -DHASRRESVPORT=0" + use ipv6 && confENVDEF+=" -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 /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 +} -- cgit v1.2.3