SpamAssassin won't run

Hello,

Have installed spamassassin and spamc-ssl packages from x86_64 22.03.2

However, no init.d scipts were added.

Tried running spamd manually and:

root@Router:/# /usr/bin/spamd
-ash: /usr/bin/spamd: not found
root@Router:/#

But it is there:

root@Router:/# ls -la /usr/bin/spam*
-rwxr-xr-x    1 root     root         30242 Apr 29  2021 /usr/bin/spamassassin
-rwxr-xr-x    1 root     root         41997 Apr 29  2021 /usr/bin/spamc
-rwxr-xr-x    1 root     root        130523 Apr 29  2021 /usr/bin/spamd

Same thing happens for other components of the package:

root@Router:/# ls -la /usr/bin/sa-*
-rwxr-xr-x    1 root     root          5053 Apr 29  2021 /usr/bin/sa-awl
-rwxr-xr-x    1 root     root         14901 Apr 29  2021 /usr/bin/sa-check_spamd
-rwxr-xr-x    1 root     root         22449 Apr 29  2021 /usr/bin/sa-compile
-rwxr-xr-x    1 root     root         45937 Apr 29  2021 /usr/bin/sa-learn
-rwxr-xr-x    1 root     root         74369 Apr 29  2021 /usr/bin/sa-update
root@Router:/# /usr/bin/sa-check_spamd 
-ash: /usr/bin/sa-check_spamd: not found
root@Router:/# 
root@Router:/# /usr/bin/sa-update 
-ash: /usr/bin/sa-update: not found
root@Router:/#

No output to syslog and can't see any log output with name spam:

updatedb && locate spam
/etc/crowdsec/hub/scenarios/crowdsecurity/dovecot-spam.yaml
/etc/crowdsec/scenarios/dovecot-spam.yaml
/etc/mail/spamassassin
/etc/mail/spamassassin/init.pre
/etc/mail/spamassassin/local.cf
/etc/mail/spamassassin/v310.pre
/etc/mail/spamassassin/v312.pre
/etc/mail/spamassassin/v320.pre
/etc/mail/spamassassin/v330.pre
/etc/mail/spamassassin/v340.pre
/etc/mail/spamassassin/v341.pre
/etc/mail/spamassassin/v342.pre
/etc/mail/spamassassin/v343.pre
/lib/upgrade/keep.d/spamassassin
/usr/bin/sa-check_spamd
/usr/bin/spamassassin
/usr/bin/spamc
/usr/bin/spamd
/usr/lib/opkg/info/spamassassin.conffiles
/usr/lib/opkg/info/spamassassin.control
/usr/lib/opkg/info/spamassassin.list
/usr/lib/opkg/info/spamassassin.postinst
/usr/lib/opkg/info/spamassassin.prerm
/usr/lib/opkg/info/spamc-ssl.control
/usr/lib/opkg/info/spamc-ssl.list
/usr/lib/opkg/info/spamc-ssl.postinst
/usr/lib/opkg/info/spamc-ssl.prerm
root@Router:/#

I've got Exim+Dovecot+ClamAV working and SpamAssassin is the last piece of the puzzle, so would be great if can get some help to get this working please.

with root@OpenWrt:~# perl /usr/bin/spamd at least it starts, but trips over pretty much immediately.

I got:

root@Router:/# perl /usr/bin/spamd
"-T" is on the #! line, it must also be used on the command line at /usr/bin/spamd line 1.

root@Router:/# perl -T -w /usr/bin/spamd
Can't locate Mail/SpamAssassin.pm in @INC (you may need to install the Mail::SpamAssassin module) (@INC contains: /usr/lib/perl5/5.28) at /usr/bin/spamd line 240.
BEGIN failed--compilation aborted at /usr/bin/spamd line 240.

There doesnt appear to be cpan to install new perl modules either.
opkg install perlbase-cpan did not install cpan.

opkg install spamassassin
opkg install spamc-ssl
opkg install perlbase-base
opkg install perlbase-anydbm-file
opkg install perlbase-archive
opkg install perlbase-cpan
opkg install perlbase-io
opkg install perlbase-perlio
opkg install perlbase-pod
opkg install perl-http-date

Did find a package for AnyDBM, now installed. And....

root@Router:/# perl -T -w /usr/bin/sa-awl 
No DBM package was successfully found or installed at /usr/lib/perl5/5.28/AnyDBM_File.pm line 17.
Compilation failed in require at /usr/bin/sa-awl line 65.
BEGIN failed--compilation aborted at /usr/bin/sa-awl line 65.

opkg install perlbase-anydbm-file
opkg install perlbase-dbm-filter

perl -T -w /usr/bin/sa-awl 
No DBM package was successfully found or installed at **/usr/lib/perl5/5.28/AnyDBM_File.pm** line 17.
Compilation failed in require at /usr/bin/sa-awl line 65.
BEGIN failed--compilation aborted at /usr/bin/sa-awl line 65.

root@Router:/# updatedb
root@Router:/# locate DBM
**/usr/lib/perl5/5.28/AnyDBM_File.pm**
/usr/lib/perl5/5.28/DBD/DBM.pm
/usr/lib/perl5/5.28/DBM_Filter
/usr/lib/perl5/5.28/DBM_Filter.pm
/usr/lib/perl5/5.28/DBM_Filter/compress.pm
/usr/lib/perl5/5.28/DBM_Filter/encode.pm
/usr/lib/perl5/5.28/DBM_Filter/int32.pm
/usr/lib/perl5/5.28/DBM_Filter/null.pm
/usr/lib/perl5/5.28/DBM_Filter/utf8.pm
/usr/lib/perl5/5.28/Mail/SpamAssassin/BayesStore/DBM.pm
/usr/lib/perl5/5.28/Mail/SpamAssassin/BayesStore/SDBM.pm
root@Router:/#
root@Router:/# perl -T -w /usr/bin/spamassassin --help
Can't locate Mail/SpamAssassin.pm in @INC (you may need to install the Mail::SpamAssassin module) (@INC contains: /usr/lib/perl5/5.28) at /usr/bin/spamassassin line 78.
BEGIN failed--compilation aborted at /usr/bin/spamassassin line 78.
root@Router:/# 
root@Router:/# updatedb && locate Mail/SpamAssassin.pm
root@Router:/# 


root@Router:/# perl -T -w /usr/bin/spamd
Can't locate Mail/SpamAssassin.pm in @INC (you may need to install the Mail::SpamAssassin module) (@INC contains: /usr/lib/perl5/5.28) at /usr/bin/spamd line 240.
BEGIN failed--compilation aborted at /usr/bin/spamd line 240.
root@Router:/# 


perl -T -w /usr/bin/sa-awl 
No DBM package was successfully found or installed at /usr/lib/perl5/5.28/AnyDBM_File.pm line 17.
Compilation failed in require at /usr/bin/sa-awl line 65.
BEGIN failed--compilation aborted at /usr/bin/sa-awl line 65.

Wow, something worked :slight_smile: sort of.

perl -T -w /usr/bin/sa-check_spamd 
Failed to create connection to spamd daemon: Connection refused
SPAMD CRITICAL: ping failed in 0.001 seconds


root@Router:/# perl -T -w /usr/bin/sa-compile 
Can't locate Mail/SpamAssassin.pm in @INC (you may need to install the Mail::SpamAssassin module) (@INC contains: /usr/lib/perl5/5.28) at /usr/bin/sa-compile line 62.
BEGIN failed--compilation aborted at /usr/bin/sa-compile line 62.
root@Router:/# 


root@Router:/# perl -T -w /usr/bin/sa-learn 
Can't locate Mail/SpamAssassin.pm in @INC (you may need to install the Mail::SpamAssassin module) (@INC contains: /usr/lib/perl5/5.28) at /usr/bin/sa-learn line 64.
BEGIN failed--compilation aborted at /usr/bin/sa-learn line 64.
root@Router:/# 


root@Router:/# perl -T -w /usr/bin/sa-update 
Can't locate Mail/SpamAssassin.pm in @INC (you may need to install the Mail::SpamAssassin module) (@INC contains: /usr/lib/perl5/5.28) at /usr/bin/sa-update line 134.
BEGIN failed--compilation aborted at /usr/bin/sa-update line 134.
root@Router:/#

OK, so it looks like most modules are now installed. But even though AnyDBM is installed its not recognising it as such.

Finally the Mail/SpamAssassin.pm missing. Seems important :slight_smile:

Did you give up in the end? Wondering about trying this rather than relying only upon Microsoft O365's spam filtering.

I basically gave up. I left clamav doing virus scanning of emails and used SpamCop and Spamhaus blocklists, but thats it on OpenWRT. I've put SpamAssassin on the client instead.

I did log a ticket for this on github I think, but not sure if it got a response.