Timo Sirainen wrote:
have a "socket listen { master ... client }" part? Only the master socket. Inside auth default.
Thanks. I see this is now in the wiki (or was before and I overlooked it).
As I understand, Sieve is only in CVS, right? I want to use it, but it failed to build:
# ./autogen.sh
configure.in: installing ./install-sh' configure.in: installing
./missing'
src/Makefile.am: installing ./depcomp' src/libsieve/Makefile.am:3:
CFLAGS' is a user variable, you should not
override it;
src/libsieve/Makefile.am:3: use AM_CFLAGS' instead. Makefile.am: installing
./INSTALL'
configure.in:4: required file `lda-config.h.in' not found
Running it again looks better:
# ./autogen.sh
src/libsieve/Makefile.am:3: CFLAGS' is a user variable, you should not override it; src/libsieve/Makefile.am:3: use
AM_CFLAGS' instead.
# ./configure --with-dovecot=../dovecot (../dovecot is dovecot-1.0-test80)
but the make fails:
gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes
-Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2
-Wbad-function-cast -I/usr/kerberos/include -o deliver deliver.o
duplicate.o imparse.o mail-send.o map.o sieve-cmu.o smtpclient.o
-Wl,--export-dynamic libsieve/libsieve.a
/root/sw/dovecot/lda/dovecot/src/lib-storage/register/libstorage-register.a
/root/sw/dovecot/lda/dovecot/src/lib-storage/index/maildir/libstorage_maildir.a
/root/sw/dovecot/lda/dovecot/src/lib-storage/index/libstorage_index.a
/root/sw/dovecot/lda/dovecot/src/lib-index/libindex.a
/root/sw/dovecot/lda/dovecot/src/lib-storage/libstorage.a
/root/sw/dovecot/lda/dovecot/src/lib-storage/subscription-file/libstorage_subscription_file.a
/root/sw/dovecot/lda/dovecot/src/lib-imap/libimap.a
/root/sw/dovecot/lda/dovecot/src/lib-mail/libmail.a
/root/sw/dovecot/lda/dovecot/src/lib-charset/libcharset.a
/root/sw/dovecot/lda/dovecot/src/lib/liblib.a -ldl
deliver.o(.text+0xa60): In function main': /root/sw/dovecot/lda/dovecot-lda/src/deliver.c:364: undefined reference to
mbox_from_create'
collect2: ld returned 1 exit status
make[3]: *** [deliver] Error 1
make[3]: Leaving directory /root/sw/dovecot/lda/dovecot-lda/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory
/root/sw/dovecot/lda/dovecot-lda/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/sw/dovecot/lda/dovecot-lda'
make: *** [all] Error 2
seems that the lda doesn't like "--with-storages=maildir" on the configure of dovecot itself (I use no mbox), after running dovecot's configure and make without this made me a working deliver binary with sieve.
dovecot-auth is running chrooted, will this interfere with the master/client concept, so I have to change the socket path to be in the chrooted directory? The socket is created before chrooting (I'm pretty sure anyway :)
Seems you are right. :)
Only one little problem arised: deliver wants to use /var/run/dovecot/auth-master as a default, but /var/run/dovecot is owned by root with 0700 permissions (set by dovecot at startup). but deliver never runs as root, so this fails. No big thing, I changed the path (-a /another/path), but the default makes little sense, then. Is there an option to set the path in dovecot-deliver.conf?
deliver (after strip) is about double the size of maildrop. AFAIK, Cyrus uses LMTP for delivery, which does not have this downside. That works only as long as all (or "most", with more code) users use the same system UIDs.
Isn't that depending on how it's done? If implemented as an additional protocol handled directly by dovecot, it should work. Anyway, I configured every virtual setup with only one UID.
LMTP server is in my TODO list, but not before v1.0..
That's fine with me.
Anyway I think the benefit of having the mail immediately indexed is overall greater than a bit of forking/initialization overhead.
I'll trust you on this. :)