Hello community, here is the log from the commit of package spamassassin for openSUSE:Factory checked in at Mon Nov 15 18:15:07 CET 2010. -------- --- spamassassin/spamassassin.changes 2010-10-14 00:39:31.000000000 +0200 +++ spamassassin/spamassassin.changes 2010-11-12 07:08:28.000000000 +0100 @@ -1,0 +2,5 @@ +Fri Nov 12 06:09:15 UTC 2010 - varkoly@novell.com + +- bnc#650645 - Spamassassin Bug 6392 + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- sa#6392.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ spamassassin.spec ++++++ --- /var/tmp/diff_new_pack.3Pr3LR/_old 2010-11-15 18:13:51.000000000 +0100 +++ /var/tmp/diff_new_pack.3Pr3LR/_new 2010-11-15 18:13:51.000000000 +0100 @@ -27,7 +27,7 @@ Name: spamassassin Summary: Extensible email filter which is used to identify spam Version: %{sa_version} -Release: 6 +Release: 7 License: Apache Software License .. Group: Productivity/Networking/Email/Utilities AutoReqProv: on @@ -49,6 +49,7 @@ Patch4: Mail-SpamAssassin-3.3.1-deprecated.patch Patch5: Mail-SpamAssassin-3.3.1-MIMEEval.patch Patch6: bnc#582111.diff +Patch7: sa#6392.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: %insserv_prereq %fillup_prereq BuildRequires: dos2unix @@ -148,7 +149,7 @@ License: Apache License 2.0 Group: Development/Libraries/Perl Version: %{ix_version} -Release: 6 +Release: 7 Requires: perl = %{perl_version} Requires: perl-Mail-SpamAssassin = %{sa_version} @@ -174,6 +175,7 @@ %endif %patch5 -p1 %patch6 -p0 +%patch7 -p0 # fix wrong-file-end-of-line-encoding dos2unix %{IXHASH}/CHANGELOG ++++++ sa#6392.diff ++++++ Index: lib/Mail/SpamAssassin/Plugin/BodyRuleBaseExtractor.pm =================================================================== --- lib/Mail/SpamAssassin/Plugin/BodyRuleBaseExtractor.pm (revision 984789) +++ lib/Mail/SpamAssassin/Plugin/BodyRuleBaseExtractor.pm (working copy) @@ -176,31 +176,37 @@ } # ignore ReplaceTags rules - # TODO: need cleaner way to do this - goto NO if ($conf->{rules_to_replace}->{$name}); + my $is_a_replacetags_rule = $conf->{rules_to_replace}->{$name}; + my ($minlen, $lossy, @bases); - my ($lossy, @bases); + if (!$is_a_replacetags_rule) { + eval { # catch die()s + my ($qr, $mods) = $self->simplify_and_qr_regexp($rule); + ($lossy, @bases) = $self->extract_hints($rule, $qr, $mods); + 1; + } or do { + my $eval_stat = $@ ne '' ? $@ : "errno=$!"; chomp $eval_stat; + dbg("zoom: giving up on regexp: $eval_stat"); + }; - eval { # catch die()s - my ($qr, $mods) = $self->simplify_and_qr_regexp($rule); - ($lossy, @bases) = $self->extract_hints($rule, $qr, $mods); - 1; - } or do { - my $eval_stat = $@ ne '' ? $@ : "errno=$!"; chomp $eval_stat; - dbg("zoom: giving up on regexp: $eval_stat"); - }; - - # if any of the extracted hints in a set are too short, the entire - # set is invalid; this is because each set of N hints represents just - # 1 regexp. - my $minlen; - foreach my $str (@bases) { - my $len = length fixup_re($str); # bug 6143: count decoded characters - if ($len < $min_chars) { $minlen = undef; @bases = (); last; } - elsif (!defined($minlen) || $len < $minlen) { $minlen = $len; } + # if any of the extracted hints in a set are too short, the entire + # set is invalid; this is because each set of N hints represents just + # 1 regexp. + foreach my $str (@bases) { + my $len = length fixup_re($str); # bug 6143: count decoded characters + if ($len < $min_chars) { $minlen = undef; @bases = (); last; } + elsif (!defined($minlen) || $len < $minlen) { $minlen = $len; } + } } - if ($minlen && @bases) { + if ($is_a_replacetags_rule || !$minlen || !@bases) { + dbg("zoom: ignoring %s %s", + $is_a_replacetags_rule ? 'replace rule' : 'NO', $rule); + push @failed, { orig => $rule }; + $cached->{rule_bases}->{$cachekey} = { }; + $no++; + } + else { # dbg("zoom: YES <base>$base</base> <origrule>$rule</origrule>"); # figure out if we have e.g. ["foo", "foob", "foobar"]; in this @@ -229,13 +235,6 @@ $cached->{rule_bases}->{$cachekey} = { g => \@forcache }; $yes++; } - else { -NO: - dbg("zoom: NO $rule"); - push @failed, { orig => $rule }; - $cached->{rule_bases}->{$cachekey} = { }; - $no++; - } } $self->{show_progress} and $progress and $progress->final(); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org