mail-mta/postfix: drop 3.9.3, 3.9.4, 3.9.5, 3.10.2, 3.10.3

Signed-off-by: Eray Aslan <eras@gentoo.org>
This commit is contained in:
Eray Aslan
2025-09-30 07:30:58 +02:00
parent 40d2835242
commit 6348e710df
7 changed files with 0 additions and 1641 deletions

View File

@@ -1,7 +1,2 @@
DIST postfix-3.10.2.tar.gz 5048137 BLAKE2B b75fec52e837d43e0fa5d6ede3f44ccc62144133a2c433f536c566362b20a6a9b8a8cbf8e11f64d84fa751311cc9451158cda0edc212a0e45a9097530f41cea4 SHA512 722a29613beae57caacbda1180c7882bfdfe7b948fd64acecbe704b0dbcd1989c59b73adfa6c686a51ad9d4c7a51650b7287b185515de2eaa1a6355127ca634f
DIST postfix-3.10.3.tar.gz 5048719 BLAKE2B f21f5d7f05c93ac4f1286bbcecc7e54ec62bb75aa6c70c455c981e31a2c33a6da45e23bab6c1dbeb67f93ad03e505f89ea8d0f60abf9ce7b6da00f364d07eb62 SHA512 457f2d49c0845992b19601fb597422190f7506da5edd66eac1b0387e9adb339a65d3822205b1c4e9243d8f0a9a4108eb7cf11fba6b53f366934caf8cd489157c
DIST postfix-3.10.4.tar.gz 5050100 BLAKE2B e0a9b3dbd858e9b2bacb137b886ef35a89220caf91da5bcb90de5fd3df7285645deaff6e58f571cdc75966098cf13190b0315690c270b9f3ed69a21e63d2d3ab SHA512 da3a581551670ad4aa595ab50a8dd0bbe7d9e93ee354342c778ae1b461aa7bad9a640e4a55e27b025975c47c92f8238c8d281e1ca5bd1579a009d81ce06924d9
DIST postfix-3.11-20250928.tar.gz 5083596 BLAKE2B 6da6ed3e17400b80f26bf60ce17b06ad7b3ba2c31899270d3e00a09980f6013a8a01ab002fa77c4cf8bbd8fc4c3b5eebef83e29982957ca8b8524bef44c35436 SHA512 56283ceae1545b68e1dc1f9c5c2f4624fc646770b322d207db1539f5b0387a0a79abe86ba7a89c53fe006fed11f974500b32ebe8ddcc9f211ab728c5b0f829b6
DIST postfix-3.9.3.tar.gz 4956314 BLAKE2B 01d69092483f3894a54489c7455a4a1a0125e13b3e7675316ce0a34a193004c488a123c473d243f6b3ca6e288807a7251d165d64f0e448e198ebee6422e97851 SHA512 7539d81296da6d7d569a1f7ad0cee413a87e0293f09b5fbcc7d4b847dfbfba02c106a4d6be87c7443831fee1d0d6cc7fa152133dd784e960865afc240fda1946
DIST postfix-3.9.4.tar.gz 4956598 BLAKE2B e26b41a1631babf81b1c1cc469f72fae4e0b2681f4aa48e48dd9feb69beab68c3d7dc9445ddd2e17b49effc2bf45cc23acdcea6a421b671938a17cbec6dd3082 SHA512 edea13b7ad468dc2550345f2e0b73df36ee7fa569b7e85bba99a06764c6794150c2fcd71fada53aea4ef91ffe120219500d550b428c1369abfa718a8ceb04846
DIST postfix-3.9.5.tar.gz 4957321 BLAKE2B 799af38ef603e5df0942cd6c6301bf0ae3c226aed15e0ea9a8aa1396e68bcca3f2db7d5f8873900848b45ebead8f607adb5601efb886ae4ea0eab51dd6708287 SHA512 8cdeda7e226b0fc22cbd75025081d52a65ec67d8c6b9000b28ba651bb8174ddce568a561da73147bf38fcf448495791534eb14d94fdfb0df77c7bea923834d11

View File

@@ -1,40 +0,0 @@
# bug 940708
--- postfix-3.9.0/src/tls/tls_misc.c 2023-08-07 15:42:24.000000000 +0200
+++ postfix-3.10_pre20240612/work/postfix-3.10-20240612/src/tls/tls_misc.c 2024-06-12 17:59:54.000000000 +0200
@@ -1433,20 +1433,29 @@
{
TLS_VINFO hdr_info;
TLS_VINFO lib_info;
+ int warn_compat = 0;
tls_version_split(OPENSSL_VERSION_NUMBER, &hdr_info);
tls_version_split(OpenSSL_version_num(), &lib_info);
/*
* Warn if run-time library is different from compile-time library,
- * allowing later run-time "micro" versions starting with 1.1.0.
+ * allowing later run-time "micro" versions starting with 1.1.0, and
+ * later minor numbers starting with 3.0.0.
*/
- if (lib_info.major != hdr_info.major
- || lib_info.minor != hdr_info.minor
- || (lib_info.micro != hdr_info.micro
- && (lib_info.micro < hdr_info.micro
- || hdr_info.major == 0
- || (hdr_info.major == 1 && hdr_info.minor == 0))))
+ if (hdr_info.major >= 3) {
+ warn_compat = lib_info.major != hdr_info.major
+ || lib_info.minor < hdr_info.minor;
+ } else if (hdr_info.major == 1 && hdr_info.minor != 0) {
+ warn_compat = lib_info.major != hdr_info.major
+ || lib_info.minor != hdr_info.minor
+ || lib_info.micro < hdr_info.micro;
+ } else {
+ warn_compat = lib_info.major != hdr_info.major
+ || lib_info.minor != hdr_info.minor
+ || lib_info.micro != hdr_info.micro;
+ }
+ if (warn_compat)
msg_warn("run-time library vs. compile-time header version mismatch: "
"OpenSSL %d.%d.%d may not be compatible with OpenSSL %d.%d.%d",
lib_info.major, lib_info.minor, lib_info.micro,

View File

@@ -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/official"
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="~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
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
}

View File

@@ -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/official"
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="~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
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
}

View File

@@ -1,318 +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/official"
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="~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"
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= )
"
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 )
"
PATCHES=(
"${FILESDIR}/openssl-compatibility-warning.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() {
# 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
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 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_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
}

View File

@@ -1,318 +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/official"
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="~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"
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= )
"
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 )
"
PATCHES=(
"${FILESDIR}/openssl-compatibility-warning.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() {
# 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
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 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_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
}

View File

@@ -1,318 +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/official"
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="~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"
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= )
"
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 )
"
PATCHES=(
"${FILESDIR}/openssl-compatibility-warning.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() {
# 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
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 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_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
}