sieveusehomedir and compilation

Andrew Morgan morgan at
Tue Jul 18 13:01:03 EDT 2006

On Mon, 17 Jul 2006, Ross Boylan wrote:

> I gather from previous posts on this list that with Cyrus 2.2 even
> sieve scripts in home directories must be compiled, and sievec is the
> tool to do so.
> I have a couple questions, and a comment.
> First, is sievec documented anywhere?  In Debian's cyrus-doc-2.2,
> sievec does not appear on the list of man pages.

sievec is fairly straight-forward to use.  The built-in help shows:

Syntax: /usr/local/cyrus/bin/sievec [-C <altconfig>] <filename> <outputfile>

> Second, is there any point in sieveusehomedir given this requirement?
> I was allowing scripts in home dirs because it was easy to make
> changes in the scripts (though admittedly easy to make syntax errors
> too).  But if one has to run a program on the resulting script, it
> seems as easy to run a program that sticks it on the IMAP server.
> Also, if sievec overwrites .sieve with compiled code, this sounds like
> an operation that could only be done once.

When I was toying around with sievec, I figured we would have 2 files in 
each home directory: .sieve (compiled) and .sieve.src (source text).

We also used to run with sieve in homedirs here, but changed to the sieve 
server when this requirement came along.  Most of our "power" users that 
were writing their own sieve rules could figure out how it worked.  We put 
a big explanantion of the change in their .sieve file when we switched 
over.  Most of our users make changes to their sieve rules through a 
simplified web interface we wrote, so switching over was completely 
transparent for them.

One big win for using the sieve server is that now our cyrus servers do 
not have any dependency on the home directory server, which used to be 
nfs-mounted to each cyrus server.

Still, I wish the .sieve files didn't have to be compiled.  :)

> My comment is that the documentation could be more forthcoming about
> these issues; as far as I can tell, it says nothing at all about how
> sieveusehomedir interacts with the compilation mechanism.  My
> assumption had been that only the code on the server is compiled and
> that home directory .sieve scripts were simply compiled on the fly
> each time they were encountered.  I gather that interpretation is
> wrong.

It would be nice if that option still existed, but I can understand why it 
became a big pain.  Now that we have been using the sieve server for a 
while, I really like it.  The ability to have multiple sieve rulesets 
stored on the server is awesome for testing purposes, for example.


More information about the Info-cyrus mailing list