freebsd-ports/mail/qmail-vida/Makefile

323 lines
12 KiB
Makefile

# New ports collection makefile for: qmail-vida
# Date created: 22 Aug 2005
# Whom: FURUTATE,Mikihiko<futurebsd@infoseek.to>
#
# $FreeBSD$
#
PORTNAME= qmail-vida
PORTVERSION= 0.53
CATEGORIES= mail
MASTER_SITES+= ${MASTER_SITE_SOURCEFORGE_JP:S/$/:vida/} \
${MASTER_SITE_QMAIL:S/$/:qmail/} \
http://cr.yp.to/checkpwd/:checkpassword \
http://cr.yp.to/ucspi-tcp/:tcpserver
MASTER_SITE_SUBDIR=${PORTNAME}/2100/:vida
MAINTAINER= futurebsd@infoseek.to
COMMENT= SMTP_AUTH/APOP support for qmail
IGNORE= abuses UID registered to another port, and uses unregistered GID
DISTFILES= ${DISTNAME}.tar.gz:vida \
${DISTNAME_QMAIL}.tar.gz:qmail \
${DISTNAME_CHECKPASSWORD}.tar.gz:checkpassword \
${DISTNAME_TCPSERVER}.tar.gz:tcpserver
DIST_SUBDIR= qmail-vida
PATCH_WRKSRC= ${WRKSRC_QMAIL}
CONFLICTS= qmail-[0-9]* qmail-mysql-[0-9]* qmail-ldap-[0-9]* \
qmail-smtp_auth+tls-[0-9]* qmail-spamcontrol-[0-9]* \
qmail-tls-[0-9]* checkpassword-[0-9]* ucspi-tcp-[0-9]* \
daemontools-[0-9]*
DISTNAME_QMAIL= qmail-1.03
DISTNAME_CHECKPASSWORD= checkpassword-0.90
DISTNAME_TCPSERVER= ucspi-tcp-0.88
WRKSRC_QMAIL= ${WRKDIR}/${DISTNAME_QMAIL}
WRKSRC_CHECKPASSWORD= ${WRKDIR}/${DISTNAME_CHECKPASSWORD}
WRKSRC_TCPSERVER= ${WRKDIR}/${DISTNAME_TCPSERVER}
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
PKGINSTALL?= ${WRKDIR}/pkg-install
CSH?= /bin/csh
PREFIX?= /var/qmail
PORTDOCS= *
RESTRICTED= "djb\'s packaging license does not allow non-standard qmail binary distributions"
QMAIL_VERSION?= 1.03
ALL_TARGET_QMAIL= default dot-qmail.5 qmail-control.5 qmail-getpw.8 \
qmail-limits.7 qmail-newmrh.8 qmail-newu.8 qmail-pw2u.8 \
qmail-send.8 qmail-start.8 qmail-users.5
ALL_TARGET_CHECKPASSWORD= it
ALL_TARGET_TCPSERVER= prog install instcheck
SCRIPTS_ENV= BINOWN="${BINOWN}" BINGRP="${BINGRP}" BINMODE="${BINMODE}" \
MANMODE="${MANMODE}" CFLAGS="${CFLAGS}"
PLIST_SUB+= README_AUTH="@comment "
PLIST_SUB+= LDAP="@comment " NOT_LDAP=""
PLIST_SUB+= SMTP_AUTH_TLS="@comment "
PLIST_SUB+= SPAMCONTROL="@comment "
PLIST_SUB+= TLS="@comment "
SUB_FILES+= pkg-message${PKGMESSAGE_SUFFIX} mailer.conf.sample \
bootfiles.sed enable-qmail
SUB_LIST+= ECHO_CMD=${ECHO_CMD}
PKGINSTALL?= ${WRKDIR}/pkg-install
PKGMESSAGE?= ${WRKDIR}/pkg-message${PKGMESSAGE_SUFFIX}
DOCFILES+= ${WRKSRC_QMAIL}/BLURB ${WRKSRC_QMAIL}/BLURB2 ${WRKSRC_QMAIL}/BLURB3 \
${WRKSRC_QMAIL}/BLURB4 ${WRKSRC_QMAIL}/INTERNALS ${WRKSRC_QMAIL}/SECURITY \
${WRKSRC_QMAIL}/THOUGHTS ${FILESDIR}/PORT_NOTES \
${FILESDIR}/PORT_NOTES_FreeBSD_40-RELEASE \
${WRKDIR}/mailer.conf.sample \
${WRKSRC_QMAIL}/FAQ ${WRKSRC_QMAIL}/UPGRADE ${WRKSRC_QMAIL}/SENDMAIL \
${WRKSRC_QMAIL}/INSTALL ${WRKSRC_QMAIL}/INSTALL.alias \
${WRKSRC_QMAIL}/INSTALL.ctl ${WRKSRC_QMAIL}/INSTALL.ids \
${WRKSRC_QMAIL}/INSTALL.maildir ${WRKSRC_QMAIL}/INSTALL.mbox \
${WRKSRC_QMAIL}/INSTALL.vsm ${WRKSRC_QMAIL}/TEST.deliver \
${WRKSRC_QMAIL}/TEST.receive ${WRKSRC_QMAIL}/REMOVE.sendmail \
${WRKSRC_QMAIL}/REMOVE.binmail ${WRKSRC_QMAIL}/PIC.local2alias \
${WRKSRC_QMAIL}/PIC.local2ext ${WRKSRC_QMAIL}/PIC.local2local \
${WRKSRC_QMAIL}/PIC.local2rem ${WRKSRC_QMAIL}/PIC.local2virt \
${WRKSRC_QMAIL}/PIC.nullclient ${WRKSRC_QMAIL}/PIC.relaybad \
${WRKSRC_QMAIL}/PIC.relaygood ${WRKSRC_QMAIL}/PIC.rem2local
CONFIGUREPROGS= ${WRKSRC_QMAIL}/install ${WRKSRC_QMAIL}/dnsfq ${WRKSRC_QMAIL}/hostname \
${WRKSRC_QMAIL}/dnsip ${WRKSRC_QMAIL}/ipmeprint ${WRKSRC_QMAIL}/dnsptr
CONFIGUREFILES= ${WRKSRC_QMAIL}/config ${WRKSRC_QMAIL}/config-fast
BOOTFILES= home home+df proc proc+df binm1 binm1+df \
binm2 binm2+df binm3 binm3+df maildir maildir+vida
TCPSERVER_DB_DIR= ${PREFIX}/cdb/tcp.smtp.cdb
.if (${PREFIX} != ${LOCALBASE})
DOCSDIR= ${PREFIX}/doc
.endif
NO_MTREE= yes
OPTIONS+= QMAILQUEUE_PATCH "run a QMAILQUEUE program" off
OPTIONS+= BIG_CONCURRENCY_PATCH "use a concurrency greater than 240" off
OPTIONS+= OUTGOINGIP_PATCH "set the IP address to send messages" off
OPTIONS+= LOCALTIME_PATCH "emit dates in the local timezone" off
OPTIONS+= MAILDIRQUOTA_PATCH "Maildir++ support" off
OPTIONS+= BLOCKEXEC_PATCH "block many windows viruses/worms" off
OPTIONS+= DISCBOUNCES_PATCH "discard double-bounces" off
OPTIONS+= RELAY_REJECT_PATCH "generated by so-called anti-spammers" off
OPTIONS+= RCDLINK "create rc.d/qmail.sh" on
OPTIONS+= TCPSERVER_MAN "install tcpserver man pages" on
.include <bsd.port.pre.mk>
.if ${ARCH} != "i386"
BROKEN= Does not compile on !i386
.endif
MAN1_QMAIL= forward.1 condredirect.1 bouncesaying.1 except.1 maildirmake.1 \
maildir2mbox.1 maildirwatch.1 mailsubj.1 qreceipt.1 qbiff.1 preline.1 \
tcp-env.1
MAN5_QMAIL= addresses.5 envelopes.5 maildir.5 mbox.5 dot-qmail.5 qmail-control.5 \
qmail-header.5 qmail-log.5 qmail-users.5 tcp-environ.5
MAN7_QMAIL= forgeries.7 qmail-limits.7 qmail.7
MAN8_QMAIL= qmail-local.8 qmail-lspawn.8 qmail-getpw.8 qmail-remote.8 \
qmail-rspawn.8 qmail-clean.8 qmail-send.8 qmail-start.8 splogger.8 \
qmail-queue.8 qmail-inject.8 qmail-showctl.8 qmail-newmrh.8 \
qmail-newu.8 qmail-pw2u.8 qmail-qread.8 qmail-qstat.8 qmail-tcpok.8 \
qmail-tcpto.8 qmail-pop3d.8 qmail-popup.8 qmail-qmqpc.8 qmail-qmqpd.8 \
qmail-qmtpd.8 qmail-smtpd.8 qmail-command.8
.for i in 1 5 7 8
MAN${i}+=${MAN${i}_QMAIL}
.endfor
PATCH_SITES+= ${MASTER_SITE_QMAIL}
PATCH_SITES+= http://www.ckdhr.com/ckd/:dns
PATCH_SITES+= ${MASTER_SITE_LOCAL:S/$/:dns/}
PATCHFILES+= qmail-103.patch:dns
PATCH_SITE_SUBDIR+= lioux/:dns
PATCH_DIST_STRIP+= -p1
.if defined(WITH_QMAILQUEUE_PATCH)
PATCHFILES+= qmailqueue-patch
.endif
.if defined(WITH_BIG_CONCURRENCY_PATCH)
PATCHFILES+= big-concurrency.patch
WITH_BIG_CONCURRENCY_PATCH_CONCURRENCY_LIMIT?= 509
.endif
.if defined(WITH_OUTGOINGIP_PATCH)
PATCHFILES+= outgoingip.patch
.endif
.if defined(WITH_LOCALTIME_PATCH)
PATCH_SITES+= http://www.alib.jp/files/:localtime
PATCHFILES+= qmail-date-localtime.patch:localtime
.endif
.if defined(WITH_MAILDIRQUOTA_PATCH)
PATCH_SITES+= http://www.alexdupre.com/qmail/:quota
PATCHFILES+= qmail-maildir++.patch:quota
.endif
.if defined(WITH_BLOCKEXEC_PATCH) && !defined(BARRIER_BLOCKEXEC_PATCH)
PATCH_SITES+= http://www.alexdupre.com/qmail/:blockexec
PATCHFILES+= qmail-block-executables.patch:blockexec
.endif
.if defined(WITH_DISCBOUNCES_PATCH) && !defined(BARRIER_DISCBOUNCES_PATCH)
PATCH_SITES+= http://www.alexdupre.com/qmail/:doublebounce
PATCHFILES+= qmail-discard-double-bounces.patch:doublebounce
.endif
.if defined(WITH_RELAY_REJECT_PATCH)
PATCHFILES+= qmail-smtpd-relay-reject
.endif
.if defined(WITH_RCDLINK)
PLIST_SUB+= RCDLINK=""
RCDLINK=
.else
PLIST_SUB+= RCDLINK="@comment "
RCDLINK= \#
.endif
.if defined(WITH_TCPSERVER_MAN)
MASTER_SITES+= http://smarden.org/pape/djb/manpages/:1
DISTFILES+= ${DISTNAME_TCPSERVER}-man.tar.gz:1
MAN1_TCPSERVER=addcr.1 argv0.1 date@.1 delcr.1 finger@.1 fixcrio.1 \
http@.1 mconnect.1 rblsmtpd.1 recordio.1 tcpcat.1 \
tcpclient.1 tcprules.1 tcprulescheck.1 tcpserver.1 who@.1
MAN1+=${MAN1_TCPSERVER}
.endif
pre-everything::
.if !defined(BARRIER_BIG_CONCURRENCY_PATCH)
@${ECHO_MSG} ""
@${ECHO_MSG} "You may use the following build options:"
@${ECHO_MSG} ""
@${ECHO_MSG} "WITH_BIG_CONCURRENCY_PATCH_CONCURRENCY_LIMIT=NUMBER"
@${ECHO_MSG} " (default NUMBER=${WITH_BIG_CONCURRENCY_PATCH_CONCURRENCY_LIMIT})"
@${ECHO_MSG} " set this to a value reasonable for"
@${ECHO_MSG} " your system if you use the patch"
@${ECHO_MSG} ""
.endif
pre-patch:
cd ${WRKSRC} && make patch
post-patch:
@${REINPLACE_CMD} 's!/var/qmail!${PREFIX}!; \
s!/usr/local/!${LOCALBASE}/!' \
${WRKSRC_QMAIL}/Makefile
@${REINPLACE_CMD} 's!nofiles!qnofiles!g' \
${WRKSRC_QMAIL}/conf-groups
@${REINPLACE_CMD} '/"man"/d; /man\/man/d; /man\/cat/d; \
/"doc"/d; /"boot","/d' \
${WRKSRC_QMAIL}/hier.c
cd ${WRKSRC} && make copy
do-configure:
@${SED} -e 's,%%RCDLINK%%,${RCDLINK},g; s,%%LOCALBASE%%,${LOCALBASE},g' \
${FILESDIR}/pkg-install.in > ${WRKDIR}/pkg-install
@${SETENV} PKG_PREFIX="${PREFIX}" ${CSH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
@${ECHO_CMD} "${CC} ${CFLAGS}" > ${WRKSRC_QMAIL}/conf-cc
@${ECHO_CMD} ${PREFIX} > ${WRKSRC_QMAIL}/conf-qmail
.if defined(WITH_BIG_CONCURRENCY_PATCH) && defined(WITH_BIG_CONCURRENCY_PATCH_CONCURRENCY_LIMIT)
@if [ ${WITH_BIG_CONCURRENCY_PATCH_CONCURRENCY_LIMIT} -gt 0 ]; then \
${ECHO_CMD} "${WITH_BIG_CONCURRENCY_PATCH_CONCURRENCY_LIMIT}" \
> ${WRKSRC_QMAIL}/conf-spawn ; \
fi
.endif
@${ECHO_CMD} 'qnofiles' > ${WRKSRC_CHECKPASSWORD}/conf-groups
@${ECHO_CMD} 'cc -s -lcrypt' > ${WRKSRC_CHECKPASSWORD}/conf-ld
@${ECHO_CMD} ${PREFIX} >${WRKSRC_CHECKPASSWORD}/conf-home
@${ECHO_CMD} "${CC} ${CFLAGS}" > ${WRKSRC}/src/vida/conf-cc
@${ECHO_CMD} ${PREFIX} > ${WRKSRC}/src/vida/conf-home
@${ECHO_CMD} ${PREFIX} > ${WRKSRC}/src/vida/conf-qmailhome
post-configure:
@${ECHO_CMD} ${PREFIX} > ${WRKSRC_TCPSERVER}/conf-home
@${ECHO_CMD} ${CC} ${CFLAGS} > ${WRKSRC_TCPSERVER}/conf-cc
@${ECHO_CMD} ${CC} -s > ${WRKSRC_TCPSERVER}/conf-ld
do-build:
@${ECHO_CMD} "=>Building" ${DISTNAME_QMAIL}
.for target in ${ALL_TARGET_QMAIL}
@cd ${WRKSRC_QMAIL} && make ${target}
.endfor
@${ECHO_CMD} "=>Building" ${DISTNAME_CHECKPASSWORD}
.for target in ${ALL_TARGET_CHECKPASSWORD}
@cd ${WRKSRC_CHECKPASSWORD} && make ${target}
.endfor
@${ECHO_CMD} "=>Building" ${DISTNAME_TCPSERVER}
.for target in ${ALL_TARGET_TCPSERVER}
@cd ${WRKSRC_TCPSERVER} && make ${target}
.endfor
do-install:
.for i in ${BOOTFILES}
@if [ -f ${WRKSRC_QMAIL}/${i}.sh ] ; then \
${SED} -f ${WRKDIR}/bootfiles.sed ${WRKSRC_QMAIL}/$i.sh > ${WRKDIR}/${i} ; \
elif [ -f ${FILESDIR}/${i}.in ] ; then \
${SED} -e 's,%%PREFIX%%,${PREFIX},g ; s,%%TCPSERVERDB%%,${TCPSERVER_DB_DIR},g ; s,%%ECHO_CMD%%,${ECHO_CMD},g' ${FILESDIR}/$i.in > ${WRKDIR}/${i} ; \
elif [ -f ${FILESDIR}/${i} ] ; then \
${SED} -f ${WRKDIR}/bootfiles.sed ${FILESDIR}/$i > ${WRKDIR}/${i} ; \
fi
.endfor
@${MKDIR} ${PREFIX}/configure
@cd ${WRKSRC_QMAIL} ; ./install
${INSTALL_PROGRAM} ${CONFIGUREPROGS} ${PREFIX}/configure
${INSTALL_SCRIPT} ${CONFIGUREFILES} ${PREFIX}/configure
.for i in ${BOOTFILES}
${INSTALL_SCRIPT} ${WRKDIR}/${i:T} ${PREFIX}/boot
.endfor
.for i in 1 5 7 8
@${MKDIR} ${PREFIX}/man/man$i
.for j in ${MAN${i}_QMAIL}
${INSTALL_MAN} ${WRKSRC_QMAIL}/$j ${PREFIX}/man/man${i}
.endfor
.endfor
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
${INSTALL_DATA} ${DOCFILES} ${DOCSDIR}
. if defined(PACKAGE_BUILDING)
@${ECHO_CMD} "FreeBSD Binary package qmail installation" \
> ${DOCSDIR}/SYSDEPS
. else
@cd ${WRKSRC_QMAIL} && ${CAT} `${CAT} SYSDEPS` \
> ${DOCSDIR}/SYSDEPS
. endif
.endif
@${MKDIR} ${PREFIX}/scripts
${INSTALL_SCRIPT} ${FILESDIR}/mkaliasdir ${PREFIX}/scripts
${INSTALL_SCRIPT} ${WRKDIR}/enable-qmail ${PREFIX}/scripts
.for script in ${SCRIPTS}
${INSTALL_SCRIPT} ${WRKDIR}/scripts/${script} ${PREFIX}/scripts
.endfor
@${SETENV} PKG_PREFIX="${PREFIX}" ${CSH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
@${ECHO_CMD}
@${CAT} ${PKGMESSAGE}
@${ECHO_CMD}
@cd ${WRKSRC_CHECKPASSWORD} && make setup
.for file_name in addcr argv0 delcr fixcrio mconnect-io rblsmtpd recordio tcpclient tcprules tcprulescheck tcpserver
@${INSTALL_PROGRAM} ${WRKSRC_TCPSERVER}/${file_name} ${PREFIX}/bin
.endfor
.for file_name in date@ finger@ http@ mconnect who@ tcpcat
@${INSTALL_SCRIPT} ${WRKSRC_TCPSERVER}/${file_name} ${PREFIX}/bin
.endfor
.if defined(WITH_TCPSERVER_MAN)
.for j in ${MAN1_TCPSERVER}
${INSTALL_MAN} ${WRKSRC_TCPSERVER}-man/${j} ${PREFIX}/man/man1/
.endfor
.endif
cd ${WRKSRC}/src/vida && make setup
cd ${WRKSRC} && make install-doc
post-install:
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}/checkpassword
. for f in CHANGES FILES README SYSDEPS TARGETS TODO VERSION
${INSTALL_DATA} ${WRKSRC_CHECKPASSWORD}/$f ${DOCSDIR}/checkpassword
. endfor
.endif
cd ${WRKSRC}/src/vida && make check
.include <bsd.port.post.mk>