On 2021-07-05 10:29 a.m., Tobias Leupold wrote:
require ["include"]; include :personal "some-script"; include :personal "some-other-script";
Now if I delete "some-script", it's actually deleted, but USER.sieve is not updated (and still contains 'include :personal "some-script";').
active-script.sieve.log:
sieve: info: started log at Jul 05 14:57:54. USER: line 12: error: included personal script 'some_script' does not exist. USER: error: validation failed.
So the question is now: Is this a KMail bug, a Doveceot bug, or is the server misconfigured?!
IMHO the client (KMail) should take care of it. Perhaps it could also add the "optional" flag in the "include" statement
include :personal :optional "some-script";
https://datatracker.ietf.org/doc/html/rfc6609
3.2. Control Structure "include"
Usage: include [LOCATION] [":once"] [":optional"] <value: string> LOCATION = ":personal" / ":global"
The ":optional" parameter indicates that the script may be missing. Ordinarily, an implementation MUST generate an error during execution if an "include" command specifies a script that does not exist. When ":optional" is specified, implementations MUST NOT generate an error for a missing script, and MUST continue as if the "include" command had not been present.