mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
mail-mta/postfix: remove old
Package-Manager: Portage-2.3.6, Repoman-2.3.2
This commit is contained in:
@@ -1,11 +1,6 @@
|
||||
DIST postfix-2.10.9.tar.gz 3820525 SHA256 e47eb56db2d238b9c5a5147a516fa406ab6afb102cedb4bd08273e979ae95d82 SHA512 c77df7ccc051bd72271dc5298da0ca4e45397b1ba96fc8be31e095f5b15cd30ebc0b29cf638e76efc65503cb241efd937f2d64aaa97243402c35e2927b7a7b91 WHIRLPOOL 3a7acb90ae03366e2ed24dfbd2e07619f0694abe098a621c6f9202e4d43a968376b5a52f2a65223634cf921af0a7156b0272ca15ad188a1b61fe4fb9cc97cab7
|
||||
DIST postfix-3.1.2.tar.gz 4337569 SHA256 1ab9b4ee6bf9eb37d2467a63244132aab22ac23b91a72f327334e236b0d30f6b SHA512 58493d1890c3235d74a18365294ca764bd3b3f278b9825da931005165af60250342c6cf477c3b3575e50858d99cd3ee40f22bece094eb61e9be6c3cf0313d571 WHIRLPOOL 37e90ef6275a7f2dc8f712bb05348861098697438f274a5c5b69f50b31d55574af262a658657863c93f77fdeba2d37bf7b30dc43bf1629615f496ede19a89c00
|
||||
DIST postfix-3.1.3.tar.gz 4338730 SHA256 52f8127e6797e2617a36d0afb9473c55e95c3a777b6280df3f106168fd814979 SHA512 00e2b0974e59420cabfddc92597a99b42c8a8c9cd9a0c279c63ba6be9f40b15400f37dc16d0b1312130e72b5ba82b56fc7d579ee9ef975a957c0931b0401213c WHIRLPOOL 7274501921349e1f99344adb500638e91b92f3a3a87ec2171add18d58b926478459d4540a15f421c52175efb61d220c98438a9727adf5473d609d1b94480b663
|
||||
DIST postfix-3.1.4.tar.gz 4340102 SHA256 f33b470c47ae8b4ff199ab55dc42e86031ff0c535ccbc83069c8cff69b5bd027 SHA512 4cf8aa8d0cf6d99defa32c2907705370d6f8d047d7e938c84a20a62c68ae07a2bec304f28c178d1072b9610f2969420f83fe2066821ad34c0f95e62bbb5b8c05 WHIRLPOOL 72c881a390e96dcc3645b98383e4dcc774ac61144b086800d72e0f6e4d8fe3adccb246df728cc253851db16804e9c97c79e9966f88f02deda696117cd20551f7
|
||||
DIST postfix-3.1.5.tar.gz 4340427 SHA256 a3f5bbeb081fb5b02ced34e373add4967783c018c0b134442f0da8d8d8fa35f0 SHA512 4a35fe516387910efc717c3c0a79a68ba01800d96a27a04c7ab8ae7b4f6b3027aa3a11d1ab378b74e96e18c1ab39f9cdce474ec19602081bafafa68ae68148a2 WHIRLPOOL 0c015ad0db00efa1cd18c3855fb66f23ca54be5ddbdf2b0e38b4a966e8a66d778ae13af94bd69aeb7f2c73c8b594a919dcc16e696afc48f84051c6ce8574651a
|
||||
DIST postfix-3.1.6.tar.gz 4341308 SHA256 e5eb005fd133c6a32ca03e796e0192945eb877be8eb727f30d25547c997c5aa6 SHA512 646317393d33fcec99bef7f3dc142a847591927bc034c0c71e578baedad1875040cfeabdaa3436312f60485cb69bbdb31197aa9e7526a457946d7749b781099b WHIRLPOOL 66a087da3b33353a22176b9162fe0679f8ff35e48ae693a3315d52232e662638d48b8827648c0b0368e018161e1ade6a671773c109208ded9659cca26b1b5ea1
|
||||
DIST postfix-3.2.0.tar.gz 4389547 SHA256 420726e79622620394fd17799e49268dada7041ea067ca3aa1c8bf155b9aa487 SHA512 bfaa4b2125758833997b399bb2f095475924c1e51fba752e631ad73494d8764458548541d175ef8a1ed6566e9dac569f963e0651e1500aa19595f9062b8e86ce WHIRLPOOL e4a37cb3bd3faec5a3fd24bc03631af51be90369e1299fd9f2d46f5194ba4d011affdf04e1566ca14fed20e3e31d60b1011ced2f21ae4f0744db08828cf0f20d
|
||||
DIST postfix-3.2.1.tar.gz 4389792 SHA256 79f8a468e24f7fd7568161e7579e3dde76c1941a0f3e9f8e50bf9a8d6aa41918 SHA512 0deaf380719abe3e603d8a1532b7ab3aa32e77f32041d3cfbe585ef1499454731ea6e8da6ab9a4e20e3d2bd094dd6190eaad88c52bf657cb902b7799ceccb82f WHIRLPOOL cb905560f6fd35abde7efcf71e7f225708cfdb4d76fcf62f485cf42823d64c29d73a4b007828b481fa239077b5a2dbfa4bd6539cc2fe724d5d7f98a36b8a55f9
|
||||
DIST postfix-3.2.2.tar.gz 4390318 SHA256 d06849418d119d09366997b2b481bb23f737629769b4e4a52da42fb3ad8b0576 SHA512 9432fa8b181db99b8e2d72b2a0f640d1456b10c42615f0a002638f7f788d748b8bb55cd36409a368ac4f6d22033d1d059728fa33980fb93d465b6dfd5ae26418 WHIRLPOOL 7681299ffb747316f1366350f5fac5cf5f156ed9681a26ec6ed5dca0ab42a6a95f93e943bd6ccaccac259c2f7dd1cd1ba441a8968a8988d59ac2208fdbb2f480
|
||||
DIST postfix-3.3-20170613.tar.gz 4391163 SHA256 4c66e3188aa2ff8fdf4f9e9705261204e8128687bc3eb1dd07c7f10af0225cfc SHA512 225abf7ead922411b1519aea7cb5028b0fe2ac93a0189238a9d74127db66b17f008102301c92c6832304501f70dff99fa815f7c0998cf26be4bbbc3c921324f0 WHIRLPOOL 2b169bc56ad60d84dc2440a074816af2784d455de024071792cf52bd4dc037d5750342c067a64fa9c2d01a5f03d8702a1d87d3ca330e20533f8291a3fe3be9ef
|
||||
DIST postfix-vda-v13-2.10.0.patch 55701 SHA256 6208021eb0b37ac6482e334e538ed5700cc22c4d4dd66ed9e975ae5f20bf935f SHA512 0b4b53a8cd28abf56eee3b2ed63ca1814251b60816e6ca1143249d25fd6ef7f905bec3134125ac6e851af685db8aae878012113693261529ae2ddbcf1bd93e62 WHIRLPOOL d98b7d2177b8b69738086880fd08c336fa60b99ff7413624e628fd5f17be2064f2ccaa37c047d3013ed41c0ff1bcb76e7962f8390c4179f28ab11733dd3b59d3
|
||||
|
||||
@@ -1,308 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
inherit flag-o-matic pam systemd toolchain-funcs user
|
||||
|
||||
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"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
|
||||
IUSE="+berkdb cdb doc dovecot-sasl +eai hardened ldap ldap-bind libressl lmdb memcached mbox mysql nis pam postgres sasl selinux sqlite ssl"
|
||||
|
||||
DEPEND=">=dev-libs/libpcre-3.4
|
||||
dev-lang/perl
|
||||
berkdb? ( >=sys-libs/db-3.2:* )
|
||||
cdb? ( || ( >=dev-db/tinycdb-0.76 >=dev-db/cdb-0.75-r4 ) )
|
||||
eai? ( dev-libs/icu:= )
|
||||
ldap? ( net-nds/openldap )
|
||||
ldap-bind? ( net-nds/openldap[sasl] )
|
||||
lmdb? ( >=dev-db/lmdb-0.9.11 )
|
||||
mysql? ( virtual/mysql )
|
||||
pam? ( virtual/pam )
|
||||
postgres? ( dev-db/postgresql:* )
|
||||
sasl? ( >=dev-libs/cyrus-sasl-2 )
|
||||
sqlite? ( dev-db/sqlite:3 )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
)"
|
||||
|
||||
RDEPEND="${DEPEND}
|
||||
dovecot-sasl? ( net-mail/dovecot )
|
||||
memcached? ( net-misc/memcached )
|
||||
net-mail/mailbase
|
||||
!mail-mta/courier
|
||||
!mail-mta/esmtp
|
||||
!mail-mta/exim
|
||||
!mail-mta/mini-qmail
|
||||
!mail-mta/msmtp[mta]
|
||||
!mail-mta/netqmail
|
||||
!mail-mta/nullmailer
|
||||
!mail-mta/qmail-ldap
|
||||
!mail-mta/sendmail
|
||||
!mail-mta/opensmtpd
|
||||
!<mail-mta/ssmtp-2.64-r2
|
||||
!>=mail-mta/ssmtp-2.64-r2[mta]
|
||||
!net-mail/fastforward
|
||||
selinux? ( sec-policy/selinux-postfix )"
|
||||
|
||||
REQUIRED_USE="ldap-bind? ( ldap sasl )"
|
||||
|
||||
S="${WORKDIR}/${MY_SRC}"
|
||||
|
||||
pkg_setup() {
|
||||
# Add postfix, postdrop user/group (bug #77565)
|
||||
enewgroup postfix 207
|
||||
enewgroup postdrop 208
|
||||
enewuser postfix 207 -1 /var/spool/postfix postfix,mail
|
||||
}
|
||||
|
||||
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"
|
||||
eapply -p0 "${FILESDIR}/${PN}-libressl.patch"
|
||||
eapply -p0 "${FILESDIR}/${PN}-libressl-runtime.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
for name in CDB LDAP LMDB MYSQL PCRE PGSQL SDBM SQLITE
|
||||
do
|
||||
local AUXLIBS_${name}=""
|
||||
done
|
||||
|
||||
# Make sure LDFLAGS get passed down to the executables.
|
||||
local mycc="-DHAS_PCRE" mylibs="${LDFLAGS} -ldl"
|
||||
AUXLIBS_PCRE="$(pcre-config --libs)"
|
||||
|
||||
use pam && mylibs="${mylibs} -lpam"
|
||||
|
||||
if use ldap; then
|
||||
mycc="${mycc} -DHAS_LDAP"
|
||||
AUXLIBS_LDAP="-lldap -llber"
|
||||
fi
|
||||
|
||||
if use 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"
|
||||
if use cdb; then
|
||||
# change default hash format from Berkeley DB to cdb
|
||||
mycc="${mycc} -DDEF_DB_TYPE=\\\"cdb\\\""
|
||||
fi
|
||||
fi
|
||||
|
||||
if use cdb; then
|
||||
mycc="${mycc} -DHAS_CDB -I/usr/include/cdb"
|
||||
# Tinycdb is preferred.
|
||||
if has_version dev-db/tinycdb ; then
|
||||
einfo "Building with dev-db/tinycdb"
|
||||
AUXLIBS_CDB="-lcdb"
|
||||
else
|
||||
einfo "Building with dev-db/cdb"
|
||||
CDB_PATH="/usr/$(get_libdir)"
|
||||
for i in cdb.a alloc.a buffer.a unix.a byte.a ; do
|
||||
AUXLIBS_CDB="${AUXLIBS_CDB} ${CDB_PATH}/${i}"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Robin H. Johnson <robbat2@gentoo.org> 17/Nov/2006
|
||||
# Fix because infra boxes hit 2Gb .db files that fail a 32-bit fstat signed check.
|
||||
mycc="${mycc} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
|
||||
filter-lfs-flags
|
||||
|
||||
# Workaround for bug #76512
|
||||
if use hardened; then
|
||||
[[ "$(gcc-version)" == "3.4" ]] && replace-flags -O? -Os
|
||||
fi
|
||||
|
||||
# Remove annoying C++ comment style warnings - bug #378099
|
||||
append-flags -Wno-comment
|
||||
|
||||
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 () {
|
||||
local myconf
|
||||
use doc && myconf="readme_directory=\"/usr/share/doc/${PF}/readme\" \
|
||||
html_directory=\"/usr/share/doc/${PF}/html\""
|
||||
|
||||
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" \
|
||||
${myconf} \
|
||||
|| 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 /usr/sbin/sendmail /usr/$(get_libdir)/sendmail
|
||||
|
||||
# Install qshape and posttls-finger
|
||||
dobin auxiliary/qshape/qshape.pl
|
||||
doman man/man1/qshape.1
|
||||
dobin bin/posttls-finger
|
||||
doman man/man1/posttls-finger.1
|
||||
|
||||
# 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
|
||||
dodir /var/lib/postfix
|
||||
keepdir /var/lib/postfix
|
||||
fowners -R postfix:postfix /var/lib/postfix
|
||||
fperms 0750 /var/lib/postfix
|
||||
fowners root:postdrop /usr/sbin/post{drop,queue}
|
||||
fperms 02711 /usr/sbin/post{drop,queue}
|
||||
|
||||
keepdir /etc/postfix
|
||||
if use mbox; then
|
||||
mypostconf="mail_spool_directory=/var/spool/mail"
|
||||
else
|
||||
mypostconf="home_mailbox=.maildir/"
|
||||
fi
|
||||
LD_LIBRARY_PATH="${S}/lib" \
|
||||
"${D}"/usr/sbin/postconf -c "${D}"/etc/postfix \
|
||||
-e ${mypostconf} || die "postconf failed"
|
||||
|
||||
insinto /etc/postfix
|
||||
newins "${FILESDIR}"/smtp.pass saslpass
|
||||
fperms 600 /etc/postfix/saslpass
|
||||
|
||||
newinitd "${FILESDIR}"/postfix.rc6.${RC_VER} postfix
|
||||
# do not start 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*
|
||||
use doc && mv "${S}"/examples "${D}"/usr/share/doc/${PF}/
|
||||
|
||||
pamd_mimic_system smtp auth account
|
||||
|
||||
if use sasl; then
|
||||
insinto /etc/sasl2
|
||||
newins "${FILESDIR}"/smtp.sasl smtpd.conf
|
||||
fi
|
||||
|
||||
# header files
|
||||
insinto /usr/include/postfix
|
||||
doins include/*.h
|
||||
|
||||
# Keep config_dir clean
|
||||
rm -f "${D}"/etc/postfix/{*LICENSE,access,aliases,canonical,generic}
|
||||
rm -f "${D}"/etc/postfix/{header_checks,relocated,transport,virtual}
|
||||
|
||||
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() {
|
||||
if [[ ! -e /etc/mail/aliases.db ]] ; then
|
||||
ewarn
|
||||
ewarn "You must edit /etc/mail/aliases to suit your needs"
|
||||
ewarn "and then run /usr/bin/newaliases. Postfix will not"
|
||||
ewarn "work correctly without it."
|
||||
ewarn
|
||||
fi
|
||||
|
||||
# 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
|
||||
}
|
||||
@@ -1,308 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
inherit flag-o-matic pam systemd toolchain-funcs user
|
||||
|
||||
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"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
|
||||
IUSE="+berkdb cdb doc dovecot-sasl +eai hardened ldap ldap-bind libressl lmdb memcached mbox mysql nis pam postgres sasl selinux sqlite ssl"
|
||||
|
||||
DEPEND=">=dev-libs/libpcre-3.4
|
||||
dev-lang/perl
|
||||
berkdb? ( >=sys-libs/db-3.2:* )
|
||||
cdb? ( || ( >=dev-db/tinycdb-0.76 >=dev-db/cdb-0.75-r4 ) )
|
||||
eai? ( dev-libs/icu:= )
|
||||
ldap? ( net-nds/openldap )
|
||||
ldap-bind? ( net-nds/openldap[sasl] )
|
||||
lmdb? ( >=dev-db/lmdb-0.9.11 )
|
||||
mysql? ( virtual/mysql )
|
||||
pam? ( virtual/pam )
|
||||
postgres? ( dev-db/postgresql:* )
|
||||
sasl? ( >=dev-libs/cyrus-sasl-2 )
|
||||
sqlite? ( dev-db/sqlite:3 )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
)"
|
||||
|
||||
RDEPEND="${DEPEND}
|
||||
dovecot-sasl? ( net-mail/dovecot )
|
||||
memcached? ( net-misc/memcached )
|
||||
net-mail/mailbase
|
||||
!mail-mta/courier
|
||||
!mail-mta/esmtp
|
||||
!mail-mta/exim
|
||||
!mail-mta/mini-qmail
|
||||
!mail-mta/msmtp[mta]
|
||||
!mail-mta/netqmail
|
||||
!mail-mta/nullmailer
|
||||
!mail-mta/qmail-ldap
|
||||
!mail-mta/sendmail
|
||||
!mail-mta/opensmtpd
|
||||
!<mail-mta/ssmtp-2.64-r2
|
||||
!>=mail-mta/ssmtp-2.64-r2[mta]
|
||||
!net-mail/fastforward
|
||||
selinux? ( sec-policy/selinux-postfix )"
|
||||
|
||||
REQUIRED_USE="ldap-bind? ( ldap sasl )"
|
||||
|
||||
S="${WORKDIR}/${MY_SRC}"
|
||||
|
||||
pkg_setup() {
|
||||
# Add postfix, postdrop user/group (bug #77565)
|
||||
enewgroup postfix 207
|
||||
enewgroup postdrop 208
|
||||
enewuser postfix 207 -1 /var/spool/postfix postfix,mail
|
||||
}
|
||||
|
||||
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"
|
||||
eapply -p0 "${FILESDIR}/${PN}-libressl.patch"
|
||||
eapply -p0 "${FILESDIR}/${PN}-libressl-runtime.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
for name in CDB LDAP LMDB MYSQL PCRE PGSQL SDBM SQLITE
|
||||
do
|
||||
local AUXLIBS_${name}=""
|
||||
done
|
||||
|
||||
# Make sure LDFLAGS get passed down to the executables.
|
||||
local mycc="-DHAS_PCRE" mylibs="${LDFLAGS} -ldl"
|
||||
AUXLIBS_PCRE="$(pcre-config --libs)"
|
||||
|
||||
use pam && mylibs="${mylibs} -lpam"
|
||||
|
||||
if use ldap; then
|
||||
mycc="${mycc} -DHAS_LDAP"
|
||||
AUXLIBS_LDAP="-lldap -llber"
|
||||
fi
|
||||
|
||||
if use 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"
|
||||
if use cdb; then
|
||||
# change default hash format from Berkeley DB to cdb
|
||||
mycc="${mycc} -DDEF_DB_TYPE=\\\"cdb\\\""
|
||||
fi
|
||||
fi
|
||||
|
||||
if use cdb; then
|
||||
mycc="${mycc} -DHAS_CDB -I/usr/include/cdb"
|
||||
# Tinycdb is preferred.
|
||||
if has_version dev-db/tinycdb ; then
|
||||
einfo "Building with dev-db/tinycdb"
|
||||
AUXLIBS_CDB="-lcdb"
|
||||
else
|
||||
einfo "Building with dev-db/cdb"
|
||||
CDB_PATH="/usr/$(get_libdir)"
|
||||
for i in cdb.a alloc.a buffer.a unix.a byte.a ; do
|
||||
AUXLIBS_CDB="${AUXLIBS_CDB} ${CDB_PATH}/${i}"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Robin H. Johnson <robbat2@gentoo.org> 17/Nov/2006
|
||||
# Fix because infra boxes hit 2Gb .db files that fail a 32-bit fstat signed check.
|
||||
mycc="${mycc} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
|
||||
filter-lfs-flags
|
||||
|
||||
# Workaround for bug #76512
|
||||
if use hardened; then
|
||||
[[ "$(gcc-version)" == "3.4" ]] && replace-flags -O? -Os
|
||||
fi
|
||||
|
||||
# Remove annoying C++ comment style warnings - bug #378099
|
||||
append-flags -Wno-comment
|
||||
|
||||
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 () {
|
||||
local myconf
|
||||
use doc && myconf="readme_directory=\"/usr/share/doc/${PF}/readme\" \
|
||||
html_directory=\"/usr/share/doc/${PF}/html\""
|
||||
|
||||
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" \
|
||||
${myconf} \
|
||||
|| 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 /usr/sbin/sendmail /usr/$(get_libdir)/sendmail
|
||||
|
||||
# Install qshape and posttls-finger
|
||||
dobin auxiliary/qshape/qshape.pl
|
||||
doman man/man1/qshape.1
|
||||
dobin bin/posttls-finger
|
||||
doman man/man1/posttls-finger.1
|
||||
|
||||
# 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
|
||||
dodir /var/lib/postfix
|
||||
keepdir /var/lib/postfix
|
||||
fowners -R postfix:postfix /var/lib/postfix
|
||||
fperms 0750 /var/lib/postfix
|
||||
fowners root:postdrop /usr/sbin/post{drop,queue}
|
||||
fperms 02711 /usr/sbin/post{drop,queue}
|
||||
|
||||
keepdir /etc/postfix
|
||||
if use mbox; then
|
||||
mypostconf="mail_spool_directory=/var/spool/mail"
|
||||
else
|
||||
mypostconf="home_mailbox=.maildir/"
|
||||
fi
|
||||
LD_LIBRARY_PATH="${S}/lib" \
|
||||
"${D}"/usr/sbin/postconf -c "${D}"/etc/postfix \
|
||||
-e ${mypostconf} || die "postconf failed"
|
||||
|
||||
insinto /etc/postfix
|
||||
newins "${FILESDIR}"/smtp.pass saslpass
|
||||
fperms 600 /etc/postfix/saslpass
|
||||
|
||||
newinitd "${FILESDIR}"/postfix.rc6.${RC_VER} postfix
|
||||
# do not start 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*
|
||||
use doc && mv "${S}"/examples "${D}"/usr/share/doc/${PF}/
|
||||
|
||||
pamd_mimic_system smtp auth account
|
||||
|
||||
if use sasl; then
|
||||
insinto /etc/sasl2
|
||||
newins "${FILESDIR}"/smtp.sasl smtpd.conf
|
||||
fi
|
||||
|
||||
# header files
|
||||
insinto /usr/include/postfix
|
||||
doins include/*.h
|
||||
|
||||
# Keep config_dir clean
|
||||
rm -f "${D}"/etc/postfix/{*LICENSE,access,aliases,canonical,generic}
|
||||
rm -f "${D}"/etc/postfix/{header_checks,relocated,transport,virtual}
|
||||
|
||||
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() {
|
||||
if [[ ! -e /etc/mail/aliases.db ]] ; then
|
||||
ewarn
|
||||
ewarn "You must edit /etc/mail/aliases to suit your needs"
|
||||
ewarn "and then run /usr/bin/newaliases. Postfix will not"
|
||||
ewarn "work correctly without it."
|
||||
ewarn
|
||||
fi
|
||||
|
||||
# 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
|
||||
}
|
||||
@@ -1,308 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
inherit flag-o-matic pam systemd toolchain-funcs user
|
||||
|
||||
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"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
|
||||
IUSE="+berkdb cdb doc dovecot-sasl +eai hardened ldap ldap-bind libressl lmdb memcached mbox mysql nis pam postgres sasl selinux sqlite ssl"
|
||||
|
||||
DEPEND=">=dev-libs/libpcre-3.4
|
||||
dev-lang/perl
|
||||
berkdb? ( >=sys-libs/db-3.2:* )
|
||||
cdb? ( || ( >=dev-db/tinycdb-0.76 >=dev-db/cdb-0.75-r4 ) )
|
||||
eai? ( dev-libs/icu:= )
|
||||
ldap? ( net-nds/openldap )
|
||||
ldap-bind? ( net-nds/openldap[sasl] )
|
||||
lmdb? ( >=dev-db/lmdb-0.9.11 )
|
||||
mysql? ( virtual/mysql )
|
||||
pam? ( virtual/pam )
|
||||
postgres? ( dev-db/postgresql:* )
|
||||
sasl? ( >=dev-libs/cyrus-sasl-2 )
|
||||
sqlite? ( dev-db/sqlite:3 )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
)"
|
||||
|
||||
RDEPEND="${DEPEND}
|
||||
dovecot-sasl? ( net-mail/dovecot )
|
||||
memcached? ( net-misc/memcached )
|
||||
net-mail/mailbase
|
||||
!mail-mta/courier
|
||||
!mail-mta/esmtp
|
||||
!mail-mta/exim
|
||||
!mail-mta/mini-qmail
|
||||
!mail-mta/msmtp[mta]
|
||||
!mail-mta/netqmail
|
||||
!mail-mta/nullmailer
|
||||
!mail-mta/qmail-ldap
|
||||
!mail-mta/sendmail
|
||||
!mail-mta/opensmtpd
|
||||
!<mail-mta/ssmtp-2.64-r2
|
||||
!>=mail-mta/ssmtp-2.64-r2[mta]
|
||||
!net-mail/fastforward
|
||||
selinux? ( sec-policy/selinux-postfix )"
|
||||
|
||||
REQUIRED_USE="ldap-bind? ( ldap sasl )"
|
||||
|
||||
S="${WORKDIR}/${MY_SRC}"
|
||||
|
||||
pkg_setup() {
|
||||
# Add postfix, postdrop user/group (bug #77565)
|
||||
enewgroup postfix 207
|
||||
enewgroup postdrop 208
|
||||
enewuser postfix 207 -1 /var/spool/postfix postfix,mail
|
||||
}
|
||||
|
||||
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"
|
||||
eapply -p0 "${FILESDIR}/${PN}-libressl.patch"
|
||||
eapply -p0 "${FILESDIR}/${PN}-libressl-runtime.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
for name in CDB LDAP LMDB MYSQL PCRE PGSQL SDBM SQLITE
|
||||
do
|
||||
local AUXLIBS_${name}=""
|
||||
done
|
||||
|
||||
# Make sure LDFLAGS get passed down to the executables.
|
||||
local mycc="-DHAS_PCRE" mylibs="${LDFLAGS} -ldl"
|
||||
AUXLIBS_PCRE="$(pcre-config --libs)"
|
||||
|
||||
use pam && mylibs="${mylibs} -lpam"
|
||||
|
||||
if use ldap; then
|
||||
mycc="${mycc} -DHAS_LDAP"
|
||||
AUXLIBS_LDAP="-lldap -llber"
|
||||
fi
|
||||
|
||||
if use 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"
|
||||
if use cdb; then
|
||||
# change default hash format from Berkeley DB to cdb
|
||||
mycc="${mycc} -DDEF_DB_TYPE=\\\"cdb\\\""
|
||||
fi
|
||||
fi
|
||||
|
||||
if use cdb; then
|
||||
mycc="${mycc} -DHAS_CDB -I/usr/include/cdb"
|
||||
# Tinycdb is preferred.
|
||||
if has_version dev-db/tinycdb ; then
|
||||
einfo "Building with dev-db/tinycdb"
|
||||
AUXLIBS_CDB="-lcdb"
|
||||
else
|
||||
einfo "Building with dev-db/cdb"
|
||||
CDB_PATH="/usr/$(get_libdir)"
|
||||
for i in cdb.a alloc.a buffer.a unix.a byte.a ; do
|
||||
AUXLIBS_CDB="${AUXLIBS_CDB} ${CDB_PATH}/${i}"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Robin H. Johnson <robbat2@gentoo.org> 17/Nov/2006
|
||||
# Fix because infra boxes hit 2Gb .db files that fail a 32-bit fstat signed check.
|
||||
mycc="${mycc} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
|
||||
filter-lfs-flags
|
||||
|
||||
# Workaround for bug #76512
|
||||
if use hardened; then
|
||||
[[ "$(gcc-version)" == "3.4" ]] && replace-flags -O? -Os
|
||||
fi
|
||||
|
||||
# Remove annoying C++ comment style warnings - bug #378099
|
||||
append-flags -Wno-comment
|
||||
|
||||
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 () {
|
||||
local myconf
|
||||
use doc && myconf="readme_directory=\"/usr/share/doc/${PF}/readme\" \
|
||||
html_directory=\"/usr/share/doc/${PF}/html\""
|
||||
|
||||
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" \
|
||||
${myconf} \
|
||||
|| 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 /usr/sbin/sendmail /usr/$(get_libdir)/sendmail
|
||||
|
||||
# Install qshape and posttls-finger
|
||||
dobin auxiliary/qshape/qshape.pl
|
||||
doman man/man1/qshape.1
|
||||
dobin bin/posttls-finger
|
||||
doman man/man1/posttls-finger.1
|
||||
|
||||
# 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
|
||||
dodir /var/lib/postfix
|
||||
keepdir /var/lib/postfix
|
||||
fowners -R postfix:postfix /var/lib/postfix
|
||||
fperms 0750 /var/lib/postfix
|
||||
fowners root:postdrop /usr/sbin/post{drop,queue}
|
||||
fperms 02711 /usr/sbin/post{drop,queue}
|
||||
|
||||
keepdir /etc/postfix
|
||||
if use mbox; then
|
||||
mypostconf="mail_spool_directory=/var/spool/mail"
|
||||
else
|
||||
mypostconf="home_mailbox=.maildir/"
|
||||
fi
|
||||
LD_LIBRARY_PATH="${S}/lib" \
|
||||
"${D}"/usr/sbin/postconf -c "${D}"/etc/postfix \
|
||||
-e ${mypostconf} || die "postconf failed"
|
||||
|
||||
insinto /etc/postfix
|
||||
newins "${FILESDIR}"/smtp.pass saslpass
|
||||
fperms 600 /etc/postfix/saslpass
|
||||
|
||||
newinitd "${FILESDIR}"/postfix.rc6.${RC_VER} postfix
|
||||
# do not start 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*
|
||||
use doc && mv "${S}"/examples "${D}"/usr/share/doc/${PF}/
|
||||
|
||||
pamd_mimic_system smtp auth account
|
||||
|
||||
if use sasl; then
|
||||
insinto /etc/sasl2
|
||||
newins "${FILESDIR}"/smtp.sasl smtpd.conf
|
||||
fi
|
||||
|
||||
# header files
|
||||
insinto /usr/include/postfix
|
||||
doins include/*.h
|
||||
|
||||
# Keep config_dir clean
|
||||
rm -f "${D}"/etc/postfix/{*LICENSE,access,aliases,canonical,generic}
|
||||
rm -f "${D}"/etc/postfix/{header_checks,relocated,transport,virtual}
|
||||
|
||||
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() {
|
||||
if [[ ! -e /etc/mail/aliases.db ]] ; then
|
||||
ewarn
|
||||
ewarn "You must edit /etc/mail/aliases to suit your needs"
|
||||
ewarn "and then run /usr/bin/newaliases. Postfix will not"
|
||||
ewarn "work correctly without it."
|
||||
ewarn
|
||||
fi
|
||||
|
||||
# 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
|
||||
}
|
||||
@@ -1,308 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
inherit flag-o-matic pam systemd toolchain-funcs user
|
||||
|
||||
MY_PV="${PV/_pre/-}"
|
||||
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"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
|
||||
IUSE="+berkdb cdb doc dovecot-sasl +eai hardened ldap ldap-bind libressl lmdb memcached mbox mysql nis pam postgres sasl selinux sqlite ssl"
|
||||
|
||||
DEPEND=">=dev-libs/libpcre-3.4
|
||||
dev-lang/perl
|
||||
berkdb? ( >=sys-libs/db-3.2:* )
|
||||
cdb? ( || ( >=dev-db/tinycdb-0.76 >=dev-db/cdb-0.75-r4 ) )
|
||||
eai? ( dev-libs/icu:= )
|
||||
ldap? ( net-nds/openldap )
|
||||
ldap-bind? ( net-nds/openldap[sasl] )
|
||||
lmdb? ( >=dev-db/lmdb-0.9.11 )
|
||||
mysql? ( virtual/mysql )
|
||||
pam? ( virtual/pam )
|
||||
postgres? ( dev-db/postgresql:* )
|
||||
sasl? ( >=dev-libs/cyrus-sasl-2 )
|
||||
sqlite? ( dev-db/sqlite:3 )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
)"
|
||||
|
||||
RDEPEND="${DEPEND}
|
||||
dovecot-sasl? ( net-mail/dovecot )
|
||||
memcached? ( net-misc/memcached )
|
||||
net-mail/mailbase
|
||||
!mail-mta/courier
|
||||
!mail-mta/esmtp
|
||||
!mail-mta/exim
|
||||
!mail-mta/mini-qmail
|
||||
!mail-mta/msmtp[mta]
|
||||
!mail-mta/netqmail
|
||||
!mail-mta/nullmailer
|
||||
!mail-mta/qmail-ldap
|
||||
!mail-mta/sendmail
|
||||
!mail-mta/opensmtpd
|
||||
!<mail-mta/ssmtp-2.64-r2
|
||||
!>=mail-mta/ssmtp-2.64-r2[mta]
|
||||
!net-mail/fastforward
|
||||
selinux? ( sec-policy/selinux-postfix )"
|
||||
|
||||
REQUIRED_USE="ldap-bind? ( ldap sasl )"
|
||||
|
||||
S="${WORKDIR}/${MY_SRC}"
|
||||
|
||||
pkg_setup() {
|
||||
# Add postfix, postdrop user/group (bug #77565)
|
||||
enewgroup postfix 207
|
||||
enewgroup postdrop 208
|
||||
enewuser postfix 207 -1 /var/spool/postfix postfix,mail
|
||||
}
|
||||
|
||||
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"
|
||||
eapply -p0 "${FILESDIR}/${PN}-libressl.patch"
|
||||
eapply -p0 "${FILESDIR}/${PN}-libressl-runtime.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
for name in CDB LDAP LMDB MYSQL PCRE PGSQL SDBM SQLITE
|
||||
do
|
||||
local AUXLIBS_${name}=""
|
||||
done
|
||||
|
||||
# Make sure LDFLAGS get passed down to the executables.
|
||||
local mycc="-DHAS_PCRE" mylibs="${LDFLAGS} -ldl"
|
||||
AUXLIBS_PCRE="$(pcre-config --libs)"
|
||||
|
||||
use pam && mylibs="${mylibs} -lpam"
|
||||
|
||||
if use ldap; then
|
||||
mycc="${mycc} -DHAS_LDAP"
|
||||
AUXLIBS_LDAP="-lldap -llber"
|
||||
fi
|
||||
|
||||
if use 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"
|
||||
if use cdb; then
|
||||
# change default hash format from Berkeley DB to cdb
|
||||
mycc="${mycc} -DDEF_DB_TYPE=\\\"cdb\\\""
|
||||
fi
|
||||
fi
|
||||
|
||||
if use cdb; then
|
||||
mycc="${mycc} -DHAS_CDB -I/usr/include/cdb"
|
||||
# Tinycdb is preferred.
|
||||
if has_version dev-db/tinycdb ; then
|
||||
einfo "Building with dev-db/tinycdb"
|
||||
AUXLIBS_CDB="-lcdb"
|
||||
else
|
||||
einfo "Building with dev-db/cdb"
|
||||
CDB_PATH="/usr/$(get_libdir)"
|
||||
for i in cdb.a alloc.a buffer.a unix.a byte.a ; do
|
||||
AUXLIBS_CDB="${AUXLIBS_CDB} ${CDB_PATH}/${i}"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Robin H. Johnson <robbat2@gentoo.org> 17/Nov/2006
|
||||
# Fix because infra boxes hit 2Gb .db files that fail a 32-bit fstat signed check.
|
||||
mycc="${mycc} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
|
||||
filter-lfs-flags
|
||||
|
||||
# Workaround for bug #76512
|
||||
if use hardened; then
|
||||
[[ "$(gcc-version)" == "3.4" ]] && replace-flags -O? -Os
|
||||
fi
|
||||
|
||||
# Remove annoying C++ comment style warnings - bug #378099
|
||||
append-flags -Wno-comment
|
||||
|
||||
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 () {
|
||||
local myconf
|
||||
use doc && myconf="readme_directory=\"/usr/share/doc/${PF}/readme\" \
|
||||
html_directory=\"/usr/share/doc/${PF}/html\""
|
||||
|
||||
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" \
|
||||
${myconf} \
|
||||
|| 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 /usr/sbin/sendmail /usr/$(get_libdir)/sendmail
|
||||
|
||||
# Install qshape and posttls-finger
|
||||
dobin auxiliary/qshape/qshape.pl
|
||||
doman man/man1/qshape.1
|
||||
dobin bin/posttls-finger
|
||||
doman man/man1/posttls-finger.1
|
||||
|
||||
# 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
|
||||
dodir /var/lib/postfix
|
||||
keepdir /var/lib/postfix
|
||||
fowners -R postfix:postfix /var/lib/postfix
|
||||
fperms 0750 /var/lib/postfix
|
||||
fowners root:postdrop /usr/sbin/post{drop,queue}
|
||||
fperms 02711 /usr/sbin/post{drop,queue}
|
||||
|
||||
keepdir /etc/postfix
|
||||
if use mbox; then
|
||||
mypostconf="mail_spool_directory=/var/spool/mail"
|
||||
else
|
||||
mypostconf="home_mailbox=.maildir/"
|
||||
fi
|
||||
LD_LIBRARY_PATH="${S}/lib" \
|
||||
"${D}"/usr/sbin/postconf -c "${D}"/etc/postfix \
|
||||
-e ${mypostconf} || die "postconf failed"
|
||||
|
||||
insinto /etc/postfix
|
||||
newins "${FILESDIR}"/smtp.pass saslpass
|
||||
fperms 600 /etc/postfix/saslpass
|
||||
|
||||
newinitd "${FILESDIR}"/postfix.rc6.${RC_VER} postfix
|
||||
# do not start 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*
|
||||
use doc && mv "${S}"/examples "${D}"/usr/share/doc/${PF}/
|
||||
|
||||
pamd_mimic_system smtp auth account
|
||||
|
||||
if use sasl; then
|
||||
insinto /etc/sasl2
|
||||
newins "${FILESDIR}"/smtp.sasl smtpd.conf
|
||||
fi
|
||||
|
||||
# header files
|
||||
insinto /usr/include/postfix
|
||||
doins include/*.h
|
||||
|
||||
# Keep config_dir clean
|
||||
rm -f "${D}"/etc/postfix/{*LICENSE,access,aliases,canonical,generic}
|
||||
rm -f "${D}"/etc/postfix/{header_checks,relocated,transport,virtual}
|
||||
|
||||
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() {
|
||||
if [[ ! -e /etc/mail/aliases.db ]] ; then
|
||||
ewarn
|
||||
ewarn "You must edit /etc/mail/aliases to suit your needs"
|
||||
ewarn "and then run /usr/bin/newaliases. Postfix will not"
|
||||
ewarn "work correctly without it."
|
||||
ewarn
|
||||
fi
|
||||
|
||||
# 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
|
||||
}
|
||||
@@ -1,308 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
inherit flag-o-matic pam systemd toolchain-funcs user
|
||||
|
||||
MY_PV="${PV/_pre/-}"
|
||||
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"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
|
||||
IUSE="+berkdb cdb doc dovecot-sasl +eai hardened ldap ldap-bind libressl lmdb memcached mbox mysql nis pam postgres sasl selinux sqlite ssl"
|
||||
|
||||
DEPEND=">=dev-libs/libpcre-3.4
|
||||
dev-lang/perl
|
||||
berkdb? ( >=sys-libs/db-3.2:* )
|
||||
cdb? ( || ( >=dev-db/tinycdb-0.76 >=dev-db/cdb-0.75-r4 ) )
|
||||
eai? ( dev-libs/icu:= )
|
||||
ldap? ( net-nds/openldap )
|
||||
ldap-bind? ( net-nds/openldap[sasl] )
|
||||
lmdb? ( >=dev-db/lmdb-0.9.11 )
|
||||
mysql? ( virtual/mysql )
|
||||
pam? ( virtual/pam )
|
||||
postgres? ( dev-db/postgresql:* )
|
||||
sasl? ( >=dev-libs/cyrus-sasl-2 )
|
||||
sqlite? ( dev-db/sqlite:3 )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
)"
|
||||
|
||||
RDEPEND="${DEPEND}
|
||||
dovecot-sasl? ( net-mail/dovecot )
|
||||
memcached? ( net-misc/memcached )
|
||||
net-mail/mailbase
|
||||
!mail-mta/courier
|
||||
!mail-mta/esmtp
|
||||
!mail-mta/exim
|
||||
!mail-mta/mini-qmail
|
||||
!mail-mta/msmtp[mta]
|
||||
!mail-mta/netqmail
|
||||
!mail-mta/nullmailer
|
||||
!mail-mta/qmail-ldap
|
||||
!mail-mta/sendmail
|
||||
!mail-mta/opensmtpd
|
||||
!<mail-mta/ssmtp-2.64-r2
|
||||
!>=mail-mta/ssmtp-2.64-r2[mta]
|
||||
!net-mail/fastforward
|
||||
selinux? ( sec-policy/selinux-postfix )"
|
||||
|
||||
REQUIRED_USE="ldap-bind? ( ldap sasl )"
|
||||
|
||||
S="${WORKDIR}/${MY_SRC}"
|
||||
|
||||
pkg_setup() {
|
||||
# Add postfix, postdrop user/group (bug #77565)
|
||||
enewgroup postfix 207
|
||||
enewgroup postdrop 208
|
||||
enewuser postfix 207 -1 /var/spool/postfix postfix,mail
|
||||
}
|
||||
|
||||
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"
|
||||
eapply -p0 "${FILESDIR}/${PN}-libressl.patch"
|
||||
eapply -p0 "${FILESDIR}/${PN}-libressl-runtime.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
for name in CDB LDAP LMDB MYSQL PCRE PGSQL SDBM SQLITE
|
||||
do
|
||||
local AUXLIBS_${name}=""
|
||||
done
|
||||
|
||||
# Make sure LDFLAGS get passed down to the executables.
|
||||
local mycc="-DHAS_PCRE" mylibs="${LDFLAGS} -ldl"
|
||||
AUXLIBS_PCRE="$(pcre-config --libs)"
|
||||
|
||||
use pam && mylibs="${mylibs} -lpam"
|
||||
|
||||
if use ldap; then
|
||||
mycc="${mycc} -DHAS_LDAP"
|
||||
AUXLIBS_LDAP="-lldap -llber"
|
||||
fi
|
||||
|
||||
if use 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"
|
||||
if use cdb; then
|
||||
# change default hash format from Berkeley DB to cdb
|
||||
mycc="${mycc} -DDEF_DB_TYPE=\\\"cdb\\\""
|
||||
fi
|
||||
fi
|
||||
|
||||
if use cdb; then
|
||||
mycc="${mycc} -DHAS_CDB -I/usr/include/cdb"
|
||||
# Tinycdb is preferred.
|
||||
if has_version dev-db/tinycdb ; then
|
||||
einfo "Building with dev-db/tinycdb"
|
||||
AUXLIBS_CDB="-lcdb"
|
||||
else
|
||||
einfo "Building with dev-db/cdb"
|
||||
CDB_PATH="/usr/$(get_libdir)"
|
||||
for i in cdb.a alloc.a buffer.a unix.a byte.a ; do
|
||||
AUXLIBS_CDB="${AUXLIBS_CDB} ${CDB_PATH}/${i}"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Robin H. Johnson <robbat2@gentoo.org> 17/Nov/2006
|
||||
# Fix because infra boxes hit 2Gb .db files that fail a 32-bit fstat signed check.
|
||||
mycc="${mycc} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
|
||||
filter-lfs-flags
|
||||
|
||||
# Workaround for bug #76512
|
||||
if use hardened; then
|
||||
[[ "$(gcc-version)" == "3.4" ]] && replace-flags -O? -Os
|
||||
fi
|
||||
|
||||
# Remove annoying C++ comment style warnings - bug #378099
|
||||
append-flags -Wno-comment
|
||||
|
||||
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 () {
|
||||
local myconf
|
||||
use doc && myconf="readme_directory=\"/usr/share/doc/${PF}/readme\" \
|
||||
html_directory=\"/usr/share/doc/${PF}/html\""
|
||||
|
||||
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" \
|
||||
${myconf} \
|
||||
|| 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 /usr/sbin/sendmail /usr/$(get_libdir)/sendmail
|
||||
|
||||
# Install qshape and posttls-finger
|
||||
dobin auxiliary/qshape/qshape.pl
|
||||
doman man/man1/qshape.1
|
||||
dobin bin/posttls-finger
|
||||
doman man/man1/posttls-finger.1
|
||||
|
||||
# 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
|
||||
dodir /var/lib/postfix
|
||||
keepdir /var/lib/postfix
|
||||
fowners -R postfix:postfix /var/lib/postfix
|
||||
fperms 0750 /var/lib/postfix
|
||||
fowners root:postdrop /usr/sbin/post{drop,queue}
|
||||
fperms 02711 /usr/sbin/post{drop,queue}
|
||||
|
||||
keepdir /etc/postfix
|
||||
if use mbox; then
|
||||
mypostconf="mail_spool_directory=/var/spool/mail"
|
||||
else
|
||||
mypostconf="home_mailbox=.maildir/"
|
||||
fi
|
||||
LD_LIBRARY_PATH="${S}/lib" \
|
||||
"${D}"/usr/sbin/postconf -c "${D}"/etc/postfix \
|
||||
-e ${mypostconf} || die "postconf failed"
|
||||
|
||||
insinto /etc/postfix
|
||||
newins "${FILESDIR}"/smtp.pass saslpass
|
||||
fperms 600 /etc/postfix/saslpass
|
||||
|
||||
newinitd "${FILESDIR}"/postfix.rc6.${RC_VER} postfix
|
||||
# do not start 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*
|
||||
use doc && mv "${S}"/examples "${D}"/usr/share/doc/${PF}/
|
||||
|
||||
pamd_mimic_system smtp auth account
|
||||
|
||||
if use sasl; then
|
||||
insinto /etc/sasl2
|
||||
newins "${FILESDIR}"/smtp.sasl smtpd.conf
|
||||
fi
|
||||
|
||||
# header files
|
||||
insinto /usr/include/postfix
|
||||
doins include/*.h
|
||||
|
||||
# Keep config_dir clean
|
||||
rm -f "${D}"/etc/postfix/{*LICENSE,access,aliases,canonical,generic}
|
||||
rm -f "${D}"/etc/postfix/{header_checks,relocated,transport,virtual}
|
||||
|
||||
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() {
|
||||
if [[ ! -e /etc/mail/aliases.db ]] ; then
|
||||
ewarn
|
||||
ewarn "You must edit /etc/mail/aliases to suit your needs"
|
||||
ewarn "and then run /usr/bin/newaliases. Postfix will not"
|
||||
ewarn "work correctly without it."
|
||||
ewarn
|
||||
fi
|
||||
|
||||
# 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
|
||||
}
|
||||
Reference in New Issue
Block a user