Dovecot Plugins implementing Metadata/Annotations
=================================================

This is a set of plugins for the Dovecot IMAP server version 2.0 that
implement the IMAP METADATA extension.

The main goal of the development is to extend dovecot so that it can
be used as the IMAP component instead of Cyrus IMAPd in the Kolab server.

The major feature is that it works with Akonadi, or more specifically the 
Kolab backend thereof, while being dovecot-2.0 compatible.

Overview
--------

The IMAP METADATA extension is specified in RFC 5464 and allows to add
comments/annotations/metadata to folders of an email account.

The Kolab server uses the older and somewhat different
draft-daboo-imap-annotatemore-05.

To be able to accommodate both drafts the METADATA implementation
consists of three plugins, two IMAP frontends and one backend:

   imap-annotatemore

     A partial implementation of draft-daboo-imap-annotatemore-05
     (early predecessor to RFC 5464) as used by Kolab clients and server,
     based on work by Bernhard Herzog (Intevation GmbH).
     The sole intention is to support the bare necessities Kolab needs,
     not to strictly implement the draft.
     Uses metadata plugin as storage backend.

   imap-metadata

     A complete implementation of the IMAP commands specified in RFC 5464.
     Kolab clients do not (yet) use these commands.
     Uses metadata plugin as storage backend.

   metadata

     The common backend. This follows the RFC 5464 specification.


Status
------

At this point, the plugins are experimental.

The imap-annotatemore-plugin implements a minimal subset of the the
draft specification as needed by Kolab.

The details of how the metadata are stored will very likely change in
future versions and may require manual upgrades.


Requirements
------------

Software needed to build and use the plugins:

  dovecot 2.0

  Dovecot must be compiled with at least one dict backend available.


Installation
------------

The build process is pretty much straightforward, just make sure you have the 
dovecot headers available on your system:
# ./autogen.sh
# ./configure --with-dovecot=/path/to/dovecot/headers
# make
# make install

For general information about the autoconf/automake based Installation
see INSTALL.

When building from a mercurial working copy, run ./autogen.sh first.


Configuration
-------------

The following works for me:

== dovecot.conf ==
dict {
  metadata = file:/var/lib/dovecot/shared-metadata
}

== 10-mail.conf ==
mail_plugins = ... metadata

== 20-imap.conf ==
protocol imap {
  mail_plugins = $mail_plugins ... imap_metadata imap_annotatemore
}

== 90-plugin.conf ==
plugin {
  metadata_dict = proxy::metadata
}
