forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Eray Aslan <[email protected]>
- Loading branch information
Showing
3 changed files
with
591 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
DIST postfix-3.7.4.tar.gz 4833834 BLAKE2B edb716ef4576d339189f11b535a62f3c6f8f28613723d916f13cdd2d37228aa8768dacdb9d8616c83f0ded3a3c801c45747375ea6cfa505b668a7163c4637128 SHA512 972738291b960c90fe83861d55b1288900416167adb353418956e69bcc709a6daf84fbfde11d573eebba030654d27abc8d55f90661a2b880ccfb3a334064c236 | ||
DIST postfix-3.7.5.tar.gz 4834332 BLAKE2B 60be442c165e722dca3f1b5ece30adb85493560c583f6bb485e548f35bffe9e5ec27193eb68222f95a3076007af046622c98ee954167b53d2e306969ccf07647 SHA512 097c8f74386d746e849176c1344fe51c957b972cc1b15ebbb27cee4c825deae7201081cb1212e3fb12f16a6795c86381492d71123a8bf287fc8b58c6979fbf8f | ||
DIST postfix-3.7.6.tar.gz 4831551 BLAKE2B 265e0e9cba880f213de60d153c5250b5dc7423791bc723fa947dd574bb5b4f922d3c17f32f3d22f2fff022db63f7d6cdd79c80754e773a80a02dc00c90cc2a30 SHA512 7bb5f12072454c6bbf4ce89811b19a34cb614a10b8b6f43be0876b2f9b4b2c3403def433006ef0a98711f2a13c202fc1d8465a0bad8aa4f21652ea8d1f2250ac | ||
DIST postfix-3.8.0.tar.gz 4851893 BLAKE2B 3ef0c0c83eed3263c890143ae962674dfbfa01f589f1b503a01d57497e4732171aa58468357276f29a9454c577573e8442095c2db25005324754dbd305875297 SHA512 a66956b0cc5eb6ad5ee926348b584ba5640586784aec794a84c40472faecb6313d46537c9f5696edfd8fda070591925a0cfaedc014e15bb3496195e5fb9ee4bd | ||
DIST postfix-3.8.1.tar.gz 4848293 BLAKE2B 83c043d6e74cbbf0c5d739838ff99d4905aa711b13483fe0f427956b962c432e6f76d9828b5c141260e210c9605ac260df950d273d5729c36666c935a3ed4518 SHA512 9eb91f2baab327de22dd55fc5ff398de74856e30be461282f41b1801301873881a8f40ce061c16e0505d51d96aaf0eff8d0ac660e5f6c70c6125133f64a4ee80 | ||
DIST postfix-3.9-20230603.tar.gz 4857613 BLAKE2B 450b90bb5814ebe63851beb52ae38e27da373341a7a9ea3668bfcee64335b71009c80798b5ee972a4e099c1c67f36ec2579c7f0dd4eec2df2adf8499b579993e SHA512 4e8bfb5e424d43f6cd21f4c4e291e19e2e1511870549d443525c68cc9eef809bcc66171f9195c2e9506fb865a83d65070046aa30fba1a4adbdb63706d2280cfe |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,292 @@ | ||
# Copyright 1999-2023 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=8 | ||
inherit pam systemd toolchain-funcs | ||
|
||
MY_PV="${PV/_rc/-RC}" | ||
MY_SRC="${PN}-${MY_PV}" | ||
MY_URI="ftp://ftp.porcupine.org/mirrors/postfix-release/official" | ||
RC_VER="2.7" | ||
|
||
DESCRIPTION="A fast and secure drop-in replacement for sendmail" | ||
HOMEPAGE="http://www.postfix.org/" | ||
SRC_URI="${MY_URI}/${MY_SRC}.tar.gz" | ||
|
||
LICENSE="|| ( IBM EPL-2.0 )" | ||
SLOT="0" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" | ||
IUSE="+berkdb cdb dovecot-sasl +eai ldap ldap-bind lmdb mbox memcached 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:= ) | ||
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 )" | ||
|
||
REQUIRED_USE="ldap-bind? ( ldap sasl )" | ||
|
||
S="${WORKDIR}/${MY_SRC}" | ||
|
||
src_prepare() { | ||
default | ||
sed -i -e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:/etc/mail/aliases|" \ | ||
src/util/sys_defs.h || die "sed failed" | ||
# change default paths to better comply with portage standard paths | ||
sed -i -e "s:/usr/local/:/usr/:g" conf/master.cf || die "sed failed" | ||
} | ||
|
||
src_configure() { | ||
for name in CDB LDAP LMDB MYSQL PCRE PGSQL SDBM SQLITE | ||
do | ||
local AUXLIBS_${name}="" | ||
done | ||
|
||
# Make sure LDFLAGS get passed down to the executables. | ||
local mycc="" mylibs="${LDFLAGS} -ldl" | ||
|
||
# libpcre is EOL. prefer libpcre2 | ||
mycc=" -DHAS_PCRE=2" | ||
AUXLIBS_PCRE="$(pcre2-config --libs8)" | ||
|
||
use pam && mylibs="${mylibs} -lpam" | ||
|
||
if use ldap; then | ||
mycc="${mycc} -DHAS_LDAP" | ||
AUXLIBS_LDAP="-lldap -llber" | ||
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 ssl; then | ||
mycc="${mycc} -DUSE_TLS" | ||
mylibs="${mylibs} -lssl -lcrypto" | ||
fi | ||
|
||
if use lmdb; then | ||
mycc="${mycc} -DHAS_LMDB" | ||
AUXLIBS_LMDB="-llmdb -lpthread" | ||
fi | ||
|
||
if ! use eai; then | ||
mycc="${mycc} -DNO_EAI" | ||
fi | ||
|
||
# broken. and "in other words, not supported" by upstream. | ||
# Use inet_protocols setting in main.cf | ||
#if ! use ipv6; then | ||
# mycc="${mycc} -DNO_IPV6" | ||
#fi | ||
|
||
if use sasl; then | ||
if use dovecot-sasl; then | ||
# Set dovecot as default. | ||
mycc="${mycc} -DDEF_SASL_SERVER=\\\"dovecot\\\"" | ||
fi | ||
if use ldap-bind; then | ||
mycc="${mycc} -DUSE_LDAP_SASL" | ||
fi | ||
mycc="${mycc} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" | ||
mylibs="${mylibs} -lsasl2" | ||
elif use dovecot-sasl; then | ||
mycc="${mycc} -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\\\"dovecot\\\"" | ||
fi | ||
|
||
if ! use nis; then | ||
mycc="${mycc} -DNO_NIS" | ||
fi | ||
|
||
if ! use berkdb; then | ||
mycc="${mycc} -DNO_DB" | ||
# change default database type | ||
if use cdb; then | ||
mycc="${mycc} -DDEF_DB_TYPE=\\\"cdb\\\"" | ||
elif use lmdb; then | ||
mycc="${mycc} -DDEF_DB_TYPE=\\\"lmdb\\\"" | ||
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_MYSQL="${AUXLIBS_MYSQL}" \ | ||
AUXLIBS_PCRE="${AUXLIBS_PCRE}" AUXLIBS_PGSQL="${AUXLIBS_PGSQL}" \ | ||
AUXLIBS_SQLITE="${AUXLIBS_SQLITE}" | ||
} | ||
|
||
src_install() { | ||
LD_LIBRARY_PATH="${S}/lib" \ | ||
/bin/sh postfix-install \ | ||
-non-interactive \ | ||
install_root="${D}" \ | ||
config_directory="/etc/postfix" \ | ||
manpage_directory="/usr/share/man" \ | ||
command_directory="/usr/sbin" \ | ||
mailq_path="/usr/bin/mailq" \ | ||
newaliases_path="/usr/bin/newaliases" \ | ||
sendmail_path="/usr/sbin/sendmail" \ | ||
|| die "postfix-install failed" | ||
|
||
# Fix spool removal on upgrade | ||
rm -Rf "${D}"/var | ||
keepdir /var/spool/postfix | ||
|
||
# Install rmail for UUCP, closes bug #19127 | ||
dobin auxiliary/rmail/rmail | ||
|
||
# Provide another link for legacy FSH | ||
dosym ../sbin/sendmail /usr/$(get_libdir)/sendmail | ||
|
||
# Install qshape, posttls-finger, 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 | ||
|
||
if has_version mail-mta/postfix; then | ||
# let the sysadmin decide when to change the compatibility_level | ||
sed -i -e /^compatibility_level/"s/^/#/" "${D}"/etc/postfix/main.cf || die | ||
fi | ||
|
||
systemd_dounit "${FILESDIR}/${PN}.service" | ||
} | ||
|
||
pkg_postinst() { | ||
# 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 | ||
|
||
# check and fix file permissions | ||
"${EROOT}"/usr/sbin/postfix set-permissions | ||
|
||
# configure tls | ||
if use ssl ; then | ||
if "${EROOT}"/usr/sbin/postfix tls all-default-client; then | ||
elog "To configure client side TLS settings:" | ||
elog "${EROOT}"/usr/sbin/postfix tls enable-client | ||
fi | ||
if "${EROOT}"/usr/sbin/postfix tls all-default-server; then | ||
elog "To configure server side TLS settings:" | ||
elog "${EROOT}"/usr/sbin/postfix tls enable-server | ||
fi | ||
fi | ||
} |
Oops, something went wrong.