Cyrus 2.4 and RFC5256 (SORT and THREAD Extensions)

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


Hi,

Sorry but Cyrus 2.4 does not seem to conform to RFC 5256 as stated in
doc/spec.html

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
   collation

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
http://www.imc.org/ietf-imapext/mail-archive/msg04187.html
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