This documentation is for Dovecot v1.x, see wiki2 for v2.x documentation.

ManageSieve Download and Installation

Downloading

Tarball releases

The latest released versions of the ManageSieve implementation for Dovecot can be downloaded from the following locations:

The tarball releases are signed with public key 0x3DFBB4F4, which can be found at wwwkeys.pgp.net.

Mercurial repositories

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:

http://hg.rename-it.nl/

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.

Patching Dovecot

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.

Mercurial

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).

Compiling

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:

None: ManageSieve/Install (last edited 2009-07-14 10:20:04 by 230)