Pkgsrc changes:
- Removed PKG_DESTDIR_SUPPORT until the issue with encoded ownership in
+INSTALL files is resolved.
- made pkglint shut up about some warnings (CONFIGURE_DIRS, BUILD_DIRS,
hidden commands with @)
- parse-rules-for-masses has moved in the source archive.
- The directories "masses" and "tools" are no longer distributed in the
archive so I simplified the post-install target.
- Since "tools" is gone, the post-extract: target is obsolete.
- MESSAGE now points at sa-compile.
- Spamc depends on zlib now, so we needed the appropriate buildlink3 file.
Summary of changes since version 3.1.8:
=======================================
* new behavior for trusted_networks/internal_networks: the 127.* network
is now always considered trusted and internal, regardless of configuration.
* bug 3109: short-circuiting of 'definite ham' or 'definite spam' messages
based on individual short-circuit rules using the 'shortcircuit' setting,
by Dallas Engelken <dallase /at/ uribl.com>.
* bug 5305: implement 'msa_networks', for ISPs to specify their Mail
Submission Agents, and extend network trust accordingly.
* bug 4636: Add support for charset normalization, so rules can be written
in UTF-8 to match text in other charsets.
* sa-compile: compilation of SpamAssassin rules into a fast parallel-matching
DFA, implemented in native code.
* "tflags multiple": allow writing of rules that count multiple hits in a
single message.
* bug 4363: if a message uses CRLF for line endings, we should use it as
well, otherwise stay with LF as usual; important for Windows users.
* bug 4515: content preview was omitting first paragraph when no Subject:
header was present.
* The third-party modules used by sa-update are now required by the
SpamAssassin package, instead of being optional.
* Bug 5165: 'sa-update --checkonly' added to check for updates without
applying them; thanks to <anomie /at/ users.sourceforge.net>
* Bugs 4606, 4609: Adjust MIME parsing limits for nested multipart/* and
message/rfc822 MIME parts.
* bug 5295: add 'whitelist_auth', to whitelist addresses that send mail
using sender-authorization systems like SPF, Domain Keys, and DKIM
* Removed dependency on Text::Wrap CPAN module.
* Received header parsing updates/fixes/additions.
Spamc / spamd:
* bug 4603: Mail::SpamAssassin::Spamd::Apache2 -- mod_perl2 module,
implementing spamd as a mod_perl module, contributed as a Google Summer of
Code project by Radoslaw Zielinski.
* bug 3991: spamd can now listen on UNIX domain, TCP, and SSL sockets
simultaneously. Command-line semantics extended slightly, although fully
backwards compatibly; add the --ssl-port switch to allow TCP and SSL
listening at the same time.
* bug 3466: do Bayes expiration, if required, after results have been
passed back to the client from spamd; this helps avoid client timeouts.
* more complete IPv6 support.
* spamc: Add '-K' switch, to ping spamd.
* spamc: add '-z' switch, which compresses mails to be scanned using
zlib compression; very useful for long-distance use of spamc over the
internet.
* bug 5296: spamc '--headers' switch, which scans messages and transmits
back just rewritten headers. This is more bandwidth-efficient than the
normal mode of scanning, but only works for 'report_safe 0'.
* Bump spamd's protocol version to 1.4, to reflect new HEADERS verb used
for '--headers'.
Mail::SpamAssassin modules and API:
* bug 4589: allow M::SA::Message to use IO::File objects to read in
message (same as GLOB).
* bug 4517: rule instrumentation plugin hooks, to measure performance,
from John Gardiner Myers <jgmyers /at/ proofpoint.com>.
* add two features to core rule-parsing code; 1. optional behaviour to
recurse through subdirs looking for .cf/.pre's, to support rules compilers
working on rulesrc dir. 2. call back into invoking code on lint failure,
so rule compiler can detect which rules exactly fail the lint check.
* bug 5206: detect duplicate rules, and silently merge them internally
for greater efficiency.
* bug 5243: add Plugin::register_method_priority() API, allowing plugins
to control the relative ordering of plugin callbacks relative to other
plugins' implementations.
* Reduced memory footprint.
Plugins:
* bug 5236: Support Mail::SPF replacement for Mail::SPF::Query.
* bug 5127: allow mimeheader :raw rules to match newlines and folded-header
whitespace in MIME header strings.
* bug 4770: add ASN.pm plugin, contributed by Matthias Leisi <matthias at
leisi.net>
* bug 5271: move ImageInfo ruleset into 3.2.0 core rules, thanks to
Dallas Engelken <dallase /at/ uribl.com>.
* VBounce ruleset and plugin: detect spurious bounce messages sent by
broken mail systems in response to spam or viruses. (Based on Tim
Jackson's "bogus-virus-warnings.cf" ruleset.)
* DomainKeys/DKIM: Mail::DKIM is now preferred over Mail::DomainKeys,
since the latter module is no longer actively maintained, and Mail::DKIM
can handle both DomainKeys and DKIM signatures.
* DKIM: separate signature verification from fetching a policy: can save
a DNS lookup for each unverified message by setting score to 0 for all
policy-related rules (DKIM_POLICY_SIGNALL, DKIM_POLICY_SIGNSOME, and
DKIM_POLICY_TESTING). (thanks to Mark Martinec)
* DKIM: support testing flags in the public key, as well as in the policy
record. (thanks to Mark Martinec)
* DKIM: skip fetching a policy (SSP) if a signature does verify, according
to draft-allman-dkim-ssp-02 (thanks to Mark Martinec)
* Move rule functionality and checking into separate Check plugin, allowing
third parties to implement alternative scanner core algorithms.
* core EvalTests code moved into various plugins.
* Plus lots of miscellaneous bug fixes.
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.
3.0.
Important changes since 2.64 (for details see the file 'Changes')
- support for sender authentication using the Sender Policy Framework
(SPF)
- checking for web links of known spam advertisers (SURBL)
- modular plugin architecture
- improved SQL database support for storing user data in server
installations
- improved email classification
- SpamAssassin is now part of the Apache Foundation
Summary of major changes since 2.60
-----------------------------------
- Dramatically reduced memory usage of Bayes expiry.
- avoid false positives on Outlook 2003 messages, mails from Mac, Palm, and
localized versions of Eudora, several AOL MUAs, and newer versions of The
Bat!
- new set of French translations from Michel Bouissou
- updated to reflect new Dynablock DNSBL location
- avoids a possible hole that was giving AWL bonuses to
spammer forgeries on some networks
- miscellaneous bug fixes
Summary of changes since 2.5x
-----------------------------------
- spamd supports UNIX-domain sockets
- SSL support for spamc/spamd now usable
- improved Bayes text analysis
- improved expiration of Bayes-DB
- better detection of 'invisible text' and other obfuscation techniques
in HTML
- new RBL (eg SORBS, SpamCop, Osirusoft dropped)
- better handling of RBL timeouts
- support for Razor V1 dropped
- more flexible header and report rewriting
- Perl taint mode enabled by default
- bug fixes
- new rules
This also closes PR pkg/21114 (thanks to Todd Vierling for dynamic PLIST)
Most serious bugs since release of SA 2.50 fixed (hence the 'long'
delay for the Pkgsrc package).
Dependence on procmail removed. You still need a mail delivery agent
but procmail is only a recommendation, not a prerequisite.
Runs on Solaris (somewhat tested on Solaris 8, feedback welcome).
Includes some SSL support for spamc/spamd. Not yet recommended due to
lurking bug(s) (SA bugzilla ID 1751).
Uses Perl module DB_File now instead of NDBM_File. This changes the
name and format of the auto-whitelist database ('auto-whitelist'
instead of 'auto-whitelist.db' on NetBSD).
! This release adds/changes/removes configuration options, PLEASE use !
! 'perldoc Mail::SpamAssassin::Conf' and make sure your mail !
! configuration still works as expected. !
==========================================================================
Changes since 2.52:
- corruption of Bayes db where nspam/nham was getting zeroed, fixed.
- Bayes now has much lower lock timeouts for opportunistic expiry
and auto-learning, to avoid overloading busy servers with an expiry
run. (This may result in occasional "lock failed" messages in the
syslog while you're doing manual sa-learn ops, but those are
not serious; it just means that an auto-learn could not take place
because the dbs were opened by you in another process.)
- NDBM_File does not provide an EXISTS method, worked around.
- BSMTP support (spamc -B) fixed.
- Bayes allowed the user to 'forget' messages they hadn't learned.
- sa-learn broken when installed in a non-standard location.
- spamc was failing to dump message if out of memory.
- add-all-addrs-to-blacklist was a no-op, fixed.
- syslog-socket support was broken, fixed.
- sslspamc compilation fixed.
- SIGCHLD handling in spamd was causing an ugly warning on Red Hat 8.
- user_prefs were left world-writable after auto-whitelist use.
- Razor was zeroing %ENV; protected against this.
- some test failures on 5.005 and with Razor fixed; some tests were
also still using the user's Bayes dbs.
- Windows portability fix in new Bayes journal code.
- dialup_codes now a privileged setting.
- clean PATH env variable immediately upon spamd start; fixed problem
with taint mode failures when getting hostname in Perl 5.005.
- NetBSD: fixed SSL support, spamd start script.
- single-Received-header mails were not getting DNSBL checks.
- some doco fixes.
Changes since 2.51:
- bug 1664: expiry imposed way too much load when a single
site-wide Bayes db was used, fixed
- bug 1672: a typo in a backported patch for 2.51 caused Bayes to
sometimes not unlock the db, fixed
- INSTALL now strongly recommends using DB_File
- some NetBSD support fixes
- bug 1601: option --syslog-socket wasn't implemented
- bug 1260: corrected description of --nocreate-prefs option
Changes since 2.50:
- Bayes locking and concurrency issues fixed
- Bayes expiration was not working; fixed
- spamd was not enabling Bayes after auto-learning without restart;
fixed
- safer way to attach spams, for broken mail clients, using 'report_safe
2'
- a few doco cleanups
Main changes since 2.4x:
- Bayesian filtering, using a Bayesian-style form of probability-analysis
classification. This uses an algorithm based on the one detailed in
Paul Graham's 'A Plan For Spam' paper, along with aspects taken from
Graham Robinson's work, and the chi-combining technique developed by the
SpamBayes project.
- Auto-learning. This trains the Bayesian filter automatically, based on
the results from traditional SpamAssassin diagnosis. It uses a set of
heuristics and separate thresholds to ensure (as much as is possible)
that it trains on guaranteed non-spam and spam. Old, unused tokens are
automatically expired.
- much-improved rule set. A whole new set of rules based on Message-Id
analysis is now in place, which accurately detects forged headers from
a wide range of spamware. Many inaccurate rules have been dropped.
HTML tests much improved, with a set to detect image-only spam.
- new default format for detected-spam messages; the message is
encapsulated as a MIME part, with a preview and the spam report
in the main part of the message.
- Score sets. Based on whether you are using just SpamAssassin rules,
adding network tests, and using a trained Bayesian database,
SpamAssassin will use a set of scores appropriately to gain the
maximum degree of accuracy.
- Italian, Polish, Spanish, French and German rule sets and translations.
- Much improved reliability with spamd. The problems with signals
have been cleared up thanks to a pipe-based child tracking system,
and all spamd-hanging bugs reported have proved unreproducable.
- Unicode problems with Red Hat 8 and perl 5.8 fixed. Works on Perl
5.005, 5.6.x, and 5.8.x.
- Taint-safe. SpamAssassin runs with perl's taint-checking enabled for
better security.
- Razor 1 support is now officially deprecated.
- "spamc -c" was not working, fixed. This fix required increasing the
revision of the spamd protocol; only difference is that now more than
one protocol header can appear in the reply from spamd.
- all fixes from 2.44 included.
Uses buildlink2 and module.mk. Some perl scripts for rule developers
(in PREFIX/share/doc/spamassassin/{masses,tools}/) and a small SpamAssassin
logo (PREFIX/share/doc/spamassassin/html/) are now included.
New netbsd_lists.cf file to reduce false positives on NetBSD lists (so
far, only some rules for netbsd-bugs).
Changes:
- bug fixes
- new, better scores (intensive testing was done to improve on 2.40 and
2.41)
- netbsd rc.d script works now with NetBSD 1.5 and 1.6
- management of addresses in the automatic whitlist now easier with
dedicated options (--add-addr-to-whitelist, --remove-addr-from-whitelist)