Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --- pkgsrc/mail/postfix/Makefile 2002/11/26 07:20:06 1.71 +++ pkgsrc/mail/postfix/Makefile 2005/04/11 21:46:22 1.161 @@ -1,171 +1,139 @@ -# $NetBSD: Makefile,v 1.71 2002/11/26 07:20:06 martti Exp $ +# $NetBSD: Makefile,v 1.161 2005/04/11 21:46:22 tv Exp $ -DISTNAME= postfix-1.1.12 +DISTNAME= postfix-2.2.2 CATEGORIES= mail MASTER_SITES= ftp://ftp.porcupine.org/mirrors/postfix-release/official/ -MAINTAINER= packages@netbsd.org +MAINTAINER= martti@NetBSD.org HOMEPAGE= http://www.postfix.org/ COMMENT= Postfix SMTP server and tools DIST_SUBDIR= postfix -POSTFIX_SPOOL= /var/spool/postfix +CONFLICTS+= sendmail-[0-9]* fastforward>=0.51nb2 -USE_BUILDLINK2= yes +PKG_INSTALLATION_TYPES= overwrite pkgviews .include "../../mk/bsd.prefs.mk" -# XXX No IPv6 patch available yet! +# POSTFIX_QUEUE_DIR is the default queue directory for Postfix. This is +# merely a default, and may be changed by setting "queue_directory" in +# ${PKG_SYSCONFDIR}/main.cf. # -# .if defined(POSTFIX_USE_INET6) && ${POSTFIX_USE_INET6} == "YES" -# PATCHFILES+= postfix-20010228pl04-v6-20010809a.diff.gz -# PATCH_SITES+= ftp://ftp.kame.net/pub/kame/misc/ -# BUILD_DEFS+= POSTFIX_USE_INET6 -# .endif - -.if defined(POSTFIX_USE_PCRE) && ${POSTFIX_USE_PCRE} == "YES" \ - || defined(POSTFIX_USE_LDAP) && ${POSTFIX_USE_LDAP} == "YES" \ - || defined(POSTFIX_USE_MYSQL) && ${POSTFIX_USE_MYSQL} == "YES" \ - || defined(POSTFIX_USE_TLS) && ${POSTFIX_USE_TLS} == "YES" \ - || defined(USE_SASL) && ${USE_SASL} == "YES" -MAKE_ENV+= AUXLIBS="${AUXLIBS}" CCARGS="${CCARGS}" -.endif - -.if defined(POSTFIX_USE_PCRE) && ${POSTFIX_USE_PCRE} == "YES" -.include "../../devel/pcre/buildlink2.mk" -CCARGS+= -DHAS_PCRE -AUXLIBS+= -L${BUILDLINK_PREFIX.pcre}/lib \ - -Wl,-R${BUILDLINK_PREFIX.pcre}/lib \ - -lpcre -BUILD_DEFS+= POSTFIX_USE_PCRE -.endif - -.if defined(POSTFIX_USE_LDAP) && ${POSTFIX_USE_LDAP} == "YES" -.include "../../databases/openldap/buildlink2.mk" -CCARGS+= -DHAS_LDAP -AUXLIBS+= -L${BUILDLINK_PREFIX.openldap}/lib \ - -Wl,-R${BUILDLINK_PREFIX.openldap}/lib \ - -lldap -llber -BUILD_DEFS+= POSTFIX_USE_LDAP -.endif - -.if defined(POSTFIX_USE_MYSQL) && ${POSTFIX_USE_MYSQL} == "YES" -.include "../../databases/mysql-client/buildlink2.mk" -CCARGS+= -DHAS_MYSQL -I${BUILDLINK_PREFIX.mysql-client}/include/mysql -AUXLIBS+= -L${BUILDLINK_PREFIX.mysql-client}/lib/mysql \ - -Wl,-R${BUILDLINK_PREFIX.mysql-client}/lib/mysql \ - -lmysqlclient -lz -lm -BUILD_DEFS+= POSTFIX_USE_MYSQL -.endif +POSTFIX_QUEUE_DIR?= ${VARBASE}/spool/postfix -.if defined(POSTFIX_USE_TLS) && ${POSTFIX_USE_TLS} == "YES" -.include "../../security/openssl/buildlink2.mk" -PATCH_SITES+= http://people.arhea.net/dawszy/NetBSD/postfix_tls/ -PATCHFILES+= pfixtls-1.1.11.diff.gz -PATCH_DIST_STRIP= -p1 - -CCARGS+= -DHAS_SSL -AUXLIBS+= -L${BUILDLINK_PREFIX.openssl}/lib \ - -Wl,-R${BUILDLINK_PREFIX.openssl}/lib \ - -lssl -lcrypto -BUILD_DEFS+= POSTFIX_USE_TLS +# CCARGS is a list of options to pass to the preprocessor/compiler. +# AUXLIBS is a list of options to pass to the linker. +# +CCARGS= # empty +AUXLIBS= # empty +FIX_RPATH+= AUXLIBS + +# Set some default paths to override ${WRKSRC}/src/global/mail_params.h. +CCARGS+= -DDEF_QUEUE_DIR=\"${POSTFIX_QUEUE_DIR}\" +CCARGS+= -DDEF_DAEMON_DIR=\"${LIBEXECDIR}\" +CCARGS+= -DDEF_COMMAND_DIR=\"${PREFIX}/sbin\" +CCARGS+= -DDEF_CONFIG_DIR=\"${PKG_SYSCONFDIR}\" +CCARGS+= -DDEF_SENDMAIL_PATH=\"${PREFIX}/sbin/sendmail\" +CCARGS+= -DDEF_MAILQ_PATH=\"${PREFIX}/bin/mailq\" +CCARGS+= -DDEF_NEWALIAS_PATH=\"${PREFIX}/bin/newaliases\" +CCARGS+= -DDEF_MANPAGE_DIR=\"${PREFIX}/man\" +CCARGS+= -DDEF_SAMPLE_DIR=\"${EXAMPLEDIR}\" +CCARGS+= -DDEF_README_DIR=\"${DOCDIR}\" + +# Override those same default paths in the installed example main.cf. +SUBST_CLASSES+= postfix +SUBST_STAGE.postfix= post-configure +SUBST_FILES.postfix= conf/main.cf src/global/mail_params.h +SUBST_SED.postfix= \ + -e "s|^\(queue_directory\) =.*|\1 = ${POSTFIX_QUEUE_DIR}|" \ + -e "s|^\(command_directory\) =.*|\1 = ${PREFIX}/sbin|" \ + -e "s|^\(daemon_directory\) =.*|\1 = ${LIBEXECDIR}|" \ + -e "s|^\(sendmail_path\) =.*|\1 = ${PREFIX}/sbin/sendmail|" \ + -e "s|^\(newaliases_path\) =.*|\1 = ${PREFIX}/bin/newaliases|" \ + -e "s|^\(mailq_path\) =.*|\1 = ${PREFIX}/bin/mailq|" \ + -e "s|^\(setgid_group\) =.*|\1 = maildrop|" \ + -e "s|^\(manpage_directory\) =.*|\1 = ${PREFIX}/man|" \ + -e "s|^\(sample_directory\) =.*|\1 = ${EXAMPLEDIR}|" \ + -e "s|^\(readme_directory\) =.*|\1 = ${DOCDIR}|" \ + -e "/^\#define DEF_SGID_GROUP[ ]/s,postdrop,maildrop,g" -PLIST_SRC+= ${PKGDIR}/PLIST.tls -MESSAGE_SRC+= ${PKGDIR}/MESSAGE.tls -.endif +# options.mk appends to CCARGS and AUXLIBS the options needed to build +# Postfix with support for various add-on modules. +# +.include "options.mk" -.if defined(USE_SASL) && ${USE_SASL} == "YES" -.include "../../security/cyrus-sasl/buildlink2.mk" -CCARGS+= -DUSE_SASL_AUTH -AUXLIBS+= -L${BUILDLINK_PREFIX.cyrus-sasl}/lib \ - -Wl,-R${BUILDLINK_PREFIX.cyrus-sasl}/lib \ - -lsasl -BUILD_DEFS+= USE_SASL - -PLIST_SRC+= ${WRKDIR}/PLIST.sasl -MESSAGE_SRC+= ${PKGDIR}/MESSAGE.sasl -MESSAGE_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR} +PKG_SYSCONFSUBDIR= postfix +LIBEXECDIR= ${PREFIX}/libexec/postfix +DOCDIR= ${PREFIX}/share/doc/postfix +EXAMPLEDIR= ${PREFIX}/share/examples/postfix + +FILES_SUBST+= EXAMPLEDIR=${EXAMPLEDIR} +MESSAGE_SUBST+= EXAMPLEDIR=${EXAMPLEDIR} +MESSAGE_SUBST+= DOCDIR=${DOCDIR} + +MESSAGE_SRC+= ${PKGDIR}/MESSAGE +.if exists(${PKGDIR}/MESSAGE.${OPSYS}) +MESSAGE_SRC+= ${PKGDIR}/MESSAGE.${OPSYS} +.endif +PLIST_SRC+= ${PKGDIR}/PLIST + +BUILD_TARGET= # empty +MAKE_ENV= CC="${CC}" OPT="${CFLAGS}" +MAKE_ENV+= AUXLIBS="${AUXLIBS}" CCARGS="${CCARGS}" + +USE_PKGINSTALL= yes +RCD_SCRIPTS= postfix +OWN_DIRS+= ${POSTFIX_QUEUE_DIR} +MAKE_DIRS+= ${PKG_SYSCONFDIR} + +PKG_GROUPS?= postfix maildrop +PKG_USERS?= postfix:postfix::Postfix\\ User:${POSTFIX_QUEUE_DIR} + +CONF_FILES= # empty +.for _file_ in main.cf master.cf postfix-files +CONF_FILES+= ${EXAMPLEDIR}/${_file_} ${PKG_SYSCONFDIR}/${_file_} +.endfor +CONF_FILES_PERMS= # empty +.for _file_ in post-install postfix-script +CONF_FILES_PERMS+= ${EXAMPLEDIR}/${_file_} ${PKG_SYSCONFDIR}/${_file_} \ + ${ROOT_USER} ${ROOT_GROUP} 755 +.endfor +.undef _file_ +.if !empty(PKG_OPTIONS:Msasl) +MAKE_DIRS+= ${SASLLIBDIR} +CONF_FILES+= ${EXAMPLEDIR}/smtpd.conf ${SASLLIBDIR}/smtpd.conf .endif -MESSAGE_SRC+= ${PKGDIR}/MESSAGE -PLIST_SRC+= ${PKGDIR}/PLIST -ALL_TARGET= #empty -MAKE_ENV= CC="${CC}" OPT="${CFLAGS}" - -pre-configure: - ${CP} ${WRKSRC}/conf/main.cf ${WRKSRC}/conf/main.cf.dist - ${SED} -e 's:__PREFIX:'${PREFIX}':g' \ - < ${WRKSRC}/conf/main.cf.dist \ - > ${WRKSRC}/conf/main.cf - ${CP} ${WRKSRC}/src/util/sys_defs.h ${WRKSRC}/src/util/sys_defs.h.dist - ${SED} -e 's:__PREFIX:'${PREFIX}':g' \ - < ${WRKSRC}/src/util/sys_defs.h.dist \ - > ${WRKSRC}/src/util/sys_defs.h - ${CP} ${WRKSRC}/postfix-install ${WRKSRC}/postfix-install.dist - ${SED} -e 's:__PREFIX:'${PREFIX}':g' \ - < ${WRKSRC}/postfix-install.dist \ - > ${WRKSRC}/postfix-install - ${CP} ${WRKSRC}/conf/sample-misc.cf ${WRKSRC}/conf/sample-misc.cf.dist - ${SED} -e 's:__PREFIX:'${PREFIX}':g' \ - < ${WRKSRC}/conf/sample-misc.cf.dist \ - > ${WRKSRC}/conf/sample-misc.cf - ${CP} ${WRKSRC}/src/global/mail_params.h \ - ${WRKSRC}/src/global/mail_params.h.dist - ${SED} -e 's:__PREFIX:'${PREFIX}':g' \ - < ${WRKSRC}/src/global/mail_params.h.dist \ - > ${WRKSRC}/src/global/mail_params.h +MAKE_ENV+= DEBUG= # empty do-configure: - (cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} -f Makefile.init makefiles \ - 'CCARGS=${CCARGS}' 'AUXLIBS=${AUXLIBS}' ) + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} ${MAKE} -f Makefile.init makefiles \ + 'CCARGS=${CCARGS}' 'AUXLIBS=${AUXLIBS}' post-build: - ${SED} -e 's#@@PREFIX@@#${PREFIX}#g' \ - <${FILESDIR}/mailer.conf >${WRKDIR}/mailer.conf.postfix - -pre-install: - ${INSTALL_DATA_DIR} /etc/postfix - ${INSTALL_DATA_DIR} ${PREFIX}/share/postfix - ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/postfix - ${INSTALL_DATA_DIR} ${PREFIX}/libexec/postfix - ${CHOWN} ${ROOT_USER}:${ROOT_GROUP} ${PREFIX}/share/postfix \ - ${PREFIX}/libexec/postfix - ${CHMOD} 755 ${PREFIX}/share/postfix ${PREFIX}/libexec/postfix - -${RM} -f ${WRKSRC}/conf/*.orig -.if defined(USE_SASL) && ${USE_SASL} == "YES" - ${ECHO} "pwcheck_method: sasldb" > ${WRKDIR}/smtpd.conf - ${INSTALL_DATA} ${WRKDIR}/smtpd.conf ${PREFIX}/lib/sasl - ${ECHO} lib/sasl/smtpd.conf > ${WRKDIR}/PLIST.sasl + @${SED} ${FILES_SUBST_SED} ${FILESDIR}/mailer.conf \ + > ${WRKDIR}/mailer.conf +.if !empty(PKG_OPTIONS:Msasl) + ${ECHO} "pwcheck_method: ${PWCHECK_METHOD}" > ${WRKDIR}/smtpd.conf .endif - ${TEST} -f /etc/postfix/postfix-files || \ - ${INSTALL_DATA} ${WRKSRC}/conf/postfix-files /etc/postfix - ${TEST} -f /etc/postfix/postfix-script || \ - ${INSTALL_DATA} ${WRKSRC}/conf/postfix-script /etc/postfix - ${TEST} -f /etc/postfix/main.cf || \ - ${INSTALL_DATA} ${WRKSRC}/conf/main.cf /etc/postfix - ${TEST} -f /etc/postfix/master.cf || \ - ${INSTALL_DATA} ${WRKSRC}/conf/master.cf /etc/postfix do-install: - (cd ${WRKSRC} && ${SH} postfix-install -non-interactive) - -post-install: - ${INSTALL_DATA} ${WRKSRC}/conf/main.cf ${PREFIX}/share/postfix - ${INSTALL_DATA} ${WRKSRC}/conf/master.cf ${PREFIX}/share/postfix - ${INSTALL_SCRIPT} ${WRKSRC}/conf/post-install ${PREFIX}/share/postfix - ${INSTALL_SCRIPT} ${WRKSRC}/conf/postfix-files ${PREFIX}/share/postfix - ${INSTALL_SCRIPT} ${WRKSRC}/conf/postfix-script ${PREFIX}/share/postfix - ${INSTALL_DATA} ${WRKDIR}/mailer.conf.postfix ${PREFIX}/etc - ${LN} -sf ${PREFIX}/share/postfix/post-install /etc/postfix - ${LN} -sf ${PREFIX}/share/postfix/postfix-files /etc/postfix - ${LN} -sf ${PREFIX}/share/postfix/postfix-script /etc/postfix - ${INSTALL_DATA_DIR} ${POSTFIX_SPOOL} - ${CHMOD} 755 ${POSTFIX_SPOOL} - ${TEST} -f /etc/postfix/main.cf || \ - ${INSTALL_DATA} ${PREFIX}/share/postfix/main.cf /etc/postfix - ${TEST} -f /etc/postfix/master.cf || \ - ${INSTALL_DATA} ${PREFIX}/share/postfix/master.cf /etc/postfix + ${INSTALL_DATA_DIR} ${LIBEXECDIR} + ${INSTALL_DATA_DIR} ${EXAMPLEDIR} + ${INSTALL_DATA_DIR} ${DOCDIR} + -${RM} -f ${WRKSRC}/conf/*.orig +.if !empty(PKG_OPTIONS:Msasl) + ${INSTALL_DATA} ${WRKDIR}/smtpd.conf ${EXAMPLEDIR} +.endif + @for i in ${POSTFIX_EXAMPLE_FILES}; do \ + ${INSTALL_DATA} ${WRKSRC}/conf/$$i ${EXAMPLEDIR}/$$i; \ + done + ${INSTALL_SCRIPT} ${WRKSRC}/conf/post-install ${EXAMPLEDIR} + ${INSTALL_SCRIPT} ${WRKSRC}/conf/postfix-script ${EXAMPLEDIR} + ${INSTALL_DATA} ${WRKDIR}/mailer.conf ${EXAMPLEDIR}/mailer.conf + cd ${WRKSRC}; ${SH} ./postfix-install -non-interactive \ + config_directory="${EXAMPLEDIR}" -.include "../../mk/bsd.pkg.install.mk" .include "../../mk/bsd.pkg.mk"