You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@spamassassin.apache.org by Dieter Braun <di...@onevision.com> on 2014/03/03 16:06:26 UTC

Re: sa-update fails - bug 6702 reappearing?

Tried it - removed all files listed in 
/usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Mail/SpamAssassin/.packlist 
and recompiled from scratch (after "make clean"): Same behavior as 
described below.

Noticed something I'm wondering about: "sa-update" and "spamassassin 
--lint" want to call "check_equal_from_domains" via package 
"Mail::SpamAssassin::PerMsgStatus". But when I grep through the source 
code, I find "check_equal_from_domains" in the file 
"lib/Mail/SpamAssassin/Plugin/HeaderEval.pm". (In the installed files 
"check_equal_from_domains" is defined in 
"/usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/HeaderEval.pm".) Just 
wondering about this.

Regards,
Dieter

Am 28.02.2014 18:02, schrieb Kevin A. McGrail:
> This looks like a step where you have old and new as versions 
> intermingling and not playing nicely. Can you clear the install and 
> reinstall?
> Regards,
> KAM
>
> Dieter Braun <di...@onevision.com> wrote:
>
>     Hi,
>
>     after upgrading to 3.4.0 (on a test machine ;-)) sa-update doesn'twork
>     any more. I'm getting the following output:
>
>     ------------------------------------------------------------------------
>
>     XXX:~ # spamassassin -V
>     SpamAssassin version 3.4.0
>     running on Perl version 5.8.8
>     XXX:~ # sa-update -V
>     sa-update version svn1475932
>     running on Perl version 5.8.8
>     XXX:~ # sa-update
>     rules: failed to run T_HEADER_FROM_DIFFERENT_DOMAINS test, skipping:
>     (Can't locate object method "check_equal_from_domains" via
>     package "Mail::SpamAssassin::PerMsgStatus" at (eval 1008) line 97.
>     )
>     channel: lint check of update failed, channel failed
>     XXX:~ # echo $?
>     4
>     ------------------------------------------------------------------------
>
>
>     Fortunately, sa-update didn't delete the downloaded archives for the
>     rules. Thus, I unpacked the rules manually and I could locate the
>     problem in 72_active.cf  <http://active.cf>:
>
>     ------------------------------------------------------------------------
>
>     ##{ T_HEADER_FROM_DIFFERENT_DOMAINS ifplugin
>     Mail::SpamAssassin::Plugin::FreeMail if (version >= 3.004000)
>
>     ifplugin Mail::SpamAssassin::Plugin::FreeMail
>     if (version >= 3.004000)
>     header T_HEADER_FROM_DIFFERENT_DOMAINS eval:check_equal_from_domains()
>     describe T_HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd
>     level mail domains are different
>     #    score T_HEADER_FROM_DIFFERENT_DOMAINS 0.25
>     endif
>     endif
>     ##} T_HEADER_FROM_DIFFERENT_DOMAINS ifplugin
>     Mail::SpamAssassin::Plugin::FreeMail if (version >= 3.004000)
>     ------------------------------------------------------------------------
>
>
>     With this rule I get:
>
>     ------------------------------------------------------------------------
>
>     XXX:~ # spamassassin --lint
>     Feb 28 16:39:50.580 [29782] warn: rules: failed to run
>     T_HEADER_FROM_DIFFERENT_DOMAINS test, skipping:
>     Feb 28 16:39:50.580 [29782] warn:  (Can't locate object method
>     "check_equal_from_domains" via package "Mail:
>     [...]:SpamAssassin::PerMsgStatus" at (eval 988) line 97.
>     Feb 28 16:39:50.580 [29782] warn: )
>     Feb 28 16:39:50.819 [29782] warn: lint: 1 issues detected, please rerun
>     with debug enabled for more information
>     ------------------------------------------------------------------------
>
>
>     After changing the version based condition for
>     T_HEADER_FROM_DIFFERENT_DOMAINS from "if (version >= 3.004000)" to "if
>     (version > 3.004000)", "spamassassin --lint" does not report any error
>     any more (it doesn't report anything as it is wanted ;-)).
>
>     Doesn't that look pretty much like bug 6702, but now for version 3.4.0?
>
>     However, manually fixing the rule is OK for debugging on a test machine.
>     But our production machine is automatically updating the rules every
>     day. Introducing a manual step into this automatic procedure would just
>     be a mess. ;-(
>
>     Is it possible to fix the source for this rule?
>
>     Regards,
>     Dieter
>


Re: sa-update fails - bug 6702 reappearing?

Posted by "Kevin A. McGrail" <KM...@PCCC.com>.
I tried 5.8.6 with no problems so like I said I am baffled.  Perhaps do make uninstall and cut and paste all the commands it would run.  Then move everything out of /etc/mail/spamassassin  and do another install.  That will remove any of your config from consideration.  

If that works, put back your config and maybe this is a config bug.
Regards,
KAM

Dieter Braun <di...@onevision.com> wrote:

>
>Am 03.03.2014 18:24, schrieb Kevin A. McGrail:
>> On 3/3/2014 12:18 PM, Dieter Braun wrote:
>>> ---------------------------------------------
>>> XXX:~ # updatedb
>>> XXX:~ # locate FreeMail.pm
>>>
>/root/install/Mail-SpamAssassin-3.4.0/blib/lib/Mail/SpamAssassin/Plugin/FreeMail.pm
>
>>>
>>>
>/root/install/Mail-SpamAssassin-3.4.0/lib/Mail/SpamAssassin/Plugin/FreeMail.pm
>
>>>
>>> /usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/FreeMail.pm
>>> --------------------------------------------- 
>> I'm baffled.  You appear to have the right code but your perl is 
>> saying the code is not there and I can't replicate the issue.
>>
>>
>Thus, I guess, I should try to update perl.

Re: sa-update fails - bug 6702 reappearing?

Posted by "Kevin A. McGrail" <KM...@PCCC.com>.
On 3/4/2014 9:18 AM, Kevin A. McGrail wrote:
> On 3/4/2014 9:09 AM, Mark Martinec wrote:
>> Dieter Braun wrote:
>>
>>> # sa-update
>>> rules: failed to run T_HEADER_FROM_DIFFERENT_DOMAINS test, skipping:
>>>  (Can't locate object method "check_equal_from_domains" via package
>>>    "Mail::SpamAssassin::PerMsgStatus" at (eval 1008) line 97.
>>
>> You are missing a line:
>>   loadplugin Mail::SpamAssassin::Plugin::HeaderEval
>> in one of your .pre files.
>>
>> That line is normally in v320.pre. You may have commented it out,
>> or the file v320.pre is missing from your SpamAssassin configuration
>> directory.
>>
>> Btw, the rule T_HEADER_FROM_DIFFERENT_DOMAINS should have
>> been conditionalized to only apply if the plugin HeaderEval
>> is available. 
>
> Good call.  Working on that now.

Change committed, good catch Mark.   I was moving in that direction but 
it's very clear from reviewing now.

Dieter, if you uncomment/add loadplugin 
Mail::SpamAssassin::Plugin::HeaderEval to your v320.pre for now, you 
should be good to go.

svn commit -m 'Adding HeaderEval condition to FREEMAIL_FORGED_FROMDOMAIN 
& HEADER_FROM_DIFFERENT_DOMAINS'
Sending        rulesrc/sandbox/kmcgrail/20_freemail.cf
Transmitting file data .
Committed revision 1574117.

Expect the rule to be fixed in a few days and you can revert.

regards,
KAM

Re: sa-update fails - bug 6702 reappearing?

Posted by "Kevin A. McGrail" <KM...@PCCC.com>.
On 3/4/2014 9:09 AM, Mark Martinec wrote:
> Dieter Braun wrote:
>
>> # sa-update
>> rules: failed to run T_HEADER_FROM_DIFFERENT_DOMAINS test, skipping:
>>  (Can't locate object method "check_equal_from_domains" via package
>>    "Mail::SpamAssassin::PerMsgStatus" at (eval 1008) line 97.
>
> You are missing a line:
>   loadplugin Mail::SpamAssassin::Plugin::HeaderEval
> in one of your .pre files.
>
> That line is normally in v320.pre. You may have commented it out,
> or the file v320.pre is missing from your SpamAssassin configuration
> directory.
>
> Btw, the rule T_HEADER_FROM_DIFFERENT_DOMAINS should have
> been conditionalized to only apply if the plugin HeaderEval
> is available. 

Good call.  Working on that now.

Re: sa-update fails - bug 6702 reappearing? --- solved

Posted by "Kevin A. McGrail" <KM...@PCCC.com>.
On 3/5/2014 8:36 AM, Dieter Braun wrote:
> Thanks a lot for this hint - that's been it!
>
> This had happened: The files /etc/mail/spamassassin/*.pre, that 
> already existed, were not replaced by the new versions. Only the new 
> file v340.pre was copied to /etc/mail/spamassassin.
>
> After moving the existing *.pre files somewhere else and copying the 
> new *.pre files, sa-update worked without any problem.
>
> But now I'm wondering, why the *.pre files aren't included in 
> /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Mail/SpamAssassin/.packlist 
> (and not included in the file list shown after "make uninstall")? But 
> that's another topic.
>
User configuration files (.pre files are intended to be changed) are 
usually exempted to avoid removing important local configuration.

The bug really was on our end where we were not testing all the plugins 
needed for that rule and you happened to have one of the two disabled.

You just helped identify the bug.

> (Sorry, that I couldn't come back to this topic earlier - many 
> colleagues are ill and need substitution.)
Better health to them!

regards,
KAM

Re: sa-update fails - bug 6702 reappearing? --- solved

Posted by Dieter Braun <di...@onevision.com>.
Thanks a lot for this hint - that's been it!

This had happened: The files /etc/mail/spamassassin/*.pre, that already 
existed, were not replaced by the new versions. Only the new file 
v340.pre was copied to /etc/mail/spamassassin.

After moving the existing *.pre files somewhere else and copying the new 
*.pre files, sa-update worked without any problem.

But now I'm wondering, why the *.pre files aren't included in 
/usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Mail/SpamAssassin/.packlist 
(and not included in the file list shown after "make uninstall")? But 
that's another topic.

(Sorry, that I couldn't come back to this topic earlier - many 
colleagues are ill and need substitution.)

Best regards and many thanks,
Dieter


Am 04.03.2014 15:09, schrieb Mark Martinec:
> Dieter Braun wrote:
>
>> # sa-update
>> rules: failed to run T_HEADER_FROM_DIFFERENT_DOMAINS test, skipping:
>>  (Can't locate object method "check_equal_from_domains" via package
>>    "Mail::SpamAssassin::PerMsgStatus" at (eval 1008) line 97.
>
> You are missing a line:
>   loadplugin Mail::SpamAssassin::Plugin::HeaderEval
> in one of your .pre files.
>
> That line is normally in v320.pre. You may have commented it out,
> or the file v320.pre is missing from your SpamAssassin configuration
> directory.
>
> Btw, the rule T_HEADER_FROM_DIFFERENT_DOMAINS should have
> been conditionalized to only apply if the plugin HeaderEval
> is available.
>
>   Mark
>
>


Re: sa-update fails - bug 6702 reappearing?

Posted by Mark Martinec <Ma...@ijs.si>.
Dieter Braun wrote:

> # sa-update
> rules: failed to run T_HEADER_FROM_DIFFERENT_DOMAINS test, skipping:
>  (Can't locate object method "check_equal_from_domains" via package
>    "Mail::SpamAssassin::PerMsgStatus" at (eval 1008) line 97.

You are missing a line:
   loadplugin Mail::SpamAssassin::Plugin::HeaderEval
in one of your .pre files.

That line is normally in v320.pre. You may have commented it out,
or the file v320.pre is missing from your SpamAssassin configuration
directory.

Btw, the rule T_HEADER_FROM_DIFFERENT_DOMAINS should have
been conditionalized to only apply if the plugin HeaderEval
is available.

   Mark

Re: sa-update fails - bug 6702 reappearing?

Posted by Dieter Braun <di...@onevision.com>.
Am 03.03.2014 18:24, schrieb Kevin A. McGrail:
> On 3/3/2014 12:18 PM, Dieter Braun wrote:
>> ---------------------------------------------
>> XXX:~ # updatedb
>> XXX:~ # locate FreeMail.pm
>> /root/install/Mail-SpamAssassin-3.4.0/blib/lib/Mail/SpamAssassin/Plugin/FreeMail.pm 
>>
>> /root/install/Mail-SpamAssassin-3.4.0/lib/Mail/SpamAssassin/Plugin/FreeMail.pm 
>>
>> /usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/FreeMail.pm
>> --------------------------------------------- 
> I'm baffled.  You appear to have the right code but your perl is 
> saying the code is not there and I can't replicate the issue.
>
>
Thus, I guess, I should try to update perl.

Re: sa-update fails - bug 6702 reappearing?

Posted by "Kevin A. McGrail" <KM...@PCCC.com>.
On 3/3/2014 12:18 PM, Dieter Braun wrote:
> ---------------------------------------------
> XXX:~ # updatedb
> XXX:~ # locate FreeMail.pm
> /root/install/Mail-SpamAssassin-3.4.0/blib/lib/Mail/SpamAssassin/Plugin/FreeMail.pm 
>
> /root/install/Mail-SpamAssassin-3.4.0/lib/Mail/SpamAssassin/Plugin/FreeMail.pm 
>
> /usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/FreeMail.pm
> --------------------------------------------- 
I'm baffled.  You appear to have the right code but your perl is saying 
the code is not there and I can't replicate the issue.

Re: sa-update fails - bug 6702 reappearing?

Posted by Dieter Braun <di...@onevision.com>.
Am 03.03.2014 17:49, schrieb Axb:
> On 03/03/2014 05:25 PM, Kevin A. McGrail wrote:
>> On 3/3/2014 11:21 AM, Dieter Braun wrote:
>>>
>>> Am 03.03.2014 17:13, schrieb Kevin A. McGrail:
>>>> On 3/3/2014 10:57 AM, Dieter Braun wrote:
>>>>> All Plugins appear to be from 3.4.0. With 'find / -nzme "perl*"' I
>>>>> cannot find any file belonging to another version of perl. (To be
>>>>> more exact: I cannot claim this for the man pages, but that
>>>>> shouldn't matter here.:-) )
>>>> Can you view HeaderEval.pm and confirm
>>>> $self->register_eval_rule("check_equal_from_domains"); is on the list
>>>> of functions?
>>> From
>>> /usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/HeaderEval.pm:
>> Bizarre...  I am at a complete loss on your error.  The code is there.
>> Perhaps someone has a thought.
>
> shot in the dark...
>
> can you run
>
> updatedb
> locate FreeMail.pm
>
>
---------------------------------------------
XXX:~ # updatedb
XXX:~ # locate FreeMail.pm
/root/install/Mail-SpamAssassin-3.4.0/blib/lib/Mail/SpamAssassin/Plugin/FreeMail.pm
/root/install/Mail-SpamAssassin-3.4.0/lib/Mail/SpamAssassin/Plugin/FreeMail.pm
/usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/FreeMail.pm
---------------------------------------------

As before: "/root/install/Mail-SpamAssassin-3.4.0/" is the location of 
the source code.


Re: sa-update fails - bug 6702 reappearing?

Posted by Axb <ax...@gmail.com>.
On 03/03/2014 05:25 PM, Kevin A. McGrail wrote:
> On 3/3/2014 11:21 AM, Dieter Braun wrote:
>>
>> Am 03.03.2014 17:13, schrieb Kevin A. McGrail:
>>> On 3/3/2014 10:57 AM, Dieter Braun wrote:
>>>> All Plugins appear to be from 3.4.0. With 'find / -nzme "perl*"' I
>>>> cannot find any file belonging to another version of perl. (To be
>>>> more exact: I cannot claim this for the man pages, but that
>>>> shouldn't matter here.:-) )
>>> Can you view HeaderEval.pm and confirm
>>> $self->register_eval_rule("check_equal_from_domains"); is on the list
>>> of functions?
>> From
>> /usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/HeaderEval.pm:
> Bizarre...  I am at a complete loss on your error.  The code is there.
> Perhaps someone has a thought.

shot in the dark...

can you run

updatedb
locate FreeMail.pm


Re: sa-update fails - bug 6702 reappearing?

Posted by "Kevin A. McGrail" <KM...@PCCC.com>.
On 3/3/2014 11:21 AM, Dieter Braun wrote:
>
> Am 03.03.2014 17:13, schrieb Kevin A. McGrail:
>> On 3/3/2014 10:57 AM, Dieter Braun wrote:
>>> All Plugins appear to be from 3.4.0. With 'find / -nzme "perl*"' I 
>>> cannot find any file belonging to another version of perl. (To be 
>>> more exact: I cannot claim this for the man pages, but that 
>>> shouldn't matter here.:-) )
>> Can you view HeaderEval.pm and confirm 
>> $self->register_eval_rule("check_equal_from_domains"); is on the list 
>> of functions?
> From 
> /usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/HeaderEval.pm:
Bizarre...  I am at a complete loss on your error.  The code is there.  
Perhaps someone has a thought.


Re: sa-update fails - bug 6702 reappearing?

Posted by Dieter Braun <di...@onevision.com>.
Am 03.03.2014 17:13, schrieb Kevin A. McGrail:
> On 3/3/2014 10:57 AM, Dieter Braun wrote:
>> All Plugins appear to be from 3.4.0. With 'find / -nzme "perl*"' I 
>> cannot find any file belonging to another version of perl. (To be 
>> more exact: I cannot claim this for the man pages, but that shouldn't 
>> matter here.:-) )
> Can you view HeaderEval.pm and confirm 
> $self->register_eval_rule("check_equal_from_domains"); is on the list 
> of functions?
>From /usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/HeaderEval.pm:

---------------------------------------------------------
[...]

   $self->register_eval_rule("check_equal_from_domains");

[...]

# ADDED FROM BUG 6487
sub check_equal_from_domains {
   my ($self, $pms) = @_;

   my $from = $pms->get('From:addr');
   my $envfrom = $pms->get('EnvelopeFrom:addr');

   local $1;
   my $fromdomain = '';
   #Revised regexp from 6487 comment 3
   $fromdomain = $1  if $from =~ /\@([^@]*)\z/;
   $fromdomain =~ s/^.+\.([^\.]+\.[^\.]+)$/$1/;
   return 0 if $fromdomain eq '';

   my $envfromdomain = '';
   $envfromdomain = $1  if $envfrom =~ /\@([^@]*)\z/;
   $envfromdomain =~ s/^.+\.([^\.]+\.[^\.]+)$/$1/;
   return 0 if $envfromdomain eq '';

   dbg("eval: From 2nd level domain: $fromdomain, EnvelopeFrom 2nd level 
domain: $envfromdomain");

   return 1 if lc($fromdomain) ne lc($envfromdomain);

   return 0;
}

[...]
---------------------------------------------------------

Regards,
Dieter


Re: sa-update fails - bug 6702 reappearing?

Posted by "Kevin A. McGrail" <KM...@PCCC.com>.
On 3/3/2014 10:57 AM, Dieter Braun wrote:
> All Plugins appear to be from 3.4.0. With 'find / -nzme "perl*"' I 
> cannot find any file belonging to another version of perl. (To be more 
> exact: I cannot claim this for the man pages, but that shouldn't 
> matter here.:-) )
Can you view HeaderEval.pm and confirm 
$self->register_eval_rule("check_equal_from_domains"); is on the list of 
functions?

Re: sa-update fails - bug 6702 reappearing?

Posted by Dieter Braun <di...@onevision.com>.
Am 03.03.2014 16:21, schrieb Kevin A. McGrail:
> On 3/3/2014 10:06 AM, Dieter Braun wrote:
>> Tried it - removed all files listed in 
>> /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Mail/SpamAssassin/.packlist 
>> and recompiled from scratch (after "make clean"): Same behavior as 
>> described below.
>>
>> Noticed something I'm wondering about: "sa-update" and "spamassassin 
>> --lint" want to call "check_equal_from_domains" via package 
>> "Mail::SpamAssassin::PerMsgStatus". But when I grep through the 
>> source code, I find "check_equal_from_domains" in the file 
>> "lib/Mail/SpamAssassin/Plugin/HeaderEval.pm". (In the installed files 
>> "check_equal_from_domains" is defined in 
>> "/usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/HeaderEval.pm".) 
>> Just wondering about this.
> PerMsgStatus or PMS is more of the core library that loops through the 
> message.
>
> I would do a locate HeaderEval.pm or similar.  To me, this is acting 
> like you have an old version of the file HeaderEval.pm (perhaps 
> multiple versions of perl)?
>
> I can recreate this issue by modifying HeaderEval.pm to remove 
> $self->register_eval_rule("check_equal_from_domains");
>
>     rules: failed to run T_HEADER_FROM_DIFFERENT_DOMAINS test, skipping:
>             (Can't locate object method "check_equal_from_domains" via
>     package "Mail::SpamAssassin::PerMsgStatus" at (eval 1125) line 1423.
>     )
>     channel: lint check of update failed, channel failed
>
> Did you install via cpan, source, rpm, etc?
>
> Regards,
> KAM

-------------------------------------------------------
XXX:~ # locate HeaderEval.pm
/usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/HeaderEval.pm
-------------------------------------------------------

-------------------------------------------------------
XXX:~ # l /usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin
total 736
drwxr-xr-x  2 root root  4096 Mar  3 15:51 ./
drwxr-xr-x 10 root root  4096 Mar  3 15:51 ../
-r--r--r--  1 root root 15023 Feb  7 09:36 ASN.pm
-r--r--r--  1 root root 19875 Feb  7 09:36 AWL.pm
-r--r--r--  1 root root  4672 Feb  7 09:36 AccessDB.pm
-r--r--r--  1 root root  4572 Feb  7 09:36 AntiVirus.pm
-r--r--r--  1 root root 28105 Feb  7 09:36 AskDNS.pm
-r--r--r--  1 root root  8816 Feb  7 09:36 AutoLearnThreshold.pm
-r--r--r--  1 root root 52152 Feb  7 09:36 Bayes.pm
-r--r--r--  1 root root  8900 Feb  7 09:36 BodyEval.pm
-r--r--r--  1 root root 34302 Feb  7 09:36 BodyRuleBaseExtractor.pm
-r--r--r--  1 root root 46722 Feb  7 09:36 Check.pm
-r--r--r--  1 root root 33535 Feb  7 09:36 DCC.pm
-r--r--r--  1 root root 49285 Feb  7 09:36 DKIM.pm
-r--r--r--  1 root root 12415 Feb  7 09:36 DNSEval.pm
-r--r--r--  1 root root 18906 Feb  7 09:36 FreeMail.pm
-r--r--r--  1 root root  5458 Feb  7 09:36 HTMLEval.pm
-r--r--r--  1 root root  3589 Feb  7 09:36 HTTPSMismatch.pm
-r--r--r--  1 root root 10214 Feb  7 09:36 Hashcash.pm
-r--r--r--  1 root root 33326 Feb  7 09:36 HeaderEval.pm
-r--r--r--  1 root root 12860 Feb  7 09:36 ImageInfo.pm
-r--r--r--  1 root root 15417 Feb  7 09:36 MIMEEval.pm
-r--r--r--  1 root root  6075 Feb  7 09:36 MIMEHeader.pm
-r--r--r--  1 root root  4127 Feb  7 09:36 OneLineBodyRuleType.pm
-r--r--r--  1 root root  7448 Feb  7 09:36 PhishTag.pm
-r--r--r--  1 root root 13163 Feb  7 09:36 Pyzor.pm
-r--r--r--  1 root root 14430 Feb  7 09:36 Razor2.pm
-r--r--r--  1 root root  4496 Feb  7 09:36 RelayCountry.pm
-r--r--r--  1 root root 11363 Feb  7 09:36 RelayEval.pm
-r--r--r--  1 root root  7831 Feb  7 09:36 ReplaceTags.pm
-r--r--r--  1 root root  6975 Feb  7 09:36 Reuse.pm
-r--r--r--  1 root root  8733 Feb  7 09:36 Rule2XSBody.pm
-r--r--r--  1 root root 28730 Feb  7 09:36 SPF.pm
-r--r--r--  1 root root  8396 Feb  7 09:36 Shortcircuit.pm
-r--r--r--  1 root root  8578 Feb  7 09:36 SpamCop.pm
-r--r--r--  1 root root  2018 Feb  7 09:36 Test.pm
-r--r--r--  1 root root 14167 Feb  7 09:36 TextCat.pm
-r--r--r--  1 root root 39526 Feb  7 09:36 URIDNSBL.pm
-r--r--r--  1 root root  7329 Feb  7 09:36 URIDetail.pm
-r--r--r--  1 root root  2693 Feb  7 09:36 URIEval.pm
-r--r--r--  1 root root  4987 Feb  7 09:36 VBounce.pm
-r--r--r--  1 root root 14646 Feb  7 09:36 WLBLEval.pm
-r--r--r--  1 root root  4221 Feb  7 09:36 WhiteListSubject.pm
-------------------------------------------------------

All Plugins appear to be from 3.4.0. With 'find / -name "perl*"' I 
cannot find any file belonging to another version of perl. (To be more 
exact: I cannot claim this for the man pages, but that shouldn't matter 
here.:-) )

-------------------------------------------------------
XXX:~ # find / -name HeaderEval.pm
/root/install/Mail-SpamAssassin-3.4.0/blib/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
/root/install/Mail-SpamAssassin-3.4.0/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
/usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/HeaderEval.pm
-------------------------------------------------------

"/root/install/Mail-SpamAssassin-3.4.0/" is the directory where the 
source code is located. I'm installing by compiling from source code:

-------------------------------------------------------
cd /root/install/Mail-SpamAssassin-3.4.0/
perl Makefile.PL
make
make install
-------------------------------------------------------

I have not installed all optional modules:

-------------------------------------------------------
XXX:~ # perl build/check_dependencies

[...]

optional module missing: Mail::SPF
optional module missing: Geo::IP
optional module missing: IO::Socket::IP
optional module missing: Mail::DKIM
optional module missing: Net::Patricia
optional binary missing or nonfunctional: fetch
-------------------------------------------------------

Regards,
Dieter


Re: sa-update fails - bug 6702 reappearing?

Posted by "Kevin A. McGrail" <KM...@PCCC.com>.
On 3/3/2014 10:06 AM, Dieter Braun wrote:
> Tried it - removed all files listed in 
> /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Mail/SpamAssassin/.packlist 
> and recompiled from scratch (after "make clean"): Same behavior as 
> described below.
>
> Noticed something I'm wondering about: "sa-update" and "spamassassin 
> --lint" want to call "check_equal_from_domains" via package 
> "Mail::SpamAssassin::PerMsgStatus". But when I grep through the source 
> code, I find "check_equal_from_domains" in the file 
> "lib/Mail/SpamAssassin/Plugin/HeaderEval.pm". (In the installed files 
> "check_equal_from_domains" is defined in 
> "/usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/HeaderEval.pm".) 
> Just wondering about this.
PerMsgStatus or PMS is more of the core library that loops through the 
message.

I would do a locate HeaderEval.pm or similar.  To me, this is acting 
like you have an old version of the file HeaderEval.pm (perhaps multiple 
versions of perl)?

I can recreate this issue by modifying HeaderEval.pm to remove 
$self->register_eval_rule("check_equal_from_domains");

    rules: failed to run T_HEADER_FROM_DIFFERENT_DOMAINS test, skipping:
             (Can't locate object method "check_equal_from_domains" via
    package "Mail::SpamAssassin::PerMsgStatus" at (eval 1125) line 1423.
    )
    channel: lint check of update failed, channel failed

Did you install via cpan, source, rpm, etc?

Regards,
KAM