Mailing List Archive

svn commit: r453586 [6/7] - in /spamassassin/branches/jm_re2c_hacks: ./ build/ build/automc/ build/buildbot/ contrib/ lib/Mail/ lib/Mail/SpamAssassin/ lib/Mail/SpamAssassin/Bayes/ lib/Mail/SpamAssassin/BayesStore/ lib/Mail/SpamAssassin/Conf/ lib/Mail/S...
Modified: spamassassin/branches/jm_re2c_hacks/masses/perceptron.c
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/perceptron.c?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/perceptron.c (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/perceptron.c Fri Oct 6 05:46:56 2006
@@ -3,11 +3,12 @@
* generate the stuff in tmp.
*
* <@LICENSE>
- * Copyright 2004 Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*

Modified: spamassassin/branches/jm_re2c_hacks/masses/plugins/01_rule_timing.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/plugins/01_rule_timing.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/plugins/01_rule_timing.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/plugins/01_rule_timing.cf Fri Oct 6 05:46:56 2006
@@ -1,14 +1,15 @@
# config file to load the timing plugin
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/masses/plugins/HitFreqsRuleTiming.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/plugins/HitFreqsRuleTiming.pm?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/plugins/HitFreqsRuleTiming.pm (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/plugins/HitFreqsRuleTiming.pm Fri Oct 6 05:46:56 2006
@@ -2,14 +2,15 @@
# (derived from attachment 3055 on bug 4517)
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/masses/remove-ids-from-mclog
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/remove-ids-from-mclog?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/remove-ids-from-mclog (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/remove-ids-from-mclog Fri Oct 6 05:46:56 2006
@@ -9,11 +9,12 @@
# case the IDs will be read from each line.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/masses/rewrite-cf-with-new-scores
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/rewrite-cf-with-new-scores?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/rewrite-cf-with-new-scores (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/rewrite-cf-with-new-scores Fri Oct 6 05:46:56 2006
@@ -1,11 +1,12 @@
#!/usr/bin/perl -w
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/masses/rule-qa/corpus-hourly
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/rule-qa/corpus-hourly?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/rule-qa/corpus-hourly (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/rule-qa/corpus-hourly Fri Oct 6 05:46:56 2006
@@ -509,8 +509,12 @@

my $dir = create_rulemetadata_dir($rev);

- chdir $opt{tree} or die "cannot chdir $opt{tree}";
- my $cmd = "./masses/rule-qa/get-rulemetadata-for-revision ".
+ # argh. this is silly; ~bbmass/.corpus specifies "$PWD" in its
+ # "tree" path, so we have to ensure we're in the 'masses' dir
+ # for this to work!
+ chdir "$opt{tree}/masses" or die "cannot chdir $opt{tree}/masses";
+
+ my $cmd = "$opt{tree}/masses/rule-qa/get-rulemetadata-for-revision ".
"--rev=$rev --outputdir='$dir'";

system($cmd);

Modified: spamassassin/branches/jm_re2c_hacks/masses/rule-qa/corpus-nightly
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/rule-qa/corpus-nightly?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/rule-qa/corpus-nightly (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/rule-qa/corpus-nightly Fri Oct 6 05:46:56 2006
@@ -2,6 +2,7 @@

# settings are located in $HOME/.corpus

+echo "Using corpus-nightly settings from $HOME/.corpus"
. $HOME/.corpus

RSYNC_PASSWORD=$password
@@ -67,22 +68,25 @@
break;
fi

- pkill -TERM svn
- sleep 10
- pkill -KILL svn
-
- if svn update -r $revision < /dev/null && \
- svn update -r $revision rulesrc < /dev/null
- then
- break;
- fi
-
- if [ $retry -eq 120 ]; then
- echo "svn update failed" 1>&2
+ # if that failed, get aggressive about getting a full
+ # checkout, regardless of what may have been here already;
+ # delete most of the checkout to do so, and just use "svn co"
+ # instead of "svn up".
+
+ rm -rf rules lib build rulesrc spamd spamc
+ svn cleanup < /dev/null
+ svn co --non-interactive `svnpath` .
+
+ # just 10 times; our SVN repo shouldn't be *that* unreliable!
+ if [ $retry -eq 20 ]; then
+ echo "svn update/co failed" 1>&2
exit 1
fi
+
retry=$(( $retry + 1 ))
- sleep 20
+
+ # longer and longer between retries
+ sleep `expr 20 '*' $retry`
done
set -e


Modified: spamassassin/branches/jm_re2c_hacks/masses/rule-qa/get-rulemetadata-for-revision
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/rule-qa/get-rulemetadata-for-revision?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/rule-qa/get-rulemetadata-for-revision (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/rule-qa/get-rulemetadata-for-revision Fri Oct 6 05:46:56 2006
@@ -54,11 +54,28 @@

print "creating rule metadata file: $outfile\n";
my $tmpdir = "/tmp/rulemd.$$";
-svn_and_build();
-copy_md($outfile);
-system ("rm -rf $tmpdir");
+
+$SIG{TERM} = $SIG{INT} = sub {
+ cleanup_tmpdir(); die "killed";
+};
+
+eval {
+ svn_and_build();
+ copy_md($outfile);
+};
+if ($@) {
+ my $err = $@;
+ cleanup_tmpdir();
+ die $err;
+}
+
+cleanup_tmpdir();
exit;

+
+sub cleanup_tmpdir {
+ system ("rm -rf $tmpdir");
+}


sub configure {

Modified: spamassassin/branches/jm_re2c_hacks/masses/rule-qa/rule-hits-over-time
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/rule-qa/rule-hits-over-time?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/rule-qa/rule-hits-over-time (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/rule-qa/rule-hits-over-time Fri Oct 6 05:46:56 2006
@@ -3,14 +3,15 @@
# rule-hits-over-time - produce graphs of rule hits over time, using gnuplot
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/masses/score-ranges-from-freqs
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/score-ranges-from-freqs?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/score-ranges-from-freqs (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/score-ranges-from-freqs Fri Oct 6 05:46:56 2006
@@ -1,11 +1,12 @@
#!/usr/bin/perl -w
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/masses/uniq-scores
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/masses/uniq-scores?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/masses/uniq-scores (original)
+++ spamassassin/branches/jm_re2c_hacks/masses/uniq-scores Fri Oct 6 05:46:56 2006
@@ -1,11 +1,12 @@
#!/usr/bin/perl
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/10_default_prefs.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/10_default_prefs.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/10_default_prefs.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/10_default_prefs.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/20_dnsbl_tests.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/20_dnsbl_tests.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/20_dnsbl_tests.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/20_dnsbl_tests.cf Fri Oct 6 05:46:56 2006
@@ -5,14 +5,15 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/rules/20_head_tests.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/20_head_tests.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/20_head_tests.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/20_head_tests.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/20_html_tests.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/20_html_tests.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/20_html_tests.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/20_html_tests.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -221,9 +222,6 @@
describe HTML_IMAGE_RATIO_06 HTML has a low ratio of text to image area
describe HTML_IMAGE_RATIO_08 HTML has a low ratio of text to image area

-body HTML_LINK_IMAGE_BUG eval:html_test('anchor_image_bug')
-describe HTML_LINK_IMAGE_BUG HTML link plus image plus web bug
-
body HTML_LINK_PUSH_HERE eval:html_text_match('anchor', '(?i)(?:push|go|cl[1l]ck)\s*(?:here|this)')
describe HTML_LINK_PUSH_HERE HTML link text says "push here" or similar

@@ -265,9 +263,6 @@
describe HTML_ATTR_BAD HTML has many bad attributes in tags
body HTML_ATTR_UNIQUE eval:html_range('attr_unique_bad','0.5','1.0')
describe HTML_ATTR_UNIQUE HTML appears to have random attributes in tags
-
-body HTML_WEB_BUGS eval:html_test('web_bugs')
-describe HTML_WEB_BUGS Image tag intended to identify you

body HTML_TAG_BALANCE_BODY eval:html_tag_balance('body', '!= 0')
describe HTML_TAG_BALANCE_BODY HTML has unbalanced "body" tags

Modified: spamassassin/branches/jm_re2c_hacks/rules/20_net_tests.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/20_net_tests.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/20_net_tests.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/20_net_tests.cf Fri Oct 6 05:46:56 2006
@@ -12,11 +12,12 @@
# (as most of them do), please add it to rules/20_phrases.cf instead.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/23_bayes.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/23_bayes.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/23_bayes.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/23_bayes.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_accessdb.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_accessdb.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_accessdb.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_accessdb.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_antivirus.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_antivirus.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_antivirus.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_antivirus.cf Fri Oct 6 05:46:56 2006
@@ -5,14 +5,15 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_dcc.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_dcc.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_dcc.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_dcc.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_dkim.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_dkim.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_dkim.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_dkim.cf Fri Oct 6 05:46:56 2006
@@ -5,14 +5,15 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_domainkeys.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_domainkeys.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_domainkeys.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_domainkeys.cf Fri Oct 6 05:46:56 2006
@@ -5,14 +5,15 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_hashcash.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_hashcash.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_hashcash.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_hashcash.cf Fri Oct 6 05:46:56 2006
@@ -5,14 +5,15 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_pyzor.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_pyzor.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_pyzor.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_pyzor.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_razor2.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_razor2.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_razor2.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_razor2.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_replace.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_replace.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_replace.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_replace.cf Fri Oct 6 05:46:56 2006
@@ -5,14 +5,15 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_spf.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_spf.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_spf.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_spf.cf Fri Oct 6 05:46:56 2006
@@ -5,14 +5,15 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_textcat.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_textcat.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_textcat.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_textcat.cf Fri Oct 6 05:46:56 2006
@@ -12,11 +12,12 @@
# (as most of them do), please add it to rules/20_phrases.cf instead.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/25_uribl.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/25_uribl.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/25_uribl.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/25_uribl.cf Fri Oct 6 05:46:56 2006
@@ -5,14 +5,15 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/rules/60_awl.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/60_awl.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/60_awl.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/60_awl.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/60_shortcircuit.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/60_shortcircuit.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/60_shortcircuit.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/60_shortcircuit.cf Fri Oct 6 05:46:56 2006
@@ -5,14 +5,15 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/rules/60_whitelist.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/60_whitelist.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/60_whitelist.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/60_whitelist.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_dkim.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_dkim.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_dkim.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_dkim.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_spf.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_spf.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_spf.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_spf.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_subject.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_subject.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_subject.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/60_whitelist_subject.cf Fri Oct 6 05:46:56 2006
@@ -5,11 +5,12 @@
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/active.list
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/active.list?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/active.list (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/active.list Fri Oct 6 05:46:56 2006
@@ -1,5 +1,5 @@
# active ruleset list, automatically generated from http://ruleqa.spamassassin.org/
-# with results from: bb-doc bb-jm bb-zmi cthielen daf dos parkerm theo wtogami
+# with results from: bb-doc bb-jm bb-zmi cthielen daf dos parkerm theo zmi

# good enough
ADVANCE_FEE_3
@@ -8,16 +8,28 @@
ADVANCE_FEE_4

# tflags userconf
+ALL_TRUSTED
+
+# tflags userconf
AWL

# good enough
AXB_FAKETZ

# good enough
-BAD_ENC_HEADER
+BANG_OPRAH

# good enough
-BANG_OPRAH
+BASE64_LENGTH_78
+
+# good enough
+BASE64_LENGTH_79
+
+# good enough
+BASE64_LENGTH_80
+
+# good enough
+BASE64_LENGTH_90

# tflags learn
BAYES_00
@@ -47,7 +59,7 @@
BAYES_99

# good enough
-BODY_ENHANCEMENT2
+BROKEN_RATWARE_BOM

# good enough
CONFIRMED_FORGED
@@ -59,6 +71,9 @@
DATE_IN_FUTURE_03_06

# good enough
+DATE_IN_FUTURE_06_12
+
+# good enough
DATE_IN_FUTURE_12_24

# good enough
@@ -80,6 +95,27 @@
DATE_SPAMWARE_Y2K

# good enough
+DC_GIF_MULTI_LARGO
+
+# good enough
+DC_GIF_UNO_LARGO
+
+# good enough
+DC_IMAGE_SPAM_HTML
+
+# good enough
+DC_IMAGE_SPAM_TEXT
+
+# good enough
+DC_IMG_HTML_RATIO
+
+# good enough
+DC_IMG_TEXT_RATIO
+
+# good enough
+DC_PNG_UNO_LARGO
+
+# good enough
DEAR_WINNER

# tflags net
@@ -110,6 +146,24 @@
DNS_FROM_SECURITYSAGE

# good enough
+DOS_DOUBLE_SOTCK
+
+# good enough
+DOS_LET_GO_JOB
+
+# good enough
+DOS_MORTGAGE
+
+# good enough
+DOS_STOCK_O_PRICE
+
+# good enough
+DOS_TWO_MIS_STOCK
+
+# good enough
+DOS_YOUR_PLACE
+
+# good enough
DRUGS_ANXIETY

# good enough
@@ -152,17 +206,11 @@
DRUG_ED_SILD

# good enough
-EARN_PER_WEEK
-
-# good enough
EMPTY_MESSAGE

# good enough
EM_ROLEX

-# good enough
-ENGLISH_UCE_SUBJECT
-
# tflags userconf
ENV_AND_HDR_SPF_MATCH

@@ -173,6 +221,9 @@
EXCUSE_4

# good enough
+EXTRA_MPART_TYPE
+
+# good enough
FAKE_HELO_LYCOS

# good enough
@@ -191,6 +242,9 @@
FB_CIALIS_LEO3

# good enough
+FB_OBFU_URI_COM
+
+# good enough
FB_SAVE_LEO

# good enough
@@ -200,9 +254,6 @@
FB_VALIUM_LEO2

# good enough
-FB_VIAGRA_LEO2
-
-# good enough
FB_VIAGRA_LEO3

# good enough
@@ -221,13 +272,10 @@
FH_FROM_TO_PERC

# good enough
-FH_HELO_GMAILSMTP
-
-# good enough
FH_RCVD_WITHSMTPFOR

# good enough
-FM_CLAIM_IPOD
+FM_CUSTOMLOGODSGNc

# good enough
FORGED_AOL_TAGS
@@ -296,10 +344,10 @@
FORGED_YAHOO_RCVD

# good enough
-FORWARD_LOOKING
+FREE_PORN

# good enough
-FREE_PORN
+FREE_QUOTE_INSTANT

# good enough
FROM_ALL_NUMS
@@ -317,22 +365,19 @@
FROM_HAS_MIXED_NUMS

# good enough
-FROM_HAS_ULINE_NUMS
-
-# good enough
FROM_ILLEGAL_CHARS

# good enough
-FROM_LOCAL_NOVOWEL
+FROM_LOCAL_DIGITS

# good enough
-FROM_NO_USER
+FROM_LOCAL_HEX

# good enough
-FROM_OFFERS
+FROM_LOCAL_NOVOWEL

# good enough
-FS_START_DOYOU
+FROM_NO_USER

# good enough
FS_START_DOYOU2
@@ -341,12 +386,6 @@
FUZZY_MERIDIA

# good enough
-FUZZY_SPRM
-
-# good enough
-FU_HOODIA
-
-# good enough
GAPPY_SUBJECT

# good enough
@@ -389,9 +428,6 @@
HASHCASH_HIGH

# good enough
-HEADER_COUNT_CTYPE
-
-# good enough
HEADER_SPAM

# good enough
@@ -401,15 +437,15 @@
HELO_DYNAMIC_CHELLO_NL

# good enough
-HELO_DYNAMIC_DHCP
-
-# good enough
HELO_DYNAMIC_DIALIN

# good enough
HELO_DYNAMIC_HCC

# good enough
+HELO_DYNAMIC_HEXIP
+
+# good enough
HELO_DYNAMIC_HOME_NL

# good enough
@@ -422,7 +458,7 @@
HELO_DYNAMIC_SPLIT_IP

# good enough
-HS_EXTRA
+HG_HORMONE

# good enough
HS_FORGED_OE_FW
@@ -431,15 +467,9 @@
HS_GETMEOFF

# good enough
-HS_INDEX_PARAM
-
-# good enough
HS_MEETUP_FOR_SEX

# good enough
-HS_PHARMA_1
-
-# good enough
HS_SUBJ_ONLINE_PHARMACEUTICAL

# tflags userconf
@@ -455,33 +485,21 @@
HTTP_77

# good enough
-HTTP_ESCAPED_HOST
-
-# good enough
HTTP_EXCESSIVE_ESCAPES

# good enough
-INTERRUPTUS
+INFO_TLD

# good enough
INVALID_DATE

# good enough
-INVALID_MSGID
-
-# good enough
INVALID_TZ_CST

# good enough
-INVALID_TZ_GMT
-
-# good enough
INVESTMENT_ADVICE

# good enough
-INVESTMENT_EXPERT
-
-# good enough
JM_LC_MID

# good enough
@@ -500,13 +518,7 @@
KAM_STOCKTIP15

# good enough
-KAM_STOCKTIP2
-
-# good enough
-KAM_STOCKTIP20
-
-# good enough
-KAM_STOCKTIP3
+KAM_STOCKTIP21

# good enough
KAM_STOCKTIP6
@@ -533,6 +545,9 @@
MID_MJW_STOX

# good enough
+MID_OUTLOOK_ZZZNN
+
+# good enough
MILLION_USD

# good enough
@@ -542,9 +557,6 @@
MIME_BASE64_BLANKS

# good enough
-MIME_BASE64_NO_NAME
-
-# good enough
MIME_BASE64_TEXT

# good enough
@@ -560,30 +572,18 @@
MIME_BOUND_MANY_HEX

# good enough
-MIME_BOUND_RKFINDY
-
-# good enough
-MIME_HTML_MOSTLY
-
-# good enough
MISSING_MIMEOLE

# good enough
-MORE_SEX
+MISSING_MIME_HB_SEP

# good enough
-MPART_ALT_DIFF
+MORE_SEX

# good enough
MSGID_DOLLARS_RANDOM

# good enough
-MSGID_LONG
-
-# good enough
-MSGID_NO_HOST
-
-# good enough
MSGID_OUTLOOK_INVALID

# good enough
@@ -604,6 +604,9 @@
# good enough
MULTIPART_ALT_NON_TEXT

+# good enough
+NOT_ADVISOR
+
# tflags net
NO_DNS_FOR_FROM

@@ -626,9 +629,6 @@
NUMERIC_HTTP_ADDR

# good enough
-ONLINE_PHARMACY
-
-# good enough
PERCENT_RANDOM

# good enough
@@ -640,9 +640,6 @@
# good enough
PREST_NON_ACCREDITED

-# good enough
-PRIORITY_NO_NAME
-
# tflags net
PYZOR_CHECK

@@ -659,9 +656,15 @@
RATWARE_HASH_2

# good enough
+RATWARE_HASH_2_BUG2108
+
+# good enough
RATWARE_HASH_2_V2

# good enough
+RATWARE_HASH_2_V2_BUG2108
+
+# good enough
RATWARE_MOZ_MALFORMED

# good enough
@@ -800,10 +803,10 @@
RCVD_IN_XBL

# good enough
-RCVD_NUMERIC_HELO
+RCVD_LSO_SND

# good enough
-REMOVE_BEFORE_LINK
+RCVD_NUMERIC_HELO

# good enough
REPLICA_WATCH
@@ -860,10 +863,10 @@
SPF_SOFTFAIL

# good enough
-SPOOF_COM2COM
+SPOOF_COM2OTH

# good enough
-SPOOF_COM2OTH
+SPOOF_NET2COM

# good enough
STOCK_ALERT
@@ -893,9 +896,6 @@
SUBJECT_NEEDS_ENCODING

# good enough
-SUBJECT_NOVOWEL
-
-# good enough
SUBJECT_SEXUAL

# good enough
@@ -905,9 +905,6 @@
SUBJ_RE_NUM

# good enough
-SUB_HELLO
-
-# good enough
SUSPICIOUS_RECIPS

# good enough
@@ -917,9 +914,6 @@
TO_NO_USER

# good enough
-TRACKER_ID
-
-# good enough
TT_MSGID_TRUNC

# good enough
@@ -929,12 +923,6 @@
TVD_APP_LOAN

# good enough
-TVD_BODY_END_STAR
-
-# good enough
-TVD_DEAD_JOB
-
-# good enough
TVD_DEAR_HOMEOWNER

# good enough
@@ -944,12 +932,6 @@
TVD_EB_PHISH

# good enough
-TVD_ENHANCE
-
-# good enough
-TVD_FINGER_01
-
-# good enough
TVD_FINGER_02

# good enough
@@ -974,15 +956,18 @@
TVD_FUZZY_SYMBOL

# good enough
-TVD_FW_GRAPHIC_NAME_LONG
+TVD_FW_GRAPHIC_ID3

# good enough
-TVD_FW_GRAPHIC_NAME_MID
+TVD_FW_GRAPHIC_ID3_2

# good enough
TVD_FW_MESG1

# good enough
+TVD_GET_STOCK
+
+# good enough
TVD_HEAD_KERNEL

# good enough
@@ -992,15 +977,15 @@
TVD_LINK_SAVE

# good enough
-TVD_LONG_WORD5
-
-# good enough
TVD_NOT_SATISFIED

# good enough
TVD_PH_7

# good enough
+TVD_PH_FR5
+
+# good enough
TVD_PH_REC

# good enough
@@ -1031,9 +1016,6 @@
TVD_RATWARE_CB

# good enough
-TVD_RATWARE_CB_2
-
-# good enough
TVD_RATWARE_MSGID_01

# good enough
@@ -1049,6 +1031,9 @@
TVD_SPACED_SUBJECT_WORD3

# good enough
+TVD_SPACED_SUBJECT_WORD5
+
+# good enough
TVD_SPACED_WORDS

# good enough
@@ -1058,6 +1043,9 @@
TVD_STOCK1

# good enough
+TVD_SUBJ_ACC_NUM
+
+# good enough
TVD_SUBJ_APPR_LOAN

# good enough
@@ -1067,6 +1055,9 @@
TVD_SUBJ_FINGER_03

# good enough
+TVD_SUBJ_FINGER_04
+
+# good enough
TVD_SUBJ_OWE

# good enough
@@ -1076,51 +1067,9 @@
TVD_UA_FOSTERING

# good enough
-TVD_UNDER_VALUED
-
-# good enough
-TVD_VISIT_PHARMA
-
-# good enough
TVD_VIS_HIDDEN

# good enough
-BASE64_LENGTH_78
-
-# good enough
-BASE64_LENGTH_79
-
-# good enough
-BASE64_LENGTH_80
-
-# good enough
-BASE64_LENGTH_90
-
-# good enough
-DC_GIF_MULTI_LARGO
-
-# good enough
-DC_GIF_UNO_LARGO
-
-# good enough
-DC_IMAGE_SPAM_HTML
-
-# good enough
-DC_IMAGE_SPAM_TEXT
-
-# good enough
-DC_IMG_HTML_RATIO
-
-# good enough
-DC_IMG_TEXT_RATIO
-
-# good enough
-DC_PNG_UNO_LARGO
-
-# good enough
-DOS_YOUR_PLACE
-
-# good enough
FORGED_IMS_HTML

# good enough
@@ -1133,25 +1082,16 @@
FORGED_OUTLOOK_TAGS

# good enough
-KAM_STOCKTIP9
-
-# good enough
-RATWARE_HASH_2_BUG2108
-
-# good enough
-RATWARE_HASH_2_V2_BUG2108
-
-# good enough
RATWARE_MS_HASH

# good enough
RATWARE_OUTLOOK_NONAME

# good enough
-TVD_FW_GRAPHIC_ID3
+TVD_FW_GRAPHIC_ID1

# good enough
-TVD_FW_GRAPHIC_ID3_2
+TVD_FW_GRAPHIC_ID2

# good enough
UNCLAIMED_MONEY
@@ -1159,9 +1099,6 @@
# good enough
UNCLOSED_BRACKET

-# good enough
-UNIQUE_WORDS
-
# tflags userconf
UNPARSEABLE_RELAY

@@ -1203,9 +1140,6 @@

# tflags net
URIBL_WS_SURBL
-
-# good enough
-URI_4YOU

# good enough
URI_L_PHP

Modified: spamassassin/branches/jm_re2c_hacks/rules/regression_tests.cf
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/regression_tests.cf?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/regression_tests.cf (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/regression_tests.cf Fri Oct 6 05:46:56 2006
@@ -4,11 +4,12 @@
# distributed.
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#

Modified: spamassassin/branches/jm_re2c_hacks/rules/rule2xs.pre
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/rules/rule2xs.pre?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/rules/rule2xs.pre (original)
+++ spamassassin/branches/jm_re2c_hacks/rules/rule2xs.pre Fri Oct 6 05:46:56 2006
@@ -1,4 +1,4 @@

-loadplugin Mail::SpamAssassin::Plugin::BodyRuleBaseExtractor
+# loadplugin Mail::SpamAssassin::Plugin::BodyRuleBaseExtractor
loadplugin Mail::SpamAssassin::Plugin::Rule2XSBody


Modified: spamassassin/branches/jm_re2c_hacks/sa-learn.raw
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/sa-learn.raw?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/sa-learn.raw (original)
+++ spamassassin/branches/jm_re2c_hacks/sa-learn.raw Fri Oct 6 05:46:56 2006
@@ -1,10 +1,11 @@
#!/usr/bin/perl -w -T
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -194,6 +195,27 @@
}
}

+my $post_config = '';
+
+# kluge to support old check_bayes_db operation
+# bug 3799: init() will go r/o with the configured DB, and then dbpath needs
+# to override. Just access the dbpath version via post_config_text.
+if ( defined $bayes_override_path ) {
+ # Add a default prefix if the path is a directory
+ if ( -d $bayes_override_path ) {
+ $bayes_override_path = File::Spec->catfile( $bayes_override_path, 'bayes' );
+ }
+
+ $post_config .= "bayes_path $bayes_override_path\n";
+}
+
+# These options require bayes_scanner, which requires "use_bayes 1", but
+# that's not necessary for these commands.
+if (defined $opt{'dump'} || defined $opt{'import'} || defined $opt{'clear'} ||
+ defined $opt{'backup'} || defined $opt{'restore'}) {
+ $post_config .= "use_bayes 1\n";
+}
+
# create the tester factory
$spamtest = new Mail::SpamAssassin(
{
@@ -207,6 +229,7 @@
PREFIX => $PREFIX,
DEF_RULES_DIR => $DEF_RULES_DIR,
LOCAL_RULES_DIR => $LOCAL_RULES_DIR,
+ post_config_text => $post_config,
}
);

@@ -215,20 +238,6 @@
if (Mail::SpamAssassin::Util::am_running_on_windows()) {
binmode(STDIN); # bug 4363
binmode(STDOUT);
-}
-
-# kluge to support old check_bayes_db operation
-if ( defined $bayes_override_path ) {
-
- # Add a default prefix if the path is a directory
- if ( -d $bayes_override_path ) {
- $bayes_override_path = File::Spec->catfile( $bayes_override_path, 'bayes' );
- }
-
- # init() above ties to the db r/o and leaves it that way
- # so we need to untie before dumping (it'll reopen)
- $spamtest->finish_learner();
- $spamtest->{conf}->{bayes_path} = $bayes_override_path;
}

if ( defined $opt{'dump'} ) {

Modified: spamassassin/branches/jm_re2c_hacks/sa-update.raw
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/sa-update.raw?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/sa-update.raw (original)
+++ spamassassin/branches/jm_re2c_hacks/sa-update.raw Fri Oct 6 05:46:56 2006
@@ -1,11 +1,12 @@
#!/usr/bin/perl -w -T

# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -258,6 +259,13 @@

dbg("gpg: reading in gpgfile ".$opt{'gpgkeyfile'});
while(my $key = <GPG>) {
+ chomp $key;
+
+ $key =~ s/#.*$//; # remove comments
+ $key =~ s/^\s+//; # remove leading whitespace
+ $key =~ s/\s+$//; # remove tailing whitespace
+ next unless ($key); # skip empty lines
+
unless (is_valid_gpg_key_id($key)) {
dbg("gpg: invalid key id $key");
next;
@@ -328,6 +336,12 @@
@channels = ();
while(my $chan = <CHAN>) {
chomp $chan;
+
+ $chan =~ s/#.*$//; # remove comments
+ $chan =~ s/^\s+//; # remove leading whitespace
+ $chan =~ s/\s+$//; # remove tailing whitespace
+ next unless ($chan); # skip empty lines
+
$chan = lc $chan;
dbg("channel: adding $chan");
push(@channels, $chan);
@@ -337,14 +351,30 @@

# untaint the channel listing
for(my $ind = 0; $ind < @channels; $ind++) {
+ local ($1); # bug 5061: prevent random taint flagging of $1
if ($channels[$ind] =~ /^([a-zA-Z0-9._-]+)$/) {
$channels[$ind] = $1;
}
else {
+ dbg("channel: skipping invalid channel: $channels[$ind]");
splice @channels, $ind, 1;
+ $ind--; # the next element takes the place of the deleted one
}
}

+# --lint check the current site config before we download any updates so that
+# a site with a broken config, with sa-update in a cron job, doesn't hammer
+# the update servers continously downloading and then aborting the update when
+# the lint check of the update (with the site config included) fails.
+# Wait until now to do it since nothing above depends on a successful --lint.
+
+if (!lint_check_dir(File::Spec->catfile($opt{'updatedir'}, "doesnotexist"))) {
+ warn "error: lint check of current site config failed, cannot continue\n";
+ dbg("diag: local site config must successfully lint before doing updates, ".
+ "exiting with code 2");
+ exit 2;
+}
+
my $res = Net::DNS::Resolver->new();

my $ua = LWP::UserAgent->new();
@@ -457,7 +487,12 @@
my %mirrors = ();
my @mirrors = split(/^/, $mirby);
while(my $mirror = shift @mirrors) {
- next if ($mirror =~ /^#/); # explicitly skip comments
+ chomp $mirror;
+
+ $mirror =~ s/#.*$//; # remove comments
+ $mirror =~ s/^\s+//; # remove leading whitespace
+ $mirror =~ s/\s+$//; # remove tailing whitespace
+ next unless ($mirror); # skip empty lines

# We only support HTTP right now
if ($mirror !~ m@^http://@i) {
@@ -465,7 +500,6 @@
next;
}

- chomp $mirror;
my @data;

dbg("channel: found mirror $mirror");
@@ -687,113 +721,165 @@

dbg("channel: lint check succeeded, extracting archive to $UPDDir...");

- if (-d $UPDDir) {
- # ok that worked, too late to stop now! At this stage, if there are
- # errors, we have to attempt to carry on regardless, since we've already
- # blown away the old ruleset.
- dbg("channel: point of no return for existing $UPDDir");
-
- # clean out the previous channel files, if they exist
- if (-f $PREFile && ! unlink $PREFile ) {
- warn("channel: attempt to rm channel pre file failed, attempting to continue anyway");
- }
- if (-f $CFFile && ! unlink $CFFile ) {
- warn("channel: attempt to rm channel cf file failed, attempting to continue anyway");
- }
- if (!clean_update_dir($UPDDir)) {
- warn("channel: attempt to rm channel directory failed, attempting to continue anyway");
- }
- }
- else {
- # create the dir, if it doesn't exist
- dbg("channel: creating $UPDDir");
- if (!mkpath([$UPDDir], 0, 0777)) {
- # bug 4941: try to get rid of the empty directories to avoid leaving SA
- # with no rules.
- rmdir $UPDDir;
- rmdir $opt{'updatedir'};
- die "fatal: can't create $UPDDir: $!\n";
- }
-
- # ok, that test worked. it's now likely that the .cf's will
- # similarly be ok to rename, too. Too late to stop from here on
- dbg("channel: point of no return for new $UPDDir");
- }
+ my @totry = (
+ {
+ 'try' => sub {
+ if (-d $UPDDir) {
+ # ok that worked, too late to stop now! At this stage, if there are
+ # errors, we have to attempt to carry on regardless, since we've already
+ # blown away the old ruleset.
+ dbg("channel: point of no return for existing $UPDDir");
+
+ # clean out the previous channel files, if they exist
+ if (-f $PREFile && ! unlink $PREFile ) {
+ warn("channel: attempt to rm channel pre file failed, attempting to continue anyway");
+ }
+ if (-f $CFFile && ! unlink $CFFile ) {
+ warn("channel: attempt to rm channel cf file failed, attempting to continue anyway");
+ }
+ if (!clean_update_dir($UPDDir)) {
+ warn("channel: attempt to rm channel directory failed, attempting to continue anyway");
+ }
+ }
+ else {
+ # create the dir, if it doesn't exist
+ dbg("channel: creating $UPDDir");
+ if (!mkpath([$UPDDir], 0, 0777)) {
+ warn "channel: can't create channel directory $UPDDir: $!\n";
+ return 0;
+ }
+
+ # ok, that test worked. it's now likely that the .cf's will
+ # similarly be ok to rename, too. Too late to stop from here on
+ dbg("channel: point of no return for new $UPDDir");
+ }

- # extract the files again for the last time
- if (!taint_safe_archive_extract($UPDDir, $content_file)) {
- channel_failed("channel: archive extraction failed");
+ return 1;
+ },

- # bug 4941: try to get rid of the empty directories to avoid leaving SA
- # with no rules.
- if (!clean_update_dir($UPDDir)) {
- warn "channel: attempt to clean up failed extraction also failed!\n";
- }
- else {
- rmdir $UPDDir;
- rmdir $opt{'updatedir'};
- }
+ 'rollback' => sub {
+ dbg("channel: attempting to remove the channel and update directories");

- next;
- }
+ # bug 4941: try to get rid of the empty directories to avoid leaving SA
+ # with no rules.
+ rmdir $UPDDir;
+ rmdir $opt{'updatedir'};
+ },
+ },
+
+ {
+ 'try' => sub {
+ # extract the files again for the last time
+ if (!taint_safe_archive_extract($UPDDir, $content_file)) {
+ channel_failed("channel: archive extraction failed");
+ return 0;
+ }

- # Write out the mirby file, not fatal if it doesn't work
- dbg("channel: creating MIRRORED.BY file");
- if (open(MBY, ">$mirby_path")) {
- print MBY $mirby;
- close(MBY);
- }
- else {
- warn "error: can't write new MIRRORED.BY file: $!\n";
- }
+ return 1;
+ },

- # the last step is to create the .cf and .pre files to include the
- # channel files
- my @CF = ();
- my @PRE = ();
+ 'rollback' => sub {
+ dbg("channel: attempting to clean out the channel update directory");

- dbg("channel: creating update cf/pre files");
+ # bug 4941: try to get rid of the empty directories to avoid leaving SA
+ # with no rules.
+ if (!clean_update_dir($UPDDir)) {
+ warn "channel: attempt to clean up failed extraction also failed!\n";
+ }
+ },
+ },

- # Put in whatever metadata we need
- push(@CF, "# UPDATE version $newV\n");
+ {
+ 'try' => sub {
+ # Write out the mirby file, not fatal if it doesn't work
+ dbg("channel: creating MIRRORED.BY file");
+ if (open(MBY, ">$mirby_path")) {
+ print MBY $mirby;
+ close(MBY);
+ }
+ else {
+ warn "error: can't write new MIRRORED.BY file: $!\n";
+ }

- # Find all of the cf and pre files
- unless (opendir(DIR, $UPDDir)) {
- die "fatal: can't access $UPDDir: $!\n";
- }
- while(my $file = readdir(DIR)) {
- $file =~ /^(.+)$/; # untaint
- $file = $1;
- my $path = File::Spec->catfile($UPDDir, $file);
- next unless (-f $path); # shouldn't ever happen
+ return 1;
+ },

- if ($file =~ /\.cf$/) {
- push(@CF, "include $nicechannel/$file\n");
- }
- elsif ($file =~ /\.pre$/) {
- push(@PRE, "include $nicechannel/$file\n");
- }
- else {
- next;
- }
+ 'rollback' => sub {
+ },
+ },

- dbg("channel: adding $file");
- }
- closedir(DIR);
+ {
+ 'try' => sub {
+ # the last step is to create the .cf and .pre files to include the
+ # channel files
+ my @CF = ();
+ my @PRE = ();

- # Finally, write out the files to include the update files
- if (!write_channel_file($PREFile, \@PRE)) {
- channel_failed("channel: writing of $PREFile failed");
- next;
- }
- if (!write_channel_file($CFFile, \@CF)) {
- channel_failed("channel: writing of $CFFile failed");
- next;
- }
+ dbg("channel: creating update cf/pre files");
+
+ # Put in whatever metadata we need
+ push(@CF, "# UPDATE version $newV\n");

- $exit = 0; # "exit 0" means an update occurred

- dbg("channel: update complete");
+ # Find all of the cf and pre files
+ unless (opendir(DIR, $UPDDir)) {
+ die "fatal: can't access $UPDDir: $!\n";
+ }
+ while(my $file = readdir(DIR)) {
+ $file =~ /^(.+)$/; # untaint
+ $file = $1;
+ my $path = File::Spec->catfile($UPDDir, $file);
+ next unless (-f $path); # shouldn't ever happen
+
+ if ($file =~ /\.cf$/) {
+ push(@CF, "include $nicechannel/$file\n");
+ }
+ elsif ($file =~ /\.pre$/) {
+ push(@PRE, "include $nicechannel/$file\n");
+ }
+ else {
+ next;
+ }
+
+ dbg("channel: adding $file");
+ }
+ closedir(DIR);
+
+ # Finally, write out the files to include the update files
+ if (!write_channel_file($PREFile, \@PRE)) {
+ channel_failed("channel: writing of $PREFile failed");
+ return 0;
+ }
+ if (!write_channel_file($CFFile, \@CF)) {
+ channel_failed("channel: writing of $CFFile failed");
+ return 0;
+ }
+
+ $exit = 0; # "exit 0" means an update occurred
+ dbg("channel: update complete");
+
+ return 1;
+ },
+
+ 'rollback' => sub {
+ },
+ },
+
+ );
+
+ my $error;
+ for(my $elem = 0; $elem <= $#totry; $elem++) {
+ if (!&{$totry[$elem]->{'try'}}()) {
+ $error = $elem;
+ last;
+ }
+ }
+ if (defined $error) {
+ dbg("channel: channel failed, attempting rollback");
+ for(my $elem = $error; $elem >= 0; $elem--) {
+ &{$totry[$elem]->{'rollback'}}();
+ }
+ }
}

##############################################################################
@@ -1134,8 +1220,8 @@
my $dir = shift;

unless (opendir(DIR, $dir)) {
- warn "error: can't readdir $dir: $!\n";
- dbg("generic: attempt to readdir ($dir) failed");
+ warn "error: can't opendir $dir: $!\n";
+ dbg("generic: attempt to opendir ($dir) failed");
return;
}
while(my $file = readdir(DIR)) {
@@ -1166,7 +1252,6 @@
# "config" or otherwise be more terse. :(
my $spamtest = new Mail::SpamAssassin( {
rules_filename => $dir,
- site_rules_filename => File::Spec->catfile($dir, "doesnotexist"),
userprefs_filename => File::Spec->catfile($dir, "doesnotexist"),

local_tests_only => 1,
@@ -1218,6 +1303,8 @@
--gpg and --nogpg Use (or do not use) GPG to verify updates
(--gpg is assumed by use of the above
--gpgkey and --gpgkeyfile options)
+ --import file Import GPG key(s) from file into sa-update's
+ keyring. Use multiple times for multiple files

-D, --debug [area=n,...] Print debugging messages
-V, --version Print version
@@ -1284,7 +1371,9 @@
and signing with their own key.

By default, sa-update trusts key id C<265FA05B>, which is the standard
-SpamAssassin release key. Use this option to add more trusted keys.
+SpamAssassin release key. Use this option to trust additional keys. See the
+B<--import> option for how to add keys to sa-update's keyring. For sa-update
+to use a key it must be in sa-update's keyring and trusted.

For multiple keys, use the option multiple times. i.e.:

@@ -1305,6 +1394,20 @@

@@LOCAL_RULES_DIR@@/sa-update-keys

+=item B<--import>
+
+Use to import GPG key(s) from a file into the sa-update keyring which is
+located in the directory specified by B<--gpghomedir>. Before using channels
+from third party sources, you should use this option to import the GPG key(s)
+used by those channels. You must still use the B<--gpgkey> or B<--gpgkeyfile>
+options above to get sa-update to trust imported keys.
+
+To import multiple keys, use the option multiple times. i.e.:
+
+ sa-update --import channel1-GPG.KEY --import channel2-GPG.KEY
+
+Note: use of this option automatically enables GPG verification.
+
=item B<-D> [I<area,...>], B<--debug> [I<area,...>]

Produce debugging output. If no areas are listed, all debugging information is
@@ -1335,6 +1438,8 @@
installed successfully.

An exit code of C<1> means no fresh updates were available.
+
+An exit code of C<2> means that a lint check of the current site config failed.

An exit code of C<4> or higher, indicates that errors occurred while
attempting to download and extract updates.

Modified: spamassassin/branches/jm_re2c_hacks/spamassassin.raw
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamassassin.raw?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamassassin.raw (original)
+++ spamassassin/branches/jm_re2c_hacks/spamassassin.raw Fri Oct 6 05:46:56 2006
@@ -1,11 +1,12 @@
#!/usr/bin/perl -w

# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@@ -235,6 +236,9 @@
binmode(STDIN); # bug 4363
binmode(STDOUT);
}
+
+# bug 5048: --lint should not cause network accesses
+if ($opt{'lint'}) { $opt{'local'} = 1; }

# create the tester factory
my $spamtest = new Mail::SpamAssassin(

Modified: spamassassin/branches/jm_re2c_hacks/spamc/configure
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamc/configure?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamc/configure (original)
+++ spamassassin/branches/jm_re2c_hacks/spamc/configure Fri Oct 6 05:46:56 2006
@@ -2232,7 +2232,7 @@


if test "x$GCC" = "xyes" ; then
- CFLAGS="-Wall $CFLAGS"
+ CFLAGS="-Wall -Wextra -Wdeclaration-after-statement $CFLAGS"
fi



Modified: spamassassin/branches/jm_re2c_hacks/spamc/configure.in
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamc/configure.in?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamc/configure.in (original)
+++ spamassassin/branches/jm_re2c_hacks/spamc/configure.in Fri Oct 6 05:46:56 2006
@@ -18,7 +18,7 @@
AC_PROG_CC

if test "x$GCC" = "xyes" ; then
- CFLAGS="-Wall $CFLAGS"
+ CFLAGS="-Wall -Wextra -Wdeclaration-after-statement $CFLAGS"
fi

AC_EXEEXT

Modified: spamassassin/branches/jm_re2c_hacks/spamc/configure.pl
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamc/configure.pl?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamc/configure.pl (original)
+++ spamassassin/branches/jm_re2c_hacks/spamc/configure.pl Fri Oct 6 05:46:56 2006
@@ -2,14 +2,15 @@
# autoconf wrapper (for Unix)/alternative (for Windows)
#
# <@LICENSE>
-# Copyright 2004 Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at:
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/spamc/getopt.c
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamc/getopt.c?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamc/getopt.c (original)
+++ spamassassin/branches/jm_re2c_hacks/spamc/getopt.c Fri Oct 6 05:46:56 2006
@@ -1,12 +1,13 @@
/* <@LICENSE>
- * Copyright 2004 Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at:
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/spamc/getopt.h
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamc/getopt.h?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamc/getopt.h (original)
+++ spamassassin/branches/jm_re2c_hacks/spamc/getopt.h Fri Oct 6 05:46:56 2006
@@ -1,12 +1,13 @@
/* <@LICENSE>
- * Copyright 2000-2004 Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at:
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: spamassassin/branches/jm_re2c_hacks/spamc/libspamc.c
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamc/libspamc.c?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamc/libspamc.c (original)
+++ spamassassin/branches/jm_re2c_hacks/spamc/libspamc.c Fri Oct 6 05:46:56 2006
@@ -1,9 +1,10 @@
/* <@LICENSE>
- * Copyright 2004 Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@@ -1009,9 +1010,9 @@
strcat(buf + len, "\r\n");
len += strlen(buf + len);
}
- if ((m->msg_len > 9999999) || ((len + 27) >= (bufsiz - len))) {
+ if ((m->msg_len > SPAMC_MAX_MESSAGE_LEN) || ((len + 27) >= (bufsiz - len))) {
_use_msg_for_out(m);
- return EX_OSERR;
+ return EX_DATAERR;
}
len += sprintf(buf + len, "Content-length: %d\r\n\r\n", (int) m->msg_len);
}
@@ -1336,9 +1337,9 @@
strcat(buf + len, "\r\n");
len += strlen(buf + len);
}
- if ((m->msg_len > 9999999) || ((len + 27) >= (bufsiz - len))) {
+ if ((m->msg_len > SPAMC_MAX_MESSAGE_LEN) || ((len + 27) >= (bufsiz - len))) {
_use_msg_for_out(m);
- return EX_OSERR;
+ return EX_DATAERR;
}
len += sprintf(buf + len, "Content-length: %d\r\n\r\n", (int) m->msg_len);

@@ -1572,10 +1573,13 @@
return EX_OK;
#endif
case TRANSPORT_LOCALHOST:
- /* getaddrinfo(NULL) will look up the loopback address */
- if ((origerr = getaddrinfo(NULL, port, &hints, &res)) != 0) {
+ /* getaddrinfo(NULL) will look up the loopback address.
+ * bug 5057: unfortunately, it's the IPv6 loopback address on
+ * linux! Be explicit, and force IPv4 using "127.0.0.1".
+ */
+ if ((origerr = getaddrinfo("127.0.0.1", port, &hints, &res)) != 0) {
libspamc_log(flags, LOG_ERR,
- "getaddrinfo(NULL) failed: %s",
+ "getaddrinfo(127.0.0.1) failed: %s",
gai_strerror(origerr));
return EX_OSERR;
}

Modified: spamassassin/branches/jm_re2c_hacks/spamc/libspamc.h
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamc/libspamc.h?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamc/libspamc.h (original)
+++ spamassassin/branches/jm_re2c_hacks/spamc/libspamc.h Fri Oct 6 05:46:56 2006
@@ -1,9 +1,10 @@
/* <@LICENSE>
- * Copyright 2004 Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@@ -120,6 +121,8 @@

#define SPAMC_REMOVE_LOCAL 4
#define SPAMC_REMOVE_REMOTE 8
+
+#define SPAMC_MAX_MESSAGE_LEN (256 * 1024 * 1024) /* see bug 4928 */

/* Aug 14, 2002 bj: A struct for storing a message-in-progress */
typedef enum

Modified: spamassassin/branches/jm_re2c_hacks/spamc/qmail-spamc.c
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamc/qmail-spamc.c?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamc/qmail-spamc.c (original)
+++ spamassassin/branches/jm_re2c_hacks/spamc/qmail-spamc.c Fri Oct 6 05:46:56 2006
@@ -1,9 +1,10 @@
/* <@LICENSE>
- * Copyright 2004 Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*

Modified: spamassassin/branches/jm_re2c_hacks/spamc/spamc.c
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamc/spamc.c?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamc/spamc.c (original)
+++ spamassassin/branches/jm_re2c_hacks/spamc/spamc.c Fri Oct 6 05:46:56 2006
@@ -1,9 +1,10 @@
/* <@LICENSE>
- * Copyright 2004 Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@@ -417,6 +418,12 @@
return(EX_TEMPFAIL);
}
}
+ }
+
+ if (*max_size > SPAMC_MAX_MESSAGE_LEN) {
+ libspamc_log(flags, LOG_ERR, "-s parameter is beyond max of %d",
+ SPAMC_MAX_MESSAGE_LEN);
+ ret = EX_USAGE;
}

/* learning action has to block some parameters */

Modified: spamassassin/branches/jm_re2c_hacks/spamc/spamc.pod
URL: http://svn.apache.org/viewvc/spamassassin/branches/jm_re2c_hacks/spamc/spamc.pod?view=diff&rev=453586&r1=453585&r2=453586
==============================================================================
--- spamassassin/branches/jm_re2c_hacks/spamc/spamc.pod (original)
+++ spamassassin/branches/jm_re2c_hacks/spamc/spamc.pod Fri Oct 6 05:46:56 2006
@@ -150,9 +150,10 @@
Set the maximum message size which will be sent to spamd -- any bigger than
this threshold and the message will be returned unprocessed (default: 500 KB).
If spamc gets handed a message bigger than this, it won't be passed to spamd.
+The maximum message size is 256 MB.

The size is specified in bytes, as a positive integer greater than 0.
-For example, B<-s 500000>.
+For example, B<-s 500000>.

=item B<-S>, B<--ssl>