summaryrefslogtreecommitdiffstats
path: root/main/spamassassin
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-10-28 08:54:02 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-10-28 08:54:46 +0000
commit9f0066b40c1e6e5ca2f52fa86dfdd77fdc8068a7 (patch)
treebec309fd47a4075d4cdca2d382a2fefe0716cb33 /main/spamassassin
parent843425070d53aef1f10a97b2988809008de388f8 (diff)
downloadaports-9f0066b40c1e6e5ca2f52fa86dfdd77fdc8068a7.tar.bz2
aports-9f0066b40c1e6e5ca2f52fa86dfdd77fdc8068a7.tar.xz
main/spamassassin: upgrade to 3.3.2
Diffstat (limited to 'main/spamassassin')
-rw-r--r--main/spamassassin/APKBUILD11
-rw-r--r--main/spamassassin/spamassassin-3.2.5-DESTDIR.patch273
-rw-r--r--main/spamassassin/spamassassin-3.3.1-PERL-5-12.patch240
3 files changed, 4 insertions, 520 deletions
diff --git a/main/spamassassin/APKBUILD b/main/spamassassin/APKBUILD
index 417956257..52df249af 100644
--- a/main/spamassassin/APKBUILD
+++ b/main/spamassassin/APKBUILD
@@ -1,8 +1,8 @@
# Maintainer: Leonardo Arena <rnalrd@gmail.com>
pkgname=spamassassin
_realname=Mail-SpamAssassin
-pkgver=3.3.1
-pkgrel=9
+pkgver=3.3.2
+pkgrel=0
pkgdesc="The Powerful #1 Open-Source Spam Filter"
url="http://spamassassin.apache.org"
arch="all"
@@ -13,12 +13,10 @@ depends="gnupg perl perl-digest-sha1 perl-io-compress perl-time-hires
makedepends="perl-dev zlib-dev"
install=
subpackages="$pkgname-doc"
-source="http://www.apache.org/dist/spamassassin/source/$_realname-$pkgver.tar.gz
- spamassassin-3.3.1-PERL-5-12.patch"
+source="http://www.apache.org/dist/spamassassin/source/$_realname-$pkgver.tar.gz"
prepare() {
cd "$srcdir/$_realname-$pkgver"
- patch -p2 < ../spamassassin-3.3.1-PERL-5-12.patch || return 1
}
build() {
@@ -39,5 +37,4 @@ package() {
find "$pkgdir" -name perllocal.pod -delete
}
-md5sums="5a93f81fda315411560ff5da099382d2 Mail-SpamAssassin-3.3.1.tar.gz
-aea0b415deb2a827c50653dafb80d6e4 spamassassin-3.3.1-PERL-5-12.patch"
+md5sums="d1d62cc5c6eac57e88c4006d9633b81e Mail-SpamAssassin-3.3.2.tar.gz"
diff --git a/main/spamassassin/spamassassin-3.2.5-DESTDIR.patch b/main/spamassassin/spamassassin-3.2.5-DESTDIR.patch
deleted file mode 100644
index a9765fc55..000000000
--- a/main/spamassassin/spamassassin-3.2.5-DESTDIR.patch
+++ /dev/null
@@ -1,273 +0,0 @@
---- Mail-SpamAssassin-3.2.5/Makefile.PL.old 2009-10-21 23:25:18.000000000 +0200
-+++ Mail-SpamAssassin-3.2.5/Makefile.PL 2009-10-21 23:31:28.000000000 +0200
-@@ -12,12 +12,12 @@
-
- # avoid stupid 'Argument "6.30_01" isn't numeric in numeric ge (>=)' warnings;
- # strip off the beta subversion noise that causes the trouble.
- $mm_version =~ s/_\S+$//; # "6.30_01" => "6.30"
-
--if ($mm_version+0 < 5.45) {
-- die "SpamAssassin Makefile.PL requires at least ExtUtils::MakeMaker v5.45";
-+if ($mm_version < 6.17) {
-+ die "SpamAssassin Makefile.PL requires at least ExtUtils::MakeMaker v6.17";
- }
-
- use constant RUNNING_ON_WINDOWS => ($^O =~ /^(mswin|dos|os2)/oi);
- use constant HAS_DBI => eval { require DBI; };
-
-@@ -82,11 +82,10 @@
- );
-
-
- sub parse_arg {
- my($val, $name) = (@_);
--
- if ($val =~ /^($name)=["']?(.*?)["']?$/) {
- return $2;
- } else {
- return undef;
- }
-@@ -107,53 +106,27 @@
- return 'yes' if bool($val, $def);
- return 'no';
- }
-
-
--
- my %opt = (
-- 'build_spamc' => undef,
-+ 'build_spamc' => undef,
- 'enable_ssl' => undef,
- 'contact_address' => undef,
- 'destdir' => undef,
- );
- ARGV: foreach (@ARGV) {
- foreach my $key (keys %opt) {
-- my $val;
--
-- $val = parse_arg($_, uc($key));
-+ my $val = parse_arg($_, uc($key));
- if (defined $val) {
- $opt{$key} = $val;
- next ARGV;
- }
- }
- }
-
-
--# Gather some information about what EU::MM offers and/or needs
--my(
-- $mm_knows_destdir,
-- $mm_has_destdir,
-- $mm_has_good_destdir,
-- $mm_needs_destdir,
--);
--
--# MakeMaker prior to 6.11 doesn't support DESTDIR which is needed for
--# packaging with builddir!=destdir. See bug 2388.
--$mm_knows_destdir = $ExtUtils::MakeMaker::Recognized_Att_Keys{DESTDIR};
--$mm_has_good_destdir = $mm_version >= 6.11;
--# Add DESTDIR hack only if it's requested (and necessary)
--$mm_needs_destdir = $opt{'destdir'} && !$mm_has_good_destdir;
--$mm_has_destdir = $mm_knows_destdir || $mm_needs_destdir;
--push(@ATT_KEYS, 'DESTDIR') if $mm_needs_destdir;
--
--# Now make EU::MM understand our extended vars
--foreach my $key (@ATT_KEYS) {
-- $ExtUtils::MakeMaker::Recognized_Att_Keys{$key} = 1;
--}
--
--
- # 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
-@@ -270,75 +243,27 @@
-
- # We have only this Makefile.PL and this option keeps MakeMaker from
- # asking all questions twice after a 'make dist*'.
- 'NORECURS' => 1,
-
-- # bug 5074: perl 5.6.1 (with ExtUtils::MakeMaker 5.45) attempts to
-- # recurse anyway unless this is explicitly specified
-- 'DIR' => [ ],
--
- # Don't add META.yml to the MANIFEST for god's sake!
- 'NO_META' => 1,
- );
-
- # rules/72_active.cf is built from "rulesrc", but *must* exist before
- # WriteMakefile() is called due to shortcomings in MakeMaker.
- my @FILES_THAT_MUST_EXIST = qw(
- rules/72_active.cf
- );
-
--# That META.yml stuff was introduced with Perl 6.06_03, see
--# <http://archive.develooper.com/makemaker@perl.org/msg00922.html>
--# <http://archive.develooper.com/makemaker@perl.org/msg00984.html>
--delete $makefile{'NO_META'} if $mm_version < 6.06_03;
--
- # make sure certain optional modules are up-to-date if they are installed
- # also see PREREQ_PM above
- my %CURRENT_PM = (
- 'Net::DNS' => (RUNNING_ON_WINDOWS ? 0.46 : 0.34),
- 'Razor2::Client::Agent' => 2.40,
- );
-
--if ($mm_needs_destdir) {
-- my $error = <<DESTDIR_HACK;
--
-- ***********************************************************************
-- ExtUtils::MakeMaker ${mm_version} doesn't include support for DESTDIR,
-- so if you want to be on the safe side, you might want to upgrade your
-- ExtUtils::MakeMaker to version 6.11 or later. It is available via CPAN.
--
-- You can use either the CPAN shell or go to
-- <http://search.cpan.org/search?module=ExtUtils::MakeMaker>
-- to get an up-to-date version.
--
-- This should only be necessary if you are creating binary packages.
-- ***********************************************************************
--
--DESTDIR_HACK
-- $error =~ s/^ {4}//gm;
-- warn $error;
--}
--elsif ($opt{'destdir'} and !$mm_has_good_destdir) {
-- my $error = <<DESTDIR_BUG;
--
-- ***********************************************************************
-- ExtUtils::MakeMaker ${mm_version} contains bugs that may cause problems
-- in the \"make\" process. It is recommended that you upgrade
-- ExtUtils::MakeMaker to version 6.11 or later. It is available via CPAN.
--
-- You can use either the CPAN shell or go to
-- <http://search.cpan.org/search?module=ExtUtils::MakeMaker>
-- to get an up-to-date version.
--
-- This should only be necessary if you are creating binary packages.
-- ***********************************************************************
--
--DESTDIR_BUG
-- $error =~ s/^ {4}//gm;
-- warn $error;
--}
--
-
- # All the $(*MAN1*) stuff is empty/zero if Perl was Configured with -Dman1dir=none;
- # however, support site/vendor man1 dirs (bug 5338)
- unless($Config{installman1dir}
- || $Config{installsiteman1dir}
-@@ -405,22 +330,19 @@
-
- # Now finish the meta hash and dump the Makefile
- $makefile{EXE_FILES} = [ values %{$makefile{EXE_FILES}} ];
- $makefile{AUTHOR} =~ s/(<.+) at (.+>)/$1\@$2/;
- WriteMakefile(%makefile);
--print "Makefile written by ExtUtils::MakeMaker ${mm_version}\n";
-+print "Makefile written by ExtUtils::MakeMaker $mm_version\n";
-
- #######################################################################
-
- package MY;
-
--
- use vars qw(
- $MY_GLOBALS_ARE_SANE
--
- $RUNNING_ON_WINDOWS
--
- @REPOSITORIES
-
- $MACRO_RE
- $EQ_RE
- $EQ
-@@ -906,19 +828,10 @@
- init_MY_globals($self);
-
- foreach (@code) {
- # Add our install targets as a dependency to all top-level install targets
- s/^(install(?:_[a-z]+)?\s*::?\s*.*)$/$1 conf__install data__install/;
--
-- # Now do the DESTDIR hack, if necessary.
-- next if !$mm_needs_destdir;
-- # Write the correct path to perllocal.pod
-- next if /installed into/;
--
-- # Replace all other $(INSTALL*) vars (except $(INSTALLDIRS) of course)
-- # with their $(DESTINSTALL*) counterparts
-- s/\Q$(\E(INSTALL(?!DIRS)${MACRO_RE})\Q)\E/\$(DEST$1)/g;
- }
-
- clean_MY_globals($self);
- return join("\n", @code);
- }
-@@ -956,32 +869,10 @@
- set_macro($rprefix, macro_ref('PREFIX'));
- $line .= "\n" . macro_def($rprefix);
- }
- }
- }
--
-- if (line_has_macro_def($line, 'MM_VERSION')) {
-- # These macros are just for debugging purposes.
-- $line = join("\n", $line,
-- macro_def(MM_HAS_DESTDIR => ::yesno($mm_has_destdir)),
-- macro_def(MM_HAS_GOOD_DESTDIR => ::yesno($mm_has_good_destdir)),
-- macro_def(MM_KNOWS_DESTDIR => ::yesno($mm_knows_destdir)),
-- macro_def(MM_NEEDS_DESTDIR => ::yesno($mm_needs_destdir)),
-- );
-- }
--
-- # Add DESTDIR support if necessary
-- if ($mm_needs_destdir) {
-- if (line_has_macro_def($line, 'INSTALLDIRS')) {
-- $line .= "\n" . macro_def('DESTDIR');
-- }
-- elsif (line_has_macro_def($line, qr/INSTALL${MACRO_RE}/)) {
-- my $macro = get_macro_name_from_line($line);
-- $line .= "\n" . macro_def('DEST' . $macro,
-- macro_ref('DESTDIR') . macro_ref($macro));
-- }
-- }
- }
- push(@code, qq{});
-
- # Add some additional target dirs
- {
-@@ -1015,13 +906,11 @@
- foreach my $r (@REPOSITORIES) {
- my $macro = 'INSTALL' . repository($r) . $m;
- # The INSTALL* macros.
- push(@code, macro_def($macro));
- # The DESTINSTALL* macros.
-- push(@code, macro_def('DEST' . $macro,
-- macro_ref('DESTDIR') . macro_ref($macro)))
-- if $mm_has_destdir;
-+ push(@code, macro_def('DEST' . $macro, macro_ref('DESTDIR') . macro_ref($macro)));
- }
- }
- }
-
- # Set the PERL_* stuff
-@@ -1068,17 +957,12 @@
- # SCRIPT macro is the same for all repositories.
- foreach my $macro (qw(SCRIPT DATA CONF LIB)) {
- push(@code, macro_def('I_' . $macro . 'DIR',
- macro_ref('INSTALL' . repository($repository, $macro eq 'SCRIPT') . $macro)));
-
-- if ($mm_has_destdir) {
-- push(@code, macro_def('B_' . $macro . 'DIR',
-- macro_ref('DESTINSTALL' . repository($repository, $macro eq 'SCRIPT') . $macro)));
-- } else {
-- push(@code, macro_def('B_' . $macro . 'DIR',
-- macro_ref('I_' . $macro . 'DIR')));
-- }
-+ push(@code, macro_def('B_' . $macro . 'DIR',
-+ macro_ref('DESTINSTALL' . repository($repository, $macro eq 'SCRIPT') . $macro)));
- }
- }
-
- clean_MY_globals($self);
- return join("\n", @code);
diff --git a/main/spamassassin/spamassassin-3.3.1-PERL-5-12.patch b/main/spamassassin/spamassassin-3.3.1-PERL-5-12.patch
deleted file mode 100644
index 5b4039c4d..000000000
--- a/main/spamassassin/spamassassin-3.3.1-PERL-5-12.patch
+++ /dev/null
@@ -1,240 +0,0 @@
-diff -ur a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Dns.pm b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Dns.pm
---- a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Dns.pm 2010-03-16 10:49:21.000000000 -0400
-+++ b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Dns.pm 2010-07-20 15:54:23.000000000 -0400
-@@ -754,7 +754,7 @@
- dbg("dns: entering helper-app run mode");
- $self->{old_slash} = $/; # Razor pollutes this
- %{$self->{old_env}} = ();
-- if ( defined %ENV ) {
-+ if ( %ENV ) {
- # undefined values in %ENV can result due to autovivification elsewhere,
- # this prevents later possible warnings when we restore %ENV
- while (my ($key, $value) = each %ENV) {
-Only in b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin: Dns.pm~
-diff -ur a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/HTML.pm b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/HTML.pm
---- a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/HTML.pm 2010-03-16 10:49:21.000000000 -0400
-+++ b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/HTML.pm 2010-07-20 15:52:50.000000000 -0400
-@@ -191,7 +191,7 @@
- my $self = shift;
- my %options = @_;
-
-- return join('', @{ $self->{text} }) unless keys %options;
-+ return join('', @{ $self->{text} }) unless %options;
-
- my $mask;
- while (my ($k, $v) = each %options) {
-Only in b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin: HTML.pm~
-diff -ur a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/BodyEval.pm b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/BodyEval.pm
---- a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/BodyEval.pm 2010-03-16 10:49:21.000000000 -0400
-+++ b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/BodyEval.pm 2010-07-20 16:04:57.000000000 -0400
-@@ -119,7 +119,7 @@
- }
-
- # If there are no words, mark if there's at least 1 image ...
-- if (keys %html == 0 && exists $pms->{html}{inside}{img}) {
-+ if (!%html && exists $pms->{html}{inside}{img}) {
- # Use "\n" as the mark since it can't ever occur normally
- $html{"\n"}=1;
- }
-Only in b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin: BodyEval.pm~
-Only in b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin: check.patch
-diff -ur a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/Check.pm b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/Check.pm
---- a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/Check.pm 2010-03-16 10:49:21.000000000 -0400
-+++ b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/Check.pm 2010-07-20 16:03:00.000000000 -0400
-@@ -307,64 +307,51 @@
- my $package_name = __PACKAGE__;
- my $methodname = $package_name."::_".$ruletype."_tests_".$clean_priority;
-
-- if (defined &{$methodname} && !$doing_user_rules) {
--run_compiled_method:
-- # dbg("rules: run_generic_tests - calling %s", $methodname);
-- my $t = Mail::SpamAssassin::Timeout->new({ deadline => $master_deadline });
-- my $err = $t->run(sub {
-- no strict "refs";
-- $methodname->($pms, @{$opts{args}});
-- });
-- if ($t->timed_out() && $master_deadline && time > $master_deadline) {
-- info("check: exceeded time limit in $methodname, skipping further tests");
-- $pms->{deadline_exceeded} = 1;
-- }
-- return;
-- }
-+ if (!defined &{$methodname} || $doing_user_rules) {
-
-- # use %nopts for named parameter-passing; it's more friendly to future-proof
-- # subclassing, since new parameters can be added without breaking third-party
-- # subclassed implementations of this plugin.
-- my %nopts = (
-- ruletype => $ruletype,
-- doing_user_rules => $doing_user_rules,
-- priority => $priority,
-- clean_priority => $clean_priority
-- );
--
-- # build up the eval string...
-- $self->{evalstr_methodname} = $methodname;
-- $self->{evalstr_chunk_current_methodname} = undef;
-- $self->{evalstr_chunk_methodnames} = [];
-- $self->{evalstr_chunk_prefix} = []; # stack (array) of source code sections
-- $self->{evalstr} = ''; $self->{evalstr_l} = 0;
-- $self->{evalstr2} = '';
-- $self->begin_evalstr_chunk($pms);
--
-- $self->push_evalstr_prefix($pms, '
-- # start_rules_plugin_code '.$ruletype.' '.$priority.'
-- my $scoresptr = $self->{conf}->{scores};
-- ');
-- if (defined $opts{pre_loop_body}) {
-- $opts{pre_loop_body}->($self, $pms, $conf, %nopts);
-- }
-- $self->add_evalstr($pms,
-- $self->start_rules_plugin_code($ruletype, $priority) );
-- while (my($rulename, $test) = each %{$opts{testhash}->{$priority}}) {
-- $opts{loop_body}->($self, $pms, $conf, $rulename, $test, %nopts);
-- }
-- if (defined $opts{post_loop_body}) {
-- $opts{post_loop_body}->($self, $pms, $conf, %nopts);
-- }
-+ # use %nopts for named parameter-passing; it's more friendly
-+ # to future-proof subclassing, since new parameters can be added without
-+ # breaking third-party subclassed implementations of this plugin.
-+ my %nopts = (
-+ ruletype => $ruletype,
-+ doing_user_rules => $doing_user_rules,
-+ priority => $priority,
-+ clean_priority => $clean_priority
-+ );
-+
-+ # build up the eval string...
-+ $self->{evalstr_methodname} = $methodname;
-+ $self->{evalstr_chunk_current_methodname} = undef;
-+ $self->{evalstr_chunk_methodnames} = [];
-+ $self->{evalstr_chunk_prefix} = []; # stack (array) of source code sections
-+ $self->{evalstr} = ''; $self->{evalstr_l} = 0;
-+ $self->{evalstr2} = '';
-+ $self->begin_evalstr_chunk($pms);
-+
-+ $self->push_evalstr_prefix($pms, '
-+ # start_rules_plugin_code '.$ruletype.' '.$priority.'
-+ my $scoresptr = $self->{conf}->{scores};
-+ ');
-+ if (defined $opts{pre_loop_body}) {
-+ $opts{pre_loop_body}->($self, $pms, $conf, %nopts);
-+ }
-+ $self->add_evalstr($pms,
-+ $self->start_rules_plugin_code($ruletype, $priority) );
-+ while (my($rulename, $test) = each %{$opts{testhash}->{$priority}}) {
-+ $opts{loop_body}->($self, $pms, $conf, $rulename, $test, %nopts);
-+ }
-+ if (defined $opts{post_loop_body}) {
-+ $opts{post_loop_body}->($self, $pms, $conf, %nopts);
-+ }
-
-- $self->flush_evalstr($pms, 'run_generic_tests');
-- $self->free_ruleset_source($pms, $ruletype, $priority);
-+ $self->flush_evalstr($pms, 'run_generic_tests');
-+ $self->free_ruleset_source($pms, $ruletype, $priority);
-
-- # clear out a previous version of this method
-- undef &{$methodname};
-+ # clear out a previous version of this method
-+ undef &{$methodname};
-
-- # generate the loop that goes through each line...
-- my $evalstr = <<"EOT";
-+ # generate the loop that goes through each line...
-+ my $evalstr = <<"EOT";
- {
- package $package_name;
-
-@@ -373,40 +360,51 @@
- sub $methodname {
- EOT
-
-- for my $chunk_methodname (@{$self->{evalstr_chunk_methodnames}}) {
-- $evalstr .= " $chunk_methodname(\@_);\n";
-- }
-+ for my $chunk_methodname (@{$self->{evalstr_chunk_methodnames}}) {
-+ $evalstr .= " $chunk_methodname(\@_);\n";
-+ }
-
-- $evalstr .= <<"EOT";
-+ $evalstr .= <<"EOT";
- }
-
- 1;
- }
- EOT
-
-- delete $self->{evalstr}; # free up some RAM before we eval()
-- delete $self->{evalstr2};
-- delete $self->{evalstr_methodname};
-- delete $self->{evalstr_chunk_current_methodname};
-- delete $self->{evalstr_chunk_methodnames};
-- delete $self->{evalstr_chunk_prefix};
--
-- dbg("rules: run_generic_tests - compiling eval code: %s, priority %s",
-- $ruletype, $priority);
--# dbg("rules: eval code to compile: $evalstr");
-- my $eval_result;
-- { my $timer = $self->{main}->time_method('compile_gen');
-- $eval_result = eval($evalstr);
-- }
-- if (!$eval_result) {
-- my $eval_stat = $@ ne '' ? $@ : "errno=$!"; chomp $eval_stat;
-- warn "rules: failed to compile $ruletype tests, skipping:\n".
-- "\t($eval_stat)\n";
-- $pms->{rule_errors}++;
-- }
-- else {
-+ delete $self->{evalstr}; # free up some RAM before we eval()
-+ delete $self->{evalstr2};
-+ delete $self->{evalstr_methodname};
-+ delete $self->{evalstr_chunk_current_methodname};
-+ delete $self->{evalstr_chunk_methodnames};
-+ delete $self->{evalstr_chunk_prefix};
-+
-+ dbg("rules: run_generic_tests - compiling eval code: %s, priority %s",
-+ $ruletype, $priority);
-+ # dbg("rules: eval code to compile: $evalstr");
-+ my $eval_result;
-+ { my $timer = $self->{main}->time_method('compile_gen');
-+ $eval_result = eval($evalstr);
-+ }
-+ if (!$eval_result) {
-+ my $eval_stat = $@ ne '' ? $@ : "errno=$!"; chomp $eval_stat;
-+ warn "rules: failed to compile $ruletype tests, skipping:\n".
-+ "\t($eval_stat)\n";
-+ $pms->{rule_errors}++;
-+ return;
-+ }
- dbg("rules: compiled $ruletype tests");
-- goto run_compiled_method;
-+ }
-+
-+#run_compiled_method:
-+# dbg("rules: run_generic_tests - calling %s", $methodname);
-+ my $t = Mail::SpamAssassin::Timeout->new({ deadline => $master_deadline });
-+ my $err = $t->run(sub {
-+ no strict "refs";
-+ $methodname->($pms, @{$opts{args}});
-+ });
-+ if ($t->timed_out() && $master_deadline && time > $master_deadline) {
-+ info("check: exceeded time limit in $methodname, skipping further tests");
-+ $pms->{deadline_exceeded} = 1;
- }
- }
-
-diff -ur a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm
---- a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm 2010-03-16 10:49:21.000000000 -0400
-+++ b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm 2010-07-20 16:06:47.000000000 -0400
-@@ -498,7 +498,7 @@
- # perhaps just limit to test, and image?
- next if ($ctype eq 'application/ics');
-
-- my $cte = lc $p->get_header('content-transfer-encoding') || '';
-+ my $cte = lc($p->get_header('content-transfer-encoding') || '');
- next if ($cte !~ /^base64$/);
- foreach my $l ( @{$p->raw()} ) {
- my $len = length $l;
-Only in b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin: MIMEEval.pm~