1==============================
2Cyrus IMAP 2.2.x Release Notes
3==============================
4
5Changes to the Cyrus IMAP Server since 2.2.13
6
7*   ctl_mboxlist now dumps/undumps the mailbox type flags, making it useful for remote mailboxes.
8*   Added sieve_allowreferrals option to control whether timsieved issues referrals or proxys traffic to backends.
9
10Changes to the Cyrus IMAP Server since 2.2.12
11
12*   Allow sieve scripts to be run on shared mailboxes (via sieve annotation).
13*   Updated nntpd to be compliant with latest draft (soon to be RFC3977).
14*   Updated IMAP UIDPLUS extension to be compliant with latest specification (RFC4315).
15*   Performance improvements to quota utility.
16*   Fixed possible race condition in IMAP IDLE.
17*   Made ptloader runtime configurable.
18*   Added more extensive output to arbitron.
19*   Allow responses of any length from backend when proxing IMAP/POP3/NNTP traffic.
20*   Added plaintextloginalert option.
21*   Only allow mbpath to be run as Cyrus user.
22*   Added berkeley_hash and berkeley_hash_nosync cyrusdb backends (seem to perform better under heavy loads).
23*   Added lastpop mailbox annotation.
24*   Added subscribe/unsubscribe support to cyradm.
25*   Fixed miscellaneous bugs and build issues.
26
27Changes to the Cyrus IMAP Server since 2.2.11
28
29*   Revert index change which wasn't supposed to make it into 2.2.11
30
31Changes to the Cyrus IMAP Server since 2.2.10
32
33*   Fix possible single byte overflow in mailbox handling code.
34*   Fix possible single byte overflows in the imapd annotate extension.
35*   Fix stack buffer overflows in fetchnews (exploitable by peer news server), backend (exploitable by admin), and in imapd (exploitable by users though only on platforms where a filename may be larger than a mailbox name).
36
37Changes to the Cyrus IMAP Server since 2.2.9
38
39*   Fix 0 termination in mysasl_canon_user.
40*   Check for imap magic plus buffer overflow in proxyd also (CAN-2004-1015).
41*   Only send an over quota ALERT on SELECT if the quotaroot is different from the last ALERT, or we haven't sent an ALERT in over 10 min.
42
43Changes to the Cyrus IMAP Server since 2.2.8
44
45*   Change ACLs correctly when renaming a user
46*   Do not abandon std{in,out,err} file descriptors; syslog assumes it can use stderr if syslogd isn't running.
47*   Clean up imap magic plus to avoid buffer overrun (CAN-2004-1011)
48*   Fix lack of bounds checking in PARTIAL and FETCH (CAN-2004-1012, CAN-2004-1013)
49*   Do not attempt to reuse a freed connection in lmtpproxyd.
50*   Allow login without authentication with -N switch in proxyd.
51*   Fix use of xrealloc and fold pointers in lmtpengine.
52
53Changes to the Cyrus IMAP Server since 2.2.7
54
55*   Fix a double-free bug in the notify code
56*   Fix a problem with idled and an empty mailbox list
57
58Changes to the Cyrus IMAP Server since 2.2.6
59
60*   Fix handling of PARTIAL command and partial body fetches
61*   A large number of portability fixes supplied by Albert Chin <china@thewrittenword.com>
62*   Added client_timeout option to control connect() timeouts for proxy code
63*   Added popuseacl option
64*   Fix a number of issues with the quota -f tool
65*   Fix thread safety issue in saslserver()
66*   Fix possible stage file leak in append code
67*   Fix bugs in handling of MULTIAPPEND introduced in 2.2.3
68*   Fixed regression bug in Sieve vacation
69
70Changes to the Cyrus IMAP Server since 2.2.5
71
72*   Fix a bug in the proxy code where a backend connection might get closed twice
73*   Improved consistency checking in chk_cyrus
74*   Fix segfault in APPEND code
75*   Fix a bug with an interaction between sieve and unixhierarchysep
76*   Fix a file descriptor leak in the quotadb code
77*   Fix a triggered assertation in service-thread services
78*   Add a number of internal consistency checks to the skiplist code
79*   Allow mbpath to handle virtual domains
80*   Fix various MANAGESIEVE client authentication issues
81*   Other minor fixes
82
83Changes to the Cyrus IMAP Server since 2.2.4
84
85*   Bug fixed in hash table code that could sometimes cause crashes with the quotalegacy database
86*   Net-SNMP compatibility
87*   Significantly improved com_err detection
88*   Assorted minor NNTP improvements
89*   Assorted other minor bugfixes
90
91Changes to the Cyrus IMAP Server since 2.2.3
92
93*   Quota now uses the cyrusdb interface (quotalegacy by default).
94*   All incoming messages are now staged to disk before locking the destination mailbox (locks are no longer held during a network read).
95*   Fixed off-by-one error in fetchnews (articles are no longer skipped).
96*   nntpd now uses the Followup-To: header (if exists) instead of the Newsgroups: header when constructing post address(es) and adds them to the Reply-To: header instead of the To: header.
97*   Added berkeley_locks_max, berkeley_txns_max and berkeley_cachesize options.
98*   Added imapmagicplus option.
99*   Substantial work on afspts/ptloader canonicalization code
100*   Much improved LDAP ptloader code (no more internal OpenLDAP dependencies)
101*   Fixed a number of IPv6 related bugs
102
103Changes to the Cyrus IMAP Server since 2.2.2
104
105*   Berkeley DB 4.2 Support - note that the Cyrus Berkeley enviroment needs to be reset (db_recover) before a Berkeley DB version upgrade or you need to remove all berkeley dbs. Special care needs to be taken when berkley db is used for mboxlist.
106*   Runtime configuration of the Cyrus databases. The cyrudb backend used for each database can be specified with an imapd.conf option. NOTE: You MUST convert the database using cvt_cyrusdb BEFORE changing the backend in imapd.conf.
107*   Sendmail socket map support (smmapd) for verifying that mailboxes exist and are deliverable before accepting the message and sending it to Cyrus.
108*   New userid mode for virtual domains, which does NOT do reverse lookups of the IP address.
109*   nntpd now supports the Xref header.
110*   nntpd can now use the POST command to feed articles to upstream servers.
111*   fetchnews can now be used with NNTP servers which don't support the NEWNEWS command.
112*   lmtpd now initializes duplicate.db only when it is necessary (when using Sieve or duplicatesuppression).
113*   Sieve now verifies that text strings are valid UTF-8.
114*   Sieve now verifies that address tests and envelope tests are done on headers which contain addresses (can be disabled with rfc3028_strict: no).
115*   Services will now notice that a new binary has been installed and will restart using the new binary once the existing connection is closed.
116
117Changes to the Cyrus IMAP Server since 2.2.1
118
119*   Major bugfixes in murder altnamespace/unixhierarchysep/virtdomain support (Thanks in large part to work by Christian Schulte <cs@schulte.it>)
120*   Improved master process accounting (Henrique de Moraes Holschuh <hmh@debian.org>)
121*   Significantly improved message header caching (based in large part on code supplied by David Carter <David.Carter@ucs.cam.ac.uk> from the University of Cambridge)
122*   The sieve bytecode format has been updated once more, to correctly handle short-circuiting of the allof and anyof operators
123*   Support for warning quota based on absolute mailbox size
124*   Correct handling of annotations during XFER operations
125*   Simple support for IMAP BINARY extension
126*   Support for Automake 1.7 and Autoconf 2.57
127*   Support for IMAP initial SASL response (the SASL-IR extension)
128
129Changes to the Cyrus IMAP Server since 2.2.0
130
131*   The improved directory hashing (fulldirhash) is now a runtime configuration option.
132*   The netnews.db has been integrated into deliver.db.
133*   Full r/w ANNOTATEMORE support, including more annotations that allow the control of operations such as message expiration. ANNOTATEMORE is also always enabled now.
134*   expirenews has been replaced by cyr_expire which uses annotations for fine-grained mailbox expiration.
135*   squatter can now use annotations for fine-grained mailbox indexing.
136*   Many nntpd enhancements including: reader-only and feeder-only modes, support for LIST NEWSGROUPS (via mailbox annotations) and gatewaying news to mail (via mailbox annotations).
137*   fetchnews can now authenticate to the remote server.
138*   Removed deprecated LAST command from pop3d.
139*   Sieve Bytecode is now stored in network byte order, meaning that bytecode files can be freely moved between different platforms
140*   Sieve relational extension now working again.
141*   Sieve vacation now uses the correct subject.
142*   A large number of bugs involving virtual domain support have been fixed, including issues with the Murder, and with Sieve.
143
144Changes to the Cyrus IMAP Server since 2.1.x
145
146*   There have been extensive performance and consistency changes to the configuration subsystem. This will both ensure greater consistency between the documentation and the code, as well as a more standard format for specifing service-specific configuration options in imapd.conf. Important changes are detailed here:
147*       The tls_[service]_* configuration options have been removed. Now use [servicename]_tls_*, where servicename is the service identifier from cyrus.conf for that particular process.
148*       Administrative groups (e.g. admins and lmtp_admins) no longer union, service groups completely override the generic group.
149*       lmtp_allowplaintext is no longer a defined parameter and must be specified using the service name of your lmtp process if you require a specific value
150*   libcyrus has been split into libcyrus_min and libcyrus, so as to allow sensative applications (such as master) include the least amount of code necessary for operation
151*   Virtual domain support. See the virtual domains document for details.
152*   Users can now be renamed (even across domains). Note that this is not atomic and weirdness may occur if the user is logged in during the rename. See the allowusermoves option in imapd.conf(5) for details.
153*   The db3 and db3-nosync database backends have been renamed to berkeley and berkeley-nosync respectively (to avoid confusion over whether or not db4 is supported).
154*   The default mailbox list and seen state database formats have changed to skiplist from Berkeley and Flat, respectively.
155*   ptloader is now a regular cyrus service. This has several implications, see install-upgrade.html for more details.
156*   NNTP support. Usenet news can now be fed to and read from Cyrus directly via NNTP, without the need for a local news server. See netnews document for details.
157*   IPv6 support, provided by Hajimu UMEMOTO <ume@mahoroba.org>
158*   Sieve scripts are now compiled to bytecode to allow for faster execution (and lmtpd no longer needs lex or yacc). See install-upgrade.html for more details.
159*   The functionality of pop3proxyd has been merged into pop3d. Be sure to update cyrus.conf on your frontend machines accordingly.
160*   The functionality of ctl_deliver -E has been moved to cyr_expire -E. Be sure to update cyrus.conf on your machines accordingly.
161
162