1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-29 01:13:08 +00:00
freebsd-ports/mail/spamassassin/Makefile
Adam Weinberger e432a01d92 Improvements.
Let pkg-create handle ownership/mode better. Use @dirrmtry instead of
@unexec rmdir. Use COPYTREE_SHARE to ensure proper permissions.

Also, stop the spamd service on deinstall if it's running. It creates
zombie issues otherwise... I'm pretty sure this is the right thing to
do.
2014-05-01 17:01:18 +00:00

180 lines
6.4 KiB
Makefile

# Created by: Anthony Kim
# $FreeBSD$
PORTNAME= spamassassin
PORTVERSION= 3.4.0
PORTREVISION?= 10 # also bump japanese/spamassassin
CATEGORIES?= mail perl5
MASTER_SITES= ${MASTER_SITE_APACHE:S/$/:apache/} ${MASTER_SITE_PERL_CPAN:S/$/:cpan/}
MASTER_SITE_SUBDIR= spamassassin/source/:apache Mail/:cpan
DISTNAME= Mail-SpamAssassin-${PORTVERSION}
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:apache,cpan
MAINTAINER?= adamw@FreeBSD.org
COMMENT?= Highly efficient mail filter for identifying spam
LICENSE= APACHE20
ALL_DEPENDS= p5-Encode-Detect>=0:${PORTSDIR}/converters/p5-Encode-Detect \
p5-HTML-Parser>=3.46:${PORTSDIR}/www/p5-HTML-Parser \
p5-HTTP-Date>=0:${PORTSDIR}/www/p5-HTTP-Date \
p5-IO-Socket-IP>=0:${PORTSDIR}/net/p5-IO-Socket-IP \
p5-Net-DNS>=0.63:${PORTSDIR}/dns/p5-Net-DNS \
p5-NetAddr-IP>=4.010:${PORTSDIR}/net-mgmt/p5-NetAddr-IP
BUILD_DEPENDS= ${ALL_DEPENDS}
RUN_DEPENDS= ${ALL_DEPENDS} \
re2c>=.12.0:${PORTSDIR}/devel/re2c
CONFLICTS?= ja-spamassassin-[0-9]*
USES= perl5
USE_PERL5= configure
USE_LDCONFIG= yes
DATADIR= ${PREFIX}/share/spamassassin
DBDIR?= /var/db
DOCSDIR= ${PREFIX}/share/doc/${PKGNAMEPREFIX}${PORTNAME}
ETCDIR?= ${PREFIX}/etc/mail/spamassassin
SPAMASSASSIN_CONTACT_ADDRESS?= The administrator of that system
USERS?= spamd
GROUPS?= spamd
CONFIGURE_ARGS= SYSCONFDIR="${PREFIX}/etc" \
CONTACT_ADDRESS="${SPAMASSASSIN_CONTACT_ADDRESS}" \
LOCALSTATEDIR="${DBDIR}/spamassassin" \
BUILD_SPAMC=yes
OPTIONS_DEFINE= AS_ROOT GNUPG SSL UPDATE_AND_COMPILE
OPTIONS_GROUP= DATABASE PLUGINS
OPTIONS_GROUP_DATABASE= MYSQL PGSQL
OPTIONS_GROUP_PLUGINS= DCC DKIM PYZOR RAZOR RELAY_COUNTRY SPF_QUERY
OPTIONS_DEFAULT=AS_ROOT GNUPG SSL UPDATE_AND_COMPILE
AS_ROOT_DESC= Run spamd as root (recommended)
GNUPG_DESC= Install GnuPG (for sa-update, optional)
SSL_DESC= Build spamd/spamc with SSL support
UPDATE_AND_COMPILE_DESC= Download and compile rulesets (recommended)
DATABASE_DESC= Optional user-config/bayes database backends
PLUGINS_DESC= Optional SpamAssassin plugins
DCC_DESC= Add DCC support (mail/dcc-dccd)
DKIM_DESC= DKIM/DomainKeys Identified Mail (mail/p5-Mail-DKIM)
PYZOR_DESC= Add Pyzor support (mail/pyzor)
RAZOR_DESC= Add Vipul's Razor support (mail/razor-agents)
RELAY_COUNTRY_DESC= Relay country support (net/p5-Geo-IP)
SPF_QUERY_DESC= Add SPF query support (mail/p5-Mail-SPF)
SUB_FILES= pkg-message
PLIST_SUB+= USER=${USERS} GROUP=${GROUPS}
OPTIONS_SUB=yes
DCC_RUN_DEPENDS= dcc-dccd>=1.3.111:${PORTSDIR}/mail/dcc-dccd
DKIM_RUN_DEPENDS= p5-IO-Socket-SSL>=0:${PORTSDIR}/security/p5-IO-Socket-SSL \
p5-Mail-DKIM>=0.37:${PORTSDIR}/mail/p5-Mail-DKIM \
p5-Crypt-OpenSSL-RSA>=0.26_1:${PORTSDIR}/security/p5-Crypt-OpenSSL-RSA
GNUPG_RUN_DEPENDS= gnupg1>=1.4.7:${PORTSDIR}/security/gnupg1
MYSQL_RUN_DEPENDS= p5-DBD-mysql>=0:${PORTSDIR}/databases/p5-DBD-mysql
PGSQL_RUN_DEPENDS= p5-DBD-Pg>=0:${PORTSDIR}/databases/p5-DBD-Pg
PYZOR_RUN_DEPENDS= pyzor:${PORTSDIR}/mail/pyzor
RAZOR_RUN_DEPENDS= razor-agents>=2.84:${PORTSDIR}/mail/razor-agents
RELAY_COUNTRY_RUN_DEPENDS= p5-Geo-IP>=0:${PORTSDIR}/net/p5-Geo-IP
SPF_QUERY_RUN_DEPENDS= p5-Mail-SPF>=0:${PORTSDIR}/mail/p5-Mail-SPF
SSL_USE= OPENSSL=yes
SSL_RUN_DEPENDS= p5-IO-Socket-SSL>=0:${PORTSDIR}/security/p5-IO-Socket-SSL
SSL_CONFIGURE_ON= ENABLE_SSL=yes
SSL_CONFIGURE_OFF= ENABLE_SSL=no
# plugin names in rules/*.pre, for enabling/disabling
DCC_INITVAR= DCC
DKIM_INITVAR= DKIM
PYZOR_INITVAR= Pyzor
RAZOR_INITVAR= Razor2
RELAY_COUNTRY_INITVAR= RelayCountry
SPF_QUERY_INITVAR= SPF
DOCS= CREDITS Changes INSTALL NOTICE PACKAGING README TRADEMARK UPGRADE USAGE procmailrc.example 3.4.0-RELEASE-NOTES.txt
DOCSSQL= README README.awl README.bayes awl_mysql.sql awl_pg.sql bayes_mysql.sql bayes_pg.sql userpref_mysql.sql userpref_pg.sql
DOCSLDAP= README README.testing sa_test.ldif
PORTDOCS= ${DOCS} sql ldap
USE_RC_SUBR= sa-spamd
ALL_TARGET= all spamc/libspamc.so
.include <bsd.port.pre.mk>
.if ${PORT_OPTIONS:MSSL}
CFLAGS+= -I${OPENSSLINC}
LDFLAGS+= -L${OPENSSLLIB}
ALL_TARGET+= spamc/libsslspamc.so
.endif
.if ${PORT_OPTIONS:MMYSQL} || ${PORT_OPTIONS:MPGSQL}
SUB_LIST+= SQL_FLAG="-Q"
.else
SUB_LIST+= SQL_FLAG=""
.endif
.if empty(PORT_OPTIONS:MAS_ROOT)
SUB_LIST+= RUN_AS_USER="-u ${USERS} -H /var/spool/spamd"
.else
SUB_LIST+= RUN_AS_USER=""
.endif
.if ${PORT_OPTIONS:MUPDATE_AND_COMPILE} && empty(PACKAGE_BUILDING) && empty(BATCH)
PLIST_SUB+= UPDATE_ON_INSTALL="yes"
.else
PLIST_SUB+= UPDATE_ON_INSTALL="no"
.endif
post-patch::
# The 3.4.0 release notes never made it into the tarball
${INSTALL_DATA} ${FILESDIR}/3.4.0-RELEASE-NOTES.txt ${WRKSRC}
${REINPLACE_CMD} -e 's,%%DOCSDIR%%,${DOCSDIR},' ${WRKSRC}/UPGRADE
${REINPLACE_CMD} -e 's,B_CONFDIR)/local.cf,B_CONFDIR)/local.cf.sample,g' \
-e 's,B_CONFDIR)/init.pre,B_CONFDIR)/init.pre.sample,g' \
-e 's,B_CONFDIR)/v310.pre,B_CONFDIR)/v310.pre.sample,g' \
-e 's,B_CONFDIR)/v312.pre,B_CONFDIR)/v312.pre.sample,g' \
-e 's,B_CONFDIR)/v320.pre,B_CONFDIR)/v320.pre.sample,g' \
-e 's,B_CONFDIR)/v330.pre,B_CONFDIR)/v330.pre.sample,g' \
-e 's,B_CONFDIR)/v340.pre,B_CONFDIR)/v340.pre.sample,g' \
-e 's/require DBI/0/' \
${WRKSRC}/Makefile.PL
${REINPLACE_CMD} -e '/^CC =/d; \
s|@SSLCFLAGS@|& $${CFLAGS}|g' ${WRKSRC}/spamc/Makefile.in
.for var in ${OPTIONS_GROUP_PLUGINS}
. if ${PORT_OPTIONS:M${var}}
${REINPLACE_CMD} -e '/${${var}_INITVAR}/s/^\#.*loadplugin/loadplugin/' ${WRKSRC}/rules/*.pre
. else
${REINPLACE_CMD} -e '/${${var}_INITVAR}/s/^loadplugin/\# loadplugin/' ${WRKSRC}/rules/*.pre
. endif
.endfor
# load pre-compiled rules
${REINPLACE_CMD} -e '/Rule2XSBody/s/^\# loadplugin/loadplugin/' ${WRKSRC}/rules/v320.pre
${FIND} ${WRKSRC} -name '*.orig' -or -name '*.bak' | ${XARGS} ${RM}
pre-su-install:
@${MKDIR} ${STAGEDIR}${DATADIR}
${INSTALL_LIB} ${WRKSRC}/spamc/libspamc.so ${STAGEDIR}${PREFIX}/lib/libspamc.so.0
${LN} -sf libspamc.so.0 ${STAGEDIR}${PREFIX}/lib/libspamc.so
.if ${PORT_OPTIONS:MSSL}
${INSTALL_LIB} ${WRKSRC}/spamc/libsslspamc.so ${STAGEDIR}${PREFIX}/lib/libsslspamc.so.0
${LN} -sf libsslspamc.so.0 ${STAGEDIR}${PREFIX}/lib/libsslspamc.so
.endif
${INSTALL_DATA} ${WRKSRC}/spamc/libspamc.h ${STAGEDIR}${PREFIX}/include
post-install::
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/spamc
@${MKDIR} ${STAGEDIR}/var/lib/spamassassin ${STAGEDIR}${DBDIR}/spamassassin ${STAGEDIR}/var/run/spamd
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${DOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
(cd ${WRKSRC} && ${COPYTREE_SHARE} "sql ldap" ${STAGEDIR}${DOCSDIR})
.include <bsd.port.post.mk>