たけふ@大阪豊中です。

先日、SpamAssassin 3.1.7 -> 3.1.8 に上げたあと気が付かなかったのですが、
辞書学習させるコマンドの実行時に、下記の様なエラーメッセージ?がでていました。

>archive-iterator: invalid (undef) format in target list, 2 at 
>/usr/local/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/ArchiveIterator.pm line 
>724,  line 1.

早速 Google 先生に尋ねると本家の Bugzilla に対策用のパッチもありました。
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=5336

このパッチを当てることで解消されましたので、現状の ports-current に当てれるパッチを、
作ってみましたので、ご参考に。

#----   Makefile.diff
--- mail/p5-Mail-SpamAssassin/Makefile.orig     Thu Feb 22 14:38:35 2007
+++ mail/p5-Mail-SpamAssassin/Makefile  Thu Feb 22 14:40:16 2007
@@ -7,6 +7,7 @@
 
 PORTNAME=      Mail-SpamAssassin
 PORTVERSION=   3.1.8
+PORTREVISION=  1
 CATEGORIES=    mail perl5
 MASTER_SITES=  ${MASTER_SITE_APACHE:S/$/:apache/} 
${MASTER_SITE_PERL_CPAN:S/$/:cpan/}
 MASTER_SITE_SUBDIR=    spamassassin/source/:apache Mail/:cpan

#----   patch-sa-learn.raw
echo x - mail/p5-Mail-SpamAssassin/files/patch-sa-learn.raw
sed 's/^X//' >mail/p5-Mail-SpamAssassin/files/patch-sa-learn.raw << 
'END-of-mail/p5-Mail-SpamAssassin/files/patch-sa-learn.raw'
XIndex: sa-learn.raw
X===================================================================
X--- sa-learn.raw       (revision 507745)
X+++ sa-learn.raw       (working copy)
X@@ -402,7 +402,10 @@
X 
X     # make sure the target list is in the normal AI format
X     if ($targets[$elem] !~ /^[^:]*:[a-z]+:/) {
X-      $targets[$elem] = target($targets[$elem]);
X+      my $item = splice @targets, $elem, 1;
X+      $elem--; # go back to this element again
X+      target($item); # add back to the list
X+      next;
X     }
X   }
X 
END-of-mail/p5-Mail-SpamAssassin/files/patch-sa-learn.raw
exit

メールによる返信