You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2009/01/02 22:13:22 UTC

svn commit: r730843 - in /spamassassin/trunk: MANIFEST MANIFEST.SKIP Makefile.PL t/SATest.pm t/data/01_test_rules.cf t/data/01_test_rules.pre t/dcc.t

Author: jm
Date: Fri Jan  2 13:13:21 2009
New Revision: 730843

URL: http://svn.apache.org/viewvc?rev=730843&view=rev
Log:
bug 5752: MAJOR CHANGE FOR 3.3.0: we no longer install the rules to /usr/share/spamassassin along with the code; admins must run 'sa-update' immediately after installing

Added:
    spamassassin/trunk/t/data/01_test_rules.pre
Modified:
    spamassassin/trunk/MANIFEST
    spamassassin/trunk/MANIFEST.SKIP
    spamassassin/trunk/Makefile.PL
    spamassassin/trunk/t/SATest.pm
    spamassassin/trunk/t/data/01_test_rules.cf
    spamassassin/trunk/t/dcc.t

Modified: spamassassin/trunk/MANIFEST
URL: http://svn.apache.org/viewvc/spamassassin/trunk/MANIFEST?rev=730843&r1=730842&r2=730843&view=diff
==============================================================================
--- spamassassin/trunk/MANIFEST (original)
+++ spamassassin/trunk/MANIFEST Fri Jan  2 13:13:21 2009
@@ -120,68 +120,11 @@
 lib/Mail/SpamAssassin/Util/ScopedTimer.pm
 lib/spamassassin-run.pod
 procmailrc.example
-rules/10_default_prefs.cf
-rules/20_advance_fee.cf
-rules/20_body_tests.cf
-rules/20_compensate.cf
-rules/20_dnsbl_tests.cf
-rules/20_drugs.cf
-rules/20_dynrdns.cf
-rules/20_fake_helo_tests.cf
-rules/20_head_tests.cf
-rules/20_html_tests.cf
-rules/20_imageinfo.cf
-rules/20_meta_tests.cf
-rules/20_net_tests.cf
-rules/20_phrases.cf
-rules/20_porn.cf
-rules/20_ratware.cf
-rules/20_uri_tests.cf
-rules/20_vbounce.cf
-rules/23_bayes.cf
-rules/25_accessdb.cf
-rules/25_antivirus.cf
-rules/25_asn.cf
-rules/25_dcc.cf
-rules/25_dkim.cf
-rules/25_domainkeys.cf
-rules/25_hashcash.cf
-rules/25_pyzor.cf
-rules/25_razor2.cf
-rules/25_replace.cf
-rules/25_spf.cf
-rules/25_textcat.cf
-rules/25_uribl.cf
-rules/30_text_de.cf
-rules/30_text_fr.cf
-rules/30_text_it.cf
-rules/30_text_nl.cf
-rules/30_text_pl.cf
-rules/30_text_pt_br.cf
-rules/50_scores.cf
-rules/60_awl.cf
-rules/60_shortcircuit.cf
-rules/60_whitelist.cf
-rules/60_whitelist_dk.cf
-rules/60_whitelist_dkim.cf
-rules/60_whitelist_spf.cf
-rules/60_whitelist_subject.cf
-rules/72_active.cf
-rules/STATISTICS-set0.txt
-rules/STATISTICS-set1.txt
-rules/STATISTICS-set2.txt
-rules/STATISTICS-set3.txt
-rules/active.list
-rules/init.pre
 rules/languages
 rules/local.cf
 rules/regression_tests.cf
 rules/sa-update-pubkey.txt
 rules/user_prefs.template
-rules/v310.pre
-rules/v312.pre
-rules/v320.pre
-rules/v330.pre
 sa-compile.raw
 sa-learn.raw
 sa-update.raw
@@ -515,4 +458,5 @@
 t/get_all_headers.t
 t/data/Dumpheaders.pm
 t/spamd_user_rules_leak.t
+t/data/01_test_rules.pre
 t/config_tree_recurse.t

Modified: spamassassin/trunk/MANIFEST.SKIP
URL: http://svn.apache.org/viewvc/spamassassin/trunk/MANIFEST.SKIP?rev=730843&r1=730842&r2=730843&view=diff
==============================================================================
--- spamassassin/trunk/MANIFEST.SKIP (original)
+++ spamassassin/trunk/MANIFEST.SKIP Fri Jan  2 13:13:21 2009
@@ -41,9 +41,10 @@
 ^pm_to_blib$
 ^pod2html?-?.*$
 ^presentation$
-^rules/70_.*.cf$
-^rules/regression_tests.cf$
-^rules/20_mimeheader.cf$
+^rules/.*.cf$
+^rules/.*.pre$
+^rules/.*.pm$
+^rules/STATISTICS-set\d.txt$
 ^sa-filter$
 ^sa-learn$
 ^sa_with_mail_audit$

Modified: spamassassin/trunk/Makefile.PL
URL: http://svn.apache.org/viewvc/spamassassin/trunk/Makefile.PL?rev=730843&r1=730842&r2=730843&view=diff
==============================================================================
--- spamassassin/trunk/Makefile.PL (original)
+++ spamassassin/trunk/Makefile.PL Fri Jan  2 13:13:21 2009
@@ -152,15 +152,6 @@
 }
 
 
-# Gather the rules files in the range 00-69; we do this in perl because
-# it's more portable.  Also, plugin .pm files.
-my @datafiles = map { s,^rules/,,; $_ }
-                grep { -f $_ } (<rules/*.cf>, <rules/*.pm>);
-my $datafiles = join(' ', (grep 
-                { /^(?:(?:[0-6][0-9]|72)_\S+\.cf|\S+\.pm)/ } @datafiles),
-                qw(user_prefs.template languages sa-update-pubkey.txt));
-
-
 # See lib/ExtUtils/MakeMaker.pm for details of how to influence
 # the contents of the Makefile that is written.
 my %makefile = (
@@ -204,7 +195,7 @@
 	-DLOCAL_STATE_DIR="$(I_LOCALSTATEDIR)"',
 
     'macro' => {
-        DATAFILES => $datafiles,
+        DATAFILES => 'user_prefs.template languages sa-update-pubkey.txt'
     },
 
     # be quite explicit about this; afaik CPAN.pm is sensible using this

Modified: spamassassin/trunk/t/SATest.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/SATest.pm?rev=730843&r1=730842&r2=730843&view=diff
==============================================================================
--- spamassassin/trunk/t/SATest.pm (original)
+++ spamassassin/trunk/t/SATest.pm Fri Jan  2 13:13:21 2009
@@ -147,6 +147,8 @@
       or warn "cannot copy $file to log/test_rules_copy/$base";
   }
 
+  copy ("data/01_test_rules.pre", "log/test_rules_copy/01_test_rules.pre")
+    or warn "cannot copy data/01_test_rules.cf to log/test_rules_copy/01_test_rules.pre";
   copy ("data/01_test_rules.cf", "log/test_rules_copy/01_test_rules.cf")
     or warn "cannot copy data/01_test_rules.cf to log/test_rules_copy/01_test_rules.cf";
 

Modified: spamassassin/trunk/t/data/01_test_rules.cf
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/data/01_test_rules.cf?rev=730843&r1=730842&r2=730843&view=diff
==============================================================================
--- spamassassin/trunk/t/data/01_test_rules.cf (original)
+++ spamassassin/trunk/t/data/01_test_rules.cf Fri Jan  2 13:13:21 2009
@@ -18,6 +18,50 @@
 # limitations under the License.
 # </...@LICENSE>
 
+# copied from 10_default_prefs.cf
+clear_report_template
+report Spam detection software, running on the system "_HOSTNAME_", has
+report identified this incoming email as possible spam.  The original message
+report has been attached to this so you can view it (if it isn't spam) or label
+report similar future email.  If you have any questions, see
+report _CONTACTADDRESS_ for details.
+report
+report Content preview:  _PREVIEW_
+report
+report Content analysis details:   (_SCORE_ points, _REQD_ required)
+report
+report " pts rule name              description"
+report  ---- ---------------------- --------------------------------------------------
+report _SUMMARY_
+
+report_contact  @@CONTACT_ADDRESS@@
+
+clear_unsafe_report_template
+unsafe_report The original message was not completely plain text, and may be unsafe to
+unsafe_report open with some email clients; in particular, it may contain a virus,
+unsafe_report or confirm that your address can receive spam.  If you wish to view
+unsafe_report it, it may be safer to save it to a file and open it with an editor.
+
+clear_headers
+add_header all Checker-Version SpamAssassin _VERSION_ (_SUBVERSION_) on _HOSTNAME_
+add_header spam Flag _YESNOCAPS_
+add_header all Level _STARS(*)_
+add_header all Status "_YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_"
+
+required_score           5
+ok_locales              all
+ifplugin Mail::SpamAssassin::Plugin::TextCat
+ok_languages            all
+endif # Mail::SpamAssassin::Plugin::TextCat
+
+ifplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
+bayes_auto_learn_threshold_nonspam      0.1
+bayes_auto_learn_threshold_spam         12.0
+endif # Mail::SpamAssassin::Plugin::AutoLearnThreshold
+
+bayes_auto_learn                        1
+
+report_safe           1
 
 
 header TEST_NOREALNAME  From =~ /^["\s]*\<?\S+\@\S+\>?\s*$/
@@ -48,4 +92,119 @@
 describe TEST_INVALID_DATE Invalid Date: header (not RFC 2822)
 score TEST_INVALID_DATE    5
 
+header USER_IN_BLACKLIST    eval:check_from_in_blacklist()
+describe USER_IN_BLACKLIST  From: address is in the user's black-list
+tflags USER_IN_BLACKLIST    userconf noautolearn
+
+header USER_IN_BLACKLIST_TO     eval:check_to_in_blacklist()
+describe USER_IN_BLACKLIST_TO   User is listed in 'blacklist_to'
+tflags USER_IN_BLACKLIST_TO     userconf noautolearn
+
+header TEST_MSGID_OUTLOOK_INVALID    eval:check_outlook_message_id()
+describe TEST_MSGID_OUTLOOK_INVALID  Message-Id is fake (in Outlook Express format)
+score TEST_MSGID_OUTLOOK_INVALID     5
+
+header HASHCASH_20            eval:check_hashcash_value('20', '21')
+header HASHCASH_21            eval:check_hashcash_value('21', '22')
+header HASHCASH_22            eval:check_hashcash_value('22', '23')
+header HASHCASH_23            eval:check_hashcash_value('23', '24')
+header HASHCASH_24            eval:check_hashcash_value('24', '25')
+header HASHCASH_25            eval:check_hashcash_value('25', '26')
+header HASHCASH_HIGH          eval:check_hashcash_value('26', '9999')
+tflags HASHCASH_20            nice userconf
+tflags HASHCASH_21            nice userconf
+tflags HASHCASH_22            nice userconf
+tflags HASHCASH_23            nice userconf
+tflags HASHCASH_24            nice userconf
+tflags HASHCASH_25            nice userconf
+tflags HASHCASH_HIGH          nice userconf
+describe HASHCASH_20          Contains valid Hashcash token (20 bits)
+describe HASHCASH_21          Contains valid Hashcash token (21 bits)
+describe HASHCASH_22          Contains valid Hashcash token (22 bits)
+describe HASHCASH_23          Contains valid Hashcash token (23 bits)
+describe HASHCASH_24          Contains valid Hashcash token (24 bits)
+describe HASHCASH_25          Contains valid Hashcash token (25 bits)
+describe HASHCASH_HIGH        Contains valid Hashcash token (>25 bits)
+header HASHCASH_2SPEND        eval:check_hashcash_double_spend()
+describe HASHCASH_2SPEND      Hashcash token already spent in another mail
+tflags HASHCASH_2SPEND        userconf
+
+header MISSING_HB_SEP            eval:check_msg_parse_flags('missing_head_body_separator')
+describe MISSING_HB_SEP          Missing blank line between message header and body
+tflags MISSING_HB_SEP            userconf
+
+header X_MESSAGE_INFO            exists:X-Message-Info
+describe X_MESSAGE_INFO          Bulk email fingerprint (X-Message-Info) found
+
+header SORTED_RECIPS             eval:sorted_recipients()
+describe SORTED_RECIPS           Recipient list is sorted by address
+
+header SUSPICIOUS_RECIPS eval:similar_recipients('0.65','undef')
+describe SUSPICIOUS_RECIPS       Similar addresses in recipient list
+
+body GTUBE               /XJS\*C4JDBQADN1\.NSBN3\*2IDNEN\*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL\*C\.34X/
+describe GTUBE           Generic Test for Unsolicited Bulk Email
+score GTUBE              1000
+tflags GTUBE             userconf noautolearn
+
+header USER_IN_WHITELIST  eval:check_from_in_whitelist()
+describe USER_IN_WHITELIST        From: address is in the user's white-list
+tflags USER_IN_WHITELIST  userconf nice noautolearn
+score USER_IN_WHITELIST -100.000
+
+body BAYES_99         eval:check_bayes('0.99', '1.00')
+tflags BAYES_99               learn
+describe BAYES_99     Bayes spam probability is 99 to 100%
+score BAYES_99 0 0 3.5 3.5
+
+header USER_IN_WHITELIST_TO     eval:check_to_in_whitelist()
+describe USER_IN_WHITELIST_TO   User is listed in 'whitelist_to'
+tflags USER_IN_WHITELIST_TO     userconf nice noautolearn
+score USER_IN_WHITELIST_TO -6.000
+
+score SUBJECT_IN_BLACKLIST 100
+header SUBJECT_IN_BLACKLIST      eval:check_subject_in_blacklist()
+describe SUBJECT_IN_BLACKLIST    Subject: contains string in the user's black-list
+tflags SUBJECT_IN_BLACKLIST      userconf noautolearn
+
+score SUBJECT_IN_WHITELIST -100
+header SUBJECT_IN_WHITELIST      eval:check_subject_in_whitelist()
+describe SUBJECT_IN_WHITELIST    Subject: contains string in the user's white-list
+tflags SUBJECT_IN_WHITELIST      userconf nice noautolearn
+
+header __HAS_MSGID               MESSAGEID =~ /\S/
+header __SANE_MSGID              MESSAGEID =~ /^<[^<>\\ \t\n\r\x0b\x80-\xff]+\@[^<>\\ \t\n\r\x0b\x80-\xff]+>\s*$/m
+header __MSGID_COMMENT           MESSAGEID =~ /\(.*\)/m
+meta INVALID_MSGID               __HAS_MSGID && !(__SANE_MSGID || __MSGID_COMMENT)
+describe INVALID_MSGID           Message-Id is not valid, according to RFC 2822
+score INVALID_MSGID              2.999 2.603 2.489 1.900
+
+header TEST_MSGID_SPAM_CAPS      Message-ID =~ /^\s*<?[A-Z]+\@(?!(?:mailcity|whowhere)\.com)/
+score TEST_MSGID_SPAM_CAPS       5
+
+header INVALID_DATE              Date !~ /^\s*(?:(?i:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?\s*(?:[12]\d|3[01]|0?[1-9])\s+(?i:Jan|Feb|Ma[ry]|Apr|Ju[nl]|Aug|Sep|Oct|Nov|Dec)\s+(?:19[7-9]\d|2\d{3})\s+(?:[01]?\d|2[0-3])\:[0-5]\d(?::(?:[0-5]\d|60))?(?:\s+[AP]M)?(?:\s+(?:[+-][0-9]{4}|UT|[A-Z]{2,3}T|0000 GMT|"GMT"))?(?:\s*\(.*\))?\s*$/ [if-unset: Wed, 31 Jul 2002 16:41:57 +0200]
+describe INVALID_DATE            Invalid Date: header (not RFC 2822)
+score INVALID_DATE               2.303 1.651 1.329 1.245
+
+ifplugin Mail::SpamAssassin::Plugin::AWL
+header AWL                   eval:check_from_in_auto_whitelist()
+describe AWL                 From: address is in the auto white-list
+tflags AWL                   userconf noautolearn
+priority AWL                    1000
+endif # Mail::SpamAssassin::Plugin::AWL
+
+redirector_pattern      /^http:\/\/chkpt\.zdnet\.com\/chkpt\/\w+\/(.*)$/i
+redirector_pattern      /^http:\/\/www(?:\d+)?\.nate\.com\/r\/\w+\/(.*)$/i
+redirector_pattern      /^http:\/\/.+\.gov\/(?:.*\/)?externalLink\.jhtml\?.*url=(.*?)(?:&.*)?$/i
+redirector_pattern      /^http:\/\/redir\.internet\.com\/.+?\/.+?\/(.*)$/i
+redirector_pattern      /^http:\/\/(?:.*?\.)?adtech\.de\/.*(?:;|\|)link=(.*?)(?:;|$)/i
+redirector_pattern      m'^http.*?/redirect\.php\?.*(?<=[?&])goto=(.*?)(?:$|[&\#])'i
+redirector_pattern      m'^https?:/*(?:[^/]+\.)?emf\d\.com/r\.cfm.*?&r=(.*)'i
+
+ifplugin Mail::SpamAssassin::Plugin::DCC
+full DCC_CHECK          eval:check_dcc()
+describe DCC_CHECK      Listed in DCC (http://rhyolite.com/anti-spam/dcc/)
+tflags DCC_CHECK        net
+reuse DCC_CHECK
+endif
 

Added: spamassassin/trunk/t/data/01_test_rules.pre
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/data/01_test_rules.pre?rev=730843&view=auto
==============================================================================
--- spamassassin/trunk/t/data/01_test_rules.pre (added)
+++ spamassassin/trunk/t/data/01_test_rules.pre Fri Jan  2 13:13:21 2009
@@ -0,0 +1,22 @@
+loadplugin Mail::SpamAssassin::Plugin::Check
+loadplugin Mail::SpamAssassin::Plugin::URIDNSBL
+loadplugin Mail::SpamAssassin::Plugin::Hashcash
+loadplugin Mail::SpamAssassin::Plugin::SPF
+loadplugin Mail::SpamAssassin::Plugin::AWL
+loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
+loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
+loadplugin Mail::SpamAssassin::Plugin::ReplaceTags
+loadplugin Mail::SpamAssassin::Plugin::DKIM
+loadplugin Mail::SpamAssassin::Plugin::URIDetail
+loadplugin Mail::SpamAssassin::Plugin::HTTPSMismatch
+loadplugin Mail::SpamAssassin::Plugin::Bayes
+loadplugin Mail::SpamAssassin::Plugin::BodyEval
+loadplugin Mail::SpamAssassin::Plugin::DNSEval
+loadplugin Mail::SpamAssassin::Plugin::HTMLEval
+loadplugin Mail::SpamAssassin::Plugin::HeaderEval
+loadplugin Mail::SpamAssassin::Plugin::MIMEEval
+loadplugin Mail::SpamAssassin::Plugin::RelayEval
+loadplugin Mail::SpamAssassin::Plugin::URIEval
+loadplugin Mail::SpamAssassin::Plugin::WLBLEval
+loadplugin Mail::SpamAssassin::Plugin::VBounce
+

Modified: spamassassin/trunk/t/dcc.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/dcc.t?rev=730843&r1=730842&r2=730843&view=diff
==============================================================================
--- spamassassin/trunk/t/dcc.t (original)
+++ spamassassin/trunk/t/dcc.t Fri Jan  2 13:13:21 2009
@@ -20,8 +20,10 @@
 # ---------------------------------------------------------------------------
 
 %patterns = (
-	q{ spam reported to DCC }, 'dcc report',
-            );
+
+  q{ spam reported to DCC }, 'dcc report',
+
+);
 
 tstpre ("
 
@@ -34,8 +36,10 @@
 ok_all_patterns();
 
 %patterns = (
-	q{ Listed in DCC }, 'dcc',
-            );
+
+  q{ Listed in DCC }, 'dcc',
+
+);
 
 ok sarun ("-t < data/spam/gtubedcc.eml", \&patterns_run_cb);
 ok_all_patterns();