Cyrus IMAP 3.4.0-rc1 Release Notes ********************************** Download from GitHub: * https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus- imapd-3.4.0-rc1/cyrus-imapd-3.4.0-rc1.tar.gz * https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus- imapd-3.4.0-rc1/cyrus-imapd-3.4.0-rc1.tar.gz.sig Major changes since the 3.2 series ================================== * DAV improvements * Improved performance for users with large folders * LITERAL- maximum size is now honoured (**RFC 7888**) * Support for the ESORT (but not CONTEXT) extension from **RFC 5267** * Experimental JMAP for Sieve Scripts support (requires *jmap_nonstandard_extensions: yes* in imapd.conf(5)). * Experimental Handling Message Disposition Notification with JMAP support (requires *jmap_nonstandard_extensions: yes* in imapd.conf(5)). * Experimental JMAP Backup extension (requires *jmap_nonstandard_extensions: yes* in imapd.conf(5)). * Experimental JMAP Notes extension (requires *jmap_nonstandard_extensions: yes* in imapd.conf(5)). * Experimental JMAP Blob extension (requires *jmap_nonstandard_extensions: yes* in imapd.conf(5)). * Experimental JMAP Mail extension (requires *jmap_nonstandard_extensions: yes* in imapd.conf(5)). * New cyrus.index format v17 adds changes_epoch field, needed by JMAP Backups extension * New *reverseuniqueids* imapd.conf(5) option (default on), which improves performance for users with large mailboxes * Further improvements to the *reverseacls* imapd.conf(5) performance option * Improvements to replication reliability and performance * Experimental vnd.cyrus.log and vnd.cyrus.jmapquery Sieve extensions * Experimental Sieve Snooze extension based on draft-ietf-extra-sieve- snooze * Experimental Sieve mailboxid extension based on draft-ietf-extra- sieve-mailboxid * Improvements to conversations * New *mailbox_maxmessages_addressbook*, *mailbox_maxmessages_calendar*, and *mailbox_maxmessages_email* imapd.conf(5) options for providing server-wide limits on the amount of objects in any one mailbox, independently of quotas. These default to *0* (unlimited) for backward compatibility, but are highly recommended for protecting your server from misbehaving clients. * New IMAP create/delete behaviour based on draft-ietf-extra- imap4rev2: mailboxes containing child mailboxes can no longer be deleted; and when creating mailboxes, ancestors will be created as needed. * CRC32 optimisations * quota(8) and cyr_expire(8) arguments are now in the admin namespace like other tools * Support for per-language indexing and searching * SNMP support has been removed, as it was broken and unmaintained * New *sync_rightnow_channel* imapd.conf(5) option to enable real-time replication to the specified channel as writes occur. * Caching of mailbox state for quicker replication turnaround. Configure *sync_cache_db* and *sync_cache_db_path* in imapd.conf(5) to enable. * New *search-fuzzy-always* annotation allows per-user override of the *search_fuzzy_always* imapd.conf(5) option * New *lmtp_preparse* imapd.conf(5) option for parsing incoming messages before locking the mailbox. * New *search_index_skip_users* and *search_index_skip_domains* imapd.conf(5) options for skipping indexing of particular users/domains. * The HTTP Admin module's Currently Running Services feature now works on the major BSDs (thanks Felix J. Ogris) * squatter(8) once again supports the "-s" option to skip reindexing mailboxes which were not modified since the last index (Squat backend only) * squatter(8) now supports long options * Improvements to search query normalisation performance Updates to default configuration ================================ The cyr_info(8) *conf*, *conf-all* and *conf-default* subcommands accept an *-s * argument to highlight imapd.conf(5) options that are new or whose behaviour has changed since the specified version. We recommend using this when evaluating a new Cyrus version to check which configuration options you will need to examine and maybe set or change during the process. * The *annotation_definitions* file is now loaded case-insensitively * Implementations may want to revisit their *search_normalisation_max* settings, but its default value 1000 is a good conservative choice. Current server-grade hardware may use 20000 or more. Security fixes ============== * None so far Significant bugfixes ==================== * Fixed: Sieve Editheader Extension (**RFC 5293**) now works correctly with respect to section 7, Interaction with Other Sieve Extensions. * Fixed Issue #2598: indexed search now works correctly with Squat engine again