dovecot: Fix sieve scripts
Make sure that the output of the sieve compiler produces files that have a newer time stamp than the source sieve script. Otherwise you get errors in the logs about Dovecot not being able to compile do to a permission issue.
This commit is contained in:
parent
89dfe67f81
commit
75aaae34a9
@ -241,6 +241,9 @@ in
|
|||||||
RuntimeDirectory = [ "dovecot2" ];
|
RuntimeDirectory = [ "dovecot2" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# When copying sieve scripts preserve the original time stamp
|
||||||
|
# (should be 0) so that the compiled sieve script is newer than
|
||||||
|
# the source file and Dovecot won't try to compile it.
|
||||||
preStart = ''
|
preStart = ''
|
||||||
rm -rf ${stateDir}/sieve
|
rm -rf ${stateDir}/sieve
|
||||||
'' + optionalString (cfg.sieveScripts != {}) ''
|
'' + optionalString (cfg.sieveScripts != {}) ''
|
||||||
@ -248,11 +251,11 @@ in
|
|||||||
${concatStringsSep "\n" (mapAttrsToList (to: from: ''
|
${concatStringsSep "\n" (mapAttrsToList (to: from: ''
|
||||||
if [ -d '${from}' ]; then
|
if [ -d '${from}' ]; then
|
||||||
mkdir '${stateDir}/sieve/${to}'
|
mkdir '${stateDir}/sieve/${to}'
|
||||||
cp "${from}/"*.sieve '${stateDir}/sieve/${to}'
|
cp -p "${from}/"*.sieve '${stateDir}/sieve/${to}'
|
||||||
else
|
else
|
||||||
cp '${from}' '${stateDir}/sieve/${to}'
|
cp -p '${from}' '${stateDir}/sieve/${to}'
|
||||||
fi
|
fi
|
||||||
${pkgs.dovecot_pigeonhole}/bin/sievec '${stateDir}/sieve/${to}'
|
${pkgs.dovecot_pigeonhole}/bin/sievec '${stateDir}/sieve/${to}'
|
||||||
'') cfg.sieveScripts)}
|
'') cfg.sieveScripts)}
|
||||||
chown -R '${cfg.mailUser}:${cfg.mailGroup}' '${stateDir}/sieve'
|
chown -R '${cfg.mailUser}:${cfg.mailGroup}' '${stateDir}/sieve'
|
||||||
'';
|
'';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user