I am pleased to announce the availability of a selectable hierarchy
separator for Cyrus IMAP.  Up until now, Cyrus used a netnews-style
hierarchy, where '.' was used as the hierarchy delimiter -- thus
prohibiting '.' from appearing in mailbox names.  This release allows a
UNIX-style '/' separator to be used in the same fashion that David
Fuchs' (and derivative) patches.

This code leverages my previous alt-namespace work, and as a result does
NOT change the on-disk mailstore structure, only what is sent via the
IMAP protocol.  This means that any existing server can begin serving up
mailboxes using the UNIX hierarchy separator (and/or the alternate
namespace) simply changing the appropriate imapd.conf option.  In order
to maintain compatibility with the on-disk structure, '.' in mailbox
names are translated to '^' before being saved to disk.

You should consider this code to be alpha, but it is fully functional
and appears to be as stable as the alt-namespace code.  I hacked this
code in a couple of hours mainly as a proof of concept, so incompatible
changes (such as the use of '^') may be made in the future, ie, DO NOT
run this on a production server just yet.  I am hoping to have people
test this code for bugs and performance issues (currently none known)
before I commit to making this part of the standard distribution.

Configuring the server to use the UNIX hierarchy separator is done by
setting "unixhierarchysep: yes" in imapd.conf.  With this option, and
the 'altnamespace' option, there are now four combinations of namespace
and hierarchy delimiter.

The code can be obtained from CMU's CVS repository as usual using the
'hier-sep-r1' tag.  Otherwise, a pre-packaged distro can be obtained
from:

ftp://ftp.oceana.com/pub/cyrus-imapd-2.0.14-HIERSEP-r1.tar.gz
http://www.oceana.com/ftp/cyrus-imapd-2.0.14-HIERSEP-r1.tar.gz

Since I am the primary developer of this code, please send any feedback
to me directly and/or the info-cyrus list.  Please do NOT send bug
reports to cyrus-bugs.

Enjoy,
Ken
-- 
Kenneth Murchison     Oceana Matrix Ltd.
Software Engineer     21 Princeton Place
716-662-8973 x26      Orchard Park, NY 14127
--PGP Public Key--    http://www.oceana.com/~ken/ksm.pgp

Reply via email to