# $NetBSD: Makefile,v 1.130 2023/11/16 23:13:16 schmonz Exp $ DISTNAME= notqmail-1.08 PKGNAME= qmail-1.03 PKGREVISION= 54 CATEGORIES= mail MASTER_SITES= ${MASTER_SITE_GITHUB:=notqmail/} GITHUB_PROJECT= notqmail GITHUB_RELEASE= ${DISTNAME} MAINTAINER= schmonz@NetBSD.org HOMEPAGE= https://notqmail.org/ COMMENT= Community-driven open-source successor to qmail LICENSE= public-domain DEPENDS+= daemontools-[0-9]*:../../sysutils/daemontools DEPENDS+= {ucspi-tcp6>=1.10.7nb1,ucspi-tcp-[0-9]*}:../../net/ucspi-tcp6 CONFLICTS+= courier-maildirmake-[0-9]* CONFLICTS+= courier-mta-[0-9]* CONFLICTS+= mirrordir-[0-9]* CONFLICTS+= mutt<=1.4.2.1nb1 CONFLICTS+= netqmail-[0-9]* CONFLICTS+= pulsar<=0.1.1 CONFLICTS+= qmail-run<=20170706 DJB_CONFIG_CMDS+= ${ECHO} ${QMAIL_ALIAS_USER:Q} > conf-users; DJB_CONFIG_CMDS+= ${ECHO} ${QMAIL_DAEMON_USER:Q} >> conf-users; DJB_CONFIG_CMDS+= ${ECHO} ${QMAIL_LOG_USER:Q} >> conf-users; DJB_CONFIG_CMDS+= ${ECHO} ${QMAIL_ROOT_USER:Q} >> conf-users; DJB_CONFIG_CMDS+= ${ECHO} ${QMAIL_PASSWD_USER:Q} >> conf-users; DJB_CONFIG_CMDS+= ${ECHO} ${QMAIL_QUEUE_USER:Q} >> conf-users; DJB_CONFIG_CMDS+= ${ECHO} ${QMAIL_REMOTE_USER:Q} >> conf-users; DJB_CONFIG_CMDS+= ${ECHO} ${QMAIL_SEND_USER:Q} >> conf-users; DJB_CONFIG_CMDS+= ${ECHO} ${QMAIL_QMAIL_GROUP:Q} > conf-groups; DJB_CONFIG_CMDS+= ${ECHO} ${QMAIL_NOFILES_GROUP:Q} >> conf-groups; DJB_BUILD_TARGETS= man TEST_TARGET= test #.include "../../devel/check/buildlink3.mk" PKG_SYSCONFSUBDIR= qmail OWN_DIRS+= ${PKG_SYSCONFDIR} ${PKG_SYSCONFDIR}/alias OWN_DIRS+= ${PKG_SYSCONFDIR}/control ${PKG_SYSCONFDIR}/users OWN_DIRS+= ${PKG_SYSCONFDIR}/.pkgsrc-defaults-do-not-edit OWN_DIRS+= ${QMAILDIR} ${QMAIL_QUEUE_DIR} DOCDIR= ${PREFIX}/share/doc/qmail EGDIR= ${PREFIX}/share/examples/qmail SHAREDIR= ${PREFIX}/share/qmail FILES_SUBST+= DOCDIR=${DOCDIR:Q} EGDIR=${EGDIR:Q} FILES_SUBST+= PKGMANDIR=${PKGMANDIR:Q} SHAREDIR=${SHAREDIR:Q} FILES_SUBST+= QMAILDIR=${QMAILDIR:Q} FILES_SUBST+= QMAIL_DAEMON_USER=${QMAIL_DAEMON_USER:Q} FILES_SUBST+= QMAIL_QMAIL_GROUP=${QMAIL_QMAIL_GROUP:Q} FILES_SUBST+= QMAIL_QUEUE_DIR=${QMAIL_QUEUE_DIR:Q} FILES_SUBST+= QMAIL_QUEUE_EXTRA=${QMAIL_QUEUE_EXTRA:Q} FILES_SUBST+= PKGNAME=${PKGNAME:Q} FILES_SUBST+= WC=${WC:Q} SETUP_PROGRAMS= dnsfq dnsip dnsptr hostname ipmeprint SETUP_PROGRAMS+= instpackage instchown instcheck SETUP_SCRIPTS= config config-fast config-fast-pkgsrc MANDIRS= man .for j in 1 5 7 8 MANDIRS+= man/man${j} .endfor INSTALLATION_DIRS= bin ${MANDIRS} ${DOCDIR} ${SHAREDIR} INSTALLATION_DIRS+= ${EGDIR}/alias ${EGDIR}/boot ${EGDIR}/control INSTALLATION_DIRS+= ${EGDIR}/users .include "../../mk/bsd.prefs.mk" BUILD_DEFS+= QMAILDIR QMAILPATCHES QMAIL_QUEUE_DIR QMAIL_QUEUE_EXTRA BUILD_DEFS+= QMAIL_ALIAS_USER QMAIL_DAEMON_USER QMAIL_LOG_USER BUILD_DEFS+= QMAIL_ROOT_USER QMAIL_PASSWD_USER QMAIL_QUEUE_USER BUILD_DEFS+= QMAIL_REMOTE_USER QMAIL_SEND_USER BUILD_DEFS+= QMAIL_QMAIL_GROUP QMAIL_NOFILES_GROUP .if !empty(QMAIL_QUEUE_DIR:M${QMAILDIR}/*) PKG_FAIL_REASON+= "QMAIL_QUEUE_DIR must not be under ${QMAILDIR}" .endif USE_TOOLS+= tar MAKE_ENV+= NROFF=${TRUE:Q} .if !empty(QMAIL_QUEUE_EXTRA) USE_TOOLS+= expr QUEUE_EXTRA= "T${QMAIL_QUEUE_EXTRA}\\0" QUEUE_EXTRALEN_cmd= ${EXPR} `${ECHO_N} ${QMAIL_QUEUE_EXTRA} | ${WC} -c` + 2 SUBST_CLASSES+= logging SUBST_STAGE.logging= do-configure SUBST_FILES.logging= extra.h SUBST_SED.logging= -e 's|0|${QUEUE_EXTRALEN_cmd:sh}|g' SUBST_SED.logging+= -e 's|""|${QUEUE_EXTRA}|g' SUBST_MESSAGE.logging= Setting QUEUE_EXTRA. .endif SUBST_CLASSES+= manpages SUBST_STAGE.manpages= do-configure SUBST_FILES.manpages= hier.c SUBST_SED.manpages+= -e 's|.*"tcp-environ\.5".*||g' # also in ucspi-tcp SUBST_CLASSES+= paths SUBST_STAGE.paths= do-configure SUBST_FILES.paths= README.* SUBST_VARS.paths= PKGNAME PKG_INFO PREFIX GREP SUBST_CLASSES+= config SUBST_STAGE.config= do-configure SUBST_FILES.config= config-fast-pkgsrc-defaults.sh SUBST_VARS.config= SORT MV CP PKG_SYSCONFDIR QMAIL_QUEUE_EXTRA NOT_FOR_UNPRIVILEGED= yes PKG_USERS_VARS+= QMAIL_ALIAS_USER QMAIL_DAEMON_USER QMAIL_LOG_USER PKG_USERS_VARS+= QMAIL_ROOT_USER QMAIL_PASSWD_USER QMAIL_QUEUE_USER PKG_USERS_VARS+= QMAIL_REMOTE_USER QMAIL_SEND_USER PKG_GROUPS_VARS+= QMAIL_QMAIL_GROUP QMAIL_NOFILES_GROUP PKG_GROUPS= ${QMAIL_QMAIL_GROUP} ${QMAIL_NOFILES_GROUP} PKG_USERS+= ${QMAIL_ALIAS_USER}:${QMAIL_NOFILES_GROUP} PKG_USERS+= ${QMAIL_DAEMON_USER}:${QMAIL_NOFILES_GROUP} PKG_USERS+= ${QMAIL_LOG_USER}:${QMAIL_NOFILES_GROUP} PKG_USERS+= ${QMAIL_PASSWD_USER}:${QMAIL_NOFILES_GROUP} PKG_USERS+= ${QMAIL_QUEUE_USER}:${QMAIL_QMAIL_GROUP} PKG_USERS+= ${QMAIL_REMOTE_USER}:${QMAIL_QMAIL_GROUP} PKG_USERS+= ${QMAIL_SEND_USER}:${QMAIL_QMAIL_GROUP} .for user in ${PKG_USERS:C/\:.*//} PKG_HOME.${user}= ${QMAILDIR} .endfor PKG_HOME.${QMAIL_ALIAS_USER}= ${QMAILDIR}/alias READMES= README.pkgsrc # Record all patches applied, starting with the non-optional ones: QMAILPATCHES= notqmail:${DEFAULT_DISTFILES} QMAILPATCHES+= tls:${TLSREMOTE_PATCH} TLSREMOTE_PATCH= notqmail-1.07-tls-20200107-onlyremote-20230511.patch PATCHFILES+= ${TLSREMOTE_PATCH} SITES.${TLSREMOTE_PATCH}= https://schmonz.com/software/tlsonlyremote/ QMAILPATCHES+= bigdns:${BIGDNS_PATCH} BIGDNS_PATCH= qmail-103.patch PATCHFILES+= ${BIGDNS_PATCH} SITES.${BIGDNS_PATCH}= https://www.ckdhr.com/ckd/ PATCH_DIST_STRIP.${BIGDNS_PATCH}= -p1 QMAILPATCHES+= maildiruniq:${MAILDIRUNIQ_PATCH} MAILDIRUNIQ_PATCH= qmail-1.03-maildir-uniq.patch PATCHFILES+= ${MAILDIRUNIQ_PATCH} SITES.${MAILDIRUNIQ_PATCH}= http://www.memoryhole.net/qmail/ PATCH_DIST_STRIP.${MAILDIRUNIQ_PATCH}= -p1 PATCH_DIST_CAT.${MAILDIRUNIQ_PATCH}= \ ${SED} -e 's|"057"|"\\\\057"|' \ -e 's|"072"|"\\\\072"|' \ -e 's|hostname|temporaryothername|g' \ -e 's|host|myhost|g' \ -e 's|temporaryothername|hostname|g' \ -e 's|"readwrite\.h"||' \ -e 's|"sig\.h"|"readwrite.h"|' \ < ${MAILDIRUNIQ_PATCH} QMAILPATCHES+= outgoingip:${OUTGOINGIP_PATCH} OUTGOINGIP_PATCH= outgoingip.patch PATCHFILES+= ${OUTGOINGIP_PATCH} SITES.${OUTGOINGIP_PATCH}= https://qmail.notqmail.org/ QMAILPATCHES+= spp:${SPP_PATCH}:${SPP_PATCHFILE_cmd:sh} SPP_PATCH= qmail-spp-0.42.tar.gz PATCHFILES+= ${SPP_PATCH} SITES.${SPP_PATCH}= ${MASTER_SITE_SOURCEFORGE:=qmail-spp/} SPP_PATCHFILE= ./qmail-spp-0.42/netqmail-spp.diff SPP_PATCHFILE_cmd= ${BASENAME} ${SPP_PATCHFILE} PATCH_DIST_CAT.${SPP_PATCH}= ${TAR} -C ${WRKDIR} -zxf ${SPP_PATCH} ${SPP_PATCHFILE} \ && ${CAT} ${WRKDIR}/${SPP_PATCHFILE} \ | ${SED} -e 's|sppfok \!= 1|sppfok == -1|' PATCH_DIST_STRIP.${SPP_PATCH}= -p1 LICENSE+= AND gnu-gpl-v2 .include "options.mk" post-extract: for i in ${READMES}; do \ ${CP} ${FILESDIR}/$$i ${WRKSRC} || ${TRUE}; \ done ${CP} ${FILESDIR}/config-fast-pkgsrc-defaults.sh ${WRKSRC} for i in FILES; do \ ${TOUCH} ${WRKSRC}/$$i; \ done USE_TOOLS+= sleep post-build: .if defined(MANZ) cd ${WRKSRC} && \ ${SLEEP} 2 && \ ${SED} -e 's|\(.*"man/man[0-9]",".*\.[0-9]\)|\1.gz|g' \ < hier.c > hier.c.tmp && \ ${MV} hier.c.tmp hier.c && \ ${MAKE} instchown instcheck .endif cd ${WRKSRC} && \ ${SED} -e 's|${QMAILDIR}/control/|${PKG_SYSCONFDIR}/.pkgsrc-defaults-do-not-edit/|' \ < config-fast > config-fast-pkgsrc && \ ${CAT} ${WRKSRC}/config-fast-pkgsrc-defaults.sh \ >> config-fast-pkgsrc pre-install: ${MKDIR} ${DESTDIR}${QMAILDIR} ${MKDIR} ${DESTDIR}/tmp${QMAIL_QUEUE_DIR} # keep in sync with INSTALL:PRE-INSTALL ${LN} -s ${DESTDIR}${EGDIR}/alias ${DESTDIR}${QMAILDIR}/alias ${LN} -s ${DESTDIR}${PREFIX}/bin ${DESTDIR}${QMAILDIR}/bin ${LN} -s ${DESTDIR}${EGDIR}/boot ${DESTDIR}${QMAILDIR}/boot ${LN} -s ${DESTDIR}${EGDIR}/control ${DESTDIR}${QMAILDIR}/control ${LN} -s ${DESTDIR}${DOCDIR} ${DESTDIR}${QMAILDIR}/doc ${LN} -s ${DESTDIR}${PREFIX}/${PKGMANDIR} ${DESTDIR}${QMAILDIR}/man ${LN} -s ${DESTDIR}/tmp${QMAIL_QUEUE_DIR} ${DESTDIR}${QMAILDIR}/queue ${LN} -s ${DESTDIR}${EGDIR}/users ${DESTDIR}${QMAILDIR}/users do-install: cd ${WRKSRC}; \ DESTDIR=${DESTDIR:Q} ./instpackage post-install: for i in ${READMES}; do \ ${INSTALL_DATA} ${WRKSRC}/$$i ${DESTDIR}${DOCDIR}; \ done ${INSTALL_PROGRAM_DIR} ${DESTDIR}${SHAREDIR}/setup for i in ${SETUP_PROGRAMS}; do \ ${INSTALL_PROGRAM} ${WRKSRC}/$$i \ ${DESTDIR}${SHAREDIR}/setup; \ done for i in ${SETUP_SCRIPTS}; do \ ${INSTALL_SCRIPT} ${WRKSRC}/$$i \ ${DESTDIR}${SHAREDIR}/setup; \ done .include "../../mk/djbware.mk" .include "../../mk/bsd.pkg.mk"