Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --- pkgsrc/mail/postfix/Makefile 2000/12/10 09:00:46 1.24 +++ pkgsrc/mail/postfix/Makefile 2010/02/25 13:01:22 1.231 @@ -1,76 +1,169 @@ -# $NetBSD: Makefile,v 1.24 2000/12/10 09:00:46 itojun Exp $ +# $NetBSD: Makefile,v 1.231 2010/02/25 13:01:22 martti Exp $ -DISTNAME= postfix-19991231-pl12 -PKGNAME= postfix-19991231pl12 +DISTNAME= postfix-2.7.0 +#PKGREVISION= 1 CATEGORIES= mail -MASTER_SITES= ftp://postfix.cloud9.net/official/ +MASTER_SITES= ftp://ftp.porcupine.org/mirrors/postfix-release/official/ +MASTER_SITES+= http://postfix.it-austria.net/releases/official/ +MASTER_SITES+= http://mirrors.isc.org/pub/postfix/official/ +MASTER_SITES+= http://mirror.postfix.jp/postfix-release/official/ +DIST_SUBDIR= postfix -.include "../../mk/bsd.prefs.mk" +MAINTAINER= martti@NetBSD.org +HOMEPAGE= http://www.postfix.org/ +COMMENT= Postfix SMTP server and tools +LICENSE= postfix-license -.if defined(POSTFIX_VERP) && ${POSTFIX_VERP} == YES -PATCHFILES= postfix-19991231-pl06-verp.patch.gz -PATCH_SITES= ftp://ftp.gw.com/pub/people/kim/patches/ -PATCH_DIST_STRIP= -p1 -.endif +CONFLICTS+= courier-mta-[0-9]* fastforward>=0.51nb2 sendmail-[0-9]* -MAINTAINER= christos@netbsd.org -HOMEPAGE= http://www.postfix.org/ +PKG_DESTDIR_SUPPORT= user-destdir +PKG_INSTALLATION_TYPES= overwrite pkgviews -DIST_SUBDIR= postfix +USE_TOOLS+= perl +CHECK_HEADERS_SKIP+= src/global/mail_params.h + +.include "../../mk/bsd.prefs.mk" -POSTFIX_SPOOL= /var/spool/postfix +SPECIAL_PERMS+= sbin/postdrop postfix maildrop 2555 +SPECIAL_PERMS+= sbin/postqueue postfix maildrop 2555 -.if defined(POSTFIX_PCRE) && ${POSTFIX_PCRE} == YES -DEPENDS+= pcre-2.08:../../devel/pcre -CFLAGS+= -DHAS_PCRE -I${LOCALBASE}/include -AUXLIBS= -lpcre -MAKE_ENV+= AUXLIBS="${AUXLIBS}" +# 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. +# +POSTFIX_DATA_DIR?= ${VARBASE}/db/postfix +POSTFIX_QUEUE_DIR?= ${VARBASE}/spool/postfix +BUILD_DEFS+= VARBASE POSTFIX_DATA_DIR POSTFIX_QUEUE_DIR + +# CCARGS is a list of options to pass to the preprocessor/compiler. +# AUXLIBS is a list of options to pass to the linker. +# +CCARGS= -DUSE_SASL_AUTH +AUXLIBS= ${LDFLAGS} + +# Set some default paths to override ${WRKSRC}/src/global/mail_params.h. +CCARGS+= -DDEF_DATA_DIR=\"${POSTFIX_DATA_DIR}\" +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}/${PKGMANDIR}\" +CCARGS+= -DDEF_SAMPLE_DIR=\"${EXAMPLEDIR}\" +CCARGS+= -DDEF_README_DIR=\"${DOCDIR}\" + +REPLACE_PERL+= auxiliary/qshape/qshape.pl + +# 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|^\(data_directory\) =.*|\1 = ${POSTFIX_DATA_DIR}|' +SUBST_SED.postfix+= \ + -e 's|^\(queue_directory\) =.*|\1 = ${POSTFIX_QUEUE_DIR}|' +SUBST_SED.postfix+= \ + -e 's|^\(command_directory\) =.*|\1 = ${PREFIX}/sbin|' +SUBST_SED.postfix+= \ + -e 's|^\(daemon_directory\) =.*|\1 = ${LIBEXECDIR}|' +SUBST_SED.postfix+= \ + -e 's|^\(sendmail_path\) =.*|\1 = ${PREFIX}/sbin/sendmail|' +SUBST_SED.postfix+= \ + -e 's|^\(newaliases_path\) =.*|\1 = ${PREFIX}/bin/newaliases|' +SUBST_SED.postfix+= \ + -e 's|^\(mailq_path\) =.*|\1 = ${PREFIX}/bin/mailq|' +SUBST_SED.postfix+= \ + -e 's|^\(setgid_group\) =.*|\1 = maildrop|' +SUBST_SED.postfix+= \ + -e 's|^\(manpage_directory\) =.*|\1 = ${PREFIX}/${PKGMANDIR}|' +SUBST_SED.postfix+= \ + -e 's|^\(sample_directory\) =.*|\1 = ${EXAMPLEDIR}|' +SUBST_SED.postfix+= \ + -e 's|^\(readme_directory\) =.*|\1 = ${DOCDIR}|' +SUBST_SED.postfix+= \ + -e '/^\#define DEF_SGID_GROUP[ ]/s,postdrop,maildrop,g' + +# 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 +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 -MANINSTALL?= maninstall catinstall +BUILD_TARGET= # empty +MAKE_ENV+= CC=${CC:Q} OPT=${CFLAGS:Q} +MAKE_ENV+= AUXLIBS=${AUXLIBS:Q} CCARGS=${CCARGS:Q} + +RCD_SCRIPTS= postfix +OWN_DIRS+= ${POSTFIX_QUEUE_DIR} ${POSTFIX_QUEUE_DIR}/etc +OWN_DIRS_PERMS+= ${POSTFIX_DATA_DIR} postfix postfix 0700 +MAKE_DIRS+= ${PKG_SYSCONFDIR} + +PKG_GROUPS?= postfix maildrop +PKG_USERS?= postfix:postfix +PKG_GECOS.postfix= Postfix User +PKG_HOME.postfix= ${POSTFIX_QUEUE_DIR} + +CONF_FILES= # empty +.for i in main.cf master.cf +CONF_FILES+= ${EXAMPLEDIR}/${i} ${PKG_SYSCONFDIR}/${i} +.endfor +CONF_FILES_PERMS= # empty -BUILD_DEFS+= POSTFIX_PCRE POSTFIX_VERP MANINSTALL +MAKE_ENV+= DEBUG= # empty -PLIST_SRC= ${PKGDIR}/PLIST -.for i in ${MANINSTALL} -PLIST_SRC+= ${PKGDIR}/PLIST.$i -.endfor +SUBST_CLASSES+= paths +SUBST_FILES.paths= ${WRKDIR}/mailer.conf +SUBST_SED.paths+= -e 's,@PREFIX@,${PREFIX},g' +SUBST_STAGE.paths= post-patch -pre-patch: - ${CP} ${WRKSRC}/Makefile ${WRKSRC}/Makefile.dist +.if !empty(USE_DESTDIR:M[Yy][Ee][Ss]) +DESTDIR_INSTALLOPTIONS=-package install_root="${DESTDIR}" +.endif -pre-configure: - ${CP} ${WRKSRC}/conf/main.cf ${WRKSRC}/conf/main.cf.dist - ${CP} ${WRKSRC}/util/sys_defs.h ${WRKSRC}/util/sys_defs.h.dist - ${CP} ${WRKSRC}/Makefile.inc ${WRKSRC}/Makefile.inc.dist - ${SED} -e 's:__PREFIX:'${PREFIX}':g' \ - < ${WRKSRC}/conf/main.cf.dist \ - > ${WRKSRC}/conf/main.cf - ${SED} -e 's:__PREFIX:'${PREFIX}':g' \ - < ${WRKSRC}/util/sys_defs.h.dist \ - > ${WRKSRC}/util/sys_defs.h - capitalopsys=`${ECHO} ${OPSYS} | ${TR} a-z A-Z`; \ - osmajorversion=`${ECHO} ${OS_VERSION} | ${SED} -e 's/\..*//g'`; \ - ${SED} -e 's:@OPSYS@:'$$capitalopsys$$osmajorversion':g' \ - < ${WRKSRC}/Makefile.inc.dist \ - > ${WRKSRC}/Makefile.inc +INSTALLATION_DIRS+= ${LIBEXECDIR} ${EXAMPLEDIR} ${DOCDIR} + +post-extract: + cp ${FILESDIR}/mailer.conf ${WRKDIR}/mailer.conf + rm -f ${WRKSRC}/auxiliary/MacOSX/Postfix.StartupItem/Postfix + +do-configure: + cd ${WRKSRC} && \ + env ${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 +.if !empty(PKG_OPTIONS:Msasl) + ${ECHO} "pwcheck_method: ${PWCHECK_METHOD}" > ${WRKDIR}/smtpd.conf +.endif -pre-install: - ${MKDIR} /etc/postfix ${PREFIX}/share/postfix \ - ${PREFIX}/share/doc/postfix ${PREFIX}/libexec/postfix - ${CHOWN} root:wheel ${PREFIX}/share/postfix ${PREFIX}/libexec/postfix - ${CHMOD} 755 ${PREFIX}/share/postfix ${PREFIX}/libexec/postfix - -post-install: - ${INSTALL_DATA} ${WRKDIR}/mailer.conf.postfix ${PREFIX}/etc - ${LN} -sf ${PREFIX}/share/postfix/postfix-script /etc/postfix - -${MKDIR} ${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 +do-install: + 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 .include "../../mk/bsd.pkg.mk"