[Dovecot] dovecot-metadata-8 released

Stephan Bosch stephan at rename-it.nl
Mon Jun 20 12:31:21 EEST 2011


Hi Dennis,

On 6/12/2011 3:55 PM, Dennis Schridde wrote:
> Hello everyone!
>
> I just released dovecot-metadata-8, which is an implementation of RFC 5464
> (IMAP METADATA), allowing to add comments/annotations/metadata to folders of
> an email account.

Nice!

I've browsed the source a little and I compiled it, but I haven't 
actually tested it yet. However, I have a few comments/requests already.

> 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
> make
> make install

I had some compile problems. First of all, my Debian stable has automake 
1.10 and thus does not support the new silent-rules feature. I'd suggest 
the following patch to maintain backwards compatibility for the time being:

diff -r 8077ad9bce6f configure.ac
--- a/configure.ac      Sun Jun 12 13:54:06 2011 +0200
+++ b/configure.ac      Mon Jun 20 10:36:29 2011 +0200
@@ -1,7 +1,9 @@
  AC_PREREQ(2.65)
  AC_INIT([dovecot-metadata],[8],[devurandom at gmx.net])

-AM_INIT_AUTOMAKE([1.10 silent-rules])
+AM_INIT_AUTOMAKE([1.10])
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
+
  AM_MAINTAINER_MODE

  AC_CONFIG_MACRO_DIR([m4])

Also, I usually like to compile against an uninstalled Dovecot source 
tree, e.g. to perform tests without installing anything. This failed 
because the currently installed dovecot.m4 does not provide 
LIBDOVECOT_IMAP_INCLUDE. Timo, could you fix this?

diff -r 327486d79620 dovecot.m4
--- a/dovecot.m4        Thu Jun 16 16:37:42 2011 +0300
+++ b/dovecot.m4        Mon Jun 20 10:33:29 2011 +0200
@@ -62,7 +62,7 @@
         AX_SUBST_L([DOVECOT_CFLAGS], [DOVECOT_LIBS], 
[DOVECOT_SSL_LIBS], [DOVECOT_SQL_LIBS])
         AX_SUBST_L([LIBDOVECOT], [LIBDOVECOT_LOGIN], [LIBDOVECOT_SQL], 
[LIBDOVECOT_LDA], [LIBDOVECOT_STORAGE])
         AX_SUBST_L([LIBDOVECOT_DEPS], [LIBDOVECOT_LOGIN_DEPS], 
[LIBDOVECOT_SQL_DEPS], [LIBDOVECOT_LDA_DEPS], [LIBDOVECOT_STORAGE_DEPS])
-       AX_SUBST_L([LIBDOVECOT_INCLUDE], [LIBDOVECOT_LDA_INCLUDE], 
[LIBDOVECOT_SERVICE_INCLUDE], [LIBDOVECOT_STORAGE_INCLUDE], 
[LIBDOVECOT_LOGIN_INCLUDE], [LIBDOVECOT_CONFIG_INCLUDE])
+       AX_SUBST_L([LIBDOVECOT_INCLUDE], [LIBDOVECOT_LDA_INCLUDE], 
[LIBDOVECOT_SERVICE_INCLUDE], [LIBDOVECOT_STORAGE_INCLUDE], 
[LIBDOVECOT_LOGIN_INCLUDE], [LIBDOVECOT_CONFIG_INCLUDE], 
[LIBDOVECOT_IMAP_INCLUDE])

         DC_PLUGIN_DEPS
  ])

The fact that this package relies on an installed dovecot.m4 also makes 
compiling against an uninstalled source tree a bit of a chicken-egg 
problem. Pigeonhole includes a  version of dovecot.m4 (albeit modified) 
in the distribution for this purpose, but I am not sure that is the best 
solution. Also, since compiling against an uninstalled Dovecot currently 
has no real purpose for this package for now (it may have when I 
implement the related Sieve features as discussed below), I would not 
give fixing this any priority at all.

> If you find any bugs (crashes, incompatibilities with RFC 5464, etc), please
> write me a mail. Be advised that this code is still experimental and might
> crash your server!

Now that Dovecot has IMAP METADATA support, it would be nice to 
implement the Sieve side of the story as well. This is specified in 
RFC5490 (http://tools.ietf.org/html/rfc5490). These Sieve language 
extensions allow matching against server and mailbox annotations in 
Sieve scripts.

To build Sieve plugins for the aforementioned features, I would need to 
have access to the metadata backend to read the annotation entries. For 
that reason, I would like to suggest that you put the metadata storage 
backend in a separate shared library, such that other future plugins and 
tools can link against it to gain access to the metadata storage. 
Pigeonhole does something similar already; the Sieve interpreter is 
installed as /usr/lib/dovecot/libdovecot-sieve.so and the LDA plugin 
makes use of it, as do command line tools such as sieve-test.

Regards,

Stephan





More information about the dovecot mailing list