On Dec 10, 2014, at 1:52 AM, Steffen Kaiser <skdovecot at smail.inf.fh-brs.de> wrote:> >> Global scripts were compiled: >> >> /usr/local/etc/dovecot/sieve # ls >> 10-move-spam.sieve 10-move-spam.svbin > >> However, I ran sievec again and tried saving a modified script and got the same: > > Actually this "ls" output and the last sentence does not indicate that the Sieve script had been compiled: a) after changing 10-move-spam.sieve _and_ b) after the upgrade with the new Sieve tools. > > Did _you_ _manually_ run: > > cd /usr/local/etc/dovecot/sieve > rm 10-move-spam.svbin > sievec -D 10-move-spam.sieve > > ? And, is the sievec command displaying the Pigeonhole version you have installed?I've been following this thread and have been seeing a similar problem. Dovecot 2.2.5 and pigeonhole-0.4.6 The problem I'm having is with "sieve_default" script that's in a directory users have no permission to: sieve = ~/.dovecot.sieve sieve_dir = ~/.sieve.d sieve_default = /etc/dovecot/sieve/default.sieve My sieve.default only has "keep;" and I manually removed and compiled it. sievec(root): Debug: sieve: Pigeonhole version 0.4.6 (3e924b1b6c5c+) initializing sievec(root): Debug: sieve: include: sieve_global is not set; it is currently not possible to include `:global' scripts. sievec(root): Debug: sieve: file storage: Using script storage path: default.sieve sievec(root): Debug: sieve: file script: Opened script `default' from `default.sieve' sievec(root): Debug: sieve: Script `default' from default.sieve successfully compiled ls -l -rw-r--r-- 1 root wheel 6 Dec 31 15:54 default.sieve -rw-r--r-- 1 root wheel 142 Dec 31 15:54 default.svbin Yet, dovecot still tries to compile it under the user in that path. Dec 31 15:55:11 dovecot: lda(fred): Error: sieve: binary save: failed to create temporary file: open(/etc/dovecot/sieve/default.svbin.localhost.87581.) failed: Permission denied (euid=1002(fred) egid=1002(fred) missing +w perm: /etc/dovecot/sieve, dir owned by 26:0 mode=0755) Dec 31 15:55:11 dovecot: lda(fred): Error: sieve: The LDA Sieve plugin does not have permission to save global Sieve script binaries; global Sieve scripts like `/etc/dovecot/sieve/default.sieve' need to be pre-compiled using the sievec tool Dec 31 15:55:11 dovecot: lda(fred): sieve: msgid=<63706CEA-E77F-45BE-B848-1E664773EBDE at inoc.net>: stored mail into mailbox 'INBOX' Ideas?
see Am 31.12.2014 um 17:05 schrieb Robert Blayzor:> missing +w perm: /etc/dovecot/sieve, dir owned by 26:0 mode=0755)Best Regards MfG Robert Schetterer -- [*] sys4 AG http://sys4.de, +49 (89) 30 90 46 64 Franziskanerstra?e 15, 81669 M?nchen Sitz der Gesellschaft: M?nchen, Amtsgericht M?nchen: HRB 199263 Vorstand: Patrick Ben Koetter, Marc Schiffbauer Aufsichtsratsvorsitzender: Florian Kirstein
On Dec 31, 2014, at 11:18 AM, Robert Schetterer <rs at sys4.de> wrote:> Am 31.12.2014 um 17:05 schrieb Robert Blayzor: >> missing +w perm: /etc/dovecot/sieve, dir owned by 26:0 mode=0755) > > > > Best Regards > MfG Robert SchettererWhich is correct. Dovecot-lda is running as the local user account, the default is not owned by them and the local user cannot write into the global/default sieve location. The path has a precompiled default sieve script that the user does not own, it's a default. So why is trying to compile the script (which is already compiled) in the default location? That is the problem. -Robert
On 12/31/2014 5:05 PM, Robert Blayzor wrote:> On Dec 10, 2014, at 1:52 AM, Steffen Kaiser <skdovecot at smail.inf.fh-brs.de> wrote: > > I've been following this thread and have been seeing a similar problem. Dovecot 2.2.5 and pigeonhole-0.4.6 >> Yet, dovecot still tries to compile it under the user in that path. > > > Dec 31 15:55:11 dovecot: lda(fred): Error: sieve: binary save: failed to create temporary file: open(/etc/dovecot/sieve/default.svbin.localhost.87581.) failed: Permission denied (euid=1002(fred) egid=1002(fred) missing +w perm: /etc/dovecot/sieve, dir owned by 26:0 mode=0755) > Dec 31 15:55:11 dovecot: lda(fred): Error: sieve: The LDA Sieve plugin does not have permission to save global Sieve script binaries; global Sieve scripts like `/etc/dovecot/sieve/default.sieve' need to be pre-compiled using the sievec tool > Dec 31 15:55:11 dovecot: lda(fred): sieve: msgid=<63706CEA-E77F-45BE-B848-1E664773EBDE at inoc.net>: stored mail into mailbox 'INBOX'Could you enable mail_debug? That should show why it is trying to recompile the Sieve script. Regards, Stephan.
On Jan 1, 2015, at 8:10 AM, Stephan Bosch <stephan at rename-it.nl> wrote:> > Could you enable mail_debug? That should show why it is trying to > recompile the Sieve script.Well, that it does! And it's saying the script is "not up to date" and tries to recompile it. However, I'm not sure why it would say it's NOT up to date, it most certainly was manually compiled by me and not touched afterwards. Would commented likes, starting with "#" in the script have anything to do with it? Jan 01 13:32:30 lda(rt): Debug: sieve: file storage: Using script storage path: /etc/dovecot/sieve/default.sieve Jan 01 13:32:30 lda(rt): Debug: sieve: file script: Opened script `default' from `/etc/dovecot/sieve/default.sieve' Jan 01 13:32:30 lda(rt): Debug: sieve: Using the following location for user's Sieve script: /etc/dovecot/sieve/default.sieve Jan 01 13:32:30 lda(rt): Debug: sieve: Loading script /etc/dovecot/sieve/default.sieve Jan 01 13:32:30 lda(rt): Debug: sieve: Script binary /etc/dovecot/sieve/default.svbin is not up-to-date Jan 01 13:32:30 lda(rt): Debug: sieve: Script `default' from /etc/dovecot/sieve/default.sieve successfully compiled Jan 01 13:32:30 lda(rt): Error: sieve: binary save: failed to create temporary file: open(/etc/dovecot/sieve/default.svbin.dogpile.devnull.us.679.) failed: Permission denied (euid=1002(rt) egid=1002(rt) missing +w perm: /etc/dovecot/sieve, dir owned by 26:0 mode=0755)