hi Mark --

ah.  this is a side-effect of (a) the snapshot being a snapshot of SVN
trunk; (b) ExtUtils::MakeMaker being a little deficient ;)

the 'perl Makefile.PL' step defines what files will be installed from the
rules dir, here:

  # Gather the rules files in the range 00-69; we do this in perl because it's 
more portable
  my @datafiles = map { s,^rules/,,; $_ } (<rules/*.cf>);
  my $datafiles = join(' ', (grep { /^(?:[0-6][0-9]|72)_/ } @datafiles), 
qw(user_prefs.template languages sa-update-pubkey.txt));

Later, some of those rule files are created during 'make'.  This is
the problem; that code still depends on the files being there before
the 'perl Makefile.PL' step, which is suboptimal....

haven't worked out a fix for this yet -- but it only affects people
using SVN snapshots or a direct SVN checkout.   A "make dist" tarball
is unaffected (since it contains those files).

--j.

Mark Martinec writes:
> Justin,
> 
> > in my checkout:
> >   rules/72_active.cf:##{ DK_POLICY_SIGNALL
> >   rules/72_active.cf:score DK_POLICY_SIGNALL 0.001
> > could you do a further grep of your 'rules' dir to figure out
> > why those lines aren't being used?
> 
> Thanks for the hint, my mistake it seems.
> 
> I fetched a snapshot from http://cvs.apache.org/snapshots/spamassassin/
> and did a 'perl Makefile.PL; make; make test; make install' chant,
> ignoring the fact that Makefile.PL reported:
> 
>   Checking if your kit is complete...
>   Warning: the following files are missing in your kit:
>         rules/70_inactive.cf
>         rules/70_sandbox.cf
>         rules/72_active.cf
>         rules/sandbox-felicity.pm
>         rules/sandbox-hstern.pm
>   Please inform the author.
> 
> It is interesting that the warning goes away if I run
> 'perl Makefile.PL' twice in a row: the first time it reports
> missing files, the second time it is fine.
> 
> After a couple of rounds of perl Makefile.PL, make clean,
> make, make install (in a desperate random order) I end up
> with a correct install:
> 
> /usr/local/bin/perl 
> build/preprocessor -Mvars  -DVERSION="3.002000"  -DPREFIX="/usr/local"  
> -DDEF_RULES_DIR="/usr/local/share/spamassassin"  
> -DLOCAL_RULES_DIR="/etc/mail/spamassassin"  -DLOCAL_STATE_DIR="/var/lib"  
> -DINSTALLSITELIB="/usr/local/lib/perl5/site_perl/5.8.8"  
> -DCONTACT_ADDRESS="the 
> administrator of that system" -m644 -Irules -O/usr/local/share/spamassassin 
> 10_default_prefs.cf 20_body_tests.cf 20_dnsbl_tests.cf 20_head_tests.cf 
> 20_html_tests.cf 20_net_tests.cf 23_bayes.cf 25_accessdb.cf 25_antivirus.cf 
> 25_dcc.cf 25_dkim.cf 25_domainkeys.cf 25_hashcash.cf 25_pyzor.cf 25_razor2.cf 
> 25_replace.cf 25_spf.cf 25_textcat.cf 25_uribl.cf 60_awl.cf 60_whitelist.cf 
> 60_whitelist_dkim.cf 60_whitelist_spf.cf 60_whitelist_subject.cf 72_active.cf 
> user_prefs.template languages sa-update-pubkey.txt
> chmod 755 /usr/local/share/spamassassin
> 
> whereas in most cases it is missing the installation of the 72_active.cf:
> 
> /local/share/spamassassin"  -DLOCAL_RULES_DIR="/etc/mail/spamassassin"  
> -DLOCAL_STATE_DIR="/var/lib"  
> -DINSTALLSITELIB="/usr/local/lib/perl5/site_perl/5.8.8"  
> -DCONTACT_ADDRESS="the 
> administrator of that system" -m644 -Irules -O/usr/local/share/spamassassin 
> 10_default_prefs.cf 20_body_tests.cf 20_dnsbl_tests.cf 20_head_tests.cf 
> 20_html_tests.cf 20_net_tests.cf 23_bayes.cf 25_accessdb.cf 25_antivirus.cf 
> 25_dcc.cf 25_dkim.cf 25_domainkeys.cf 25_hashcash.cf 25_pyzor.cf 25_razor2.cf 
> 25_replace.cf 25_spf.cf 25_textcat.cf 25_uribl.cf 60_awl.cf 60_whitelist.cf 
> 60_whitelist_dkim.cf 60_whitelist_spf.cf 60_whitelist_subject.cf 
> user_prefs.template languages sa-update-pubkey.txt
> chmod 755 /usr/local/share/spamassassin
> 
> It is embarassing to admit that I don't know what is the proper
> install procedure from CVS snapshots and I can't find it documented,
> although I vaguely remember having seen it described somewhere.
> Thanks for help.
> 
>   Mark

Reply via email to