spamassassin: use /etc/mail/spamassassin for config
Using a custom path in the Nix store meant that users of the module couldn't add their own config files, which is a desirable feature. I don't think avoiding /etc buys us anything.
This commit is contained in:
parent
a8ea4f0d33
commit
85a9743f13
@ -6,15 +6,6 @@ let
|
|||||||
cfg = config.services.spamassassin;
|
cfg = config.services.spamassassin;
|
||||||
spamassassin-local-cf = pkgs.writeText "local.cf" cfg.config;
|
spamassassin-local-cf = pkgs.writeText "local.cf" cfg.config;
|
||||||
|
|
||||||
spamdEnv = pkgs.buildEnv {
|
|
||||||
name = "spamd-env";
|
|
||||||
paths = [];
|
|
||||||
postBuild = ''
|
|
||||||
ln -sf ${spamassassin-init-pre} $out/init.pre
|
|
||||||
ln -sf ${spamassassin-local-cf} $out/local.cf
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -120,13 +111,11 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
environment.etc."mail/spamassassin/init.pre".source = cfg.initPreConf;
|
||||||
|
environment.etc."mail/spamassassin/local.cf".source = spamassassin-local-cf;
|
||||||
|
|
||||||
# Allow users to run 'spamc'.
|
# Allow users to run 'spamc'.
|
||||||
|
environment.systemPackages = [ pkgs.spamassassin ];
|
||||||
environment = {
|
|
||||||
etc.spamassassin.source = spamdEnv;
|
|
||||||
systemPackages = [ pkgs.spamassassin ];
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.spamd = {
|
users.users.spamd = {
|
||||||
description = "Spam Assassin Daemon";
|
description = "Spam Assassin Daemon";
|
||||||
@ -141,7 +130,7 @@ in
|
|||||||
systemd.services.sa-update = {
|
systemd.services.sa-update = {
|
||||||
script = ''
|
script = ''
|
||||||
set +e
|
set +e
|
||||||
${pkgs.su}/bin/su -s "${pkgs.bash}/bin/bash" -c "${pkgs.spamassassin}/bin/sa-update --gpghomedir=/var/lib/spamassassin/sa-update-keys/ --siteconfigpath=${spamdEnv}/" spamd
|
${pkgs.su}/bin/su -s "${pkgs.bash}/bin/bash" -c "${pkgs.spamassassin}/bin/sa-update --gpghomedir=/var/lib/spamassassin/sa-update-keys/" spamd
|
||||||
|
|
||||||
v=$?
|
v=$?
|
||||||
set -e
|
set -e
|
||||||
@ -172,7 +161,7 @@ in
|
|||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.spamassassin}/bin/spamd ${optionalString cfg.debug "-D"} --username=spamd --groupname=spamd --siteconfigpath=${spamdEnv} --virtual-config-dir=/var/lib/spamassassin/user-%u --allow-tell --pidfile=/run/spamd.pid";
|
ExecStart = "${pkgs.spamassassin}/bin/spamd ${optionalString cfg.debug "-D"} --username=spamd --groupname=spamd --virtual-config-dir=/var/lib/spamassassin/user-%u --allow-tell --pidfile=/run/spamd.pid";
|
||||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -183,7 +172,7 @@ in
|
|||||||
mkdir -p /var/lib/spamassassin
|
mkdir -p /var/lib/spamassassin
|
||||||
chown spamd:spamd /var/lib/spamassassin -R
|
chown spamd:spamd /var/lib/spamassassin -R
|
||||||
set +e
|
set +e
|
||||||
${pkgs.su}/bin/su -s "${pkgs.bash}/bin/bash" -c "${pkgs.spamassassin}/bin/sa-update --gpghomedir=/var/lib/spamassassin/sa-update-keys/ --siteconfigpath=${spamdEnv}/" spamd
|
${pkgs.su}/bin/su -s "${pkgs.bash}/bin/bash" -c "${pkgs.spamassassin}/bin/sa-update --gpghomedir=/var/lib/spamassassin/sa-update-keys/" spamd
|
||||||
v=$?
|
v=$?
|
||||||
set -e
|
set -e
|
||||||
if [ $v -gt 1 ]; then
|
if [ $v -gt 1 ]; then
|
||||||
|
@ -9,9 +9,6 @@ perlPackages.buildPerlPackage rec {
|
|||||||
sha256 = "1380cmrgjsyidnznr844c5yr9snz36dw7xchdfryi2s61vjzvf55";
|
sha256 = "1380cmrgjsyidnznr844c5yr9snz36dw7xchdfryi2s61vjzvf55";
|
||||||
};
|
};
|
||||||
|
|
||||||
# https://bz.apache.org/SpamAssassin/show_bug.cgi?id=7434
|
|
||||||
patches = [ ./sa-update_add--siteconfigpath.patch ];
|
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ] ++ (with perlPackages; [
|
buildInputs = [ makeWrapper ] ++ (with perlPackages; [
|
||||||
HTMLParser NetCIDRLite NetDNS NetAddrIP DBFile HTTPDate MailDKIM LWP
|
HTMLParser NetCIDRLite NetDNS NetAddrIP DBFile HTTPDate MailDKIM LWP
|
||||||
IOSocketSSL DBI EncodeDetect IPCountry NetIdent Razor2ClientAgent MailSPF
|
IOSocketSSL DBI EncodeDetect IPCountry NetIdent Razor2ClientAgent MailSPF
|
||||||
@ -22,7 +19,7 @@ perlPackages.buildPerlPackage rec {
|
|||||||
# for the PERL5LIB environment variable. Needs further investigation.
|
# for the PERL5LIB environment variable. Needs further investigation.
|
||||||
makeFlags = [ "PERL_BIN=${perlPackages.perl}/bin/perl" "PERL_TAINT=no" ];
|
makeFlags = [ "PERL_BIN=${perlPackages.perl}/bin/perl" "PERL_TAINT=no" ];
|
||||||
|
|
||||||
makeMakerFlags = [ "CONFDIR=/homeless/shelter" "LOCALSTATEDIR=/var/lib/spamassassin" ];
|
makeMakerFlags = [ "SYSCONFDIR=/etc LOCALSTATEDIR=/var/lib/spamassassin" ];
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ index bb7396d..39f681f 100755
|
|||||||
|
|
||||||
# check only disabled gpg
|
# check only disabled gpg
|
||||||
# https://issues.apache.org/SpamAssassin/show_bug.cgi?id=5854
|
# https://issues.apache.org/SpamAssassin/show_bug.cgi?id=5854
|
||||||
@@ -1808,6 +1812,7 @@ Options:
|
@@ -1808,7 +1812,7 @@ Options:
|
||||||
--updatedir path Directory to place updates, defaults to the
|
--updatedir path Directory to place updates, defaults to the
|
||||||
SpamAssassin site rules directory
|
SpamAssassin site rules directory
|
||||||
(default: @@LOCAL_STATE_DIR@@/@@VERSION@@)
|
(default: @@LOCAL_STATE_DIR@@/@@VERSION@@)
|
||||||
@ -39,21 +39,6 @@ index bb7396d..39f681f 100755
|
|||||||
-D, --debug [area=n,...] Print debugging messages
|
-D, --debug [area=n,...] Print debugging messages
|
||||||
-v, --verbose Be verbose, like print updated channel names;
|
-v, --verbose Be verbose, like print updated channel names;
|
||||||
--
|
--
|
||||||
diff --git a/lib/Mail/SpamAssassin/PerMsgStatus.pm b/lib/Mail/SpamAssassin/PerMsgStatus.pm
|
|
||||||
index 6d8beaa..6ad87dc 100644
|
|
||||||
--- a/lib/Mail/SpamAssassin/PerMsgStatus.pm
|
|
||||||
+++ b/lib/Mail/SpamAssassin/PerMsgStatus.pm
|
|
||||||
@@ -389,7 +389,8 @@ sub check_timed {
|
|
||||||
if (!$self->{main}->have_plugin("check_main")) {
|
|
||||||
die "check: no loaded plugin implements 'check_main': cannot scan!\n".
|
|
||||||
"Check that the necessary '.pre' files are in the config directory.\n".
|
|
||||||
- "At a minimum, v320.pre loads the Check plugin which is required.\n";
|
|
||||||
+ "At a minimum, v320.pre loads the Check plugin which is required.\n".
|
|
||||||
+ "NixOS: Since there is no '/etc/spamassassin' simply restart 'spamd.service' which on its behalf will run 'sa-learn --siteconfigpath=/nix/store/l4hr4yxk8mb4wbkha6vm6rh92pj19rj6-spamd-env ...' to update the /var/lib/spamassassin configs.\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
|
|
||||||
2.12.2
|
2.12.2
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user