Import devel/py-setuptools34 version 2.0.1
[dports.git] / mail / spamassassin / Makefile
1 # Created by: Anthony Kim
2 # $FreeBSD$
3
4 PORTNAME=               spamassassin
5 PORTVERSION=    3.4.0
6 PORTREVISION?=  9               # also bump japanese/spamassassin
7 CATEGORIES?=    mail perl5
8 MASTER_SITES=   ${MASTER_SITE_APACHE:S/$/:apache/} ${MASTER_SITE_PERL_CPAN:S/$/:cpan/}
9 MASTER_SITE_SUBDIR=     spamassassin/source/:apache Mail/:cpan
10 DISTNAME=               Mail-SpamAssassin-${PORTVERSION}
11 DISTFILES=              ${DISTNAME}${EXTRACT_SUFX}:apache,cpan
12
13 MAINTAINER?=    adamw@FreeBSD.org
14 COMMENT?=               Highly efficient mail filter for identifying spam
15
16 LICENSE=                APACHE20
17
18 ALL_DEPENDS=    p5-Encode-Detect>=0:${PORTSDIR}/converters/p5-Encode-Detect \
19                                 p5-HTML-Parser>=3.46:${PORTSDIR}/www/p5-HTML-Parser \
20                                 p5-HTTP-Date>=0:${PORTSDIR}/www/p5-HTTP-Date \
21                                 p5-IO-Socket-IP>=0:${PORTSDIR}/net/p5-IO-Socket-IP \
22                                 p5-Net-DNS>=0.63:${PORTSDIR}/dns/p5-Net-DNS \
23                                 p5-NetAddr-IP>=4.010:${PORTSDIR}/net-mgmt/p5-NetAddr-IP
24 BUILD_DEPENDS=  ${ALL_DEPENDS}
25 RUN_DEPENDS=    ${ALL_DEPENDS} \
26                                 re2c>=.12.0:${PORTSDIR}/devel/re2c
27
28 CONFLICTS?=     ja-spamassassin-[0-9]*
29
30 USES=           perl5
31 USE_PERL5=      configure
32 USE_LDCONFIG=   yes
33
34 DATADIR=        ${PREFIX}/share/spamassassin
35 DBDIR?=         /var/db
36 DOCSDIR=        ${PREFIX}/share/doc/${PKGNAMEPREFIX}${PORTNAME}
37 ETCDIR?=        ${PREFIX}/etc/mail/spamassassin
38
39 SPAMASSASSIN_CONTACT_ADDRESS?=  The administrator of that system
40 USERS?=         spamd
41 GROUPS?=        spamd
42 CONFIGURE_ARGS= SYSCONFDIR="${PREFIX}/etc" \
43                                 CONTACT_ADDRESS="${SPAMASSASSIN_CONTACT_ADDRESS}" \
44                                 LOCALSTATEDIR="${DBDIR}/spamassassin" \
45                                 BUILD_SPAMC=yes
46
47 OPTIONS_DEFINE= AS_ROOT GNUPG SSL UPDATE_AND_COMPILE
48 OPTIONS_GROUP=  DATABASE PLUGINS
49 OPTIONS_GROUP_DATABASE= MYSQL PGSQL
50 OPTIONS_GROUP_PLUGINS=  DCC DKIM PYZOR RAZOR RELAY_COUNTRY SPF_QUERY
51 OPTIONS_DEFAULT=AS_ROOT GNUPG SSL UPDATE_AND_COMPILE
52
53 AS_ROOT_DESC=           Run spamd as root (recommended)
54 GNUPG_DESC=                     Install GnuPG (for sa-update, optional)
55 SSL_DESC=                       Build spamd/spamc with SSL support
56 UPDATE_AND_COMPILE_DESC=        Download and compile rulesets (recommended)
57
58 DATABASE_DESC=          Optional user-config/bayes database backends
59
60 PLUGINS_DESC=           Optional SpamAssassin plugins
61 DCC_DESC=                       Add DCC support (mail/dcc-dccd)
62 DKIM_DESC=                      DKIM/DomainKeys Identified Mail (mail/p5-Mail-DKIM)
63 PYZOR_DESC=                     Add Pyzor support (mail/pyzor)
64 RAZOR_DESC=                     Add Vipul's Razor support (mail/razor-agents)
65 RELAY_COUNTRY_DESC=     Relay country support (net/p5-Geo-IP)
66 SPF_QUERY_DESC=         Add SPF query support (mail/p5-Mail-SPF)
67
68 SUB_FILES=      pkg-message
69 PLIST_SUB+=     USER=${USERS} GROUP=${GROUPS}
70 OPTIONS_SUB=yes
71
72 DCC_RUN_DEPENDS=        dcc-dccd>=1.3.111:${PORTSDIR}/mail/dcc-dccd
73 DKIM_RUN_DEPENDS=       p5-IO-Socket-SSL>=0:${PORTSDIR}/security/p5-IO-Socket-SSL \
74                                         p5-Mail-DKIM>=0.37:${PORTSDIR}/mail/p5-Mail-DKIM \
75                                         p5-Crypt-OpenSSL-RSA>=0.26_1:${PORTSDIR}/security/p5-Crypt-OpenSSL-RSA
76 GNUPG_RUN_DEPENDS=      gnupg1>=1.4.7:${PORTSDIR}/security/gnupg1
77 MYSQL_RUN_DEPENDS=      p5-DBD-mysql>=0:${PORTSDIR}/databases/p5-DBD-mysql
78 PGSQL_RUN_DEPENDS=      p5-DBD-Pg>=0:${PORTSDIR}/databases/p5-DBD-Pg
79 PYZOR_RUN_DEPENDS=      pyzor:${PORTSDIR}/mail/pyzor
80 RAZOR_RUN_DEPENDS=      razor-agents>=2.84:${PORTSDIR}/mail/razor-agents
81 RELAY_COUNTRY_RUN_DEPENDS=      p5-Geo-IP>=0:${PORTSDIR}/net/p5-Geo-IP
82 SPF_QUERY_RUN_DEPENDS=  p5-Mail-SPF>=0:${PORTSDIR}/mail/p5-Mail-SPF
83
84 SSL_USE=                        OPENSSL=yes
85 SSL_RUN_DEPENDS=        p5-IO-Socket-SSL>=0:${PORTSDIR}/security/p5-IO-Socket-SSL
86 SSL_CONFIGURE_ON=       ENABLE_SSL=yes
87 SSL_CONFIGURE_OFF=      ENABLE_SSL=no
88
89 # plugin names in rules/*.pre, for enabling/disabling
90 DCC_INITVAR=                    DCC
91 DKIM_INITVAR=                   DKIM
92 PYZOR_INITVAR=                  Pyzor
93 RAZOR_INITVAR=                  Razor2
94 RELAY_COUNTRY_INITVAR=  RelayCountry
95 SPF_QUERY_INITVAR=              SPF
96
97 DOCS=           CREDITS Changes INSTALL NOTICE PACKAGING README TRADEMARK UPGRADE USAGE procmailrc.example 3.4.0-RELEASE-NOTES.txt
98 DOCSSQL=        README README.awl README.bayes awl_mysql.sql awl_pg.sql bayes_mysql.sql bayes_pg.sql userpref_mysql.sql userpref_pg.sql
99 DOCSLDAP=       README README.testing sa_test.ldif
100 PORTDOCS=       ${DOCS} sql ldap
101
102 USE_RC_SUBR=    sa-spamd
103
104 ALL_TARGET=     all spamc/libspamc.so
105
106 .include <bsd.port.pre.mk>
107
108 .if ${PORT_OPTIONS:MSSL}
109 CFLAGS+=        -I${OPENSSLINC}
110 LDFLAGS+=       -L${OPENSSLLIB}
111 ALL_TARGET+=    spamc/libsslspamc.so
112 .endif
113
114 .if ${PORT_OPTIONS:MMYSQL} || ${PORT_OPTIONS:MPGSQL}
115 SUB_LIST+=      SQL_FLAG="-Q"
116 .else
117 SUB_LIST+=      SQL_FLAG=""
118 .endif
119
120 .if empty(PORT_OPTIONS:MAS_ROOT)
121 SUB_LIST+=      RUN_AS_USER="-u ${USERS} -H /var/spool/spamd"
122 .else
123 SUB_LIST+=      RUN_AS_USER=""
124 .endif
125
126 .if ${PORT_OPTIONS:MUPDATE_AND_COMPILE} && empty(PACKAGE_BUILDING) && empty(BATCH)
127 PLIST_SUB+=     UPDATE_ON_INSTALL="yes"
128 .else
129 PLIST_SUB+=     UPDATE_ON_INSTALL="no"
130 .endif
131
132 post-patch::
133         # The 3.4.0 release notes never made it into the tarball
134         ${INSTALL_DATA} ${FILESDIR}/3.4.0-RELEASE-NOTES.txt ${WRKSRC}
135         ${REINPLACE_CMD} -e 's,%%DOCSDIR%%,${DOCSDIR},' ${WRKSRC}/UPGRADE
136
137         ${REINPLACE_CMD} -e 's,B_CONFDIR)/local.cf,B_CONFDIR)/local.cf.sample,g' \
138                 -e 's,B_CONFDIR)/init.pre,B_CONFDIR)/init.pre.sample,g' \
139                 -e 's,B_CONFDIR)/v310.pre,B_CONFDIR)/v310.pre.sample,g' \
140                 -e 's,B_CONFDIR)/v312.pre,B_CONFDIR)/v312.pre.sample,g' \
141                 -e 's,B_CONFDIR)/v320.pre,B_CONFDIR)/v320.pre.sample,g' \
142                 -e 's,B_CONFDIR)/v330.pre,B_CONFDIR)/v330.pre.sample,g' \
143                 -e 's,B_CONFDIR)/v340.pre,B_CONFDIR)/v340.pre.sample,g' \
144                 -e 's/require DBI/0/' \
145                 ${WRKSRC}/Makefile.PL
146         ${REINPLACE_CMD} -e '/^CC =/d; \
147                 s|@SSLCFLAGS@|& $${CFLAGS}|g' ${WRKSRC}/spamc/Makefile.in
148
149 .for var in ${OPTIONS_GROUP_PLUGINS}
150 .  if ${PORT_OPTIONS:M${var}}
151         ${REINPLACE_CMD} -e '/${${var}_INITVAR}/s/^\#.*loadplugin/loadplugin/' ${WRKSRC}/rules/*.pre
152 .  else
153         ${REINPLACE_CMD} -e '/${${var}_INITVAR}/s/^loadplugin/\# loadplugin/' ${WRKSRC}/rules/*.pre
154 .  endif
155 .endfor
156
157         # load pre-compiled rules
158         ${REINPLACE_CMD} -e '/Rule2XSBody/s/^\# loadplugin/loadplugin/' ${WRKSRC}/rules/v320.pre
159
160         ${FIND} ${WRKSRC} -name '*.orig' -or -name '*.bak' | ${XARGS} ${RM}
161
162 pre-su-install:
163         @${MKDIR} ${STAGEDIR}${DATADIR}
164         ${INSTALL_LIB} ${WRKSRC}/spamc/libspamc.so ${STAGEDIR}${PREFIX}/lib/libspamc.so.0
165         ${LN} -sf libspamc.so.0 ${STAGEDIR}${PREFIX}/lib/libspamc.so
166 .if ${PORT_OPTIONS:MSSL}
167         ${INSTALL_LIB} ${WRKSRC}/spamc/libsslspamc.so ${STAGEDIR}${PREFIX}/lib/libsslspamc.so.0
168         ${LN} -sf libsslspamc.so.0 ${STAGEDIR}${PREFIX}/lib/libsslspamc.so
169 .endif
170         ${INSTALL_DATA} ${WRKSRC}/spamc/libspamc.h ${STAGEDIR}${PREFIX}/include
171
172 post-install::
173         ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/spamc
174         @${MKDIR} ${STAGEDIR}/var/lib/spamassassin ${STAGEDIR}${DBDIR}/spamassassin
175         @${MKDIR} ${STAGEDIR}${DOCSDIR} ${STAGEDIR}${DOCSDIR}/sql ${STAGEDIR}${DOCSDIR}/ldap
176         ${INSTALL_DATA} ${DOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
177         ${INSTALL_DATA} ${WRKSRC}/sql/* ${STAGEDIR}${DOCSDIR}/sql
178         ${INSTALL_DATA} ${WRKSRC}/ldap/* ${STAGEDIR}${DOCSDIR}/ldap
179
180 .include <bsd.port.post.mk>