Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Oleg Vinichenko
committed
Sep 30, 2013
1 parent
d98f4a3
commit 22b56dc
Showing
3 changed files
with
331 additions
and
6 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,6 +1,6 @@ | ||
DIST postfix-2.8.12.tar.gz 3641269 RMD160 c391fae5b6a92836a8dfdaa9dc10e2c4476bcaaa SHA1 a4afa18226fcd35af61bcd03a3b89cf1650b409f SHA256 f46b0117cab52e862b12869810327e2bd248a60f209079a875818ee2653de087 | ||
DIST postfix-2.8.7.tar.gz 3647643 RMD160 ab0700f8f340fad11bf2a294a36ff1d70a1a8783 SHA1 81c87aceff4d9af67a304354bab9c99ac98fc8a0 SHA256 5c13465ab47414e9aa2e857851eff1a3f020cebd056e0dde6094ece3552806e5 | ||
DIST postfix-2.9.4.tar.gz 3760718 RMD160 6acfe59939977fd6993dc1a342ec2564b1ef3bbb SHA1 ac53c2c6e15b642d5d06eb0fc092d6a35ab7eec7 SHA256 58343afcc727594cc1f9a3980562d8199aa55fc2cf2330da6b9ddfbf31502679 | ||
DIST postfix-vda-v10-2.8.5.patch 56777 RMD160 fc1622a91c88d6d91782b9d4e9dfecd3f603251b SHA1 b9f8480a738dccf0023698274c8d5f5cb4fb308f SHA256 0106e0bfdea8bb3888e8f33e7cb4b1530d171abbf2d3ac91567f91240e4b6b5a | ||
DIST postfix-vda-v10-2.8.9.patch 56777 RMD160 acf05f56f1dfb7f4628c7b95be92cabc41538b5e SHA1 8e55e2fea8392f2e64e05e9cd84c712cc489031c SHA256 e671f7349173349d66f1b091359761ed5a5d517f8a58c86a42ff461997d2cd7e | ||
DIST postfix-vda-v11-2.9.1.patch 55009 RMD160 fc35876f4c48accca785f412a4d9a2f1a250f05d SHA1 f259c489d76271ac1780510e20a60962f97ac36f SHA256 611283a932577944bcdde36e5fe1a80ca750a0a66eb5f3490666e2adafd2bf84 | ||
DIST postfix-2.10.2.tar.gz 3828326 SHA256 f1a735a5a9ffeac8fca59046c437c3b76e7f923fb4249db2a55b2bff0306ddd4 SHA512 fa6c123da040a8e332c0bf2430f5b098523c2eff42a6cf4bfe6618b82d59be8e5a7f5c85b09ab8fd0312058b2135b174e00890423e4d3f8f732c3dc3c91f01c3 WHIRLPOOL 4e1e453ecd653058faf7420d6bfb6ac6a6c343f03f9c1a4213c403a7164d99f659a0b9ba744b803c3d94cfaf3216d3505f44d22069421f6cc4a4651b6be1f316 | ||
DIST postfix-2.8.12.tar.gz 3641269 SHA256 f46b0117cab52e862b12869810327e2bd248a60f209079a875818ee2653de087 | ||
DIST postfix-2.9.4.tar.gz 3760718 SHA256 58343afcc727594cc1f9a3980562d8199aa55fc2cf2330da6b9ddfbf31502679 SHA512 f8932ae510805261b4a6c204bd4bba41d50e1833f87326b986ef174b51eb695cf0588d7d98850bb7b83ba56f1257406da072c423cc768f68d3723daf645b9490 WHIRLPOOL 7d7d619e0fa8375f1b653b9e1a0a2fa723929ab87db05445f2c2a73c213e91476d202806a439dd9792499e6a4d43c86f84133e90ffbd3bc9828ba1a925d8d11c | ||
DIST postfix-vda-v10-2.8.9.patch 56777 SHA256 e671f7349173349d66f1b091359761ed5a5d517f8a58c86a42ff461997d2cd7e | ||
DIST postfix-vda-v11-2.9.1.patch 55009 SHA256 611283a932577944bcdde36e5fe1a80ca750a0a66eb5f3490666e2adafd2bf84 | ||
DIST postfix-vda-v13-2.10.0.patch 55701 SHA256 6208021eb0b37ac6482e334e538ed5700cc22c4d4dd66ed9e975ae5f20bf935f SHA512 0b4b53a8cd28abf56eee3b2ed63ca1814251b60816e6ca1143249d25fd6ef7f905bec3134125ac6e851af685db8aae878012113693261529ae2ddbcf1bd93e62 WHIRLPOOL d98b7d2177b8b69738086880fd08c336fa60b99ff7413624e628fd5f17be2064f2ccaa37c047d3013ed41c0ff1bcb76e7962f8390c4179f28ab11733dd3b59d3 |
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,13 @@ | ||
[Unit] | ||
Description=Postfix Mail Transport Agent | ||
After=network.target | ||
|
||
[Service] | ||
Type=forking | ||
ExecStartPre=-/usr/bin/newaliases | ||
ExecStart=/usr/sbin/postfix start | ||
ExecStop=/usr/sbin/postfix stop | ||
ExecReload=/usr/sbin/postfix reload | ||
|
||
[Install] | ||
WantedBy=multi-user.target |
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,312 @@ | ||
# Copyright 1999-2013 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Header: /var/cvsroot/gentoo-x86/mail-mta/postfix/postfix-2.10.2.ebuild,v 1.1 2013/09/07 08:44:04 eras Exp $ | ||
|
||
EAPI=5 | ||
inherit eutils multilib ssl-cert toolchain-funcs flag-o-matic pam user versionator systemd | ||
|
||
MY_PV="${PV/_pre/-}" | ||
MY_SRC="${PN}-${MY_PV}" | ||
MY_URI="ftp://ftp.porcupine.org/mirrors/postfix-release/official" | ||
VDA_PV="2.10.0" | ||
VDA_P="${PN}-vda-v13-${VDA_PV}" | ||
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 | ||
vda? ( http://vda.sourceforge.net/VDA/${VDA_P}.patch ) " | ||
|
||
LICENSE="IBM" | ||
SLOT="0" | ||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" | ||
IUSE="+berkdb cdb doc dovecot-sasl hardened ldap ldap-bind memcached mbox mysql nis pam postgres sasl selinux sqlite ssl vda" | ||
|
||
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-r1 ) ) | ||
ldap? ( net-nds/openldap ) | ||
ldap-bind? ( net-nds/openldap[sasl] ) | ||
mysql? ( virtual/mysql ) | ||
pam? ( virtual/pam ) | ||
postgres? ( dev-db/postgresql-base ) | ||
sasl? ( >=dev-libs/cyrus-sasl-2 ) | ||
sqlite? ( dev-db/sqlite:3 ) | ||
ssl? ( >=dev-libs/openssl-0.9.6g )" | ||
|
||
RDEPEND="${DEPEND} | ||
dovecot-sasl? ( net-mail/dovecot ) | ||
memcached? ( net-misc/memcached ) | ||
net-mail/mailbase | ||
selinux? ( sec-policy/selinux-postfix ) | ||
!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" | ||
|
||
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() { | ||
if use vda; then | ||
epatch "${DISTDIR}"/${VDA_P}.patch | ||
fi | ||
|
||
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" | ||
epatch "${FILESDIR}"/${PN}-funtoo.patch | ||
} | ||
|
||
src_configure() { | ||
# Make sure LDFLAGS get passed down to the executables. | ||
local mycc="-DHAS_PCRE" mylibs="${LDFLAGS} -lpcre -lcrypt -lpthread" | ||
|
||
use pam && mylibs="${mylibs} -lpam" | ||
|
||
if use ldap; then | ||
mycc="${mycc} -DHAS_LDAP" | ||
mylibs="${mylibs} -lldap -llber" | ||
fi | ||
|
||
if use mysql; then | ||
mycc="${mycc} -DHAS_MYSQL $(mysql_config --include)" | ||
mylibs="${mylibs} $(mysql_config --libs)" | ||
fi | ||
|
||
if use postgres; then | ||
mycc="${mycc} -DHAS_PGSQL -I$(pg_config --includedir)" | ||
mylibs="${mylibs} -lpq -L$(pg_config --libdir)" | ||
fi | ||
|
||
if use sqlite; then | ||
mycc="${mycc} -DHAS_SQLITE" | ||
mylibs="${mylibs} -lsqlite3" | ||
fi | ||
|
||
if use ssl; then | ||
mycc="${mycc} -DUSE_TLS" | ||
mylibs="${mylibs} -lssl -lcrypto" | ||
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 | ||
sed -i -e "s|#define HAS_NIS|//#define HAS_NIS|g" \ | ||
src/util/sys_defs.h || die "sed failed" | ||
fi | ||
|
||
if ! use berkdb; then | ||
mycc="${mycc} -DNO_DB" | ||
if use cdb; then | ||
# change default hash format from Berkeley DB to cdb | ||
sed -i -e "s/hash/cdb/" src/util/sys_defs.h || die | ||
fi | ||
fi | ||
|
||
if use cdb; then | ||
mycc="${mycc} -DHAS_CDB -I/usr/include/cdb" | ||
CDB_LIBS="" | ||
# Tinycdb is preferred. | ||
if has_version dev-db/tinycdb ; then | ||
einfo "Building with dev-db/tinycdb" | ||
CDB_LIBS="-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 | ||
CDB_LIBS="${CDB_LIBS} ${CDB_PATH}/${i}" | ||
done | ||
fi | ||
mylibs="${mylibs} ${CDB_LIBS}" | ||
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 DEBUG="" CC="$(tc-getCC)" OPT="${CFLAGS}" CCARGS="${mycc}" AUXLIBS="${mylibs}" makefiles | ||
} | ||
|
||
src_install () { | ||
local myconf | ||
use doc && myconf="readme_directory=\"/usr/share/doc/${PF}/readme\" \ | ||
html_directory=\"/usr/share/doc/${PF}/html\"" | ||
|
||
/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 tool | ||
dobin auxiliary/qshape/qshape.pl | ||
doman man/man1/qshape.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 | ||
"${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* | ||
mv "${D}"/etc/postfix/{*.default,makedefs.out} "${D}"/usr/share/doc/${PF}/ | ||
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 | ||
|
||
# Remove unnecessary files | ||
rm -f "${D}"/etc/postfix/{*LICENSE,access,aliases,canonical,generic} | ||
rm -f "${D}"/etc/postfix/{header_checks,relocated,transport,virtual} | ||
|
||
systemd_dounit "${FILESDIR}/${PN}.service" | ||
} | ||
|
||
pkg_preinst() { | ||
# Postfix 2.9. | ||
# default for inet_protocols changed from ipv4 to all in postfix-2.9. | ||
# check inet_protocols setting in main.cf and modify if necessary to prevent | ||
# performance loss with useless DNS lookups and useless connection attempts. | ||
[[ -d ${ROOT}/etc/postfix ]] && { | ||
if [[ "$(${D}/usr/sbin/postconf -dh inet_protocols)" != "ipv4" ]]; then | ||
if [[ ! -n "$(${D}/usr/sbin/postconf -c ${ROOT}/etc/postfix -n inet_protocols)" ]]; | ||
then | ||
ewarn "\nCOMPATIBILITY: adding inet_protocols=ipv4 to main.cf." | ||
ewarn "That will keep the same behaviour as previous postfix versions." | ||
ewarn "Specify inet_protocols explicitly if you want to enable IPv6.\n" | ||
else | ||
# delete inet_protocols setting. there is already one in /etc/postfix | ||
sed -i -e /inet_protocols/d "${D}"/etc/postfix/main.cf || die | ||
fi | ||
fi | ||
} | ||
} | ||
|
||
pkg_postinst() { | ||
# Do not install server.{key,pem) SSL certificates if they already exist | ||
if use ssl && [[ ! -f "${ROOT}"/etc/ssl/postfix/server.key \ | ||
&& ! -f "${ROOT}"/etc/ssl/postfix/server.pem ]] ; then | ||
SSL_ORGANIZATION="${SSL_ORGANIZATION:-Postfix SMTP Server}" | ||
install_cert /etc/ssl/postfix/server | ||
chown postfix:mail "${ROOT}"/etc/ssl/postfix/server.{key,pem} | ||
fi | ||
|
||
if [[ ! -e /etc/mail/aliases.db ]] ; then | ||
elog "Creating aliases database" | ||
/usr/bin/newaliases | ||
fi | ||
|
||
if [[ $(get_version_component_range 2 ${REPLACING_VERSIONS}) -lt 9 ]]; then | ||
elog "If you are using old style postfix instances by symlinking" | ||
elog "startup scripts in ${ROOT}etc/init.d, please consider" | ||
elog "upgrading your config for postmulti support. For more info:" | ||
elog "http://www.postfix.org/MULTI_INSTANCE_README.html" | ||
if ! use berkdb; then | ||
ewarn "\nPostfix is installed without BerkeleyDB support." | ||
ewarn "Please turn on berkdb USE flag if you need hash or" | ||
ewarn "btree table lookups.\n" | ||
fi | ||
ewarn "Postfix daemons now live under /usr/libexec/postfix" | ||
ewarn "Please adjust your main.cf accordingly by running" | ||
ewarn "etc-update/dispatch-conf or similar and accepting the new" | ||
ewarn "daemon_directory setting." | ||
fi | ||
} |