Cyrus IMAP 3.4.0-beta3 Release Notes — Cyrus IMAP 3.12.2 documentation

# Cyrus IMAP 3.4.0-beta3 Release Notes

Download from GitHub:

> - https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-3.4.0-beta3/cyrus-imapd-3.4.0-beta3.tar.gz

> - https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-3.4.0-beta3/cyrus-imapd-3.4.0-beta3.tar.gz.sig

## Major changes since the 3.2 series

- DAV improvements

  - Allow clients to set schedule-default-calendar-URL

- 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

- Prefer SPNEGO over BASIC WWW-Auth in Firefox/Thunderbird Issue #2882.

## Updates to default configuration

The cyr_info(8) conf, conf-all and conf-default subcommands accept an -s <version> 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