ManageSieve Download and Installation
ManageSieve Installation for Dovecot v1.0 has a separate page.
The latest released versions of the ManageSieve implementation for Dovecot can be downloaded from the following locations:
Dovecot v1.1: http://www.rename-it.nl/dovecot/1.1/
Patch filenames look as follows: dovecot-1.1.X-managesieve-<version>.diff.gz Package filenames look as follows: dovecot-1.1-managesieve-<version>.tar.gz
Dovecot v1.2: http://www.rename-it.nl/dovecot/1.2/
Patch filenames look as follows: dovecot-1.2.X-managesieve-<version>.diff.gz Package filenames look as follows: dovecot-1.2-managesieve-<version>.tar.gz
The tarball releases are signed with public key 0x3DFBB4F4, which can be found at wwwkeys.pgp.net.
The ManageSieve implementation is maintained in a set of Mercurial repositories, just like Dovecot itself. If you need to use the very latest version, even before it is released as a tarball, you can download it through Mercurial. The ManageSieve repositories for the various Dovecot versions are publicly available at:
For each Dovecot version, there is a dovecot-1.X-managesieve and a dovecot-1.X-managesieve-patch repository. The -patch repositories contain the patches against the various dovecot versions. These are so-called Mercurial Queues (MQ) repositories. This provides an easy (quilt-like) means to manage patches over an upstream source repository like the one that exists for Dovecot. The patches are managed in a repository called 'patches' below the .hg directory in your main repository. Currently, these MQ repositories only have the managesieve.patch, which is the actual patch that is refreshed and released each time Timo makes a new Dovecot release. The dovecot-1.x-managesieve repositories contain the actual ManageSieve implementation.
Using these repositories is explained in the next two sections that deal with patching the Dovecot tree and compiling Dovecot and ManageSieve.
Applying the patch to Dovecot varies a little between the different versions. Downloading from Mercurial is a special case.
The ManageSieve implementations for v1.1 and v1.2 consist of a patch in .diff.gz format and a separate .tar.gz package. You first need to patch and compile the Dovecot sources. Applying the patch is achieved by executing the following command line inside the dovecot source tree ('../patchfile.diff.gz' must be substituted with the location of the patch file you downloaded):
gzip -dc ../pathfile.diff.gz | patch -p1
Once patched, you can compile Dovecot using the usual build process. So you do not need autotools.
The following command sequence shows how to incorporate the ManageSieve patch repository in a freshly cloned dovecot-1.1 tree:
hg clone http://hg.dovecot.org/dovecot-1.1 cd dovecot-1.1 hg clone http://hg.rename-it.nl/dovecot-1.1-managesieve-patch .hg/patches hg qpush
The procedure is identical for the other dovecot versions.
When updating the dovecot tree it is important to unapply all patches before performing 'hg pull' on the dovecot tree:
hg qpop --all hg pull hg update hg qpush
This otherwise results in a multi-head situation which can be resolved using a 'hg rollback' or using 'hg qpop --all' afterwards, which should gracefully clean up the situation (never merge the heads!).
Updating the patch repository works as follows:
hg qpop --all hg -R .hg/patches pull hg -R .hg/patches update hg qpush
After 'hg qpush', the dovecot repository is patched and can be compiled using the usual Mercurial build process (don't forget ./autogen.sh).
The first prerequisite for compiling the ManageSieve service is a patched and compiled dovecot tree, as explained in the previous section. Note that the service will compile against an unpatched dovecot tree, but keep in mind that Dovecot will not know about the existence of ManageSieve without the patch. The second prerequisite is a compiled dovecot-sieve source tree. Compiling the Sieve plugin is described here.
Now that you have both a compiled dovecot and a compiled dovecot-sieve source tree, you can continue building the ManageSieve service. You can either unpack the .tar.gz package somewhere or clone the Mercurial repository. When you have cloned the repository, you must first execute './autogen.sh' inside the source tree. For both alternatives the following commands subsequently need to be executed inside the source tree:
./configure --with-dovecot=<dovecot source tree> --with-dovecot-sieve=<dovecot-sieve source tree> make sudo make install
The parameters to ./configure represent the following:
- Path to the compiled dovecot tree
- Path to the compiled dovecot-sieve tree