nixos/dovecot: hotfix config defaults for sieve-less setups

The sieve_script_bin_path setting can only be set when the plugin is
loaded, so on sieve-less setups dovecot will refuse to start since
sieve_script_bin_path is an invalid setting. Don't set it there.
This commit is contained in:
Katalin Rebhan
2026-04-13 15:26:45 +02:00
parent a01f198b69
commit cf431ef62b
+7 -2
View File
@@ -163,6 +163,11 @@ let
);
isPre24 = versionOlder cfg.package.version "2.4";
# HACK: We can not auto-add the default for sieve_script_bin_path unless we have the pigeonhole plugin loaded. Solve this in a better way in the future
hasPigeonhole = builtins.any (
pkg: pkg.pname or null == "dovecot-pigeonhole"
) config.environment.systemPackages;
in
{
imports = [
@@ -579,9 +584,9 @@ in
# 2.4-only options
sieve_script_bin_path = mkOption {
default = if isPre24 then null else "/tmp/dovecot-%{user|username|lower}";
default = if isPre24 || !hasPigeonhole then null else "/tmp/dovecot-%{user|username|lower}";
defaultText = literalExpression ''
if isPre24
if isPre24 || !hasPigeonhole
then null
else "/tmp/dovecot-%{user|username|lower}"
'';