[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / mail / qmail

File: [cvs.NetBSD.org] / pkgsrc / mail / qmail / Makefile (download)

Revision 1.125, Wed Oct 26 10:31:39 2022 UTC (3 months, 1 week ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2022Q4-base, pkgsrc-2022Q4, HEAD
Changes since 1.124: +2 -2 lines

*: bump PKGREVISION for libunistring shlib major bump

# $NetBSD: Makefile,v 1.125 2022/10/26 10:31:39 wiz Exp $
#

DISTNAME=		notqmail-1.08
PKGNAME=		qmail-1.03
PKGREVISION=		51
CATEGORIES=		mail
MASTER_SITES=		${MASTER_SITE_GITHUB:=notqmail/}
GITHUB_PROJECT=		notqmail
GITHUB_RELEASE=		${DISTNAME}

MAINTAINER=		schmonz@NetBSD.org
HOMEPAGE=		https://notqmail.org/
COMMENT=		Secure, reliable, efficient, simple, and fast MTA
LICENSE=		public-domain

DEPENDS+=		daemontools-[0-9]*:../../sysutils/daemontools

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-20200202.patch
PATCHFILES+=			${TLSREMOTE_PATCH}
SITES.${TLSREMOTE_PATCH}=	https://schmonz.com/qmail/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"|<stdlib.h>|' \
				-e 's|"sig\.h"|"readwrite.h"|' \
				< ${MAILDIRUNIQ_PATCH}

QMAILPATCHES+=			outgoingip:${OUTGOINGIP_PATCH}
OUTGOINGIP_PATCH=		outgoingip.patch
PATCHFILES+=			${OUTGOINGIP_PATCH}
SITES.${OUTGOINGIP_PATCH}=	http://qmailorg.schmonz.com/

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"