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