a415440a32
Pkgsrc changes: - p5-Storable is no longer a necessary. - Let DragonFlyBSD also use the rc.d script (patch-ad). - Sa-update needs p5-libwww (for LWP::UserAgent, HTTP::Date), p5-Archive-Tar and p5-IO-Zlib. - Many of the plugins are available as pkgsrc packages (p5-Mail-SPF-Query, p5-IP-Country, p5-Net-Ident, ...) but are not required. - Renamed some options to follow the naming conventions described in the pkgsrc guide. - Removed patch-ax again; it is already incorporated in 3.1.0. - Reworked DESCR to use less than 25 lines. - Removed SPAMASSASSIN_VERSION for clarity of DISTNAME and PKGNAME. - Prepended variables internal to the package with an underscore. - Rearranged MAKE_PARAMS alphabetically. - Simplified some internal variables (concatenation instead of substitution: _EGDIR, _DOCDIR,...) - Loop variables use all lower-case now. - Added a rule to lower score for mail from pkgsrc-bugs in netbsd_lists.cf. - The test t/spf.t (fails for SPF_HELO_*) has a know problem (SA Bug 4685). Relevant changes since version 3.0.4: ===================================== - Apache preforking algorithm adopted; number of spamd child processes is now scaled, according to demand. This provides better VM behaviour when not under peak load. - Inclusion of sa-update script which will allow for updates of rules and scores in between code releases. - added PostgreSQL, MySQL 4.1+, and local SDBM file Bayes storage modules. SQL storage is now recommended for Bayes, instead of DB_File. NDBM_File support has been dropped due to a major bug in that module. - detect legitimate SMTP AUTH submission, to avoid false positives on Dynablock-style rules. - new Advance Fee Fraud (419 scam) rules. - removed use of the Storable module, due to several reported hangs on SMP Linux machines. - Converted several rule/engine components into Plugins such as: AccessDB, AWL, Pyzor, Razor2, DCC, Bayes AutoLearn Determination, etc. - new plugins: DomainKeys (off by default), MIMEHeader: a new plugin to perform tests against header in internal MIME structure, ReplaceTags: plugin by Felix Bauer to support fuzzy text matching, WhiteListSubject: plugin added to support user whitelists by Subject header. - TextCat language guesser moved to a plugin. (This means "ok_languages" is no longer part of the core engine by default.) - Razor: disable Razor2 support by default per our policy, since the service is not free for non-personal use. It's trivial to reenable. - DCC: disable DCC for similar reasons, due to new license terms. - Net::DNS bug: high load caused answer packets to be mixed up and delivered as answers to the wrong request, causing false positives. worked around. - DNSBL lookups and other DNS operations are now more efficient, by using a custom single-socket event-based model instead of Net::DNS. - add support for accreditation services, including Habeas v2. - better URI parsing -- many evasion tricks now caught. - URIBL lookups are prioritized based on the location in the message the URI was found. - mass-check now supports reusing realtime DNSBL hit results, and sample-based Bayes autolearning emulation, to reduce complexity. - sa-learn, spamassassin and mass-check now have optional progress bars. - modify header ordering for DomainKeys compatibility, by placing markup headers at the top of the message instead at the bottom of the list. - spamd/spamc now support remote Bayes training, and reporting spam. - spamc now supports reading its flags from a configuration file using the -F switch, contributed by John Madden. - added SPF-based whitelisting. - Polish rules contributed by Radoslaw Stachowiak. - many rule changes and additions.
181 lines
6 KiB
Makefile
181 lines
6 KiB
Makefile
# $NetBSD: Makefile,v 1.62 2005/11/13 22:48:32 heinz Exp $
|
|
|
|
DISTNAME= Mail-SpamAssassin-3.1.0
|
|
PKGNAME= spamassassin-3.1.0
|
|
SVR4_PKGNAME= sa
|
|
CATEGORIES= mail perl5
|
|
MASTER_SITES= ${MASTER_SITE_APACHE:=spamassassin/source/}
|
|
|
|
MAINTAINER= heinz@NetBSD.org
|
|
HOMEPAGE= http://spamassassin.apache.org/
|
|
COMMENT= Mail filter to identify spam
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
DEPENDS+= p5-Net-DNS>=0.34:../../net/p5-Net-DNS
|
|
DEPENDS+= p5-HTML-Parser>=3.31:../../www/p5-HTML-Parser
|
|
DEPENDS+= p5-Digest-SHA1-[0-9]*:../../security/p5-Digest-SHA1
|
|
DEPENDS+= {p5-MIME-Base64>=2.11,perl{,-thread}>=5.8.0}:../../converters/p5-MIME-Base64
|
|
DEPENDS+= p5-libwww-[0-9]*:../../www/p5-libwww
|
|
DEPENDS+= p5-Archive-Tar-[0-9]*:../../archivers/p5-Archive-Tar
|
|
DEPENDS+= p5-IO-Zlib-[0-9]*:../../devel/p5-IO-Zlib
|
|
|
|
.if (${OPSYS} != "NetBSD") && (${OPSYS} != "DragonFly")
|
|
DEPENDS+= p5-DB_File-[0-9]*:../../databases/p5-DB_File
|
|
.endif
|
|
|
|
CONFLICTS= p5-Mail-SpamAssassin-[1-9]*
|
|
|
|
PKG_INSTALLATION_TYPES= overwrite pkgviews
|
|
|
|
WRKSRC= ${WRKDIR}/${DISTNAME}
|
|
|
|
USE_PKGINSTALL= YES
|
|
PKG_SYSCONFSUBDIR= spamassassin
|
|
|
|
# Set contact address (e-mail, URL, ...) for use in spam report messages
|
|
# See "perldoc Mail::SpamAssassin::Conf" for option "report_contact"
|
|
SPAMASSASSIN_CONTACT_ADDRESS?= postmaster
|
|
|
|
.include "options.mk"
|
|
|
|
BUILD_DEFS+= SPAMASSASSIN_CONTACT_ADDRESS
|
|
|
|
PLIST_ADD= ${WRKSRC}/.PLIST_ADD
|
|
PLIST_SRC= ${PKGDIR}/PLIST ${PLIST_ADD}
|
|
PERL5_PACKLIST= auto/Mail/SpamAssassin/.packlist
|
|
|
|
GNU_CONFIGURE= YES
|
|
CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
|
|
CONFIGURE_DIRS= ${WRKSRC}/spamc
|
|
BUILD_DIRS= ${WRKSRC}
|
|
PERL5_CONFIGURE= NO # we need the default "do-configure" target
|
|
PERL5_CONFIGURE_DIRS= ${WRKSRC}
|
|
|
|
# test t/meta needs this
|
|
REPLACE_PERL= masses/parse-rules-for-masses
|
|
|
|
MAKE_PARAMS+= CONTACT_ADDRESS=${SPAMASSASSIN_CONTACT_ADDRESS:Q}
|
|
MAKE_PARAMS+= DEFRULESDIR="${_RULESDIR}"
|
|
MAKE_PARAMS+= LOCALRULESDIR="${PKG_SYSCONFDIR}"
|
|
MAKE_PARAMS+= PERL_BIN="${PERL5}"
|
|
MAKE_PARAMS+= SYSCONFDIR="${PKG_SYSCONFDIR}"
|
|
|
|
RCD_SCRIPTS= spamd
|
|
RCD_SCRIPT_SRC.spamd= ${WRKSRC}/spamd/netbsd-rc-script.sh
|
|
|
|
_EG_SUBDIR= share/examples/spamassassin
|
|
_EGDIR= ${PREFIX}/${_EG_SUBDIR}
|
|
_DOC_SUBDIR= share/doc/spamassassin
|
|
_DOCDIR= ${PREFIX}/${_DOC_SUBDIR}
|
|
_RULE_SUBDIR= share/spamassassin
|
|
_RULESDIR= ${PREFIX}/${_RULE_SUBDIR}
|
|
|
|
CONF_FILES+= ${_EGDIR}/local.cf ${PKG_SYSCONFDIR}/local.cf \
|
|
${_EGDIR}/init.pre ${PKG_SYSCONFDIR}/init.pre \
|
|
${_EGDIR}/v310.pre ${PKG_SYSCONFDIR}/v310.pre \
|
|
${_RULESDIR}/user_prefs.template \
|
|
${PKG_SYSCONFDIR}/user_prefs.template
|
|
|
|
INSTALLATION_DIRS+= ${_EG_SUBDIR} ${_DOC_SUBDIR} ${_DOC_SUBDIR}/spamc\
|
|
${_DOC_SUBDIR}/spamd
|
|
|
|
SUBST_CLASSES+= sa2 sa3
|
|
|
|
SUBST_STAGE.sa2= pre-configure
|
|
SUBST_FILES.sa2= README spamd/spamd.raw
|
|
SUBST_SED.sa2= -e s!@@PREFIX@@!${PREFIX}!g \
|
|
-e s!@PKG_SYSCONFDIR@!${PKG_SYSCONFDIR}!g
|
|
|
|
SUBST_STAGE.sa3= pre-configure
|
|
SUBST_FILES.sa3= INSTALL UPGRADE USAGE ldap/README \
|
|
spamc/README.qmail \
|
|
lib/Mail/SpamAssassin/Conf.pm \
|
|
lib/Mail/SpamAssassin/Plugin/Test.pm \
|
|
spamd/README spamd/README.vpopmail sql/README \
|
|
sql/README.awl sa-update.raw
|
|
SUBST_SED.sa3= -e s!/usr/share!${PREFIX}/share!g \
|
|
-e s!/usr/bin!${PREFIX}/bin!g \
|
|
-e s!/usr/local/bin!${PREFIX}/bin!g \
|
|
-e s!/usr/lib!${PREFIX}/lib!g \
|
|
-e s!/etc/mail/spamassassin!${PKG_SYSCONFDIR}!g
|
|
|
|
.if (${OPSYS} == "NetBSD") || (${OPSYS} == "DragonFly")
|
|
# the 'spamd' RCD_SCRIPT behaves differently if we run NetBSD 1.6 or later
|
|
. if (${OPSYS} == "NetBSD") && !empty(OS_VERSION:M1.[0-5]*)
|
|
_INTERPRETER_SUPPORT= NO
|
|
. else
|
|
_INTERPRETER_SUPPORT= YES
|
|
. endif
|
|
.endif
|
|
|
|
# These variables are substituted in netbsd-rc-script.sh.
|
|
FILES_SUBST+= _INTERPRETER_SUPPORT="${_INTERPRETER_SUPPORT}"
|
|
FILES_SUBST+= OPSYS="${OPSYS}"
|
|
|
|
post-extract:
|
|
@# correct bad SA permissions
|
|
@${CHMOD} a+x ${WRKSRC}/tools/convert_awl_dbm_to_sql
|
|
|
|
pre-configure: perl5-configure
|
|
@# GNU configure needs version.h -> create it
|
|
@cd ${WRKSRC}/spamc && ${PERL5} ./version.h.pl
|
|
@# values will be set via the SUBST framework in options.mk
|
|
@${CP} ${WRKSRC}/t/config.dist ${WRKSRC}/t/config
|
|
|
|
post-install:
|
|
@${TEST} -r ${PLIST_ADD} && ${RM} ${PLIST_ADD} ; :
|
|
.for f in INSTALL LICENSE README TRADEMARK UPGRADE USAGE \
|
|
CREDITS PACKAGING STATUS BUGS Changes \
|
|
spamc/README.qmail \
|
|
sample-nonspam.txt sample-spam.txt spamd/README \
|
|
spamd/README.vpopmail
|
|
@${INSTALL_DATA} ${WRKSRC}/${f} ${_DOCDIR}/${f}
|
|
@${ECHO} "${_DOC_SUBDIR}/${f}" >> ${PLIST_ADD}
|
|
.endfor
|
|
.for f in STATISTICS-set0.txt STATISTICS-set1.txt STATISTICS-set2.txt \
|
|
STATISTICS-set3.txt
|
|
@${INSTALL_DATA} ${WRKSRC}/rules/${f} ${_DOCDIR}/
|
|
@${ECHO} "${_DOC_SUBDIR}/${f}" >> ${PLIST_ADD}
|
|
.endfor
|
|
.for dir in masses sql ldap tools
|
|
@cd ${WRKSRC}; \
|
|
for d in `${FIND} ${dir} -type d -print`; do \
|
|
${INSTALL_DATA_DIR} ${_DOCDIR}/$$d; \
|
|
done; \
|
|
for f in `${FIND} ${dir} -type f -print`; do \
|
|
if ${TEST} -x $$f ; then \
|
|
${SED} -e "1s,#!.*/bin/perl,#!${PERL5}," < $$f \
|
|
> $${f}.fixed && \
|
|
${MV} $${f}.fixed $$f && \
|
|
${CHMOD} +x $$f && \
|
|
${INSTALL_SCRIPT} $$f ${_DOCDIR}/$$f; \
|
|
else \
|
|
${INSTALL_DATA} $$f ${_DOCDIR}/$$f; \
|
|
fi; \
|
|
${ECHO} "${_DOC_SUBDIR}/$$f" >> ${PLIST_ADD}; \
|
|
done; \
|
|
{ for d in `${FIND} ${dir} -type d -print`; do \
|
|
${ECHO} "@dirrm ${_DOC_SUBDIR}/$$d"; \
|
|
done; } | ${SORT} -r >> ${PLIST_ADD};
|
|
.endfor
|
|
@cd ${WRKSRC}/rules; \
|
|
for f in [0-9]*.cf; do \
|
|
${ECHO} "${_RULE_SUBDIR}/$$f" >> ${PLIST_ADD}; \
|
|
done
|
|
@${ECHO} "@dirrm ${_RULE_SUBDIR}" >> ${PLIST_ADD}
|
|
@# examples are in the static PLIST
|
|
@${INSTALL_DATA} ${WRKSRC}/procmailrc.example ${_EGDIR}/
|
|
@${INSTALL_DATA} ${WRKSRC}/rules/init.pre ${_EGDIR}/
|
|
@${INSTALL_DATA} ${WRKSRC}/rules/v310.pre ${_EGDIR}/
|
|
@${INSTALL_DATA} ${WRKSRC}/rules/local.cf ${_EGDIR}/
|
|
@${INSTALL_DATA} ${FILESDIR}/netbsd_lists.cf ${_EGDIR}/
|
|
@${CHOWN} ${SHAREOWN} ${_RULESDIR}/*
|
|
@${CHGRP} ${SHAREGRP} ${_RULESDIR}/*
|
|
@${CHMOD} a=r ${_RULESDIR}/*
|
|
@{ for d in ${INSTALLATION_DIRS}; do \
|
|
${ECHO} "@dirrm $$d"; \
|
|
done; } | ${SORT} -r >> ${PLIST_ADD};
|
|
|
|
.include "../../lang/perl5/module.mk"
|
|
.include "../../mk/bsd.pkg.mk"
|