summaryrefslogtreecommitdiff
path: root/mail
diff options
context:
space:
mode:
authorjperkin <jperkin>2013-12-04 15:14:19 +0000
committerjperkin <jperkin>2013-12-04 15:14:19 +0000
commit7e2fc0743bd1a333f83090ffc7daa41222b97de9 (patch)
tree7265e45a9dfe2d16aafb7d60abd7111e85188f4a /mail
parent79481e9edc66a71d9e86715b63e549ca3937272b (diff)
downloadpkgsrc-7e2fc0743bd1a333f83090ffc7daa41222b97de9.tar.gz
Apply backported patch for SpamAssassin bug#6937 which resolves some
issues running with perl 5.18. Bump PKGREVISION.
Diffstat (limited to 'mail')
-rw-r--r--mail/spamassassin/Makefile4
-rw-r--r--mail/spamassassin/distinfo8
-rw-r--r--mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_AsyncLoop.pm31
-rw-r--r--mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Conf_Parser.pm15
-rw-r--r--mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_DnsResolver.pm24
-rw-r--r--mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Message.pm15
-rw-r--r--mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_PerMsgStatus.pm36
-rw-r--r--mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Util.pm15
8 files changed, 145 insertions, 3 deletions
diff --git a/mail/spamassassin/Makefile b/mail/spamassassin/Makefile
index 7f9ff9ce458..75016e74420 100644
--- a/mail/spamassassin/Makefile
+++ b/mail/spamassassin/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.109 2013/08/01 10:29:00 bouyer Exp $
+# $NetBSD: Makefile,v 1.110 2013/12/04 15:14:19 jperkin Exp $
DISTNAME= Mail-SpamAssassin-3.3.2
PKGNAME= spamassassin-3.3.2
-PKGREVISION= 5
+PKGREVISION= 6
SVR4_PKGNAME= sa
CATEGORIES= mail perl5
MASTER_SITES= ${MASTER_SITE_APACHE:=spamassassin/source/}
diff --git a/mail/spamassassin/distinfo b/mail/spamassassin/distinfo
index acb809f75a9..4fde4478c08 100644
--- a/mail/spamassassin/distinfo
+++ b/mail/spamassassin/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.60 2013/08/01 10:29:00 bouyer Exp $
+$NetBSD: distinfo,v 1.61 2013/12/04 15:14:19 jperkin Exp $
SHA1 (Mail-SpamAssassin-3.3.2.tar.gz) = de954f69e190496eff4a796a9bab61747f03072b
RMD160 (Mail-SpamAssassin-3.3.2.tar.gz) = 78e22ba6ba62a48fb7d24c40170124881b975fd9
@@ -18,4 +18,10 @@ SHA1 (patch-ae) = d46b1d8f56c8c61936c307f74b39a49da1b1f353
SHA1 (patch-aq) = 3a273c7742275647c2334382fed29c0ea33dfbd8
SHA1 (patch-ay) = ca8ea0b1e6d8fddd29d6ae960e1bf6e534d2f424
SHA1 (patch-ba) = 1842e3fc17b3d23309336e542635eeacb67461e8
+SHA1 (patch-lib_Mail_SpamAssassin_AsyncLoop.pm) = a305fc866785905bcb6b65b013525cb130ddf4a3
+SHA1 (patch-lib_Mail_SpamAssassin_Conf_Parser.pm) = bbb41a5667f88d485b027860973d205f6ccec0d1
+SHA1 (patch-lib_Mail_SpamAssassin_DnsResolver.pm) = ec66585e49d1cfa5acfb6989508958a75a824bc5
+SHA1 (patch-lib_Mail_SpamAssassin_Message.pm) = 402b9769df65ae87c3beebcc9441e29619eed367
+SHA1 (patch-lib_Mail_SpamAssassin_PerMsgStatus.pm) = 9eb3a5135ab7f2ca3aa18686bad9bbe818bdf761
+SHA1 (patch-lib_Mail_SpamAssassin_Util.pm) = 930b99127847057aeadf6c2c6c9558afec2ff2c8
SHA1 (patch-sa-update) = 893d8c2ebe68524b620a438f30e2b9ba764aaa6e
diff --git a/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_AsyncLoop.pm b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_AsyncLoop.pm
new file mode 100644
index 00000000000..e75b6d7bd14
--- /dev/null
+++ b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_AsyncLoop.pm
@@ -0,0 +1,31 @@
+$NetBSD: patch-lib_Mail_SpamAssassin_AsyncLoop.pm,v 1.1 2013/12/04 15:14:19 jperkin Exp $
+
+Part of backport of bug#6937
+
+--- lib/Mail/SpamAssassin/AsyncLoop.pm.orig 2011-06-06 23:59:17.000000000 +0000
++++ lib/Mail/SpamAssassin/AsyncLoop.pm
+@@ -360,7 +360,13 @@ sub complete_lookups {
+ }
+ $now = time; # capture new timestamp, after possible sleep in 'select'
+
+- while (my($key,$ent) = each %$pending) {
++ # A callback routine may generate another DNS query, which may insert
++ # an entry into the %$pending hash thus invalidating the each() context.
++ # So, make sure that callbacks are not called while the each() context
++ # is open, or avoid using each(). [Bug 6937]
++ #
++ foreach my $key (keys %$pending) {
++ my $ent = $pending->{$key};
+ my $id = $ent->{id};
+ if (defined $ent->{poll_callback}) { # call a "poll_callback" if exists
+ # be nice, provide fresh info to a callback routine
+@@ -448,7 +454,8 @@ sub abort_remaining_lookups {
+ my $pending = $self->{pending_lookups};
+ my $foundcnt = 0;
+ my $now = time;
+- while (my($key,$ent) = each %$pending) {
++ foreach my $key (keys %$pending) {
++ my $ent = $pending->{$key};
+ dbg("async: aborting after %.3f s, %s: %s",
+ $now - $ent->{start_time},
+ (defined $ent->{timeout_initial} &&
diff --git a/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Conf_Parser.pm b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Conf_Parser.pm
new file mode 100644
index 00000000000..4d77c8d0cce
--- /dev/null
+++ b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Conf_Parser.pm
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_Mail_SpamAssassin_Conf_Parser.pm,v 1.1 2013/12/04 15:14:19 jperkin Exp $
+
+Part of backport of bug#6937
+
+--- lib/Mail/SpamAssassin/Conf/Parser.pm.orig 2011-06-06 23:59:17.000000000 +0000
++++ lib/Mail/SpamAssassin/Conf/Parser.pm
+@@ -1248,7 +1248,7 @@ sub is_regexp_valid {
+ my $safere = $re;
+ my $mods = '';
+ local ($1,$2);
+- if ($re =~ s/^m{//) {
++ if ($re =~ s/^m\{//) {
+ $re =~ s/}([a-z]*)$//; $mods = $1;
+ }
+ elsif ($re =~ s/^m\(//) {
diff --git a/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_DnsResolver.pm b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_DnsResolver.pm
new file mode 100644
index 00000000000..5efd2d24635
--- /dev/null
+++ b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_DnsResolver.pm
@@ -0,0 +1,24 @@
+$NetBSD: patch-lib_Mail_SpamAssassin_DnsResolver.pm,v 1.1 2013/12/04 15:14:19 jperkin Exp $
+
+Part of backport of bug#6937
+
+--- lib/Mail/SpamAssassin/DnsResolver.pm.orig 2011-06-06 23:59:17.000000000 +0000
++++ lib/Mail/SpamAssassin/DnsResolver.pm
+@@ -440,10 +440,16 @@ sub poll_responses {
+ { my $timer; # collects timestamp when variable goes out of scope
+ if (!defined($timeout) || $timeout > 0)
+ { $timer = $self->{main}->time_method("poll_dns_idle") }
++ $! = 0;
+ ($nfound, $timeleft) = select($rout=$rin, undef, undef, $timeout);
+ }
+ if (!defined $nfound || $nfound < 0) {
+- warn "dns: select failed: $!";
++ if ($!) { warn "dns: select failed: $!\n" }
++ else { info("dns: select interrupted") }
++ return;
++ } elsif (!$nfound) {
++ if (!defined $timeout) { warn("dns: select returned empty-handed\n") }
++ elsif ($timeout > 0) { dbg("dns: select timed out %.3f s", $timeout) }
+ return;
+ }
+
diff --git a/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Message.pm b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Message.pm
new file mode 100644
index 00000000000..6a71d7648e9
--- /dev/null
+++ b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Message.pm
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_Mail_SpamAssassin_Message.pm,v 1.1 2013/12/04 15:14:19 jperkin Exp $
+
+Part of backport of bug#6937
+
+--- lib/Mail/SpamAssassin/Message.pm.orig 2011-06-06 23:59:17.000000000 +0000
++++ lib/Mail/SpamAssassin/Message.pm
+@@ -566,7 +566,7 @@ sub finish {
+ while (my $part = shift @toclean) {
+ # bug 5557: windows requires tmp file be closed before it can be rm'd
+ if (ref $part->{'raw'} eq 'GLOB') {
+- close($part->{'raw'}) or die "error closing input file: $!";
++ close($part->{'raw'}) or warn "error closing input file: $!";
+ }
+
+ # bug 5858: avoid memory leak with deep MIME structure
diff --git a/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_PerMsgStatus.pm b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_PerMsgStatus.pm
new file mode 100644
index 00000000000..1e50e02ae7d
--- /dev/null
+++ b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_PerMsgStatus.pm
@@ -0,0 +1,36 @@
+$NetBSD: patch-lib_Mail_SpamAssassin_PerMsgStatus.pm,v 1.1 2013/12/04 15:14:19 jperkin Exp $
+
+Part of backport of bug#6937
+
+--- lib/Mail/SpamAssassin/PerMsgStatus.pm.orig 2011-06-06 23:59:17.000000000 +0000
++++ lib/Mail/SpamAssassin/PerMsgStatus.pm
+@@ -420,8 +420,8 @@ sub _get_autolearn_points {
+ }
+ }
+
+- # ignore tests with 0 score in this scoreset
+- next if ($scores->{$test} == 0);
++ # ignore tests with 0 score (or undefined) in this scoreset
++ next if !$scores->{$test};
+
+ # Go ahead and add points to the proper locations
+ if (!$self->{conf}->maybe_header_only ($test)) {
+@@ -1252,13 +1252,12 @@ sub _get_tag {
+ my $arg = (shift || ",");
+ my $line = '';
+ foreach my $test (sort @{$self->{test_names_hit}}) {
+- if (!$line) {
+- $line .= $test . "=" . $self->{conf}->{scores}->{$test};
+- } else {
+- $line .= $arg . $test . "=" . $self->{conf}->{scores}->{$test};
+- }
++ my $score = $self->{conf}->{scores}->{$test};
++ $score = '0' if !defined $score;
++ $line .= $arg if $line ne '';
++ $line .= $test . "=" . $score;
+ }
+- $line ? $line : 'none';
++ $line ne '' ? $line : 'none';
+ },
+
+ PREVIEW => sub { $self->get_content_preview() },
diff --git a/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Util.pm b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Util.pm
new file mode 100644
index 00000000000..fb35cb51d8d
--- /dev/null
+++ b/mail/spamassassin/patches/patch-lib_Mail_SpamAssassin_Util.pm
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_Mail_SpamAssassin_Util.pm,v 1.1 2013/12/04 15:14:19 jperkin Exp $
+
+Part of backport of bug#6937
+
+--- lib/Mail/SpamAssassin/Util.pm.orig 2011-06-06 23:59:17.000000000 +0000
++++ lib/Mail/SpamAssassin/Util.pm
+@@ -1582,7 +1582,7 @@ sub regexp_remove_delimiters {
+ warn "cannot remove delimiters from null regexp";
+ return undef; # invalid
+ }
+- elsif ($re =~ s/^m{//) { # m{foo/bar}
++ elsif ($re =~ s/^m\{//) { # m{foo/bar}
+ $delim = '}';
+ }
+ elsif ($re =~ s/^m\(//) { # m(foo/bar)