diff options
author | heinz <heinz@pkgsrc.org> | 2010-03-24 21:41:10 +0000 |
---|---|---|
committer | heinz <heinz@pkgsrc.org> | 2010-03-24 21:41:10 +0000 |
commit | a509ce5472627ab4b96097b75b1b60bd3bf680a3 (patch) | |
tree | 4ff0fa9009481c92f752da211fae0878347da113 /mail/spamassassin | |
parent | 6259c7dcf5532c20fec213e0faac129fa4cf9b58 (diff) | |
download | pkgsrc-a509ce5472627ab4b96097b75b1b60bd3bf680a3.tar.gz |
Updated to version 3.3.1.
Pkgsrc changes:
- Removed most of the package options; using the options framework for
those choices was not quite correct in the first place. Some have now
fixed values (Perl warnings and taint checks always enabled), some
got converted to variables settable from the make command line, see
options.mk.
- pkglint complained about the variable PLIST_ADD so I renamed it to
DYNAMIC_PLIST.
- SpamAssassin does not come with rules anymore. As a starting point
the official archive of rules at the time of the SA release is
included. At installation time this set of rules gets installed
through the pkgsrc INSTALL file.
- Removed patch-ba and patch-bc, both were integrated upstream.
- Removed patch-be. The quick fix for the bad rule was replaced by
a permanent solution.
Summary of major changes since 3.3.0
====================================
bug 6335: add Spamhaus DBL as URIBL_DBL_SPAM rule
Bug 6370: update ImageInfo plugin to latest release
bug 6215, bug 6294: RCVD_IN_CSS rule was broken. the check_rbl_sub() syntax
was incorrect, resulting in missing hits
bug 6361: list 2tld and 3tld sub-domain hosters for URIBL/SURBL/DBL queries;
NOTE for SARE users: This file replaces the SARE file
http://www.rulesemporium.com/rules/90_2tld.cf, which will be deprecated as from
2010-05-01.
Bug 6369, 6356, 6373: WIN32 support for spamd improved
Bug 6267: Solaris 10 requires --syslog-socket=native
bug 6304 spamd is spawning and killing processes too often - Added spamd
adjustments to info level and more information for administrators + small fix
to Makefile.PL
Bug 6310: sa-learn --import gives Insecure dependency in open
Bug 6313: -Q or -q AND -x should not result in creation of a ~/.spamassassin
dir; plus: taint issues fixed
Bug 6342: make test failure on if_can under perl 5.6
Bug 6340: Impossible to find user home directory of VPOPMAIL alias
Bug 6072, 6343: POD warnings, documentation fixes
Bug 6304 (trivial), reduce sysadmin's stress level by lowercasing
the 'INTERRUPTED' in a logged message:
spamd: handled cleanup of child pid [...] due to SIGCHLD: INTERRUPTED
Bug 6329: POSIX::strftime in call under Win32 ActivePerl causes Perl to hang up;
formatting option %e is not in a POSIX standard, use %d instead and edit
Bug 6322: In DKIM ADSP eval test check_dkim_adsp() the '*' is handled incorrectly
Bug 6327: Fix calling argument in utility used to determine DCC's homedir
Bug 6316: DCC.pm, wrong options for dcc_proc, (plus: avoid a warning on undef
in logger when dccifd socket is not provided)
Bug 6287: improved DKIM plugin debugging
Bug 6321 - _TOKENSUMMARY_ not working in 3.3.0 (Plugin/Bayes.pm looks-up a tag
from wrong location)
Bug 6312 - uninitialized value $start_time in spamd
bug 5761: trivial doc fix: document SPAMD_LOCALHOST test-control env variable
Summary of major changes since 3.2.5
====================================
COMPATIBILITY WITH 3.2.5
- rules are no longer distributed with the package, but installed by
sa-update - either automatically fetched from the network (preferably)
or from a tar archive, which is available for downloading separately
(see below, section INSTALLING RULES);
- CPAN module requirements:
- minimum required version of ExtUtils::MakeMaker is 6.17;
- modules now required: Time::HiRes, NetAddr::IP (4.000 or later),
Archive::Tar (1.23 or later), IO::Zlib;
- minimal version of Mail::DKIM is 0.31 (preferred: 0.37 or later);
expect some tests in t/dkim2.t to fail with versions older than 0.36_5;
- no longer used: Mail::DomainKeys, Mail::SPF::Query;
- either Digest::SHA or the older Digest::SHA1 is required, though
note that the DKIM plugin requires Digest::SHA for sha256 hashes
and Razor agents still need Digest::SHA1;
- some IPv6 functionality requires IO::Socket::INET6;
- if keeping the AWL database in SQL, the field awl.ip must be extended to
40 characters. The change is necessary to allow AWL to keep track of IPv6
addresses which may appear in a mail header even on non-IPv6 -enabled host.
While at it, consider also adding a field 'signedby' to the SQL table 'awl'
(and adding 'auto_whitelist_distinguish_signed 1' to local.cf);
see sql/README.awl for details. The change need not be undone even if
downgrading back to 3.2.* for some reason;
- fixing a protocol implementation error regarding a PING command required
bumping up the SPAMC protocol version to 1.5. Spamd retains compatibility
with older spamc clients. Combining new spamc clients with pre-3.3 versions
of a spamd daemon is not supported (but happens to work, except for the
PING and SKIP commands);
- if using one of the plugins (FreeMail, PhishTag, Reuse) which were
previously not part of the official package, please retire your local copy
to avoid it conflicting with a new native plugin;
- as the plugin AWL is no longer loaded by default, to continue using it
the following line is needed in one of the .pre files (e.g. local.pre):
loadplugin Mail::SpamAssassin::Plugin::AWL
- it may be worth mentioning that a rule DKIM_VERIFIED has been renamed
to DKIM_VALID to match its semantics;
- the DKIM plugin is now enabled by default for new installs, if the perl
module Mail::DKIM is installed. However, installation of SpamAssassin
will not overwrite existing .pre configuration files, so to use DKIM when
upgrading from a previous release that did not use DKIM, a directive:
loadplugin Mail::SpamAssassin::Plugin::DKIM
will need to be uncommented in file "v312.pre", or added to some
other .pre file, such as local.pre;
- due to changes in some internal data structures (like Bug 6185, 6254),
some third-party plugins may need to be updated. One such example is
the ClamAVPlugin plugin - please find a fresh version, which can be used
with both SpamAssassin versions 3.2.5 and 3.3.0, on its wiki page at
http://wiki.apache.org/spamassassin/ClamAVPlugin
- versions of amavisd-new between 2.5.2 and 2.6.1 (inclusive) are incompatible
with SpamAssassin 3.3; please upgrade amavisd to 2.6.2 or later, or apply
a workaround https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6257
- support for versions of perl 5.6.* is being gradually revoked
(may still work, but no promises and no support);
- preferred versions of perl are 5.8.8, 5.8.9, and 5.10.1 or later;
- on FreeBSD, please avoid using multithreaded versions of perl older
than 5.10.0 due to small default main thread's stack size, which may
not suffice for some regular expression evaluations;
INSTALLING RULES
Rules are normally installed by running a sa-update command.
The version of sa-update program should match the version of SpamAssassin
modules, so invoking sa-update should be performed only after installing
or upgrading SpamAssassin code, not before.
Installing rules from network is done with a single command,
normally run as root:
sa-update
Installing rules from files:
obtain all the following files:
Mail-SpamAssassin-rules-xxx.tgz
Mail-SpamAssassin-rules-xxx.tgz.asc
Mail-SpamAssassin-rules-xxx.tgz.md5
Mail-SpamAssassin-rules-xxx.tgz.sha1
(where xxx may look something like '3.3.0.r893295')
install rules from a compressed tar archive:
sa-update --install Mail-SpamAssassin-rules-xxx.tgz
(sa-update will need corresponding .asc and .sha1 files with the
same base name in the same directory as the .tgz file)
MAIN NEW FEATURES
- IPv6 support was substantially improved (see below);
- many improvements to the DKIM plugin (understands author domain signatures,
supports multiple signatures, ADSP support with overrides) - (see below);
- added 'if can(Class::method)' conditional statement, allowing configuration
settings to be conditional on plugin capabilities without requiring
new version releases to do so;
- added a --verbose option to the sa-update utility to show updated channels;
- added a configuration option 'time_limit', defaulting to 300 seconds
or whatever the caller (like spamd) provides; attempting to gracefully
terminate the checking when a time limit is reached, reporting the score
and test hits that were collected so far, along with an added hit on
a rule TIME_LIMIT_EXCEEDED;
- more expensive code sections are now instrumented with timing measurements;
timing report is logged as a debug message by the end of processing,
and made available to a caller and to 'add_header' directives through
a TIMING tag;
- added a configuration option skip_uribl_checks to the URIDNSBL plugin,
cross-documented it with skip_rbl_checks;
- preserve order of declared 'add_header' header fields;
- configurable network mask length for the AWL plugin (see below);
- added support for DCC reputations (see below);
- improved error handling and robustness (see below);
- added timestamps when logging on stderr;
- allowed debug areas to be excluded from debugging,
e.g.: -D all,norules,noconfig,nodcc
BUILDING AND PACKAGING
- rules are no longer distributed with the package, but installed by
sa-update
- Makefile.PL has been simplified and a bug fixed in a DESTDIR support
by increasing the minimum required version of ExtUtils::MakeMaker to 6.17
- tools check_whitelist and check_spamd are now included in the distribution,
now called 'sa-awl' and 'sa-check_spamd'
WORKAROUNDS TO PERL BUGS AND LIMITATIONS
- modified the Check.pm plugin to produce smaller chunks of source code
from rules (60 kB) to avoid Perl compiler crashing on exceeding stack size;
- localized global variables $1, $2, etc at several places, avoiding taint
issue from propagating;
- avoided Perl I/O bug by replacing line-by-line reading with read() where
suitable, or played down the EBADF status in other places and only report
it as a dbg instead of a die - while also providing a little speedup
(10 .. 25 %) on reading a message;
- provided a new sub Message::split_into_array_of_short_lines to split
a text into array of paragraph chunks of sizes between 1 kB and 2 kB,
giving less opportunity to runaway regular expressions in rules;
fixes bugs: 5717, 5644, 5795, 5486, 5801, 5041;
MEMORY FOOTPRINT
- as a side-effect of compiling rules in smaller chunks (to avoid compiler
crashes), virtual memory footprint of SpamAssassin is reduced;
- saved some memory by not importing the Pod::Usage unless it is needed;
- saved 350k+ of memory in sa-compile by replacing DynaLoader with XSLoader;
- removed unneeded index from MySQL bayes_token table;
IPv6 SUPPORT
- added IPv6 support for trusted_networks, internal_networks, msa_networks,
whitelist_from_rcvd, and other stuff that uses NetSet and the Received
header field parser, using NetAddr::IP;
- allowed usage of a remote dccifd host through an INET or INET6 socket;
- added IPv6 support to AWL plugin and its utility modules; a network
mask length is now configurable and defaults to /48, which controls
what data is stored in an AWL database;
- sql/README.awl and sql/awl_*.sql: increased suggested awl.ip field width
to 40 characters to be able to hold IPv6 addresses;
- IP_PRIVATE now includes ipv6 variants of private address space,
as well as the ipv6-mapped ipv4 addresses.
- NetSet now understands that ::ffff:192.168.1.2 and 192.168.1.2 are
the same address;
- IPv6 addresses are now properly read from Received header fields;
- when reading Received header fields, the "IPv6:" prefix is stripped from
IPv6 addresses, and "::ffff:" is removed from IPv6-mapped IPv4 addresses
(so strings can match them as simply IPv4 addresses);
- ::1/128 is always included in the trusted_networks/internal_networks set
similar to 127.0.0.0/8;
- some of the IPv6 functionality in SpamAssassin requires that a perl module
IO::Socket::INET6 is available (like accessing a DNS resolver over inet6,
talking to a dccifd host over inet6 socket, SPAMC protocol);
SPAMC
- Mail::SpamAssasin::Client ping may erroneously result in broken pipe;
bump spamc protocol version to 1.5, updated spamd, spamc and Client.pm;
- added -n / --connect-timeout switch to spamc, allowing to separate
a connection timeout from communication timeout;
- added --filter-retries and --filter-retry-sleep;
- increased allowed line length in spamc.conf files to 8 KiB and report
an error when the limit is exceeded;
- fixed issue where spamc would not time out connections to a hung spamd;
- spamc client library leaked the zlib compression buffer if compression
is used;
- spamc long option '--dest' was broken;
SPAMD
- when spamd is started with the daemonize option do not exit the parent
until a child signals that it has logged the pid, to allow a wrapper
script to simply continue immediately after starting spamd;
- additional tempfile cleanup in kill_handler;
- added SPAMD_LOCALHOST option to "make test" to allow specifying
non-127.0.0.1 IP address for use in FreeBSD jail;
API
- adding one optional argument to Mail::SpamAssassin::parse allows caller
to pass additional out-of-band information to SpamAssassin (such as a
deadline time, DKIM verification results, information about a SMTP session,
or dynamic rule hits); this information is made available to plugins and
the rest of the code through a 'suppl_attrib' hash;
- added option 'master_deadline' to the suppl_attrib argument of a
Mail::SpamAssassin::parse method, allowing the caller to override a
time_limit configuration setting;
- Plugin::Check - pick up 'rule_hits' from caller via the new mechanism
and call got_hit() on them;
- simplified adding dynamic score hits and dynamic rules by plugins
(such as AWL, CRM114, FuzzyOcr, Check) by letting got_hit() accept
options tflags and description, and letting it store a supplied
dynamic score for proper reporting;
- let the timing breakdown information be accessible to a caller through
the existing get_tag mechanism (tag TIMING);
- let the generated header fields ('add_header' configuration options)
be accessible to a caller through the existing get_tag mechanism
(tags ADDEDHEADER, ADDEDHEADERHAM, ADDEDHEADERSPAM);
RULES
- rules are no longer distributed with the package;
- new scores were generated by a genetic algorithm (GA) and then manually
tweaked based on cleaned datasets supplied by a dozen volunteers;
- dropped redundant rules or rules causing too many false positives;
- added or updated many rules; incomplete list in no particular order:
vbounce, lotsa_money, muchmoney, image spam, fill_this_form, FreeMail,
European Parliament, HTML attachments, uri_obfu*, urinsrhsbl, urinsrhssub,
urifullnsrhsbl, URI_OBFU_X9_WS, rDNS=localhost, INVALID_DATE_TZ_ABSURD,
RCVD_IN_PSBL, FRT_VALIUM*, BOUNCE_MESSAGE, VBOUNCE_MESSAGE,
__BOUNCE_UNDELIVERABLE, HELO_STATIC_HOST, FILL_THIS_FORM_FRAUD_PHISH,
CHALLENGE_RESPONSE, DKIM_VALID, DKIM_VALID_AU, DKIM_ADSP_*,
NML_ADSP_CUSTOM_{LOW,MED,HIGH}, __VIA_ML, MIME_BASE64_TEXT, LOTTO_URI,
FORGED_MUA_THEBAT_BOUN, FORGED_MUA_THEBAT_CS, UNRESOLVED_TEMPLATE,
__THEBAT_MUA, __ANY_OUTLOOK_MUA, RP_MATCHES_RCVD, one-word X-Mailer,
SPAN rules, skype and misquoted-HTML rules, HTML obfuscation and
Google feedproxy URI rules, advance_fee updates including further
evolved advance fee second-order metarules, test rule for
postmaster+abuse missing, FROM_MISSPACED, fixed FROM_CONTAINS_TAB, a
Facebook redirector pattern, fixed FPs with TVD_SPACE_RATIO regarding
one-word emails and ISO-2022-JP, added exclusion for __ISO_2022_JP_DELIM
to OBFUSCATING_COMMENT, GAPPY_SUBJECT, PLING_QUERY and FM_FRM_RN_L_BRACK
rules, RATWARE_BOUNDARY plus variant, superseded all previous
RATWARE_OUTLOOK stuff, resolved FP in obfuscated URI rule, fixed breakage
in tbird image rule, fixed SUBJECT_FUZZY_MEDS FP on unobfuscated "meds",
added misspaced From header field rule, numeric+cctld URI rule,
updated FH_DATE_PAST_20XX, ...
- added PSBL blacklist - http://psbl.surriel.com/
- added support for http://www.spamhaus.org/css/
- replaces HABEAS, BSP and SSC with RP CERTIFIED;
- use ReturnPath's RNBL, replacing SSBL;
- added rule for plain text attachments with octet-stream MIME type;
- avoided false positives on ISO-2022-JP messages in several rules;
- removed massmailers from uridnsbl_skip_domain in 25_uribl.cf;
- updated various default whitelists, uridnsbl_skip_domain, adsp_override, ...
PLUGINS
- new plugins: FreeMail, PhishTag, Reuse;
- now enabled by default: DKIM;
- now disabled by default: AWL;
- retired plugin: DomainKeys;
AWL PLUGIN
- plugin AWL is now disabled by default;
- added new configuration options auto_whitelist_ipv4_mask_len and
auto_whitelist_ipv6_mask_len to allow more control on what part of
an IP address is stored into an AWL database;
- README.awl: increased a suggested awl.ip field width to 40 characters
to support IPv6 addresses;
- AutoWhitelist.pm: allowed storing a canonicalized IPv6 address, cropped
to a configurable network mask (previously causing SQL server errors:
'value too long');
- let AWL with SQL keep separate records for DKIM-signed and unsigned mail
(when auto_whitelist_distinguish_signed configuration option is true,
and a field awl.signedby exists);
- avoided a race condition in SQLBasedAddrList.pm when multiple processes
try to insert-or-update an awl SQL record: trying INSERT first, and if
that fails go for UPDATE;
- gracefully handle NaN from corrupted database or a broken emulator or
virtualizer;
DCC PLUGIN
- added support for DCC reputations, added setting dcc_rep_percent,
new test check_dcc_reputation_range(), new tag DCCREP
(DCC servers supply reputation data only to licensed clients);
- allowed usage of a remote dccifd host through an INET or INET6 socket;
DKIM PLUGIN
- the DKIM plugin is now enabled by default for new installs if the perl
module Mail::DKIM is installed. However, installing SpamAssassin will
not overwrite existing .pre configuration files, so to use DKIM when
upgrading from a previous release that did not use DKIM, the directive:
loadplugin Mail::SpamAssassin::Plugin::DKIM
will need to be uncommented in file "v312.pre", or added to some
other .pre file, such as local.pre;
- absolute minimal version of Mail::DKIM is 0.31;
support for ADSP requires Mail::DKIM 0.34;
a DNS test (and rule) for NXDOMAIN is operational since Mail::DKIM 0.36_5,
so effectively the recommended version is Mail::DKIM 0.37 or later;
- a perl module Digest::SHA is required if the DKIM plugin is enabled.
If a perl module Digest::SHA is available, the module Digest::SHA1
becomes optional as far as SpamAssassin is concerned, but is still
needed by Razor agents;
- added support for multiple signatures (useful for whitelisting);
- plugin now distinguishes author domain signatures from third party
signatures (useful for whitelisting);
- provides a tag DKIMIDENTITY (in addition to DKIMDOMAIN);
- DKIM now supports Author Domain Signing Practices - ADSP (RFC 5617);
- use the Mail::DKIM::AuthorDomainPolicy instead of Mail::DKIM::DkimPolicy,
when available (since Mail::DKIM 0.34);
- implements an 'adsp_override' configuration directive and adds
an eval:check_dkim_adsp check, which is used by new DKIM_ADSP_* rules;
- rules contain an initial set of 'adsp_override' directives, listing
some of the more popular target domains for phishing (applicable only to
domains which sign all their direct mail with a DKIM or DK signature);
- this plugin can now re-use Mail::DKIM verification results if made
available by a caller, which saves resources and makes it possible
for SpamAssassin to work on a truncated large mail without breaking
DKIM signatures;
- check_dkim_signed and check_dkim_adsp eval rules can now take an optional
list of domain names, which limits their action to listed domains only.
It facilitates building DKIM-based rules for specific domains, without
having to resort to meta rules;
- draft-ietf-dkim-ssp-10/RFC-5617 made Author Domain Signature based on 'd':
updated ADSP code accordingly; changed whitelisting code to be based on
SDID ('d') instead of AUID ('i');
- Plugin/DKIM.pm: terminology changes in comments and logging according
to RFC 5617 and draft-ietf-dkim-rfc4871-errata-07;
BUG FIXES
- fixed Rule2XSBody segfaults;
- no longer treat user data as perl booleans (a string "0" is a false);
- avoid data from the wild be interpreted as perl regular expressions;
- ArchiveIterator: prevent _scan_directory from passing directories
to _scan_file (on NFS it would fail with EISDIR on read(2);
- fixed inserting the SpamAssassin -generated header fields after a
multiline Return-Path header field;
- fixed vpopmail support;
- fixed incorrect mode bits when creating lock files for AWL;
- fixed some cases where :addr headers were parsed incorrectly;
- fixed leakage of 'whitelist_from_rcvd' entries between spamd users;
- fixing run_and_catch, which failed to catch a non-timed run;
- 127/8 isn't an illegal IP;
- reworked the M::S::Timeout module to deal with nested timers as one would
expect: an inner timer shouldn't be able to extend an outer timer's limit;
account for time elapsed in the submitted subroutine when restarting an
outer timer; reset() should have accounted for time already spent;
deal with nested timed runs where alarm(0) does not provide remaining time;
- the 'exists:' evaluator in HEADER rules now works as documented
and tests for existence of a header field, instead of testing for
a header field body being nonempty; internally, the pms->get can
also now distinguish between empty and nonexistent header fields;
- applied fixes to header fields parsing in several places: header field
names are case-insensitive, whitespace is not required after a colon,
obsolete rfc822 syntax allowed whitespace before a colon;
VBounce: match "Received:" only at the beginning of a line;
- fixed bugs 6237 and 6295: 1.0.0.0/8 and 2.0.0.0/8 are now valid allocated
address ranges, fixed a corresponding rule RCVD_ILLEGAL_IP;
- fixed bug 6205 comment 5 in URIDetail.pm;
- 'pyzor_options' in Plugin/Pyzor.pm was not untainted;
- made the URIDetail plugin taint safe;
- fixed parsing of multi-line Received header fields for
BOUNCE_MESSAGE/VBOUNCE_MESSAGE et al;
- Bug 6206, Bug 2536: spamd: untaint directory as obtained from a password
file or from vpopmail utilities, avoid implicit untainting; report error
if user preferences file exists but cannot be accessed;
- avoided using raw data from DNS as a regexp in Plugin/ASN.pm;
- ensured the dbg() and info() calls always return the same value (true)
regardless of log level;
- suppressed logging of $& when its value is not available (i.e. when
no regexp has been evaluated during rule evaluation);
- Exporter never really worked in SA, was not enclosed in BEGIN {};
- masses/runGA and masses/mk-baseline-results: prevent a shell 'source'
command from loading an unrelated file named 'config' which happens to be
in the current PATH - must use a ./ in an arg to a 'source' command;
ERROR HANDLING, ROBUSTNESS
- improved error detection and reporting: test status of all system calls
and I/O operations (or explicitly document where not), and report
unexpected failures;
- eval calls now check for eval result instead of testing the $@, which
is not always reliable;
- localized $@ and $! in DESTROY methods to prevent potential calls to eval
and calls to system routines in code executed from a DESTROY method
from clobbering global variables $@ and $!;
- Util::helper_app_pipe_open_unix: contain a failing exec with an eval
to prevent additional cases of process cloning. The exec could fail
this way when given tainted arguments;
- Util::helper_app_pipe_open_unix: flush stdout and stderr before forking,
otherwise an error reported by exec (such as 'insecure dependency')
was lost in a buffer;
- eval-protected an open($fh,'-|') to capture implied fork failures
due to lack of system resource;
- explicit untainting: combine "use re 'taint'" with untaint_var(),
avoiding implicit perl untainting, along with workarounds to prevent it;
- added 'use strict' where missing;
- avoided a bunch of warnings on "Use of uninitialized value";
- clearly report reasons for helper application process failures;
- t/SATest.pm: provide information about the process failure reason
if a system() call fails; improved its reporting of failures;
- improved error reporting in Plugin/DCC.pm on finding a DCC home directory
to facilitate troubleshooting;
OTHER CHANGES
- pseudoheader "ALL:raw" returns a pristine header section,
and pseudoheader "ALL" returns a cleaned header section
- total rewrite of URI detection in plain text body;
- many updates to the list of top level domains;
- added 'util_rb_3tld', allowing 3-level TLDs to be listed in URIBLs and
allowing new 3TLDs to be added from rule updates;
- avoided trusted_networks bog down due to O(n^2) loop with millions
of entries;
- applied fixes to Plugin/VBounce.pm, updated VBounce ruleset;
- added support for a 'Communigate Pro' Received header field;
- parse Communigate Pro "with HTTPU" auth token;
- let DependencyInfo.pm understand a concept of recommended module version,
besides a required version;
- provided a workaround for Net::DNS::Packet::new inconsistency;
- let SpamAssassin use either Digest::SHA or Digest::SHA1, whichever is
available (the Digest::SHA is now a base module since perl 5.10.0);
- improved parsing of eval-type rules: allow unquoted domain names as
arguments, disallow unmatched quotes;
- provided a new module Mail::SpamAssassin::BayesStore::BDB. It should be
treated as alpha-quality (needs more testing) and is not yet ready for
production use;
- exposed existing function 'received_within_months' as an eval function
in Plugin/HeaderEval.pm;
- moved rc script to /var/lock/subsys/spamd instead of
/var/lock/subsys/spamassassin so 'service spamd status' will work;
- added feature to re-download MIRRRORED.BY files at least once a week, or if
'sa-update --refreshmirrors' switch is used;
- input delimiter $/ can be corrupted by a plugin, localize $/ and $\ before
calling a plugin;
- bumped the retry counter to 180 seconds for starting spamd on slow machines;
- resolved Bug 5325: syslog severity level in spamc/libspamc.c for max
message size (changed LOG_ERR into LOG_NOTICE for the message:
"skipped message, greater than max message size");
- added checker to avoid taint warnings if hostname is returned as '(none)';
- altered sa-update to produce an error message if a channel doesn't exist;
- Bug 6150, Bug 6127, Bug 5981, Bug 5950, Bug 6191: let spamd log/report
a child process exit status or aborting condition in an informative way;
- added checker to detect accidental match-everything regexps in rules;
- updated garescorer for 3.3.0: use more epochs in GA runs for better scores;
clarify some mass-check warning output, ensure rule name always appears at
start of line; if a rule had no default/existing score in 50_scores.cf,
don't tell the GA that 1.0 is an appropriate default value, instead pick
the midway point of its score range. this produces better results;
remove some dead code from masses/score-ranges-from-freqs;
- set garescorer.c to report performance as iterations per second;
- added test to ensure that all config settings are correctly handled when
switching between users; added more config setting type metadata to enable
those tests to work; and fix URIDetail to store config on the {conf} object,
not on the plugin;
- moved 'release tests' to xt/ directory; mirror long-running, net-tests and
stress tests with xt/50_testname.t scripts to enforce their run before a
release;
- made numerous additional and updated self-tests;
- added a Test::Perl::Critic release-test;
- cleaned up some code based on suggestions by perl module Test::Perl::Critic,
among others:
. enable TestingAndDebugging::ProhibitNoStrict test but allow the
use of 'no strict "refs"';
. deal with BuiltinFunctions::RequireGlobFunction;
. deal with ControlStructures::ProhibitMutatingListFunctions
removing this exception from xt/60_perlcritic.t;
. deal with BayesStore/BDB.pm, Variables::ProhibitConditionalDeclarations
. now that the module Time::HiRes is a required module, we can afford
to replace a select() with Time::HiRes::sleep, and remove exception
BuiltinFunctions::ProhibitSleepViaSelect from xt/60_perlcritic.t;
- updated documentation, fixing numerous typos and mistakes in documentation
text and in log messages;
- extensively improved development process:
. automated testing through Hudson, a continuous integration tool;
. improved mass-check system and rules oversight;
Diffstat (limited to 'mail/spamassassin')
-rw-r--r-- | mail/spamassassin/INSTALL | 8 | ||||
-rw-r--r-- | mail/spamassassin/MESSAGE | 19 | ||||
-rw-r--r-- | mail/spamassassin/Makefile | 73 | ||||
-rw-r--r-- | mail/spamassassin/PLIST | 5 | ||||
-rw-r--r-- | mail/spamassassin/distinfo | 22 | ||||
-rw-r--r-- | mail/spamassassin/options.mk | 88 | ||||
-rw-r--r-- | mail/spamassassin/patches/patch-ab | 29 | ||||
-rw-r--r-- | mail/spamassassin/patches/patch-ba | 26 | ||||
-rw-r--r-- | mail/spamassassin/patches/patch-bc | 32 | ||||
-rw-r--r-- | mail/spamassassin/patches/patch-be | 13 |
10 files changed, 107 insertions, 208 deletions
diff --git a/mail/spamassassin/INSTALL b/mail/spamassassin/INSTALL new file mode 100644 index 00000000000..a445277a66c --- /dev/null +++ b/mail/spamassassin/INSTALL @@ -0,0 +1,8 @@ +# $NetBSD: INSTALL,v 1.1 2010/03/24 21:41:10 heinz Exp $ + +case ${STAGE} in +POST-INSTALL) + sa-update --verbose --install @RULESARCHIVE@ + ;; +esac + diff --git a/mail/spamassassin/MESSAGE b/mail/spamassassin/MESSAGE index a2ac941a42d..8d304338bfc 100644 --- a/mail/spamassassin/MESSAGE +++ b/mail/spamassassin/MESSAGE @@ -1,16 +1,21 @@ =========================================================================== -$NetBSD: MESSAGE,v 1.11 2007/05/02 15:20:45 heinz Exp $ +$NetBSD: MESSAGE,v 1.12 2010/03/24 21:41:10 heinz Exp $ -If you upgrade from an earlier version *PLEASE* take a look at the file -UPGRADE in +IMPORTANT: The spamassassin package provided by pkgsrc contains the rules +IMPORTANT: available at the time of the official SpamAssassin release. +IMPORTANT: You have to decide when/how to update them, see the documentation +IMPORTANT: for 'sa-update'. - ${PREFIX}/share/doc/spamassassin/ +If you upgrade from an earlier version please take a look at the documents +in -Some configuration options were changed and some features are now provided -by plugins (they may not be enabled after installation). + ${PREFIX}/share/doc/spamassassin/ For more information see 'perldoc Mail::SpamAssassin::Conf' and the man -pages for 'spamassassin', 'spamd'/'spamc', 'sa-learn', 'sa-update' and +pages for 'spamassassin', 'spamd', 'spamc', 'sa-learn', 'sa-update' and 'sa-compile'. +If you want to compile the rules, you may have to increase the data +segment size for the 'sa-compile' process. + Please check that your existing mail configuration still works. =========================================================================== diff --git a/mail/spamassassin/Makefile b/mail/spamassassin/Makefile index f2338cb2ae2..ca750cc7809 100644 --- a/mail/spamassassin/Makefile +++ b/mail/spamassassin/Makefile @@ -1,11 +1,15 @@ -# $NetBSD: Makefile,v 1.96 2010/01/02 03:48:40 heinz Exp $ +# $NetBSD: Makefile,v 1.97 2010/03/24 21:41:10 heinz Exp $ -DISTNAME= Mail-SpamAssassin-3.2.5 -PKGNAME= spamassassin-3.2.5 -PKGREVISION= 4 +DISTNAME= Mail-SpamAssassin-3.3.1 +PKGNAME= spamassassin-3.3.1 SVR4_PKGNAME= sa CATEGORIES= mail perl5 MASTER_SITES= ${MASTER_SITE_APACHE:=spamassassin/source/} +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} +DISTFILES+= ${RULESARCHIVE} +DISTFILES+= ${RULESARCHIVEASC} +DISTFILES+= ${RULESARCHIVESHA} +EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= heinz@NetBSD.org HOMEPAGE= http://spamassassin.apache.org/ @@ -17,20 +21,29 @@ PKG_INSTALLATION_TYPES= overwrite pkgviews .include "../../mk/bsd.prefs.mk" -DEPENDS+= p5-Net-DNS>=0.34:../../net/p5-Net-DNS -DEPENDS+= p5-HTML-Parser>=3.43:../../www/p5-HTML-Parser -DEPENDS+= p5-Digest-SHA1-[0-9]*:../../security/p5-Digest-SHA1 -DEPENDS+= {p5-MIME-Base64>=2.11,perl>=5.8.0}:../../converters/p5-MIME-Base64 -DEPENDS+= p5-libwww-[0-9]*:../../www/p5-libwww +RULESARCHIVE= Mail-SpamAssassin-rules-3.3.1.r923114.tgz +RULESARCHIVEASC=${RULESARCHIVE}.asc +RULESARCHIVESHA=${RULESARCHIVE}.sha1 +FILES_SUBST+= RULESARCHIVE=${RULESDIR}/${RULESARCHIVE} +PLIST_SUBST+= RULESARCHIVE=${RULESARCHIVE:Q} +PLIST_SUBST+= RULESARCHIVEASC=${RULESARCHIVEASC:Q} +PLIST_SUBST+= RULESARCHIVESHA=${RULESARCHIVESHA:Q} + +DEPENDS+= gnupg-[0-9]*:../../security/gnupg DEPENDS+= p5-Archive-Tar>=1.23:../../archivers/p5-Archive-Tar +DEPENDS+= p5-DB_File-[0-9]*:../../databases/p5-DB_File +DEPENDS+= p5-Digest-SHA1-[0-9]*:../../security/p5-Digest-SHA1 +DEPENDS+= p5-HTML-Parser>=3.43:../../www/p5-HTML-Parser DEPENDS+= p5-IO-Compress-[0-9]*:../../devel/p5-IO-Compress DEPENDS+= p5-IO-Zlib>=1.04:../../devel/p5-IO-Zlib -DEPENDS+= gnupg-[0-9]*:../../security/gnupg -DEPENDS+= p5-DB_File-[0-9]*:../../databases/p5-DB_File +DEPENDS+= p5-NetAddr-IP>=4.007:../../net/p5-NetAddr-IP +DEPENDS+= p5-Net-DNS>=0.58:../../net/p5-Net-DNS +DEPENDS+= {p5-MIME-Base64>=2.11,perl>=5.8.0}:../../converters/p5-MIME-Base64 +DEPENDS+= p5-Time-HiRes-[0-9]*:../../time/p5-Time-HiRes +DEPENDS+= p5-libwww-[0-9]*:../../www/p5-libwww USE_TOOLS+= perl - CONFLICTS= p5-Mail-SpamAssassin-[0-9]* WRKSRC= ${WRKDIR}/${DISTNAME} @@ -46,14 +59,14 @@ SPAMASSASSIN_CONTACT_ADDRESS?= postmaster BUILD_DEFS+= SPAMASSASSIN_CONTACT_ADDRESS BUILD_DEFS+= VARBASE -PLIST_ADD= ${WRKSRC}/.PLIST_ADD -PLIST_SRC= ${PKGDIR}/PLIST ${PLIST_ADD} +DYNAMIC_PLIST= ${WRKSRC}/.PLIST_ADD +PLIST_SRC= ${PKGDIR}/PLIST ${DYNAMIC_PLIST} PERL5_PACKLIST= auto/Mail/SpamAssassin/.packlist GNU_CONFIGURE= YES CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} CONFIGURE_DIRS= spamc -BUILD_DIRS= . +BUILD_DIRS= . # build at the top-level directory, not in "spamc" PERL5_CONFIGURE= NO # we need the default "do-configure" target PERL5_CONFIGURE_DIRS= ${WRKSRC} @@ -65,8 +78,12 @@ MAKE_PARAMS+= DEFRULESDIR="${RULESDIR}" MAKE_PARAMS+= LOCALRULESDIR="${PKG_SYSCONFDIR}" MAKE_PARAMS+= LOCALSTATEDIR="${VARBASE}/spamassassin" MAKE_PARAMS+= PERL_BIN="${PERL5}" +MAKE_PARAMS+= PERL_WARN=yes +MAKE_PARAMS+= PERL_TAINT=yes MAKE_PARAMS+= SYSCONFDIR="${PKG_SYSCONFDIR}" +TEST_MAKE_FLAGS= HOME=${HOME} # for test t/razor2.t + RCD_SCRIPTS= spamd RCD_SCRIPT_SRC.spamd= ${WRKSRC}/spamd/netbsd-rc-script.sh @@ -77,12 +94,12 @@ DOCDIR= ${PREFIX}/${DOC_SUBDIR} RULE_SUBDIR= share/spamassassin RULESDIR= ${PREFIX}/${RULE_SUBDIR} -PRE_FILES= init.pre v310.pre v312.pre v320.pre +PRE_FILES= init.pre v310.pre v312.pre v320.pre v330.pre .for p in ${PRE_FILES} CONF_FILES+= ${EGDIR}/${p} ${PKG_SYSCONFDIR}/${p} .endfor CONF_FILES+= ${EGDIR}/local.cf ${PKG_SYSCONFDIR}/local.cf \ - ${RULESDIR}/user_prefs.template \ + ${RULESDIR}/user_prefs.template \ ${PKG_SYSCONFDIR}/user_prefs.template SA_INSTALLDIRS= ${EG_SUBDIR} ${DOC_SUBDIR} ${DOC_SUBDIR}/ldap @@ -94,6 +111,7 @@ SA_DOCFILES+= CREDITS PACKAGING Changes SA_DOCFILES+= ldap/README ldap/README.testing ldap/sa_test.ldif SA_DOCFILES+= rules/STATISTICS-set0.txt rules/STATISTICS-set1.txt SA_DOCFILES+= rules/STATISTICS-set2.txt rules/STATISTICS-set3.txt +SA_DOCFILES+= rules/sa-update-pubkey.txt SA_DOCFILES+= spamc/README.qmail SA_DOCFILES+= sample-nonspam.txt sample-spam.txt SA_DOCFILES+= spamd/README spamd/README.vpopmail @@ -106,6 +124,7 @@ OWN_DIRS+= ${VARBASE}/spamassassin OWN_DIRS_PERMS+= ${PKG_SYSCONFDIR}/sa-update-keys ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0700 SUBST_CLASSES+= sa2 +SUBST_MESSAGE.sa2= Setting correct paths for pkgsrc (part 1) SUBST_STAGE.sa2= pre-configure SUBST_FILES.sa2= README spamd/spamd.raw SUBST_SED.sa2= -e s!@@PREFIX@@!${PREFIX}!g @@ -113,6 +132,7 @@ SUBST_SED.sa2+= -e s!@PKG_SYSCONFDIR@!${PKG_SYSCONFDIR}!g SUBST_SED.sa2+= -e s!@VARBASE@!${VARBASE}!g SUBST_CLASSES+= sa3 +SUBST_MESSAGE.sa3= Setting correct paths for pkgsrc (part 2) SUBST_STAGE.sa3= pre-configure SUBST_FILES.sa3= INSTALL UPGRADE USAGE ldap/README SUBST_FILES.sa3+= spamc/README.qmail spamc/spamc.pod @@ -136,7 +156,7 @@ INTERPRETER_SUPPORT= YES .endif # These variables are substituted in netbsd-rc-script.sh. -FILES_SUBST+= INTERPRETER_SUPPORT=${INTERPRETER_SUPPORT:Q} +FILES_SUBST+= INTERPRETER_SUPPORT=${INTERPRETER_SUPPORT} FILES_SUBST+= OPSYS=${OPSYS} INSTALLATION_DIRS+= ${SA_INSTALLDIRS} @@ -144,28 +164,31 @@ INSTALLATION_DIRS+= ${SA_INSTALLDIRS} 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 + # values in 'config' 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} ; : + ${TEST} -r ${DYNAMIC_PLIST} && ${RM} ${DYNAMIC_PLIST} ; : .for f in ${SA_DOCFILES} ${INSTALL_DATA} ${WRKSRC}/${f} ${DESTDIR}${DOCDIR}/${f} - ${ECHO} "${DOC_SUBDIR}/${f}" >> ${PLIST_ADD} + ${ECHO} "${DOC_SUBDIR}/${f}" >> ${DYNAMIC_PLIST} .endfor set -e ; cd ${WRKSRC}/rules; \ - for f in [0-9]*.cf; do \ - ${ECHO} "${RULE_SUBDIR}/$$f" >> ${PLIST_ADD}; \ - done; \ for f in ${PRE_FILES}; do \ ${INSTALL_DATA} "$$f" ${DESTDIR}${EGDIR} && \ - ${ECHO} "${EG_SUBDIR}/$$f" >> ${PLIST_ADD}; \ + ${ECHO} "${EG_SUBDIR}/$$f" >> ${DYNAMIC_PLIST}; \ done # examples are in the static PLIST ${INSTALL_DATA} ${WRKSRC}/procmailrc.example ${DESTDIR}${EGDIR} ${INSTALL_DATA} ${WRKSRC}/rules/local.cf ${DESTDIR}${EGDIR} ${INSTALL_DATA} ${FILESDIR}/netbsd_lists.cf ${DESTDIR}${EGDIR} + ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${RULESARCHIVE} \ + ${DESTDIR}${RULESDIR} + ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${RULESARCHIVEASC} \ + ${DESTDIR}${RULESDIR} + ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${RULESARCHIVESHA} \ + ${DESTDIR}${RULESDIR} # make sure we install the patched version of init.pre but can run the # tests with the original file diff --git a/mail/spamassassin/PLIST b/mail/spamassassin/PLIST index 09bfdf31a99..78ecbfc69b5 100644 --- a/mail/spamassassin/PLIST +++ b/mail/spamassassin/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.20 2007/05/02 15:20:45 heinz Exp $ +@comment $NetBSD: PLIST,v 1.21 2010/03/24 21:41:10 heinz Exp $ @comment Most of this PLIST is auto-generated; see Makefile. share/examples/rc.d/spamd share/examples/spamassassin/local.cf @@ -7,3 +7,6 @@ share/examples/spamassassin/procmailrc.example share/spamassassin/languages share/spamassassin/sa-update-pubkey.txt share/spamassassin/user_prefs.template +share/spamassassin/${RULESARCHIVE} +share/spamassassin/${RULESARCHIVEASC} +share/spamassassin/${RULESARCHIVESHA} diff --git a/mail/spamassassin/distinfo b/mail/spamassassin/distinfo index 037ab030a09..623950699b7 100644 --- a/mail/spamassassin/distinfo +++ b/mail/spamassassin/distinfo @@ -1,12 +1,18 @@ -$NetBSD: distinfo,v 1.51 2010/01/02 03:48:40 heinz Exp $ +$NetBSD: distinfo,v 1.52 2010/03/24 21:41:10 heinz Exp $ -SHA1 (Mail-SpamAssassin-3.2.5.tar.gz) = 14b1f6eae0221a152176f7f597f55581445e800a -RMD160 (Mail-SpamAssassin-3.2.5.tar.gz) = 5a72a97d124e72ff4da1627982748377f1e34128 -Size (Mail-SpamAssassin-3.2.5.tar.gz) = 1223706 bytes -SHA1 (patch-ab) = debb4851d063404e0a59557603cc08b259050b26 +SHA1 (Mail-SpamAssassin-3.3.1.tar.gz) = 8b32a857cc89c8d057442400bc00f33fd703ce06 +RMD160 (Mail-SpamAssassin-3.3.1.tar.gz) = 154fb16de88b3cc9fac41f721af21b181a2368f3 +Size (Mail-SpamAssassin-3.3.1.tar.gz) = 1196842 bytes +SHA1 (Mail-SpamAssassin-rules-3.3.1.r923114.tgz) = 7aeeb7abb2d727bb35d3a0927a1390ad3cddad59 +RMD160 (Mail-SpamAssassin-rules-3.3.1.r923114.tgz) = 9b6e17e05b3a323ba820ec2dc432d8b7dfc4d0ac +Size (Mail-SpamAssassin-rules-3.3.1.r923114.tgz) = 255548 bytes +SHA1 (Mail-SpamAssassin-rules-3.3.1.r923114.tgz.asc) = 3e11775118e0e4be5720fdc3b99661e187943fd8 +RMD160 (Mail-SpamAssassin-rules-3.3.1.r923114.tgz.asc) = bc9c1755977c0b8677a3a8e700068f0e7288f434 +Size (Mail-SpamAssassin-rules-3.3.1.r923114.tgz.asc) = 823 bytes +SHA1 (Mail-SpamAssassin-rules-3.3.1.r923114.tgz.sha1) = 949b64216a6bb6833bd4f2ccab18b53719dda311 +RMD160 (Mail-SpamAssassin-rules-3.3.1.r923114.tgz.sha1) = 8b6c82596c158e5e010643a4d16a987dcc65244c +Size (Mail-SpamAssassin-rules-3.3.1.r923114.tgz.sha1) = 84 bytes +SHA1 (patch-ab) = 84ebc0f611365c00205a85cb84970772a0931ef8 SHA1 (patch-ae) = d46b1d8f56c8c61936c307f74b39a49da1b1f353 SHA1 (patch-aq) = 3a273c7742275647c2334382fed29c0ea33dfbd8 SHA1 (patch-ay) = ca8ea0b1e6d8fddd29d6ae960e1bf6e534d2f424 -SHA1 (patch-ba) = ea6b8eac3d9475641725dc4aa1e7a4d31912a044 -SHA1 (patch-bc) = 71fcf6297eacbd69a5c5d5b1911f648e4011ce3e -SHA1 (patch-be) = 42b9975742834e836159b754f4a50a0d68d8ea75 diff --git a/mail/spamassassin/options.mk b/mail/spamassassin/options.mk index 87f57f5c33e..d9fb7316f84 100644 --- a/mail/spamassassin/options.mk +++ b/mail/spamassassin/options.mk @@ -1,101 +1,37 @@ -# $NetBSD: options.mk,v 1.8 2009/03/07 13:25:19 seb Exp $ +# $NetBSD: options.mk,v 1.9 2010/03/24 21:41:10 heinz Exp $ PKG_OPTIONS_VAR= PKG_OPTIONS.spamassassin PKG_SUPPORTED_OPTIONS= inet6 -PKG_SUPPORTED_OPTIONS+= online-tests -PKG_SUPPORTED_OPTIONS+= spamassassin-perl-warnings -PKG_SUPPORTED_OPTIONS+= spamassassin-taint-checks -PKG_SUPPORTED_OPTIONS+= spamassassin-test-awl-sql -PKG_SUPPORTED_OPTIONS+= spamassassin-test-bayes-sql -PKG_SUPPORTED_OPTIONS+= spamassassin-test-prefork PKG_SUPPORTED_OPTIONS+= ssl -PKG_OPTIONS_LEGACY_OPTS+= awl-sql-tests:spamassassin-test-awl-sql -PKG_OPTIONS_LEGACY_OPTS+= bayes-sql-tests:spamassassin-test-bayes-sql -PKG_OPTIONS_LEGACY_OPTS+= net-tests:online-tests -PKG_OPTIONS_LEGACY_OPTS+= perl-taint-checks:spamassassin-taint-checks -PKG_OPTIONS_LEGACY_OPTS+= perl-warnings:spamassassin-perl-warnings -PKG_OPTIONS_LEGACY_OPTS+= spamassassin-test-net:online-tests - # # Default options # -PKG_SUGGESTED_OPTIONS= inet6 spamassassin-taint-checks -PKG_SUGGESTED_OPTIONS+= spamassassin-perl-warnings ssl +PKG_SUGGESTED_OPTIONS= inet6 ssl .include "../../mk/bsd.options.mk" # -# change t/config according to all the options +# change t/config according to enable/disable software options # +AWL_SQL_TEST?= n # to enable tests, set to 'y' on make command line +BAYES_SQL_TEST?= n # to enable tests, set to 'y' on make command line +LONG_TEST?= y # to disable tests, set to 'n' on make command line +NET_TEST?= y # to disable tests, set to 'n' on make command line +PREFORK_TEST?= n # to enable tests, set to 'y' on make command line +ROOT_TEST?= n # to enable tests, set to 'y' on make command line + SUBST_CLASSES+= satests SUBST_STAGE.satests= post-configure SUBST_FILES.satests= t/config SUBST_SED.satests= -e s!awl_sql_tests=n!awl_sql_tests=${AWL_SQL_TEST}! SUBST_SED.satests+= -e s!bayes_sql_tests=n!bayes_sql_tests=${BAYES_SQL_TEST}! +SUBST_SED.satests+= -e s!run_long_tests=n!run_long_tests=${LONG_TEST}! SUBST_SED.satests+= -e s!run_net_tests=n!run_net_tests=${NET_TEST}! +SUBST_SED.satests+= -e s!run_root_tests=n!run_root_tests=${ROOT_TEST}! SUBST_SED.satests+= -e s!prefork_stress_test=n!prefork_stress_test=${PREFORK_TEST}! # -# Enable tests of the SQL storage module for the automatic whitelist -# (AWL). This option enables interactive questions about the database -# configuration during 'configure' phase. -# -.if !empty(PKG_OPTIONS:Mspamassassin-test-awl-sql) -AWL_SQL_TEST=y -.else -AWL_SQL_TEST=n -.endif - -# -# Enable tests of the SQL storage module for Bayes information. -# This option enables interactive questions about the database -# configuration during 'configure' phase. -# -.if !empty(PKG_OPTIONS:Mspamassassin-test-bayes-sql) -BAYES_SQL_TEST=y -.else -BAYES_SQL_TEST=n -.endif - -# -# Enable Internet based tests during 'make test' (Razor, Pyzor, etc.) -# -.if !empty(PKG_OPTIONS:Monline-tests) -NET_TEST=y -.else -NET_TEST=n -.endif - -# -# Enable Perl warnings in spamd and spamassassin -# -.if !empty(PKG_OPTIONS:Mspamassassin-perl-warnings) -MAKE_PARAMS+= PERL_WARN=yes -.else -MAKE_PARAMS+= PERL_WARN=no -.endif - -# -# Enable Perl taint checks in spamd and spamassassin to improve security -# -.if !empty(PKG_OPTIONS:Mspamassassin-taint-checks) -MAKE_PARAMS+= PERL_TAINT=yes -.else -MAKE_PARAMS+= PERL_TAINT=no -.endif - -# -# Enable spamd prefork stress test (will kill any processes containing the -# string 'spam child' in their process title). -# -.if !empty(PKG_OPTIONS:Mspamassassin-test-prefork) -PREFORK_TEST=y -.else -PREFORK_TEST=n -.endif - -# # Build spamc and spamd with support for connections over SSL # .if !empty(PKG_OPTIONS:Mssl) diff --git a/mail/spamassassin/patches/patch-ab b/mail/spamassassin/patches/patch-ab index e7b871cc23b..ca6de755b43 100644 --- a/mail/spamassassin/patches/patch-ab +++ b/mail/spamassassin/patches/patch-ab @@ -1,34 +1,21 @@ -$NetBSD: patch-ab,v 1.15 2010/01/01 13:55:32 heinz Exp $ - - - deal with internal changes of ExtUtils::MakeMaker and how SpamAssassin - (ab)used those internals regarding DESTDIR support. Will not be necessary - starting with SA 3.3.0. +$NetBSD: patch-ab,v 1.16 2010/03/24 21:41:11 heinz Exp $ - enable build of qmail-spamc - some files (local.cf, *.pre) are managed by pkgsrc, disable their installation. - pkgsrc creates B_DATADIR, so there is no need to re-set permissions ---- Makefile.PL.orig 2008-06-10 09:21:07.000000000 +0000 +--- Makefile.PL.orig 2009-08-09 23:01:31.000000000 +0200 +++ Makefile.PL -@@ -143,7 +143,7 @@ $mm_knows_destdir = $ExtUtils::MakeMa - $mm_has_good_destdir = $mm_version >= 6.11; - # Add DESTDIR hack only if it's requested (and necessary) - $mm_needs_destdir = $opt{'destdir'} && !$mm_has_good_destdir; --$mm_has_destdir = $mm_knows_destdir || $mm_needs_destdir; -+$mm_has_destdir = $mm_has_good_destdir || $mm_needs_destdir; - push(@ATT_KEYS, 'DESTDIR') if $mm_needs_destdir; - - # Now make EU::MM understand our extended vars -@@ -174,6 +174,7 @@ my %makefile = ( +@@ -138,6 +138,7 @@ my %makefile = ( 'spamassassin.raw' => 'spamassassin', 'sa-learn.raw' => 'sa-learn', 'sa-update.raw' => 'sa-update', + 'spamc/qmail-spamc.c' => 'spamc/qmail-spamc$(EXE_EXT)', - 'sa-compile.raw' => 'sa-compile', - 'spamc/spamc.c' => 'spamc/spamc$(EXE_EXT)', - 'spamd/spamd.raw' => 'spamd/spamd', -@@ -1201,17 +1202,19 @@ qmail/qmail-spamc$(EXE_EXT): spamc/qmail + 'sa-compile.raw' => 'sa-compile', + 'sa-awl.raw' => 'sa-awl', + 'sa-check_spamd.raw' => 'sa-check_spamd', +@@ -1095,18 +1096,20 @@ qmail/qmail-spamc$(EXE_EXT): spamc/qmail conf__install: -$(MKPATH) $(B_CONFDIR) @@ -37,12 +24,14 @@ $NetBSD: patch-ab,v 1.15 2010/01/01 13:55:32 heinz Exp $ - $(PERL) -MFile::Copy -e "copy(q{rules/v310.pre}, q{$(B_CONFDIR)/v310.pre}) unless -f q{$(B_CONFDIR)/v310.pre}" - $(PERL) -MFile::Copy -e "copy(q{rules/v312.pre}, q{$(B_CONFDIR)/v312.pre}) unless -f q{$(B_CONFDIR)/v312.pre}" - $(PERL) -MFile::Copy -e "copy(q{rules/v320.pre}, q{$(B_CONFDIR)/v320.pre}) unless -f q{$(B_CONFDIR)/v320.pre}" +- $(PERL) -MFile::Copy -e "copy(q{rules/v330.pre}, q{$(B_CONFDIR)/v330.pre}) unless -f q{$(B_CONFDIR)/v330.pre}" + @ # manage local.cf and *.pre through pkgsrc .mk files + @ # $(PERL) -MFile::Copy -e "copy(q{rules/local.cf}, q{$(B_CONFDIR)/local.cf}) unless -f q{$(B_CONFDIR)/local.cf}" + @ # $(PERL) -MFile::Copy -e "copy(q{rules/init.pre}, q{$(B_CONFDIR)/init.pre}) unless -f q{$(B_CONFDIR)/init.pre}" + @ # $(PERL) -MFile::Copy -e "copy(q{rules/v310.pre}, q{$(B_CONFDIR)/v310.pre}) unless -f q{$(B_CONFDIR)/v310.pre}" + @ # $(PERL) -MFile::Copy -e "copy(q{rules/v312.pre}, q{$(B_CONFDIR)/v312.pre}) unless -f q{$(B_CONFDIR)/v312.pre}" + @ # $(PERL) -MFile::Copy -e "copy(q{rules/v320.pre}, q{$(B_CONFDIR)/v320.pre}) unless -f q{$(B_CONFDIR)/v320.pre}" ++ @ # $(PERL) -MFile::Copy -e "copy(q{rules/v330.pre}, q{$(B_CONFDIR)/v330.pre}) unless -f q{$(B_CONFDIR)/v330.pre}" data__install: -$(MKPATH) $(B_DATADIR) diff --git a/mail/spamassassin/patches/patch-ba b/mail/spamassassin/patches/patch-ba deleted file mode 100644 index 2636b502c5a..00000000000 --- a/mail/spamassassin/patches/patch-ba +++ /dev/null @@ -1,26 +0,0 @@ -$NetBSD: patch-ba,v 1.2 2008/01/09 15:55:52 heinz Exp $ - - Both submitted upstream (bug id 5628/5630): - - no need for a hard-coded path, the appropriate variables already exist - - the documentation conflicts with the code - ---- sa-update.raw.orig 2007-08-08 15:19:47.000000000 +0200 -+++ sa-update.raw -@@ -1322,7 +1322,7 @@ Options: - keyring. Use multiple times for multiple files - --updatedir path Directory to place updates, defaults to the - SpamAssassin site rules directory -- (default: /var/lib/spamassassin/<version>) -+ (default: @@LOCAL_STATE_DIR@@/@@VERSION@@) - -D, --debug [area=n,...] Print debugging messages - -V, --version Print version - -h, --help Print usage message -@@ -1441,7 +1441,7 @@ Note: use of this option automatically e - - By default, C<sa-update> will use the system-wide rules update directory: - -- @@LOCAL_STATE_DIR@@/spamassassin/@@VERSION@@ -+ @@LOCAL_STATE_DIR@@/@@VERSION@@ - - If the updates should be stored in another location, specify it here. - diff --git a/mail/spamassassin/patches/patch-bc b/mail/spamassassin/patches/patch-bc deleted file mode 100644 index ccb313aeaf1..00000000000 --- a/mail/spamassassin/patches/patch-bc +++ /dev/null @@ -1,32 +0,0 @@ -$NetBSD: patch-bc,v 1.3 2008/06/22 22:41:01 heinz Exp $ - - Both submitted upstream (bug id 5628/5630): - - no need for a hard-coded path, the appropriate variables already exist - - the documentation conflicts with the code - ---- sa-compile.raw.orig 2008-06-10 11:21:07.000000000 +0200 -+++ sa-compile.raw -@@ -684,7 +684,7 @@ Options: - --siteconfigpath=path Path for site configs - (default: /etc/mail/spamassassin) - --updatedir=path Directory to place updates -- (default: /var/lib/spamassassin/compiled/<perlversion>/<version>) -+ (default: @@LOCAL_STATE_DIR@@/compiled/@@PERL_MAJOR_VER@@/@@VERSION@@) - --cf='config line' Additional line of configuration - -D, --debug [area=n,...] Print debugging messages - -V, --version Print version -@@ -746,12 +746,12 @@ the default directories (usually C</etc/ - - By default, C<sa-compile> will use the system-wide rules update directory: - -- @@LOCAL_STATE_DIR@@/spamassassin/compiled/@@PERL_MAJOR_VER@@/@@VERSION@@ -+ @@LOCAL_STATE_DIR@@/compiled/@@PERL_MAJOR_VER@@/@@VERSION@@ - - If the updates should be stored in another location, specify it here. - - Note that use of this option is not recommended; if sa-compile is placing the --compiled rules the wrong directory, you probably need to rebuild SpamAssassin -+compiled rules in the wrong directory, you probably need to rebuild SpamAssassin - with different C<Makefile.PL> arguments, instead of overriding sa-compile's - runtime behaviour. - diff --git a/mail/spamassassin/patches/patch-be b/mail/spamassassin/patches/patch-be deleted file mode 100644 index 08de57fa893..00000000000 --- a/mail/spamassassin/patches/patch-be +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-be,v 1.1 2010/01/02 03:48:40 heinz Exp $ - ---- rules/72_active.cf.orig 2008-06-10 09:21:33.000000000 +0000 -+++ rules/72_active.cf -@@ -540,7 +540,7 @@ describe FH_DATE_IS_19XX The date is not - ##} FH_DATE_IS_19XX - - ##{ FH_DATE_PAST_20XX --header FH_DATE_PAST_20XX Date =~ /20[1-9][0-9]/ [if-unset: 2006]
-+header FH_DATE_PAST_20XX Date =~ /20[2-9][0-9]/ [if-unset: 2006]
- describe FH_DATE_PAST_20XX The date is grossly in the future.
- ##} FH_DATE_PAST_20XX - |