# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/mail-mta/postfix/postfix-2.4.6-r2.ebuild,v 1.13 2008/07/22 17:44:21 dertobi123 Exp $ # NOTE: this ebuild is a regular ebuild without mailer-config support! # Comment lines below "regular ebuild" and uncomment lines below "mailer-config support" # to turn this ebuild to a mailer-config enabled ebuild. # regular ebuild inherit eutils multilib ssl-cert toolchain-funcs flag-o-matic pam # mailer-config support #inherit eutils multilib ssl-cert toolchain-funcs flag-o-matic mailer pam KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" # regular ebuild IUSE="cdb dovecot-sasl hardened ipv6 ldap mailwrapper mbox mysql nis pam postgres sasl selinux ssl vda" # mailer-config support #IUSE="cdb dovecot-sasl hardened ipv6 ldap mbox mysql nis pam postgres sasl selinux ssl vda" MY_PV="${PV/_rc/-RC}" MY_SRC="${PN}-${MY_PV}" MY_URI="ftp://ftp.porcupine.org/mirrors/postfix-release/official" VDA_P="${P}-vda-ng-r2" RC_VER="2.2.9" 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://gentoo.longitekk.com/${VDA_P}.patch.gz ) " LICENSE="IPL-1" SLOT="0" # regular ebuild PROVIDE="virtual/mta virtual/mda" # mailer-config support #PROVIDE="${PROVIDE} virtual/mda" DEPEND=">=sys-libs/db-3.2 >=dev-libs/libpcre-3.4 cdb? ( || ( >=dev-db/cdb-0.75-r1 >=dev-db/tinycdb-0.76 ) ) ldap? ( >=net-nds/openldap-1.2 ) mysql? ( virtual/mysql ) pam? ( virtual/pam ) postgres? ( virtual/postgresql-base ) sasl? ( >=dev-libs/cyrus-sasl-2 ) ssl? ( >=dev-libs/openssl-0.9.6g )" # regular ebuild RDEPEND="${DEPEND} >=net-mail/mailbase-0.00 !mailwrapper? ( !virtual/mta !net-mail/mailwrapper ) mailwrapper? ( >=net-mail/mailwrapper-0.2 ) selinux? ( sec-policy/selinux-postfix )" # mailer-config support #RDEPEND="${DEPEND} # >=net-mail/mailbase-0.00 # selinux? ( sec-policy/selinux-postfix )" S="${WORKDIR}/${MY_SRC}" group_user_check() { einfo "Checking for postfix group ..." enewgroup postfix 207 einfo "Checking for postdrop group ..." enewgroup postdrop 208 einfo "Checking for postfix user ..." enewuser postfix 207 -1 /var/spool/postfix postfix,mail } pkg_setup() { # Do not upgrade live from Postfix <2.4 if [[ -f /var/lib/init.d/started/postfix ]] ; then if has_version ' 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 local my_cc=$(tc-getCC) einfo "CC=${my_cc:=gcc}" # Workaround for bug #76512 [[ "$(gcc-version)" == "3.4" ]] && use hardened && replace-flags -O? -Os make DEBUG="" CC="${my_cc:=gcc}" OPT="${CFLAGS}" CCARGS="${mycc}" AUXLIBS="${mylibs}" \ makefiles || die "configure problem" emake || die "compile problem" } src_install () { /bin/sh postfix-install \ -non-interactive \ install_root="${D}" \ config_directory="/usr/share/doc/${PF}/defaults" \ readme_directory="/usr/share/doc/${PF}/readme" \ || 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 # mailwrapper stuff if use mailwrapper ; then mv "${D}/usr/sbin/sendmail" "${D}/usr/sbin/sendmail.postfix" mv "${D}/usr/bin/rmail" "${D}/usr/bin/rmail.postfix" # mailer-config support #rm "${D}/usr/bin/mailq" "${D}/usr/bin/newaliases" mv "${D}/usr/share/man/man1/sendmail.1" \ "${D}/usr/share/man/man1/sendmail-postfix.1" mv "${D}/usr/share/man/man1/newaliases.1" \ "${D}/usr/share/man/man1/newaliases-postfix.1" mv "${D}/usr/share/man/man1/mailq.1" \ "${D}/usr/share/man/man1/mailq-postfix.1" mv "${D}/usr/share/man/man5/aliases.5" \ "${D}/usr/share/man/man5/aliases-postfix.5" # regular ebuild insinto /etc/mail doins "${FILESDIR}/mailer.conf" # mailer-config support #mailer_install_conf else # Provide another link for legacy FSH dosym /usr/sbin/sendmail /usr/$(get_libdir)/sendmail fi # Install qshape tool dobin auxiliary/qshape/qshape.pl # 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 fowners root:postdrop /usr/sbin/post{drop,queue} fperms 02711 /usr/sbin/post{drop,queue} keepdir /etc/postfix mv "${D}"/usr/share/doc/${PF}/defaults/{*.cf,post*-*} "${D}"/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 || die "newinitd failed" mv "${S}/examples" "${D}/usr/share/doc/${PF}/" dodoc *README COMPATIBILITY HISTORY INSTALL PORTING RELEASE_NOTES* dohtml html/* pamd_mimic_system smtp auth account if use sasl ; then insinto /etc/sasl2 newins "${FILESDIR}/smtp.sasl" smtpd.conf fi } pkg_postinst() { # Add postfix, postdrop user/group (bug #77565) group_user_check || die "Failed to check/add needed user/group" # 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 ebegin "Fixing queue directories and permissions" "${ROOT}/etc/postfix/post-install" upgrade-permissions echo ewarn "If you upgraded from Postfix-1.x, you must revisit" ewarn "your configuration files. See" ewarn " /usr/share/doc/${PF}/RELEASE_NOTES" ewarn "for a list of changes." if [[ ! -e /etc/mail/aliases.db ]] ; then echo 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." fi # regular ebuild if ! use mailwrapper && [[ -e /etc/mailer.conf ]] ; then einfo einfo "Since you emerged Postfix without mailwrapper in USE," einfo "you may want to 'emerge -C mailwrapper' now." einfo fi # mailer-config support #mailer_pkg_postinst }