mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-05 12:38:09 -07:00
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:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user