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

This is a set of plugins for the Dovecot IMAP server version 1.2 that
implement the IMAP METADATA Extension.  The 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.


Overview
--------

The IMAP METADATA Extension is still a draft.  At the time the
implementation was started, the current version of the draft was
draft-daboo-imap-annotatemore-14 dated July 13, 2008.

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

To be able to accommodate both drafts the METADATA implementation will
consist of three plugins:

   metadata-plugin

      The actual metadata functionality.  This follows the
      draft-daboo-imap-annotatemore-14 specification.

   imap-annotatemore-plugin

      Implements the IMAP commands of the older specification
      draft-daboo-imap-annotatemore-05 as used by Kolab clients and
      server.  Implemented using metadata-plugin.  This will only offer
      what is really needed by Kolab, not all of what was specified in
      the imap-annotatemore-05.

   imap-metadata-plugin

      The IMAP commands of imap-annotatemore-14.  This also uses
      metadata-plugin for the actual storage.


Status
------

At this point, the plugins are very incomplete and somewhat experimental.

The metadata-plugin works mostly, but private annotation do not work
properly and server annotation have not been implemented at all yet.
The imap-annotatemore-plugin implements a minimal subset of the the
draft specification as needed by Kolab.  The imap-metadata-plugin has
not been implemented yet.

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 1.2

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


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

For general information about the autoconf/automake based Installation
see INSTALL.  Use the --with-dovecot option to specify where the dovecot
sources are.

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


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

The metadata is stored in a dovecot dict.  Dovecot supports several
back-ends for dicts.  The following describes how to use SQLite as a
back-end.

Initialize the database (replace <dovecot-prefix> with the actual
installation directory):

  ./initsqlite.sh <dovecot-prefix>/var/lib/dovecot/metadata-dict.sqlite

This scripts writes the contents of a dovecot SQL configuration file to
stdout.  Put them into e.g. <dovecot-prefix>/etc/metadata-dict.conf and
add the following line to the dict section of your dovecot.conf:

   metadata = sqlite:<dovecot-prefix>/etc/metadata-dict.conf

and the following line to the plugins section:

   metadata_dict = proxy:<dovecot-prefix>/var/run/dovecot/dict-server:metadata
