Cyrus IMAP 3.10.0-beta1 Release Notes
Download from GitHub:
Major changes since the 3.8 series
URLs found in HTML
<a>,<area>and<img>tags, as well as "alt" text in<img>tags, are now indexed for search and snippetscyr_expire(8) now supports non-day durations in the archive/delete/expire annotations
cyr_expire(8) no longer supports fractional durations in command line arguments. Installations that passed fractional durations such as "1.5d" to any of the
-E,-X,-D, or-Aarguments must adapt these to only use integer durations such as "1d12h"cyr_expire(8) now supports the 'noexpire_until' annotation to disable cyr_expire per user
JMAP calendar default alarms are now stored in a non-DAV mailbox annotation. See https://www.cyrusimap.org/3.10/imap/download/upgrade.html#default-alarms for upgrading instructions if you are already using the experimental JMAP Calendars API
Removes support for parsing and generating bytecode for the deprecated denotify action and notify actions using the legacy (pre-RFC 5435) syntax. Existing bytecode containing these actions will still be executed. Scripts that contain the deprecated denotify action should be rewritten to remove them. Scripts that contain notify actions using the legacy syntax should be rewritten to use the syntax in RFC 5435
Adds support for the "exp" and "nbf" JSON Web Token claims. Thanks Bruno Thomas
Adds support for IMAP Version 4rev2 (RFC 9051)
Adds support for IMAP NOTIFY (RFC 5465). Only available if
idledis runningRefresh interval for APNS subscriptions to DAV resources is now configurable. See the
aps_expiryimapd.conf(5) optionUpgrade IMAP Quota support to RFC 9208. Sites running a Murder should upgrade frontend machines first, then backends
Adds support for IMAP REPLACE (RFC 8508)
Adds support for IMAP UIDONLY extension (draft-ietf-extra-imap-uidonly)
Adds experimental support for JMAP Contacts per upcoming IETF standards. Requires the not-yet-released libicalvcard
squatter(8) now supports the "wait=y" cyrus.conf(5) option when started in rolling mode from the
DAEMONsectionmaster(8) now touches a ready file to indicate it is "ready for work". See https://www.cyrusimap.org/3.10/imap/download/upgrade.html#master-pid-and-master-ready-files
master(8) now gets its pidfile name from the
master_pid_fileimapd.conf(5) option. See https://www.cyrusimap.org/3.10/imap/download/upgrade.html#master-pid-and-master-ready-filesAdds pcre2 support. Prefers pcre2 over pcre if both are available. See PCRE2 support
The
proccyr_info(8) subcommand now also reports DAEMON and EVENTS processesJMAP CalendarEventNotification objects are now automatically pruned. The
jmap_max_calendareventnotifsimapd.conf(5) option can be used to tune this behaviourCyrus now requires libical >= 3.0.10 for HTTP support
Sieve [current]date
:zoneparameter now accepts either a UTC offset or an IANA time zone IDAdds an
implicit_keep_targetSieve action to change the target mailbox for an implicit keepsquatter(8) no longer holds a mailbox lock while extracting text from attachments
IMAP
RENAMEcommand no longer emits non-standard per-folder updates. Use the newXRENAMEcommand if you need this behaviour
Storage changes
None in 3.10. But if your upgrade is skipping over 3.6 and 3.8, please do not miss 3.6.0 Storage changes and 3.8.0 Storage changes
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 master pidfile name is now read from imapd.conf, and defaults to
{configdirectory}/master.pid. If you have something that looks for this file, you should either update it to look in the new default location, or setmaster_pid_filein imapd.conf(5) to override the default. The-poption to master(8) can still be used to override it
Security fixes
None so far
Significant bugfixes
Fixed: squat db reindexes are no longer always incremental
Fixed: squat db corruption from unintentional indexing of fields intended to be skipped
Fixed: squat db out of bounds access in incremental reindex docID map
Restored functionality of the sync_client
-o/--connect-onceoptionFixed Issue #4654: copying/moving messages from split conversations is now correct