Hello Dovecot users,
After about a month of silence, I finally release a new version of
Pigeonhole Sieve. This release fixes problems in the multiscript support
and improves the body extension further towards RFC compliance. The
body extension still needs work, however, since some content types still
give erroneous results.
Changelog Sieve v0.1.13:
+ Body extension: implemented proper handling of the :raw transform
and added various new tests to the test suite. However, :content
"multipart" and :content "message/rfc822" are still not working.
+ Fixed race condition occuring when multiple instances are saving the
same binary (patch by Timo Sirainen).
+ Test suite: added support for testing multiscript execution.
- Made compiler more lenient towars missing CRLF at the end of the
script in a hash comment.
- Body extension: don't give SKIP_BODY_BLOCK flag to message parser,
we want the body! (patch by Timo Sirainen).
- Fixed handling of implicit side effects for multiscript execution.
- Fixed bugs in multiscript support; subsequent keep actions were not
always merged correctly and implicit side effects were not always
handled correctly.
- Fixed a segfault bug in the sieve-test tool occuring when compile
fails.
- Fixed segfault bug in action procesing. It was triggered while
merging side effects in duplicate actions.
- Fixed bug in the Sieve plugin that caused it to try to stat() a NULL
path, yielding a 'Bad address' error.
The release is available as follows:
http://www.rename-it.nl/dovecot/1.2/dovecot-1.2-sieve-0.1.13.tar.gzhttp://www.rename-it.nl/dovecot/1.2/dovecot-1.2-sieve-0.1.13.tar.gz.sig
Refer to http://pigeonhole.dovecot.org for more information. Have fun
testing the new release and don't hesitate to notify me when there are
problems.
Releases for Dovecot v2.0 are still under development...
Regards,
--
Stephan Bosch
stephan(a)rename-it.nl
http://dovecot.org/releases/2.0/alpha/dovecot-2.0.alpha1.tar.gzhttp://dovecot.org/releases/2.0/alpha/dovecot-2.0.alpha1.tar.gz.sig
So here's the first alpha version of Dovecot v2.0. There are still a
couple of things left to do, but in general it should work for most
people. I started using it for my own mails a few days ago and it seems
to work without errors.
Largest changes since v1.2:
* Global ACLs are now looked up using namespace prefixes. For example
if you previously had INBOX. namespace prefix and a global ACL for
"INBOX.Sent", it's now looked up from "INBOX.Sent" file instead of
"Sent" as before.
+ Redesigned master process. It's now more modular and there is less
code running as root.
+ Configuration supports now per-local/remote ip/network settings.
+ dsync utility does a two-way mailbox synchronization.
+ LMTP server and proxying.
+ Added mdbox (multi-dbox) mail storage backend.
+ doveadm utility can be used to do all kinds of administration
functions. Old dovecotpw and *view utilities now exist in its
subcommands.
Some things left to do:
- Do something about backwards compatibility with v1.x. Either make it
read v1.x config files or provide some config conversion utility.
- dsync still has some bugs
- config process is a bit too slow. config handling in general could use
some caching all around. no need to ask configuration for each login
unless there are per-remote-ip settings.
- some kind of an optional connection policy server could be useful.
mainly to finally implement tcp-wrappers support.
- mail_uid, mail_gid, mail_chroot settings don't really work now. I
think this actually needs a bit larger change, which is probably a good
idea in any case:
After successfully authenticating, login process needs to get imap/pop3
process executed. Currently this is done by transferring the connection
fd to master process, doing userdb lookup and then forking and execing
the imap/pop3 process.
The new behavior I'm thinking is that after auth, login process would
connect to imap/pop3 unix socket in the login/ directory. That would
cause master process to fork a new imap/pop3 process (running as root).
Login process would send the necessary auth information via the unix
socket, possibly transfer also the fd, and imap/pop3 would do the userdb
lookup and then drop privileges.
This change has some pros:
- Master process will no longer temporarily hold some extra fds and use
extra memory during auth lookups. If auth process is hanging these could
cause problems.
- Master process will no longer have any special auth handling code and
I can remove type=auth-source and type=auth services.
- Of course fixes the mail_* setting issue, because all of this is now
done by imap/pop3 process, which knows about these settings.
- Creating support for "multiple imap/pop3 post-login connections in a
single process" should be pretty easy to implement with this. The
imap/pop3 unix socket just needs to be listened by a new process in the
middle that keeps track of what imap/pop3 processes exist and can
redirect the new connections to those.
But also some cons:
- drop_priv_before_exec=yes no longer works, unless the uid/gid is
hardcoded to the service {} block.
- Each imap/pop3 process needs to do a connect() to auth server at
startup, adding a bit to the latency.
http://dovecot.org/releases/1.2/dovecot-1.2.6.tar.gzhttp://dovecot.org/releases/1.2/dovecot-1.2.6.tar.gz.sig
A couple of random things:
- I decided to start using "hg sign" to gpg sign all releases in
mercurial repository.
- v2.0.alpha1 will hopefully be released in a week or two.
Changes since 1.2.5:
* Upgraded to Unicode 5.2.0
+ Added authtest utility for doing passdb and userdb lookups.
+ login: ssl_security string now also shows the used compression.
- quota: Don't crash with non-Maildir++ quota backend.
- imap proxy: Fixed crashing with some specific password characters.
- dovecot --exec-mail was broken.
- Avoid assert-crashing when two processes try to create index at the
same time.