starting a clean build where my init dir contains only:
% ls -1R /var/SA
Local/
rules_du_jour.conf
sa-update-channels.txt
./Local:
ImageInfo.pm
init.pre
local.cf
local.cf.20061018
razor-agent.log
sa-update-keys/
./Local/sa-update-keys:
pubring.gpg
secring.gpg
trustdb.gpg
building a fresh co of SA 317 w/:
perl Makefile.PL \
PREFIX=/usr/local/spamassassin \
DATADIR=/var/SA/Dist \
CONFDIR=/var/SA/Local \
ENABLE_SSL="yes" \
LDDLFLAGS="-L/usr/local/ssl/lib -lssl -lcrypto" \
LDFLAGS="-bind_at_load -L/usr/local/ssl/lib -lssl -lcrypto -ldl" \
INC="-I/usr/local/ssl/include"
...
make install
mv /var/SA/Local/v310.pre /var/SA/Local/v310.preORIG
mv /var/SA/Local/v312.pre /var/SA/Local/v312.preORIG
then checking:
% ls -R /var/SA/
/var/SA/:
Dist/ Local/ rules_du_jour.conf sa-update-channels.txt
/var/SA/Dist:
10_misc.cf 23_bayes.cf 30_text_fr.cf
20_advance_fee.cf 25_accessdb.cf 30_text_it.cf
20_anti_ratware.cf 25_antivirus.cf 30_text_nl.cf
20_body_tests.cf 25_body_tests_es.cf 30_text_pl.cf
20_compensate.cf 25_body_tests_pl.cf 30_text_pt_br.cf
20_dnsbl_tests.cf 25_dcc.cf 50_scores.cf
20_drugs.cf 25_dkim.cf 60_awl.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_meta_tests.cf 25_razor2.cf 60_whitelist_spf.cf
20_net_tests.cf 25_replace.cf
60_whitelist_subject.cf
20_phrases.cf 25_spf.cf languages
20_porn.cf 25_textcat.cf sa-update-pubkey.txt
20_ratware.cf 25_uribl.cf triplets.txt
20_uri_tests.cf 30_text_de.cf user_prefs.template
/var/SA/Local:
ImageInfo.pm local.cf razor-agent.log v310.preORIG
init.pre local.cf.20061018 sa-update-keys/ v312.preORIG
/var/SA/Local/sa-update-keys:
pubring.gpg secring.gpg trustdb.gpg
running an sa-update, per your instructions without --updatedir defined:
sa-update \
--channelfile /var/SA/sa-update-channels.txt \
--gpgkey 856AA88A
i get, yet once again, @ shell, the same as before:
Subroutine __HAS_RCVD_head_test redefined at
/tmp/.spamassassin15766jDBiWjtmp/200510301100.cf, rule __HAS_RCVD, line
6.
Subroutine __THEBAT_MUA_head_test redefined at
/tmp/.spamassassin15766jDBiWjtmp/200510301100.cf, rule __THEBAT_MUA,
line 6.
Subroutine __AOL_FROM_head_test redefined at
/tmp/.spamassassin15766jDBiWjtmp/200510301100.cf, rule __AOL_FROM, line
6.
Subroutine FROM_BLANK_NAME_head_test redefined at
/tmp/.spamassassin15766jDBiWjtmp/200510301100.cf, rule FROM_BLANK_NAME,
line 6.
etc
etc
...
as LOCALSATEDIR is, apparently, normally derived from $PREFIX:
'LOCALSTATEDIR', # normally determined based on $*PREFIX.
, which in my case is:
PREFIX=/usr/local/spamassassin
in the case above of --updatedir=(undef), i do note that, after
sa-update, i have now, as expected:
% ls /usr/local/spamassassin/var/spamassassin/3.001007
70_sare_adult_cf_sare_sa-update_dostech_net/
70_sare_random_cf_sare_sa-update_dostech_net.cf
70_sare_adult_cf_sare_sa-update_dostech_net.cf
70_sare_specific_cf_sare_sa-update_dostech_net/
70_sare_bayes_poison_nxm_cf_sare_sa-update_dostech_net/
70_sare_specific_cf_sare_sa-update_dostech_net.cf
70_sare_bayes_poison_nxm_cf_sare_sa-update_dostech_net.cf
70_sare_spoof_cf_sare_sa-update_dostech_net/
70_sare_evilnum0_cf_sare_sa-update_dostech_net/
70_sare_spoof_cf_sare_sa-update_dostech_net.cf
70_sare_evilnum0_cf_sare_sa-update_dostech_net.cf
70_sare_stocks_cf_sare_sa-update_dostech_net/
70_sare_evilnum1_cf_sare_sa-update_dostech_net/
70_sare_stocks_cf_sare_sa-update_dostech_net.cf
70_sare_evilnum1_cf_sare_sa-update_dostech_net.cf
70_sare_unsub_cf_sare_sa-update_dostech_net/
70_sare_genlsubj_cf_sare_sa-update_dostech_net/
70_sare_unsub_cf_sare_sa-update_dostech_net.cf
70_sare_genlsubj_cf_sare_sa-update_dostech_net.cf
70_sare_uri_cf_sare_sa-update_dostech_net/
70_sare_genlsubj_eng_cf_sare_sa-update_dostech_net/
70_sare_uri_cf_sare_sa-update_dostech_net.cf
70_sare_genlsubj_eng_cf_sare_sa-update_dostech_net.cf
70_sc_top200_cf_sare_sa-update_dostech_net/
70_sare_header_cf_sare_sa-update_dostech_net/
70_sc_top200_cf_sare_sa-update_dostech_net.cf
70_sare_header_cf_sare_sa-update_dostech_net.cf
72_sare_bml_post25x_cf_sare_sa-update_dostech_net/
70_sare_header_eng_cf_sare_sa-update_dostech_net/
72_sare_bml_post25x_cf_sare_sa-update_dostech_net.cf
70_sare_header_eng_cf_sare_sa-update_dostech_net.cf
72_sare_redirect_post3_0_0_cf_sare_sa-update_dostech_net/
70_sare_html_cf_sare_sa-update_dostech_net/
72_sare_redirect_post3_0_0_cf_sare_sa-update_dostech_net.cf
70_sare_html_cf_sare_sa-update_dostech_net.cf
99_sare_fraud_post25x_cf_sare_sa-update_dostech_net/
70_sare_obfu_cf_sare_sa-update_dostech_net/
99_sare_fraud_post25x_cf_sare_sa-update_dostech_net.cf
70_sare_obfu_cf_sare_sa-update_dostech_net.cf
updates_spamassassin_org/
70_sare_oem_cf_sare_sa-update_dostech_net/
updates_spamassassin_org.cf
70_sare_oem_cf_sare_sa-update_dostech_net.cf
updates_spamassassin_org.pre
70_sare_random_cf_sare_sa-update_dostech_net/
per your comment:
If you're seeing subroutine redefined warnings you're loading the same
rules more than once, period.
ok. "period".
from where?
again, per your suggestion:
Run "spamassassin --lint -D" and make note of what directories it's
loading rules from. Then go and blow away those directories (be
careful not to delete things you don't have a copy of... like stuff in
your local site directory) and start over. I'd suggest not altering
the build defaults, but if you must, don't use the same directory for
any two things.
i do so:
spamassassin --lint \
--debug \
--siteconfigpath=/var/SA/Dist \
--configpath=/var/SA/Local \
--nocreate-prefs >& lintout.txt
then:
% grep -i read lintout.txt
[15793] dbg: config: read file /var/SA/Local/init.pre
[15793] dbg: config: read file /var/SA/Local/local.cf
[15793] dbg: config: read file /var/SA/Dist/10_misc.cf
[15793] dbg: config: read file /var/SA/Dist/20_advance_fee.cf
[15793] dbg: config: read file /var/SA/Dist/20_anti_ratware.cf
[15793] dbg: config: read file /var/SA/Dist/20_body_tests.cf
[15793] dbg: config: read file /var/SA/Dist/20_compensate.cf
[15793] dbg: config: read file /var/SA/Dist/20_dnsbl_tests.cf
[15793] dbg: config: read file /var/SA/Dist/20_drugs.cf
[15793] dbg: config: read file
/var/SA/Dist/20_fake_helo_tests.cf
[15793] dbg: config: read file /var/SA/Dist/20_head_tests.cf
[15793] dbg: config: read file /var/SA/Dist/20_html_tests.cf
[15793] dbg: config: read file /var/SA/Dist/20_meta_tests.cf
[15793] dbg: config: read file /var/SA/Dist/20_net_tests.cf
[15793] dbg: config: read file /var/SA/Dist/20_phrases.cf
[15793] dbg: config: read file /var/SA/Dist/20_porn.cf
[15793] dbg: config: read file /var/SA/Dist/20_ratware.cf
[15793] dbg: config: read file /var/SA/Dist/20_uri_tests.cf
[15793] dbg: config: read file /var/SA/Dist/23_bayes.cf
[15793] dbg: config: read file /var/SA/Dist/25_accessdb.cf
[15793] dbg: config: read file /var/SA/Dist/25_antivirus.cf
[15793] dbg: config: read file /var/SA/Dist/25_body_tests_es.cf
[15793] dbg: config: read file /var/SA/Dist/25_body_tests_pl.cf
[15793] dbg: config: read file /var/SA/Dist/25_dcc.cf
[15793] dbg: config: read file /var/SA/Dist/25_dkim.cf
[15793] dbg: config: read file /var/SA/Dist/25_domainkeys.cf
[15793] dbg: config: read file /var/SA/Dist/25_hashcash.cf
[15793] dbg: config: read file /var/SA/Dist/25_pyzor.cf
[15793] dbg: config: read file /var/SA/Dist/25_razor2.cf
[15793] dbg: config: read file /var/SA/Dist/25_replace.cf
[15793] dbg: config: read file /var/SA/Dist/25_spf.cf
[15793] dbg: config: read file /var/SA/Dist/25_textcat.cf
[15793] dbg: config: read file /var/SA/Dist/25_uribl.cf
[15793] dbg: config: read file /var/SA/Dist/30_text_de.cf
[15793] dbg: config: read file /var/SA/Dist/30_text_fr.cf
[15793] dbg: config: read file /var/SA/Dist/30_text_it.cf
[15793] dbg: config: read file /var/SA/Dist/30_text_nl.cf
[15793] dbg: config: read file /var/SA/Dist/30_text_pl.cf
[15793] dbg: config: read file /var/SA/Dist/30_text_pt_br.cf
[15793] dbg: config: read file /var/SA/Dist/50_scores.cf
[15793] dbg: config: read file /var/SA/Dist/60_awl.cf
[15793] dbg: config: read file /var/SA/Dist/60_whitelist.cf
[15793] dbg: config: read file /var/SA/Dist/60_whitelist_dk.cf
[15793] dbg: config: read file /var/SA/Dist/60_whitelist_dkim.cf
[15793] dbg: config: read file /var/SA/Dist/60_whitelist_spf.cf
[15793] dbg: config: read file
/var/SA/Dist/60_whitelist_subject.cf
shows simply the files being read from the Distribution.
so, per your insistence that I'm loading the same rules more than once
-- which i'm open to learning -- can you please clarify what I should,
then, "blow away" here? where are the duplicate rules?