Exploring some problems I've been having, I have uploaded the latest
SpamAssassin SVN source code.

I'm specifying 'custom' locations for SpamAssassin local, distribution &
update files.

Despite being correctly 'told' where to pick up the files, SA seems to
ignore the DATADIR spec (where the Distribution files are), only checking in
the LOCALSTATEDIR (where the UPdates are), and traversing no further.

Can someone help find the problem?

I've pasted some of the details below.

Thanks,

  JTDeLys

svn info
Path: .
URL: http://svn.apache.org/repos/asf/spamassassin/trunk
Repository Root: http://svn.apache.org/repos/asf
Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68
Revision: 550563
Node Kind: directory
Schedule: normal
Last Changed Author: jm
Last Changed Rev: 550555
Last Changed Date: 2007-06-25 10:20:48 -0700 (Mon, 25 Jun 2007)


Reading PACKAGING, the wiki, and nformation from previous list posts,


DATADIR (DEFRULESDIR):
  SpamAssassin's real logic lies in its shipped rule definitions and the
  corresponding scores. The files with these settings have to be saved
  somewhere, normally below PREFIX/share/spamassassin. The full path to
  that directory can be changed with this variable (DEFRULESDIR is a
  synonym).

CONFDIR (LOCALRULESDIR):
  SpamAssassin looks for its config files in SYSCONFDIR/mail/spamassassin.

LOCALSTATEDIR:
  "sa-update" will download rule updates into LOCALSTATEDIR/spamassassin.


I've chosen to configure & build using,

perl Makefile.PL                                   \
PREFIX=/usr/local/spamassassin                     \
DATADIR=/usr/local/etc/spamassassin/Distribution   \
CONFDIR=/usr/local/etc/spamassassin/Local          \
LOCALSTATEDIR=/usr/local/etc/spamassassin/Updates

cd spamc
perl version.h.pl

After install, sa-update (of both Distribution & SARE rules), and
sa-compile, I have

cd /usr/local/etc/spamassassin
ls Distribution/
 10_default_prefs.cf    20_vbounce.cf     30_text_it.cf
 20_advance_fee.cf      23_bayes.cf       30_text_nl.cf
 20_body_tests.cf       25_accessdb.cf    30_text_pl.cf
 20_compensate.cf       25_antivirus.cf   30_text_pt_br.cf
 20_dnsbl_tests.cf      25_asn.cf         50_scores.cf
 20_drugs.cf            25_dcc.cf         60_awl.cf
 20_dynrdns.cf          25_dkim.cf        60_shortcircuit.cf
 20_fake_helo_tests.cf  25_domainkeys.cf  60_whitelist.cf
 20_head_tests.cf       25_hashcash.cf    60_whitelist_dk.cf
 20_html_tests.cf       25_pyzor.cf       60_whitelist_dkim.cf
 20_imageinfo.cf        25_razor2.cf      60_whitelist_spf.cf
 20_meta_tests.cf       25_replace.cf     60_whitelist_subject.cf
 20_net_tests.cf        25_spf.cf         languages
 20_phrases.cf          25_textcat.cf     sa-update-pubkey.txt
 20_porn.cf             25_uribl.cf       user_prefs.template
 20_ratware.cf          30_text_de.cf
 20_uri_tests.cf        30_text_fr.cf

ls -rd Updates/*
 Updates/compiled  Updates/3.003000

Next, checking in the resulting "man spamassassin",

...
CONFIGURATION FILES
...

      Default configuration data is loaded from the first existing
directory
      in:

      /usr/local/etc/spamassassin/Updates/3.003000
      /usr/local/etc/spamassassin/Distribution
      /usr/local/spamassassin/share/spamassassin
      /usr/local/share/spamassassin
      /usr/share/spamassassin

      Site-specific configuration data is used to override any values which
      had already been set.  This is loaded from the first existing
directory
      in:

      /usr/local/etc/spamassassin/Local
      /usr/local/spamassassin/etc/mail/spamassassin
      /usr/local/spamassassin/etc/spamassassin
      /usr/local/etc/spamassassin
      /usr/pkg/etc/spamassassin
      /usr/etc/spamassassin
      /etc/mail/spamassassin
      /etc/spamassassin
...


The problem is that

  spamassassin --lint --nocreate-prefs --debug > /tmp/sa_debug_output.txt

reports that,

 [24122] dbg: config: using "/usr/local/etc/spamassassin/Local" for site
rules pre files
 [24122] dbg: config: read file /usr/local/etc/spamassassin/Local/init.pre
 [24122] dbg: config: using "/usr/local/etc/spamassassin/Updates/3.003000"
for sys rules pre files
 [24122] dbg: config: using "/usr/local/etc/spamassassin/Updates/3.003000"
for default rules dir

and, apparently, never picks up the original .cf's from,

  /usr/local/etc/spamassassin/Distribution

so, e.g.,

 cd /usr/local/etc/spamassassin
 find . | grep -i 50_
   ./Distribution/50_scores.cf

never gets found/read -- DESPITE having assigned

 DATADIR=/usr/local/etc/spamassassin/Distribution

It seems to me that, according to,

"       Default configuration data is loaded from the first existing
directory
      in:
"

the Default config data is NOT picked up from the first INSTANCE of a given
.cf in the search hierarchy, just from the first DIR listed there.



--
Thanks,

   JTDeLys

Reply via email to