Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --- pkgsrc/mail/postfix/Makefile 2004/07/18 19:16:31 1.134 +++ pkgsrc/mail/postfix/Makefile 2020/11/22 11:14:44 1.325 @@ -1,230 +1,96 @@ -# $NetBSD: Makefile,v 1.134 2004/07/18 19:16:31 jlam Exp $ +# $NetBSD: Makefile,v 1.325 2020/11/22 11:14:44 adam Exp $ -DISTNAME= postfix-2.1.3 -CATEGORIES= mail -MASTER_SITES= ftp://ftp.porcupine.org/mirrors/postfix-release/official/ +.include "../../mail/postfix/Makefile.common" -PATCHFILES+= postfix-2.1.1-canonical_classes.diff -PATCH_SITES+= ftp://ftp.gw.com/pub/people/kim/patches/ -PATCH_DIST_STRIP= -p1 +COMMENT= Fast, easy to administer, and secure mail transfer agent -MAINTAINER= martti@NetBSD.org -HOMEPAGE= http://www.postfix.org/ -COMMENT= Postfix SMTP server and tools +CONFLICTS+= courier-mta-[0-9]* fastforward>=0.51nb2 sendmail-[0-9]* +CONFLICTS+= esmtp>=1.2 nullmailer-[0-9]* -CONFLICTS+= sendmail-[0-9]* +USE_TOOLS+= perl pkg-config m4 -DIST_SUBDIR= postfix +SPECIAL_PERMS+= sbin/postdrop ${POSTFIX_USER} ${MAILDROP_GROUP} 2555 +SPECIAL_PERMS+= sbin/postqueue ${POSTFIX_USER} ${MAILDROP_GROUP} 2555 -PKG_INSTALLATION_TYPES= overwrite pkgviews +REPLACE_PERL+= auxiliary/qshape/qshape.pl -USE_BUILDLINK3= yes -USE_PKGINSTALL= yes +# options.mk appends to CCARGS and AUXLIBS the options needed to build +# Postfix with support for various add-on modules. +# +.include "options.mk" -PKG_SYSCONFSUBDIR= postfix -POSTFIX_SPOOL= /var/spool/postfix +FILES_SUBST+= EXAMPLEDIR=${EXAMPLEDIR} +MESSAGE_SUBST+= EXAMPLEDIR=${EXAMPLEDIR} +MESSAGE_SUBST+= DOCDIR=${DOCDIR} -OWN_DIRS= ${POSTFIX_SPOOL} - -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_COMMAND_DIR=\"${PREFIX}/sbin\" -CCARGS+= -DDEF_DAEMON_DIR=\"${LIBEXECDIR}\" - -.include "../../mk/bsd.prefs.mk" - -# NetBSD 1.5 and above has /etc/rc.d/postfix already which is -# suitable. -.if empty(MACHINE_PLATFORM:MNetBSD-1.[5-9]*-*) -RCD_SCRIPTS= postfix -.endif - -FIX_RPATH+= AUXLIBS - -BUILD_DEFS+= POSTFIX_USE_INET6 -BUILD_DEFS+= POSTFIX_USE_TLS -BUILD_DEFS+= POSTFIX_USE_PCRE -BUILD_DEFS+= POSTFIX_USE_MYSQL -BUILD_DEFS+= POSTFIX_USE_PGSQL -BUILD_DEFS+= USE_OPENLDAP -BUILD_DEFS+= USE_SASL -BUILD_DEFS+= USE_SASL2 - -.if defined(POSTFIX_USE_INET6) && ${POSTFIX_USE_INET6} == "YES" -. include "../../security/openssl/buildlink3.mk" -PATCHFILES+= tls+ipv6-1.25-pf-2.1.3.patch.gz -PATCH_SITES+= ftp://ftp.stack.nl/pub/postfix/tls+ipv6/1.25/ -PATCH_DIST_STRIP= -p1 - -CCARGS+= -DHAS_SSL -AUXLIBS+= -L${BUILDLINK_PREFIX.openssl}/lib \ - -Wl,${RPATH_FLAG}${BUILDLINK_PREFIX.openssl}/lib \ - -lssl -lcrypto - -PLIST_SRC+= ${PKGDIR}/PLIST.tls -MESSAGE_SRC+= ${PKGDIR}/MESSAGE.tls -.endif - -.if defined(POSTFIX_USE_PCRE) && ${POSTFIX_USE_PCRE} == "YES" -. include "../../devel/pcre/buildlink3.mk" -CCARGS+= -DHAS_PCRE -AUXLIBS+= -L${BUILDLINK_PREFIX.pcre}/lib \ - -Wl,${RPATH_FLAG}${BUILDLINK_PREFIX.pcre}/lib \ - -lpcre -.else -CCARGS+= -DNO_PCRE -.endif - -.if defined(USE_OPENLDAP) && ${USE_OPENLDAP} == "YES" -. include "../../databases/openldap/buildlink3.mk" -CCARGS+= -DHAS_LDAP -AUXLIBS+= -L${BUILDLINK_PREFIX.openldap}/lib \ - -Wl,${RPATH_FLAG}${BUILDLINK_PREFIX.openldap}/lib \ - -lldap -llber -. if ${OPSYS} != "Linux" -. include "../../databases/db4/buildlink3.mk" -CCARGS+= -I${BUILDLINK_PREFIX.db4}/include/db4 -AUXLIBS+= -L${BUILDLINK_PREFIX.db4}/lib \ - -Wl,${RPATH_FLAG}${BUILDLINK_PREFIX.db4}/lib \ - -ldb4 -. endif +MESSAGE_SRC+= ${PKGDIR}/MESSAGE +.if exists(${PKGDIR}/MESSAGE.${OPSYS}) +MESSAGE_SRC+= ${PKGDIR}/MESSAGE.${OPSYS} .endif +PLIST_SRC+= ${PKGDIR}/PLIST -.if defined(POSTFIX_USE_MYSQL) && ${POSTFIX_USE_MYSQL} == "YES" -. include "../../databases/mysql-client/buildlink3.mk" -CCARGS+= -DHAS_MYSQL -I${BUILDLINK_PREFIX.mysql-client}/include/mysql -AUXLIBS+= -L${BUILDLINK_PREFIX.mysql-client}/lib/mysql \ - -Wl,${RPATH_FLAG}${BUILDLINK_PREFIX.mysql-client}/lib/mysql \ - -lmysqlclient -lz -lm -.endif +RCD_SCRIPTS= postfix +OWN_DIRS+= ${POSTFIX_QUEUE_DIR} ${POSTFIX_QUEUE_DIR}/etc +OWN_DIRS_PERMS+= ${POSTFIX_DATA_DIR} ${POSTFIX_USER} ${POSTFIX_GROUP} 0700 +MAKE_DIRS+= ${METADIR}/dynamicmaps.cf.d ${METADIR}/postfix-files.d -## .if defined(POSTFIX_USE_PGSQL) && ${POSTFIX_USE_PGSQL} == "YES" -## . include "../../databases/postgresql-lib/buildlink3.mk" -## . include "../../security/openssl/buildlink3.mk" -## PATCHFILES+= postfix-pg.postfix-2.0.0.2.patch -## PATCH_SITES+= http://www.mat.cc/postfix/ -## PATCH_DIST_STRIP= -p1 -## -## CCARGS+= -DHAS_PGSQL -I${BUILDLINK_PREFIX.postgresql-lib}/include/pgsql -## AUXLIBS+= -L${BUILDLINK_PREFIX.postgresql-lib}/lib -lpq \ -## -L${BUILDLINK_PREFIX.openssl}/lib -lcrypt -## .endif - -.if defined(USE_SASL2) && ${USE_SASL2} == "YES" -USING_SASL= YES -. include "../../security/cyrus-sasl2/buildlink3.mk" -CCARGS+= -DUSE_SASL2_AUTH -AUXLIBS+= -L${BUILDLINK_PREFIX.cyrus-sasl}/lib \ - -Wl,${RPATH_FLAG}${BUILDLINK_PREFIX.cyrus-sasl}/lib \ - -lsasl2 -.elif defined(USE_SASL) && ${USE_SASL} == "YES" -USING_SASL=YES -. include "../../security/cyrus-sasl/buildlink3.mk" -CCARGS+= -DUSE_SASL_AUTH -AUXLIBS+= -L${BUILDLINK_PREFIX.cyrus-sasl}/lib \ - -Wl,${RPATH_FLAG}${BUILDLINK_PREFIX.cyrus-sasl}/lib \ - -lsasl -.endif +PKG_GROUPS?= ${POSTFIX_GROUP} ${MAILDROP_GROUP} +PKG_USERS?= ${POSTFIX_USER}:${POSTFIX_GROUP} -.if defined(USING_SASL) -PLIST_SRC+= ${PKGDIR}/PLIST.sasl -MESSAGE_SRC+= ${PKGDIR}/MESSAGE.sasl -MESSAGE_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR} -.endif +PKG_GECOS.${POSTFIX_USER}= Postfix User +PKG_HOME.${POSTFIX_USER}= ${POSTFIX_QUEUE_DIR} -MESSAGE_SRC+= ${PKGDIR}/MESSAGE -.if exists(${PKGDIR}/MESSAGE.${OPSYS}) -MESSAGE_SRC+= ${PKGDIR}/MESSAGE.${OPSYS} -.endif -PLIST_SRC+= ${PKGDIR}/PLIST -ALL_TARGET= #empty -MAKE_ENV= CC="${CC}" OPT="${CFLAGS}" -MAKE_ENV+= AUXLIBS="${AUXLIBS}" CCARGS="${CCARGS}" - -POSTFIX_CONF_FILES= conf/main.cf src/util/sys_defs.h postfix-install -POSTFIX_CONF_FILES+= src/global/mail_params.h - -FILES_SUBST+= SHAREDIR=${SHAREDIR} -MESSAGE_SUBST+= SHAREDIR=${SHAREDIR} -PLIST_SUBST+= POSTFIX_SPOOL=${POSTFIX_SPOOL} - -PKG_GROUPS?= postfix maildrop -PKG_USERS?= postfix:postfix::Postfix\\ User:${POSTFIX_SPOOL} - -LIBEXECDIR= ${PREFIX}/libexec/${PKGBASE} -SHAREDIR= ${PREFIX}/share/examples/${PKGBASE} - -CONF_FILES= ${SHAREDIR}/main.cf ${PKG_SYSCONFDIR}/main.cf -CONF_FILES+= ${SHAREDIR}/master.cf ${PKG_SYSCONFDIR}/master.cf -.if defined(USING_SASL) -. if defined(USE_SASL2) -MAKE_DIRS+= ${PREFIX}/lib/sasl2 -CONF_FILES+= ${SHAREDIR}/smtpd.conf ${PREFIX}/lib/sasl2/smtpd.conf -. else -MAKE_DIRS+= ${PREFIX}/lib/sasl -CONF_FILES+= ${SHAREDIR}/smtpd.conf ${PREFIX}/lib/sasl/smtpd.conf -. endif -.endif -CONF_FILES_PERMS= # empty -.for confscr in post-install postfix-files postfix-script -CONF_FILES_PERMS+= ${SHAREDIR}/${confscr} ${PKG_SYSCONFDIR}/${confscr} \ - ${ROOT_USER} ${ROOT_GROUP} 755 +CONF_FILES= # empty +.for i in main.cf master.cf +CONF_FILES+= ${EXAMPLEDIR}/${i} ${PKG_SYSCONFDIR}/${i} .endfor -.undef confscr - -INSTALL_EXTRA_TMPL+= ${PKGDIR}/INSTALL - -pre-configure: - @for i in ${POSTFIX_CONF_FILES}; do \ - ${CP} ${WRKSRC}/$${i} ${WRKSRC}/$${i}.dist; \ - ${SED} ${FILES_SUBST_SED} ${WRKSRC}/$${i}.dist \ - > ${WRKSRC}/$${i}; \ - done +CONF_FILES_PERMS= # empty -do-configure: - cd ${WRKSRC} && \ - ${SETENV} ${MAKE_ENV} ${MAKE} -f Makefile.init makefiles \ - 'CCARGS=${CCARGS}' 'AUXLIBS=${AUXLIBS}' +SUBST_CLASSES+= paths +SUBST_FILES.paths= ${WRKDIR}/mailer.conf +SUBST_VARS.paths= PREFIX +SUBST_STAGE.paths= pre-configure + +INSTALLATION_DIRS+= ${LIBEXECDIR} ${METADIR} ${SHLIBDIR} ${EXAMPLEDIR} ${DOCDIR} + +post-extract: + ${CP} ${FILESDIR}/mailer.conf ${WRKDIR}/mailer.conf + ${RM} -f ${WRKSRC}/auxiliary/MacOSX/Postfix.StartupItem/Postfix post-build: - @${SED} ${FILES_SUBST_SED} ${FILESDIR}/mailer.conf \ - > ${WRKDIR}/mailer.conf.postfix - -pre-install: - ${INSTALL_DATA_DIR} ${PKG_SYSCONFDIR} - ${INSTALL_DATA_DIR} ${SHAREDIR} - ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/postfix - ${INSTALL_DATA_DIR} ${LIBEXECDIR} - ${CHOWN} ${ROOT_USER}:${ROOT_GROUP} ${SHAREDIR} ${LIBEXECDIR} - ${CHMOD} 755 ${SHAREDIR} ${LIBEXECDIR} - -${RM} -f ${WRKSRC}/conf/*.orig -.if defined(USING_SASL) -. if defined(USE_SASL2) - ${ECHO} "pwcheck_method: auxprop" > ${WRKDIR}/smtpd.conf -. else - ${ECHO} "pwcheck_method: sasldb" > ${WRKDIR}/smtpd.conf -. endif - ${INSTALL_DATA} ${WRKDIR}/smtpd.conf ${SHAREDIR} +.if !empty(PKG_OPTIONS:Msasl) + ${ECHO} "pwcheck_method: ${PWCHECK_METHOD}" > ${WRKDIR}/smtpd.conf .endif - ${INSTALL_SCRIPT} ${WRKSRC}/conf/post-install ${SHAREDIR} - ${INSTALL_SCRIPT} ${WRKSRC}/conf/postfix-files ${SHAREDIR} - ${INSTALL_SCRIPT} ${WRKSRC}/conf/postfix-script ${SHAREDIR} - ${INSTALL_DATA} ${WRKSRC}/conf/main.cf ${SHAREDIR} - ${INSTALL_DATA} ${WRKSRC}/conf/master.cf ${SHAREDIR} - ${INSTALL_DATA} ${WRKDIR}/mailer.conf.postfix ${SHAREDIR}/mailer.conf do-install: - cd ${WRKSRC} && ${SETENV} config_directory="${SHAREDIR}" \ - ${SH} postfix-install -non-interactive - -.if ${OPSYS} == "Linux" -. include "../../databases/db/buildlink3.mk" -CCARGS+= -I${BUILDLINK_PREFIX.db2}/include/db2 -AUXLIBS+= -L${BUILDLINK_PREFIX.db2}/lib \ - -Wl,${RPATH_FLAG}${BUILDLINK_PREFIX.db2}/lib \ - -ldb2 + ${RM} -f ${WRKSRC}/conf/*.orig +.if !empty(PKG_OPTIONS:Msasl) + ${INSTALL_DATA} ${WRKDIR}/smtpd.conf ${DESTDIR}${EXAMPLEDIR} +.endif + cd ${WRKSRC} && ${SH} ./postfix-install -non-interactive \ + ${DESTDIR_INSTALLOPTIONS} config_directory="${EXAMPLEDIR}" + ${INSTALL_DATA} ${WRKDIR}/mailer.conf \ + ${DESTDIR}${EXAMPLEDIR}/mailer.conf + ${INSTALL_SCRIPT} ${WRKSRC}/auxiliary/qshape/qshape.pl \ + ${DESTDIR}${PREFIX}/sbin/qshape + ${INSTALL_MAN} ${WRKSRC}/man/man1/qshape.1 \ + ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 +.for dir in ${POSTFIX_QUEUE_SUBDIR} + ${RMDIR} ${DESTDIR}${POSTFIX_QUEUE_DIR}/${dir} +.endfor +.if ${OPSYS} == "Darwin" + for f in ${DESTDIR}${PREFIX}/lib/postfix/lib*.dylib; do \ + install_name_tool -id `${ECHO} $$f | ${SED} -e 's,${DESTDIR},,g'` $$f; \ + done + for f in ${DESTDIR}${PREFIX}/libexec/postfix/* ${DESTDIR}${PREFIX}/sbin/*; do \ + install_name_tool \ + -change @rpath/libpostfix-dns.dylib ${PREFIX}/lib/postfix/libpostfix-dns.dylib \ + -change @rpath/libpostfix-global.dylib ${PREFIX}/lib/postfix/libpostfix-global.dylib \ + -change @rpath/libpostfix-master.dylib ${PREFIX}/lib/postfix/libpostfix-master.dylib \ + -change @rpath/libpostfix-tls.dylib ${PREFIX}/lib/postfix/libpostfix-tls.dylib \ + -change @rpath/libpostfix-util.dylib ${PREFIX}/lib/postfix/libpostfix-util.dylib \ + $$f; \ + done .endif .include "../../mk/bsd.pkg.mk"