Mit Ubuntu 14.04 haelt ebenfalls SpamAssassin in der Version 3.4.0-1 Einzug, welches bei der Verwendung von --nouser-config einen unschoenen Bug mitbringt, welcher in Kombination mit --nouser-config dafuer sorgt, dass SpamAssassin nicht mehr seine Bayes-Dateien aktualisiert. Ein Fehler sieht dabei z.B. wie folgt aus:

 spamd[12345]: plugin: eval failed: bayes: (in learn) locker: safe_lock: cannot create tmp lockfile debian-spamd/.spamassassin/bayes.lock.example.com.12345 for debian-spamd/.spamassassin/bayes.lock: Datei oder Verzeichnis nicht gefunden

Dabei ist das for debian-spamd der interessante Teil. Hier kann prinzipiell auch ein anderer User stehen (z.B. Debian-exim oder mail oder spamd) jedoch versucht SpamAssassin an der Stelle nicht auf das mit --helper-home-dir gesetzte Verzeichnis zurueckzugreifen, sondern relativ auf ein Verzeichnis mit dem Namen des konfigurierten Benutzers.

Die Loesung

Die Ursache befindet sich in der Util.pm und wurde auch im Upstream von SpamAssassin bereits gefixed. Ob eine gefixte Version jedoch auch in Ubuntu 14.04 Einzug haelt ist eher fragwuerdig, weswegen man folgenden Patch versuchen kann anzuwenden (welcher potenziell nach einem Update vom spamassassin-Paket ueberschrieben wird):

--- /usr/share/perl5/Mail/SpamAssassin/Util.pm.orig     2014-08-22 00:08:39.185602751 +0200
+++ /usr/share/perl5/Mail/SpamAssassin/Util.pm  2014-08-22 00:09:18.330883723 +0200
@@ -285,7 +285,7 @@
   my $r = ref $_[0];
   if (!$r) {
     no re 'taint';  # override a  "use re 'taint'"  from outer scope
-    return if !defined $_[0];
+    return undef if !defined $_[0];
     local($1); # avoid Perl taint bug: tainted global $1 propagates taintedness
     $_[0] =~ /^(.*)\z/s;
     return $1;

Die /etc/default/spamassassin sieht dabei wie folgt aus:

$ egrep -v "^#|^$" /etc/default/spamassassin
ENABLED=1
OPTIONS="--username debian-spamd --helper-home-dir=/var/lib/spamassassin --nouser-config --max-children 5"
PIDFILE="/var/run/spamd.pid"
CRON=1


Christian Prehl | 22. August 2014 | Tags: ubuntu tipps&tricks spamassassin nouser-config