Cyrus 2.4 and RFC5256 (SORT and THREAD Extensions)

Olivier ROLAND cyrus-dev at
Thu Sep 30 07:55:41 EDT 2010


Sorry but Cyrus 2.4 does not seem to conform to RFC 5256 as stated in

Here is an excerpt from RFC5256 (Chapter 7.Internationalization Considerations)

As stated in the introduction, the rules of I18NLEVEL=1 as described
   in [IMAP-I18N] MUST be followed; that is, the SORT and THREAD
   extensions MUST collate strings according to the i;unicode-casemap

Here is an excerpt from draft-ietf-imapext-sort-19 which indeed is the
actual implementation in Cyrus.

 If the server does not support the [IMAP-I18N] COMPARATOR extension, the
    collation algorithm used is the "en;ascii-casemap" collation
    described in [COMPARATOR].

This "slight" change was introduced [sic] in
draft-ietf-imapext-sort-20 and discussed here
Actually in Cyrus 2.4 cache items are stored in ascii. RFC 5256
require them to be UTF-8 to be sorted as required.

That probably implies in Cyrus code :
        - store cache items in UTF-8
        - increment CACHE_VERSION
        - check everything that will be broken by UTF-8 (actual sort
code probably is)

Olivier ROLAND
ATOS Origin.

More information about the Cyrus-devel mailing list