mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-28 01:06:17 +00:00
18e84bed8b
What's tarpitting? It's the practice of inserting a small sleep in an SMTP session for each RCPT TO after some set number of RCPT TOs. The idea is to thwart spammers who would hand your SMTP server a single message with a long list of RCPT TOs. If a spammer were to attempt to use your server to relay a message with, say, 10,000 recipients, and you inserted a five-second delay for each recipient after the fiftieth, the spammer would be "tarpitted" and would likely assume that his connection had stalled and give up. Asked by: Joao Ricardo Mendes Pecanha <joao@redepegasus.com.br>
694 lines
23 KiB
Makefile
694 lines
23 KiB
Makefile
# New ports collection makefile for: qmail
|
|
# Date created: 25 May 1998
|
|
# Whom: Mario S F Ferreira <lioux@linf.unb.br> et al.
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
PORTNAME= qmail
|
|
PORTVERSION?= ${QMAIL_VERSION}
|
|
PORTREVISION?= 5
|
|
CATEGORIES= mail
|
|
MASTER_SITES+= ${MASTER_SITE_QMAIL}
|
|
DISTNAME= ${PORTNAME}-${QMAIL_VERSION}
|
|
DISTFILES?= ${DISTNAME}${EXTRACT_SUFX}
|
|
EXTRACT_ONLY?= ${DISTNAME}${EXTRACT_SUFX}
|
|
|
|
MAINTAINER?= garga@FreeBSD.org
|
|
COMMENT?= A secure, reliable, efficient, simple, and fast MTA
|
|
|
|
DIST_SUBDIR= qmail
|
|
|
|
CONFLICTS= qmail-vida-[0-9]*
|
|
|
|
.if defined(SLAVE_LDAP) || \
|
|
defined(SLAVE_SPAMCONTROL) || \
|
|
defined(SLAVE_MYSQL)
|
|
BARRIER_MAILDIRQUOTA_PATCH= yes
|
|
BARRIER_BLOCKEXEC_PATCH= yes
|
|
BARRIER_QMAILQUEUE_PATCH= yes
|
|
BARRIER_SMTP_AUTH_PATCH= yes
|
|
BARRIER_SPF_PATCH= yes
|
|
.endif
|
|
|
|
.if defined(SLAVE_LDAP) || \
|
|
defined(SLAVE_SPAMCONTROL)
|
|
BARRIER_DNS_PATCH= yes
|
|
BARRIER_BIG_CONCURRENCY_PATCH= yes
|
|
BARRIER_QMTPC_PATCH= yes
|
|
BARRIER_DISCBOUNCES_PATCH= yes
|
|
BARRIER_SENDMAIL_F_PATCH= yes
|
|
BARRIER_BIG_TODO_PATCH= yes
|
|
BARRIER_LOCALTIME_PATCH= yes
|
|
.endif
|
|
|
|
.if defined(SLAVE_LDAP) || \
|
|
defined(SLAVE_SPAMCONTROL) || \
|
|
defined(SLAVE_TLS)
|
|
BARRIER_OUTGOINGIP_PATCH= yes
|
|
BARRIER_RFC2821_PATCH= yes
|
|
BARRIER_TARPIT_PATCH= yes
|
|
.endif
|
|
|
|
.if !defined(BARRIER_DNS_PATCH)
|
|
# Patch necessary to cope with non-RFC >512 dns entries
|
|
# Since AOL has been using those, the problem has skyrocketed from minor to
|
|
# groundzero. qmail being RFC compliant need to be "fixed" to work with those
|
|
PATCH_SITES+= http://www.ckdhr.com/ckd/:dns
|
|
PATCHFILES+= qmail-103.patch:dns
|
|
PATCH_DIST_STRIP+= -p1
|
|
.endif
|
|
|
|
.if !defined(BARRIER_SENDMAIL_F_PATCH)
|
|
# David Phillips noticed that sendmail's -f option sets a default
|
|
# From: header, and so should qmail's emulation.
|
|
PATCH_SITES+= http://david.acz.org/software/:sendmail_flagf
|
|
PATCHFILES+= sendmail-flagf.patch:sendmail_flagf
|
|
.endif
|
|
|
|
.if !defined(BARRIER_RFC2821_PATCH)
|
|
# This patch changes qmail-remote to skip over MX servers that greet with
|
|
# codes 400 to 499 and to bounce mail when any MX server that qmail tries
|
|
# greets with a code 500 to 599.
|
|
# Created by Matthias Andree
|
|
PATCH_SITES+= http://www-dt.e-technik.uni-dortmund.de/~ma/qmail/:rfc2821
|
|
PATCHFILES+= patch-qmail-1.03-rfc2821.diff:rfc2821
|
|
.endif
|
|
|
|
.if defined(SLAVE_LDAP)
|
|
PATCH_SITES+= http://www.nrg4u.com/qmail/:ldap
|
|
PATCHFILES+= qmail-ldap-1.03-${LDAP_PATCH_DATE}.patch.gz:ldap
|
|
PATCH_DIST_STRIP+= -p1
|
|
.elif defined(SLAVE_MYSQL)
|
|
PATCH_SITES+= http://iain.cx/unix/qmail/download/:mysql
|
|
PATCHFILES+= qmail-mysql-${MYSQL_PATCH_VERSION}.patch:mysql
|
|
.elif defined(SLAVE_TLS)
|
|
PATCH_SITES+= http://inoa.net/qmail-tls/:tls
|
|
PATCHFILES+= qmail-1.03-tls-${TLS_PATCH_DATE}-renato.patch:tls
|
|
PATCH_DIST_STRIP+= -p1
|
|
.endif
|
|
|
|
PATCH_SITES+= ${MASTER_SITE_LOCAL:S/$/:dns,sendmail_flagf,rfc2821,ldap,mysql,tls,quota,blockexec,doublebounce,spf,localtime,qmtpc_outgoingip/}
|
|
PATCH_SITE_SUBDIR+= garga/qmail/:dns,sendmail_flagf,rfc2821,ldap,mysql,tls,quota,blockexec,doublebounce,spf,localtime,qmtpc_outgoingip
|
|
|
|
NO_PACKAGE= djb's packaging license does not allow non-standard qmail binary distributions
|
|
|
|
PREFIX?= ${QMAIL_PREFIX}
|
|
QMAIL_VERSION?= 1.03
|
|
|
|
.if !defined(BARRIER_SMTP_AUTH_PATCH)
|
|
SMTP_AUTH_VERSION= 0.31
|
|
SMTP_AUTH_DIR= ${WRKDIR}/${PORTNAME}-smtpd-auth-${SMTP_AUTH_VERSION}
|
|
|
|
OPTIONS+= SMTP_AUTH_PATCH "Provide SMTP Authentication" off
|
|
.endif
|
|
.if !defined(BARRIER_QMAILQUEUE_PATCH)
|
|
OPTIONS+= QMAILQUEUE_PATCH "run a QMAILQUEUE program" off
|
|
.endif
|
|
.if !defined(BARRIER_BIG_TODO_PATCH)
|
|
OPTIONS+= BIG_TODO_PATCH "enable big_todo qmail patch" off
|
|
.endif
|
|
.if !defined(BARRIER_BIG_CONCURRENCY_PATCH)
|
|
OPTIONS+= BIG_CONCURRENCY_PATCH "use a concurrency greater than 240" off
|
|
.endif
|
|
.if !defined(BARRIER_OUTGOINGIP_PATCH)
|
|
OPTIONS+= OUTGOINGIP_PATCH "set the IP address to send messages" off
|
|
.endif
|
|
.if !defined(BARRIER_LOCALTIME_PATCH)
|
|
OPTIONS+= LOCALTIME_PATCH "emit dates in the local timezone" off
|
|
.endif
|
|
.if !defined(BARRIER_QMTPC_PATCH)
|
|
OPTIONS+= QMTPC_PATCH "send email using qmtp protocol" off
|
|
.endif
|
|
.if !defined(BARRIER_MAILDIRQUOTA_PATCH)
|
|
OPTIONS+= MAILDIRQUOTA_PATCH "Maildir++ support" off
|
|
.endif
|
|
.if !defined(BARRIER_BLOCKEXEC_PATCH)
|
|
OPTIONS+= BLOCKEXEC_PATCH "block many windows viruses/worms" off
|
|
.endif
|
|
.if !defined(BARRIER_DISCBOUNCES_PATCH)
|
|
OPTIONS+= DISCBOUNCES_PATCH "discard double-bounces" off
|
|
.endif
|
|
.if !defined(BARRIER_SPF_PATCH)
|
|
OPTIONS+= SPF_PATCH "Implement SPF checker" off
|
|
.endif
|
|
.if !defined(BARRIER_TARPIT_PATCH)
|
|
OPTIONS+= TARPIT_PATCH "Implement TARPIT functions" off
|
|
.endif
|
|
.if defined(SLAVE_TLS)
|
|
OPTIONS+= TLS_DEBUG "enable additional debug information" off
|
|
.elif defined(SLAVE_LDAP)
|
|
OPTIONS+= TLS "SMTP TLS support" on \
|
|
ALTQUEUE "run a QMAILQUEUE external queue" off \
|
|
BIGBROTHER "use the control/bigbrother program" off \
|
|
BIGTODO "use big_todo qmail patch" off \
|
|
BIND_8_COMPAT "Needed if compile fails building dns.c" off \
|
|
CLEARTEXTPASSWD "use cleartext passwords (Dangerous!)" off \
|
|
DASH_EXT "dash_ext extended mail addresses add" on \
|
|
DATA_COMPRESS "smtp on the fly DATA compression" on \
|
|
EXTERNAL_TODO "external high-performance todo processing" on \
|
|
IGNOREVERISIGN "disallow dns wildchar matches on gtlds" off \
|
|
QLDAP_CLUSTER "cluster support" on \
|
|
QMQP_COMPRESS "QMQP on the fly compression" on \
|
|
QUOTATRASH "include the Trash in the quota" off \
|
|
SMTPEXECCHECK "smtp DOS/Windows executable detection" on \
|
|
AUTOMAILDIRMAKE "the auto-maildir-make feature" on \
|
|
AUTOHOMEDIRMAKE "auto-homedir-make feature" on \
|
|
LDAP_DEBUG "possibility to log and debug imap/pop" off
|
|
|
|
LDAP_PARAMS= ALTQUEUE BIGBROTHER BIGTODO BIND_8_COMPAT\
|
|
CLEARTEXTPASSWD DASH_EXT DATA_COMPRESS\
|
|
EXTERNAL_TODO IGNOREVERISIGN QLDAP_CLUSTER\
|
|
QMQP_COMPRESS QUOTATRASH SMTPEXECCHECK
|
|
|
|
.elif defined(SLAVE_SPAMCONTROL)
|
|
OPTIONS+= RELAYMAILFROM "Open relay based on mailfrom" off \
|
|
QUITASAP "Close session in case of a filter condition" off \
|
|
REQBRACKETS "Require brackets in <addresses>" on \
|
|
VERP "VERP addresses for recipients" on \
|
|
RECIPIENTS550 "Get a 550 reply instead of a deferred bounce" off \
|
|
LOCALMFREQAUTH "Require auth when from is @ your domains" off \
|
|
AUTHCRAM "Aditional CRAM-MD5 support" off \
|
|
MOREIPME "Additional control files moreipme & notipme" off \
|
|
BIGTODO "Bruce Guenter's BigToDo patch" off
|
|
.endif
|
|
.if !defined(SLAVE_LDAP)
|
|
OPTIONS+= RCDLINK "create rc.d/qmail.sh" on
|
|
.endif
|
|
|
|
ALL_TARGET+= 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
|
|
|
|
MAN1+= 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+= 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+= forgeries.7 qmail-limits.7 qmail.7
|
|
MAN8+= 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
|
|
|
|
.if defined(SLAVE_MYSQL)
|
|
PKGMESSAGE_SUFFIX= mysql
|
|
.endif
|
|
|
|
.if defined(SLAVE_SPAMCONTROL)
|
|
EXTRA_MAN8= qmail-badloadertypes.8 qmail-badmimetypes.8 qmail-recipients.8
|
|
ALL_TARGET+= ${EXTRA_MAN8}
|
|
MAN8+= ${EXTRA_MAN8}
|
|
.endif
|
|
|
|
.if defined(SLAVE_SPAMCONTROL)
|
|
PLIST_SUB+= README_AUTH=""
|
|
.else
|
|
PLIST_SUB+= README_AUTH="@comment "
|
|
.endif
|
|
|
|
.if defined(SLAVE_LDAP)
|
|
PKGMESSAGE_SUFFIX= ldap
|
|
PLIST_SUB+= LDAP="" NOT_LDAP="@comment "
|
|
.else
|
|
PLIST_SUB+= LDAP="@comment " NOT_LDAP=""
|
|
.endif
|
|
|
|
.if defined(SLAVE_SPAMCONTROL)
|
|
PLIST_SUB+= SPAMCONTROL=""
|
|
.else
|
|
PLIST_SUB+= SPAMCONTROL="@comment "
|
|
.endif
|
|
|
|
.if defined(SLAVE_TLS)
|
|
PKGMESSAGE_SUFFIX= tls
|
|
PLIST_SUB+= TLS=""
|
|
.else
|
|
PLIST_SUB+= TLS="@comment "
|
|
.endif
|
|
|
|
.if defined(PKGMESSAGE_SUFFIX)
|
|
SLAVEPORT_LINE= ${PKGMESSAGE_SUFFIX}
|
|
.elif defined(SLAVE_SPAMCONTROL)
|
|
SLAVEPORT_LINE= spamcontrol
|
|
.endif
|
|
|
|
SUB_FILES+= mailer.conf.sample bootfiles.sed enable-qmail
|
|
SUB_LIST+= ECHO_CMD=${ECHO_CMD}
|
|
PKGINSTALL?= ${WRKDIR}/pkg-install
|
|
|
|
.if defined(PKGMESSAGE_SUFFIX)
|
|
SUB_FILES+= pkg-message-${PKGMESSAGE_SUFFIX}
|
|
PKGMESSAGE?= ${WRKDIR}/pkg-message-${PKGMESSAGE_SUFFIX}
|
|
.else
|
|
SUB_FILES+= pkg-message
|
|
.endif
|
|
|
|
CSH?= /bin/csh
|
|
|
|
DOCFILES+= ${WRKSRC}/BLURB ${WRKSRC}/BLURB2 ${WRKSRC}/BLURB3 \
|
|
${WRKSRC}/BLURB4 ${WRKSRC}/INTERNALS ${WRKSRC}/SECURITY \
|
|
${WRKSRC}/THOUGHTS ${FILESDIR}/PORT_NOTES \
|
|
${FILESDIR}/PORT_NOTES_FreeBSD_40-RELEASE \
|
|
${WRKDIR}/mailer.conf.sample \
|
|
${WRKSRC}/FAQ ${WRKSRC}/UPGRADE ${WRKSRC}/SENDMAIL \
|
|
${WRKSRC}/INSTALL ${WRKSRC}/INSTALL.alias \
|
|
${WRKSRC}/INSTALL.ctl ${WRKSRC}/INSTALL.ids \
|
|
${WRKSRC}/INSTALL.maildir ${WRKSRC}/INSTALL.mbox \
|
|
${WRKSRC}/INSTALL.vsm ${WRKSRC}/TEST.deliver \
|
|
${WRKSRC}/TEST.receive ${WRKSRC}/REMOVE.sendmail \
|
|
${WRKSRC}/REMOVE.binmail ${WRKSRC}/PIC.local2alias \
|
|
${WRKSRC}/PIC.local2ext ${WRKSRC}/PIC.local2local \
|
|
${WRKSRC}/PIC.local2rem ${WRKSRC}/PIC.local2virt \
|
|
${WRKSRC}/PIC.nullclient ${WRKSRC}/PIC.relaybad \
|
|
${WRKSRC}/PIC.relaygood ${WRKSRC}/PIC.rem2local
|
|
|
|
.if defined(SLAVE_LDAP)
|
|
DOCFILES+= ${WRKSRC}/QLDAPINSTALL ${WRKSRC}/QLDAPNEWS \
|
|
${WRKSRC}/POPBEFORESMTP ${WRKSRC}/QLDAPTODO \
|
|
${WRKSRC}/QLDAPPICTURE ${WRKSRC}/QLDAPGROUP \
|
|
${WRKSRC}/EXTTODO ${WRKSRC}/qmail.schema
|
|
.elif defined(SLAVE_TLS)
|
|
DOCFILES+= ${WRKDIR}/TLS.readme
|
|
.elif defined(SLAVE_SPAMCONTROL)
|
|
DOCFILES+= ${WRKDIR}/doc/FILES.spamcontrol ${WRKDIR}/doc/HISTORY.spamcontrol \
|
|
${WRKDIR}/doc/INSTALL.spamcontrol ${WRKDIR}/doc/LICENSE.spamcontrol \
|
|
${WRKDIR}/doc/LOGGING.spamcontrol ${WRKDIR}/doc/Makefile.djbdns \
|
|
${WRKDIR}/doc/README.auth ${WRKDIR}/doc/README.bigtodo \
|
|
${WRKDIR}/doc/README.bouncemaxbytes ${WRKDIR}/doc/README.djbdns \
|
|
${WRKDIR}/doc/README.doublebouncetrim ${WRKDIR}/doc/README.moreipme \
|
|
${WRKDIR}/doc/README.qmailqueue ${WRKDIR}/doc/README.recipients \
|
|
${WRKDIR}/doc/README.spamcontrol ${WRKDIR}/doc/README.wildmat \
|
|
${WRKDIR}/doc/README_spamcontrol.html \
|
|
${WRKDIR}/doc/RELEASE_22.spamcontrol \
|
|
${WRKDIR}/doc/RELEASE_23.spamcontrol \
|
|
${WRKDIR}/doc/SMTPREPLY.spamcontrol ${WRKDIR}/doc/TESTING.spamcontrol \
|
|
${WRKDIR}/doc/TODO.spamcontrol ${WRKDIR}/doc/badloadertypes \
|
|
${WRKDIR}/doc/badmailfrom ${WRKDIR}/doc/badmimetypes \
|
|
${WRKDIR}/doc/badrcptto ${WRKDIR}/doc/conf-spamcontrol \
|
|
${WRKDIR}/doc/install_spamcontrol.sh ${WRKDIR}/doc/tarpitcount
|
|
SCRIPTS+= qmail-alias2recipients qmail-pwd2recipients \
|
|
qmail-users2recipients qmail-vpopmail2recipients
|
|
.endif
|
|
|
|
.if !defined(SLAVE_LDAP)
|
|
BOOTFILES= home home+df proc proc+df binm1 binm1+df \
|
|
binm2 binm2+df binm3 binm3+df maildir
|
|
.endif
|
|
|
|
CONFIGUREPROGS= ${WRKSRC}/install ${WRKSRC}/dnsfq ${WRKSRC}/hostname \
|
|
${WRKSRC}/dnsip ${WRKSRC}/ipmeprint ${WRKSRC}/dnsptr
|
|
CONFIGUREFILES= ${WRKSRC}/config ${WRKSRC}/config-fast
|
|
|
|
.include "${.CURDIR}/../../Mk/bsd.mail.mk"
|
|
|
|
.if (${PREFIX} != ${LOCALBASE})
|
|
DOCSDIR= ${PREFIX}/doc
|
|
.endif
|
|
|
|
NO_MTREE= yes
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if defined(SLAVE_TLS)
|
|
CFLAGS+= -I${OPENSSLBASE}/include -L${OPENSSLBASE}/lib -DTLS
|
|
. if defined(WITH_TLS_DEBUG)
|
|
CFLAGS+= -DDEBUG
|
|
. endif
|
|
.endif
|
|
|
|
.if defined(SLAVE_LDAP)
|
|
|
|
. if !defined(WITHOUT_TLS)
|
|
# we can't use USE_OPENSSL=yes after including bsd.port.pre.mk
|
|
.include "${PORTSDIR}/Mk/bsd.openssl.mk"
|
|
. endif
|
|
|
|
. for param in ${LDAP_PARAMS}
|
|
. if defined(WITH_${param})
|
|
LDAPFLAGS+= -D${param}
|
|
. endif
|
|
. endfor
|
|
|
|
. if defined(WITH_EXTERNAL_TODO)
|
|
PLIST_SUB+= EXTERNAL_TODO=""
|
|
. else
|
|
PLIST_SUB+= EXTERNAL_TODO="@comment "
|
|
. endif
|
|
|
|
.endif
|
|
|
|
.if defined(WITH_SMTP_AUTH_PATCH)
|
|
MASTER_SITES+= http://members.elysium.pl/brush/qmail-smtpd-auth/dist/:smtp_auth
|
|
DISTFILES+= qmail-smtpd-auth-${SMTP_AUTH_VERSION}.tar.gz:smtp_auth
|
|
EXTRACT_ONLY+= qmail-smtpd-auth-${SMTP_AUTH_VERSION}.tar.gz
|
|
MASTER_SITES+= http://tomclegg.net/qmail/:close3
|
|
DISTFILES+= qmail-smtpd-auth-close3.patch:close3
|
|
.endif
|
|
|
|
.if defined(WITH_MAILDIRQUOTA_PATCH) && !defined(BARRIER_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_SPF_PATCH) && !defined(BARRIER_SPF_PATCH)
|
|
. if defined(SLAVE_TLS)
|
|
MASTER_SITES+= http://manuel.mausz.at/patches/qmail/:spf_tls
|
|
. if defined(WITH_SMTP_AUTH_PATCH)
|
|
SPF_TLS_PATCH= qmail-spf-rc5.patch-auth-tls
|
|
. else
|
|
SPF_TLS_PATCH= qmail-spf-rc5.patch-tls
|
|
. endif
|
|
DISTFILES+= ${SPF_TLS_PATCH}:spf_tls
|
|
. else
|
|
PATCH_SITES+= http://www.saout.de/misc/spf/:spf
|
|
PATCHFILES+= qmail-spf-rc5.patch:spf
|
|
. endif
|
|
.endif
|
|
|
|
.if !defined(BARRIER_DNS_PATCH) \
|
|
||(defined(WITH_QMAILQUEUE_PATCH) && !defined(BARRIER_QMAILQUEUE_PATCH)) \
|
|
||(defined(WITH_BIG_TODO_PATCH) && !defined(BARRIER_BIG_TODO_PATCH)) \
|
|
||(defined(WITH_BIG_CONCURRENCY_PATCH)&& !defined(BARRIER_BIG_CONCURRENCY_PATCH)) \
|
|
||(defined(WITH_OUTGOINGIP_PATCH) && !defined(BARRIER_OUTGOINGIP_PATCH)) \
|
|
||(defined(WITH_QMTPC_PATCH) && !defined(BARRIER_QMTPC_PATCH))
|
|
PATCH_SITES+= ${MASTER_SITE_QMAIL}
|
|
.endif
|
|
|
|
.if defined(WITH_QMAILQUEUE_PATCH) && !defined(BARRIER_QMAILQUEUE_PATCH)
|
|
PATCHFILES+= qmailqueue-patch
|
|
.endif
|
|
.if defined(WITH_BIG_TODO_PATCH) && !defined(BARRIER_BIG_TODO_PATCH)
|
|
PATCHFILES+= big-todo.103.patch
|
|
.endif
|
|
.if defined(WITH_BIG_CONCURRENCY_PATCH) && !defined(BARRIER_BIG_CONCURRENCY_PATCH)
|
|
PATCHFILES+= big-concurrency.patch
|
|
.endif
|
|
.if defined(WITH_OUTGOINGIP_PATCH) && !defined(BARRIER_OUTGOINGIP_PATCH) && \
|
|
defined(WITH_QMTPC_PATCH) && !defined(BARRIER_QMTPC_PATCH)
|
|
PATCHFILES+= qmail-1.03-qmtpc_outgoingip.patch:qmtpc_outgoingip
|
|
.elif defined(WITH_OUTGOINGIP_PATCH) && !defined(BARRIER_OUTGOINGIP_PATCH)
|
|
PATCHFILES+= outgoingip.patch
|
|
.elif defined(WITH_QMTPC_PATCH) && !defined(BARRIER_QMTPC_PATCH)
|
|
PATCHFILES+= qmail-1.03-qmtpc.patch
|
|
.endif
|
|
|
|
.if defined(WITH_LOCALTIME_PATCH) && !defined(BARRIER_LOCALTIME_PATCH)
|
|
PATCH_SITES+= http://www.alib.jp/files/:localtime
|
|
PATCHFILES+= qmail-date-localtime.patch:localtime
|
|
.endif
|
|
|
|
.if defined(WITH_TARPIT_PATCH) && !defined(BARRIER_TARPIT_PATCH)
|
|
PATCH_SITES+= http://www.palomine.net/qmail/:tarpit
|
|
PATCHFILES+= tarpit.patch:tarpit
|
|
.endif
|
|
|
|
# Some default values, these can be modified by make command line
|
|
.if defined(WITH_BIG_CONCURRENCY_PATCH) && !defined(BARRIER_BIG_CONCURRENCY_PATCH)
|
|
WITH_BIG_CONCURRENCY_PATCH_CONCURRENCY_LIMIT?= 509
|
|
.endif
|
|
|
|
.if defined(WITH_RCDLINK) && !defined(SLAVE_LDAP)
|
|
PLIST_SUB+= RCDLINK=""
|
|
RCDLINK=
|
|
.else
|
|
PLIST_SUB+= RCDLINK="@comment "
|
|
RCDLINK= \#
|
|
.endif
|
|
|
|
# Fill SELECTED_OPTIONS with options to write conf-spamcontrol
|
|
.if defined(SLAVE_SPAMCONTROL)
|
|
. if defined(WITH_RELAYMAILFROM)
|
|
SELECTED_OPTIONS+= relaymailfrom=yes
|
|
. else
|
|
SELECTED_OPTIONS+= relaymailfrom=no
|
|
. endif
|
|
|
|
. if defined(WITH_QUITASAP)
|
|
SELECTED_OPTIONS+= quitasap=yes
|
|
. else
|
|
SELECTED_OPTIONS+= quitasap=no
|
|
. endif
|
|
|
|
. if !defined(WITHOUT_REQBRACKETS)
|
|
SELECTED_OPTIONS+= reqbrackets=yes
|
|
. else
|
|
SELECTED_OPTIONS+= reqbrackets=no
|
|
. endif
|
|
|
|
. if !defined(WITHOUT_VERP)
|
|
SELECTED_OPTIONS+= verp=yes
|
|
. else
|
|
SELECTED_OPTIONS+= verp=no
|
|
. endif
|
|
|
|
. if defined(WITH_RECIPIENTS550)
|
|
SELECTED_OPTIONS+= recipients550=yes
|
|
. else
|
|
SELECTED_OPTIONS+= recipients550=no
|
|
. endif
|
|
|
|
. if defined(WITH_LOCALMFREQAUTH)
|
|
SELECTED_OPTIONS+= localmfreqauth=yes
|
|
. else
|
|
SELECTED_OPTIONS+= localmfreqauth=no
|
|
. endif
|
|
|
|
. if defined(WITH_AUTHCRAM)
|
|
SELECTED_OPTIONS+= cram_md5=yes
|
|
. else
|
|
SELECTED_OPTIONS+= cram_md5=no
|
|
. endif
|
|
|
|
. if defined(WITH_MOREIPME)
|
|
SELECTED_OPTIONS+= moreipme=yes
|
|
. else
|
|
SELECTED_OPTIONS+= moreipme=no
|
|
. endif
|
|
|
|
. if defined(WITH_BIGTODO)
|
|
SELECTED_OPTIONS+= bigtodo=yes
|
|
. else
|
|
SELECTED_OPTIONS+= bigtodo=no
|
|
. endif
|
|
|
|
.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
|
|
|
|
.if !defined(QMAIL_PREFIX)
|
|
@${ECHO_MSG} "QMAIL_PREFIX=PREFIX_PATH"
|
|
@${ECHO_MSG} " (default PREFIX_PATH=${PREFIX})"
|
|
@${ECHO_MSG} " A normal qmail installation puts"
|
|
@${ECHO_MSG} " everything into /var/qmail/."
|
|
@${ECHO_MSG} " If you want to install to ${LOCALBASE},"
|
|
@${ECHO_MSG} " then \"${LOCALBASE}/qmail\" is suggested"
|
|
@${ECHO_MSG} " instead of \"${LOCALBASE}\", but both will"
|
|
@${ECHO_MSG} " work."
|
|
@${ECHO_MSG} ""
|
|
.endif
|
|
|
|
post-extract:
|
|
.if defined(SLAVE_SPAMCONTROL)
|
|
@cd ${WRKSRC} && ${TAR} -xzf ${DISTDIR}/${DIST_SUBDIR}/${SPAMCONTROL_DIST}
|
|
.endif
|
|
|
|
post-patch:
|
|
.if defined(WITH_SMTP_AUTH_PATCH)
|
|
@${CP} ${SMTP_AUTH_DIR}/base64.[ch] ${WRKSRC}
|
|
. if defined(SLAVE_TLS)
|
|
@${PATCH} -d ${SMTP_AUTH_DIR} < ${FILESDIR}/auth.patch.patch-tls
|
|
. elif defined(WITH_SPF_PATCH)
|
|
@${PATCH} -d ${SMTP_AUTH_DIR} < ${FILESDIR}/auth.patch.patch
|
|
. endif
|
|
@${PATCH} -d ${WRKSRC} < ${SMTP_AUTH_DIR}/auth.patch
|
|
. if defined(WITH_SPF_PATCH) && defined(SLAVE_TLS)
|
|
@${PATCH} -d ${WRKSRC} < ${DISTDIR}/${DIST_SUBDIR}/${SPF_TLS_PATCH}
|
|
. endif
|
|
@${PATCH} -d ${WRKSRC} < ${DISTDIR}/${DIST_SUBDIR}/qmail-smtpd-auth-close3.patch
|
|
.elif defined(SLAVE_TLS) && defined(WITH_SPF_PATCH)
|
|
@${PATCH} -d ${WRKSRC} < ${DISTDIR}/${DIST_SUBDIR}/${SPF_TLS_PATCH}
|
|
.endif
|
|
.if defined(SLAVE_MYSQL)
|
|
@${REINPLACE_CMD} 's|/opt/mysql|${LOCALBASE}|' \
|
|
${WRKSRC}/Makefile
|
|
.elif defined(SLAVE_SPAMCONTROL)
|
|
@${ECHO_CMD} ${WRKDIR} > ${WRKSRC}/conf-qmail
|
|
@${ECHO_CMD} "# Generated by qmail-spamcontrol FreeBSD port" \
|
|
> ${WRKSRC}/conf-spamcontrol
|
|
. for option in ${SELECTED_OPTIONS}
|
|
@${ECHO_CMD} ${option} >> ${WRKSRC}/conf-spamcontrol
|
|
. endfor
|
|
@cd ${WRKSRC} && ./install_spamcontrol.sh
|
|
.elif defined(SLAVE_TLS)
|
|
@${HEAD} -105 ${DISTDIR}/${DIST_SUBDIR}/qmail-1.03-tls-${TLS_PATCH_DATE}-renato.patch > \
|
|
${WRKDIR}/TLS.readme
|
|
@${REINPLACE_CMD} "s|/usr/local/ssl|${OPENSSLBASE}|" \
|
|
${WRKSRC}/Makefile
|
|
.elif defined(SLAVE_LDAP)
|
|
@${REINPLACE_CMD} "s|^LDAPLIBS=-L/usr/local/lib|LDAPLIBS=-L${LOCALBASE}/lib|; \
|
|
s|^LDAPINCLUDES=-I/usr/local/include|LDAPINCLUDES=-I${LOCALBASE}/include|" \
|
|
${WRKSRC}/Makefile
|
|
@${REINPLACE_CMD} "s|^#SHADOWLIBS=-lcrypt$$|SHADOWLIBS=-lcrypt|" \
|
|
${WRKSRC}/Makefile
|
|
. if !defined(WITHOUT_TLS)
|
|
@${REINPLACE_CMD} "s|^#TLS=|TLS=|; \
|
|
s|^#TLSINCLUDES=-I/usr/local/include|TLSINCLUDES=-I${OPENSSLBASE}/include|; \
|
|
s|^#TLSLIBS=-L/usr/local/lib|TLSLIBS=-L${OPENSSLBASE}/lib|; \
|
|
s|^#OPENSSLBIN=/usr/local/bin/openssl|OPENSSLBIN=${OPENSSLBASE}/bin/openssl|" \
|
|
${WRKSRC}/Makefile
|
|
. endif
|
|
. if defined(WITH_DATA_COMPRESS) || defined (WITH_QMQP_COMPRESS)
|
|
@${REINPLACE_CMD} "s|^#ZLIB=-lz$$|ZLIB=-lz|" \
|
|
${WRKSRC}/Makefile
|
|
. endif
|
|
. if !defined(WITHOUT_AUTOMAILDIRMAKE)
|
|
@${REINPLACE_CMD} "s|^#MDIRMAKE=|MDIRMAKE=|" ${WRKSRC}/Makefile
|
|
. endif
|
|
. if !defined(WITHOUT_AUTOHOMEDIRMAKE)
|
|
@${REINPLACE_CMD} "s|^#HDIRMAKE=|HDIRMAKE=|" ${WRKSRC}/Makefile
|
|
. endif
|
|
. if defined(WITH_LDAP_DEBUG)
|
|
@${REINPLACE_CMD} "s|^#DEBUG=|DEBUG=|" ${WRKSRC}/Makefile
|
|
. endif
|
|
. if defined(LDAPFLAGS)
|
|
@${REINPLACE_CMD} "s|^#LDAPFLAGS=.*$$|LDAPFLAGS=${LDAPFLAGS}|" \
|
|
${WRKSRC}/Makefile
|
|
. endif
|
|
.endif
|
|
@${REINPLACE_CMD} 's!/var/qmail!${PREFIX}!; \
|
|
s!/usr/local/!${LOCALBASE}/!' \
|
|
${WRKSRC}/Makefile
|
|
@${REINPLACE_CMD} 's!nofiles!qnofiles!g' \
|
|
${WRKSRC}/conf-groups
|
|
@${REINPLACE_CMD} '/"man"/d; /man\/man/d; /man\/cat/d; \
|
|
/"doc"/d; /"boot","/d' \
|
|
${WRKSRC}/hier.c
|
|
|
|
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}/conf-cc
|
|
@${ECHO_CMD} ${PREFIX} > ${WRKSRC}/conf-qmail
|
|
.if defined(WITH_BIG_CONCURRENCY_PATCH) \
|
|
&& !defined(BARRIER_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}/conf-spawn ; \
|
|
fi
|
|
.endif
|
|
|
|
do-install:
|
|
.for i in ${BOOTFILES}
|
|
@if [ -f ${WRKSRC}/${i}.sh ] ; then \
|
|
${SED} -f ${WRKDIR}/bootfiles.sed ${WRKSRC}/$i.sh > ${WRKDIR}/${i} ; \
|
|
elif [ -f ${FILESDIR}/${i} ] ; then \
|
|
${SED} -f ${WRKDIR}/bootfiles.sed ${FILESDIR}/$i > ${WRKDIR}/${i} ; \
|
|
fi
|
|
.endfor
|
|
@${MKDIR} ${DOCSDIR} ${PREFIX}/configure
|
|
@cd ${WRKSRC} ; ./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}}
|
|
${INSTALL_MAN} ${WRKSRC}/$j ${PREFIX}/man/man${i}
|
|
. endfor
|
|
.endfor
|
|
.if !defined(NOPORTDOCS)
|
|
${INSTALL_DATA} ${DOCFILES} ${DOCSDIR}
|
|
.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
|
|
.if defined(PACKAGE_BUILDING)
|
|
@${ECHO_CMD} "FreeBSD Binary package qmail installation" \
|
|
> ${DOCSDIR}/SYSDEPS
|
|
.else
|
|
@cd ${WRKSRC} && ${CAT} `${CAT} SYSDEPS` \
|
|
> ${DOCSDIR}/SYSDEPS
|
|
.endif
|
|
@${SETENV} PKG_PREFIX="${PREFIX}" ${CSH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
|
|
@${ECHO_CMD}
|
|
@${CAT} ${PKGMESSAGE}
|
|
@${ECHO_CMD}
|
|
.if defined(SLAVEPORT_LINE)
|
|
@${ECHO_CMD} "============================================="
|
|
@${ECHO_CMD}
|
|
@${ECHO_CMD} "ATTENTION"
|
|
@${ECHO_CMD}
|
|
@${ECHO_CMD} "Add the following line to your /etc/make.conf"
|
|
@${ECHO_CMD} "QMAIL_SLAVEPORT=${SLAVEPORT_LINE}"
|
|
@${ECHO_CMD}
|
|
@${ECHO_CMD} "============================================="
|
|
@${ECHO_CMD}
|
|
.endif
|
|
|
|
certificate:
|
|
.if defined(SLAVE_TLS) || defined(SLAVE_LDAP)
|
|
@if [ -f ${OPENSSLDIR}/openssl.cnf ]; then \
|
|
if [ ! -d ${WRKDIR} ]; then \
|
|
${MKDIR} ${WRKDIR} ; \
|
|
fi ; \
|
|
${OPENSSLBASE}/bin/openssl req -new -x509 -nodes \
|
|
-out ${WRKDIR}/servercert.pem -days 366 \
|
|
-keyout ${WRKDIR}/servercert.pem ; \
|
|
${INSTALL} -o qmaild -g qmail -m 0640 ${WRKDIR}/servercert.pem ${PREFIX}/control/servercert.pem ; \
|
|
${ECHO_MSG} "===> Do not forget to do 'make clean' to clean up temporary files" ; \
|
|
else \
|
|
${ECHO_MSG} "===> You must create the file ${OPENSSLDIR}/openssl.cnf first." ; \
|
|
fi
|
|
.endif
|
|
|
|
certificate-req:
|
|
.if defined(SLAVE_TLS) || defined(SLAVE_LDAP)
|
|
@if [ -f ${OPENSSLDIR}/openssl.cnf ]; then \
|
|
if [ ! -d ${WRKDIR} ]; then \
|
|
${MKDIR} ${WRKDIR} ; \
|
|
fi ; \
|
|
${OPENSSLBASE}/bin/openssl req -new -nodes \
|
|
-out ${WRKDIR}/req.pem \
|
|
-keyout ${WRKDIR}/servercert.pem ; \
|
|
${INSTALL} -o qmaild -g qmail -m 0640 ${WRKDIR}/servercert.pem ${PREFIX}/control/servercert.pem ; \
|
|
${ECHO_MSG} ; \
|
|
${ECHO_MSG} "===> Do not forget to do 'make clean' to clean up temporary files" ; \
|
|
${ECHO_MSG} "===> Send ${WRKDIR}/req.pem to your CA to obtain signed_req.pem, and do:" ; \
|
|
${ECHO_MSG} "===> cat signed_req.pem >> ${PREFIX}/control/servercert.pem" ; \
|
|
else \
|
|
${ECHO_MSG} "===> You must create the file ${OPENSSLDIR}/openssl.cnf first." ; \
|
|
fi
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|