# $Header$ PNAME="postfix" PVER="2.5.1" PBUILD="r1" PCATEGORIE="net-mail" STATE="unstable" DESCRIPTION="Postfix is a Mail Transport Agent (MTA), supporting LDAP, SMTP AUTH (SASL), TLS." HOMEPAGE="http://www.postfix.org/" DEPEND=">= net-mail/mail-base-files-0.1 >= net-mail/mailwrapper-0.2.1 >= sys-libs/pam-0.99 >= dev-libs/openssl-0.9.8 >= dev-libs/cyrus-sasl-2 >= net-nds/openldap-2.4 >= dev-db/mysql5-5 >= sys-libs/db-4.6 >= dev-libs/libpcre-7.4" SRCFILE="${PNAME}-${PVER}.tar.gz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" sminclude mtools SRC_URI=( ftp://ftp.porcupine.org/mirrors/postfix-release/official/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/postfix.rc mirror://${PNAME}/postfix.pam doins "${FILESDIR}/mailer.conf" newins "${FILESDIR}/smtp.pass" saslpass smtp.sasl ) src_prepare() { munpack ${SRCFILE} || die cd ${SRCDIR} # fix default alias db location sed -i "/^#define ALIAS_DB_MAP/s|hash:/etc/aliases|hash:/etc/mail/aliases|" src/util/sys_defs.h || die # fix default install pathes sed -i "s:/usr/local/:/usr/:g" conf/master.cf || die } src_compile() { cd ${SRCDIR} local CCARGS local AUXLIBS # default pathes CCARGS="${CCARGS} -DDEF_DAEMON_DIR=\\\"/usr/$(mlibdir)/postfix\\\"" CCARGS="${CCARGS} -DDEF_MANPAGE_DIR=\\\"/usr/share/man\\\"" CCARGS="${CCARGS} -DDEF_README_DIR=\\\"/usr/share/doc/${PNAME}-${PVER}/readme\\\"" CCARGS="${CCARGS} -DDEF_HTML_DIR=\\\"/usr/share/doc/${PNAME}-${PVER}/html\\\"" # generic flags CCARGS="${CCARGS} -DHAS_PCRE" AUXLIBS="${AUXLIBS} ${LDFLAGS} -lpcre -lcrypt -lpthread" # largefile support CCARGS="${CCARGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" # pam support AUXLIBS="${AUXLIBS} -lpam" # mysql support CCARGS="${CCARGS} -DHAS_MYSQL -I/usr/include/mysql" AUXLIBS="${AUXLIBS} -lmysqlclient -lm -lz" # ldap support CCARGS="${CCARGS} -DHAS_LDAP" AUXLIBS="${AUXLIBS} -lldap -llber" # ssl/tls support CCARGS="${CCARGS} -DUSE_TLS" AUXLIBS="${AUXLIBS} -lssl -lcrypto" # sasl2 support CCARGS="${CCARGS} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" AUXLIBS="${AUXLIBS} -lsasl2" # configure make DEBUG="" OPT="${CFLAGS}" CCARGS="${CCARGS}" AUXLIBS="${AUXLIBS}" makefiles || die mmake || die } src_install() { sh postfix-install \ -non-interactive \ install_root="${BINDIR}" \ config_directory="/usr/share/doc/${PNAME}-${PVER}/defaults" \ readme_directory="/usr/share/doc/${PNAME}-${PVER}/readme" \ || die # mailwrapper stuff mv ${BINDIR}/usr/sbin/sendmail{,.postfix} || die mv ${BINDIR}/usr/bin/rmail{,.postfix} || die mv ${BINDIR}/usr/share/man/man1/sendmail{,-postfix}.1 || die mv ${BINDIR}/usr/share/man/man1/newaliases{,-postfix}.1 || die mv ${BINDIR}/usr/share/man/man1/mailq{,-postfix}.1 || die mv ${BINDIR}/usr/share/man/man5/aliases{,-postfix}.5 || die # regular ebuild insinto /etc/mail doins "${FILESDIR}/mailer.conf" # install auxiliary tools minstallexec auxiliary/rmail/rmail || die minstallexec auxiliary/qshape/qshape.pl || die minstallexec bin/smtp-source || die minstallexec bin/smtp-sink || die minstallexec bin/qmqp-source || die minstallexec bin/qmqp-sink || die minstallman man/man1/smtp-source.1 || die minstallman man/man1/smtp-sink.1 || die minstallman man/man1/qmqp-source.1 || die minstallman man/man1/qmqp-sink.1 || die # clean up and install needed diretories rm -Rf ${BINDIR}/var || die mkeepdir /var/spool/postfix || die mkeepdir /etc/postfix || die # install and generate a default configuration with maildir support mv ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/defaults/{*.cf,post*-*} ${BINDIR}/etc/postfix || die ${BINDIR}/usr/sbin/postconf -c ${BINDIR}/etc/postfix -e home_mailbox=.maildir/ || die minstallfile -s smtp.pass /etc/postfix/saslpass || die minstallrc postfix.rc postfix || die minstallpam postfix.pam postfix || die minstalldir /etc/sasl2 || die minstallfile -s smtp.sasl /etc/sasl2/smtpd.conf || die # fix permissions mchown root:postdrop /usr/sbin/post{drop,queue} || die mchmod 02711 /usr/sbin/post{drop,queue} || die mchmod 600 /etc/postfix/saslpass || die mv ${SRCDIR}/examples ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/ || die minstalldocs *README COMPATIBILITY HISTORY INSTALL PORTING RELEASE_NOTES* || die minstallhtml html/* || die } cd ${SRCDIR} mmake DESTDIR=${BINDIR} install || die # install our initscript minstallrc dovecot.rc dovecot || die # install ssl-cert creation script and config minstalldir /etc/dovecot/ssl || die minstallfile doc/dovecot-openssl.cnf /etc/dovecot/ssl/ || die minstallexec doc/mkcert.sh /usr/libexec/dovecot/ || die # remove unwanted docs rm -rf ${BINDIR}/usr/share/doc/dovecot || die minstalldocs AUTHORS ChangeLog COPYING* NEWS README TODO || die minstalldocs dovecot-example.conf || die } preinstall() { # adding proftpd user ${MLIBDIR}/mgroupadd -o "-g 207" postfix ${MLIBDIR}/mgroupadd -o "-g 208" postdrop ${MLIBDIR}/museradd -o "-u 207 -g postfix -G mail -d /var/spool/postfix -s /bin/false" postfix } postinstall() { # generate a self-signed ssl-cert if [[ ! -f /etc/dovecot/ssl/dovecot.pem ]] then SSLDIR=/etc/dovecot/ssl \ OPENSSLCONFIG=/etc/dovecot/ssl/dovecot-openssl.cnf \ /usr/libexec/dovecot/mkcert.sh &> /dev/null fi # rebuild ssl-parametes if [[ ! -f /var/run/dovecot/login/ssl-parameters.dat ]] then dovecot --build-ssl-parameters &> /dev/null fi mstartservice dovecot } postremove() { mstopservice dovecot }