aboutsummaryrefslogblamecommitdiff
path: root/mail/qmail-vida/Makefile
blob: c7529bbfac7bb94cf7bd8a99b1ec445c910242cb (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16















                                                                                
                                     

                                                

                                                                                

























                                                                        
                                                                                                 




















                                                                                 
                                    































                                                                                           













                                                                              



                                         























                                                                                      

























                                                                          
                                        






















































































                                                                                                                 
                                                                                                                                                                    































































                                                                                                                    
# 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>