imapext-2007
diff docs/RELNOTES @ 0:ada5e610ab86
imap-2007e
author | yuuji@gentei.org |
---|---|
date | Mon, 14 Sep 2009 15:17:45 +0900 |
parents | |
children | 2366b362676d |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/docs/RELNOTES Mon Sep 14 15:17:45 2009 +0900 1.3 @@ -0,0 +1,787 @@ 1.4 +/* ======================================================================== 1.5 + * Copyright 1988-2008 University of Washington 1.6 + * 1.7 + * Licensed under the Apache License, Version 2.0 (the "License"); 1.8 + * you may not use this file except in compliance with the License. 1.9 + * You may obtain a copy of the License at 1.10 + * 1.11 + * http://www.apache.org/licenses/LICENSE-2.0 1.12 + * 1.13 + * 1.14 + * ======================================================================== 1.15 + */ 1.16 + 1.17 +Updated: 16 December 2008 1.18 + 1.19 +imap-2007e is a maintenance release, consisting primarily of bugfixes to 1.20 +problems discovered in the release that affected a small number of users 1.21 +plus a security fix for users of the RFC822BUFFER routines. 1.22 + 1.23 + 1.24 +Updated: 29 October 2008 1.25 + 1.26 +imap-2007d is a maintenance release, consisting primarily of bugfixes to 1.27 +problems discovered in the release that affected a small number of users 1.28 +plus a security fix for users of tmail or dmail. 1.29 + 1.30 + 1.31 +Updated: 25 March 2008 1.32 + 1.33 +imap-2007b is a maintenance release, consisting primarily of bugfixes to 1.34 +problems discovered in the release that affected a small number of users. 1.35 + 1.36 + 1.37 +Updated: 2 January 2008 1.38 + 1.39 +imap-2007a is a maintenance release, consisting primarily of bugfixes to 1.40 +problems discovered in the release that affected a small number of users. 1.41 + 1.42 + 1.43 +Updated: 20 December 2007 1.44 + 1.45 +imap-2007 is a release corresponding with the release of Alpine 1.0. 1.46 +The primary focus of the imap-2007 release is bugfixes and reliability 1.47 +improvements. This includes: 1.48 + . fixes to problems discovered between the Alpine 0.99999 pre-release 1.49 + and Alpine 1.0 1.50 + . fixes to the mix driver to timing race problems uncovered by Timo 1.51 + Sirainen's imaptest suite. imap-2007 using the mix format is 1.52 + believed to pass imaptest completely. 1.53 + 1.54 +A new function, utf8_csvalidmap(), has been added for the benefit of 1.55 +Alpine to use in examining UTF-8 text and determining efficiently 1.56 +whether it can be downgraded to a legacy charset. If you develop an 1.57 +MUA, this may be useful for you too, although you'll have to read the 1.58 +source code to see how to use it. The purpose of the "not-CJK" bit is 1.59 +to prevent messages being downgraded to a CJK charset if all they have 1.60 +in that charset are some special punctuation. 1.61 + 1.62 + 1.63 +Updated: 5 September 2007 1.64 + 1.65 +imap-2006k is a maintenance release, consisting primarily of bugfixes to 1.66 +problems discovered in the release that affected a small number of users. 1.67 + 1.68 +The primary focus of this maintenance release is to correct deadlock 1.69 +issues. There were two major causes of the deadlocks: 1.70 + . a change in imap-2006i attempted to resolve a glibc mutex-based 1.71 + deadlock in imapd's signal handler, but ended up worsening the problem. 1.72 + . a bug in the mbx driver, introduced as part of the UIDPLUS work in 2006, 1.73 + applied an mbx-style lock briefly on a traditional UNIX format mailbox. 1.74 + If the traditional UNIX format mailbox was already locked by some other 1.75 + process, the result would be a deadlock of both processes. 1.76 + 1.77 +imapd's signal handling logic is rewritten to avoid the mutex issue, and 1.78 +the mbx driver is fixed so that mbx-style locks are only applied to mbx 1.79 +format mailboxes. 1.80 + 1.81 +imapd now supports the WITHIN extension. 1.82 + 1.83 + 1.84 +Updated: 14 June 2007 1.85 + 1.86 +imap-2006j is a maintenance release, consisting primarily of bugfixes to 1.87 +problems discovered in the release that affected a small number of users. 1.88 + 1.89 + 1.90 +Updated: 5 June 2007 1.91 + 1.92 +imap-2006i is a maintenance release, consisting primarily of bugfixes to 1.93 +problems discovered in the release that affected a small number of users. 1.94 + 1.95 +imapd now supports the CHILDREN and ESEARCH extensions. 1.96 + 1.97 +imapd's attempt to return COPYUID/APPENDUID information for a traditional 1.98 +UNIX (and MMDF) format mailbox when the mailbox is open by another process 1.99 +has been declared to be a failure and is now revoked. It was subject to a 1.100 +timing race, loss of which involved an expensive reset of the mailbox's UID 1.101 +regime. Any imapd COPY or APPEND to a traditional UNIX or MMDF format that 1.102 +is open by some other process will now no longer return COPYUID/APPEND. 1.103 +Although this is technically in violation of RFC 4315, there is a loophole 1.104 +in that document and the timing race/performance problem is worse. 1.105 + 1.106 + 1.107 +Updated: 4 April 2007 1.108 + 1.109 +imap-2006h is a maintenance release, consisting primarily of bugfixes to 1.110 +problems discovered in the release that affected a small number of users. 1.111 + 1.112 + 1.113 +Updated: 30 March 2007 1.114 + 1.115 +imap-2006g is a maintenance release, consisting primarily of bugfixes to 1.116 +problems discovered in the release that affected a small number of users. 1.117 + 1.118 + 1.119 +Updated: 30 January 2007 1.120 + 1.121 +imap-2006f is a maintenance release, consisting primarily of bugfixes to 1.122 +problems discovered in the release that affected a small number of users. 1.123 + 1.124 +For the benefit of multi-threaded applications, use of strtok() has been 1.125 +abolished in the c-client library. imapd and ipop3d stuff use it though. 1.126 +The TOPS-20 and VAX/VMS ports still use strtok() since they don't use UNIX 1.127 +threads. 1.128 + 1.129 +This version has been test-built on Linux, Mac OS X, NeXT, Windows XP, 1.130 +TOPS-20, and VAX/VMS. This will probably be the last test-build on VAX/VMS 1.131 +since the system I use for that purpose is being shut down. I have no way 1.132 +to test-build on DOS, legacy Mac OS (OS 9 and earlier), OS/2, or Windows CE; 1.133 +and the builds on those systems are probably broken. 1.134 + 1.135 + 1.136 +Updated: 26 January 2007 1.137 + 1.138 +imap-2006e is a maintenance release, consisting primarily of bugfixes to 1.139 +problems discovered in the release that affected a small number of users. 1.140 + 1.141 + 1.142 +Updated: 6 December 2006 1.143 + 1.144 +imap-2006d is a maintenance release, consisting primarily of bugfixes to 1.145 +problems discovered in the release that affected a small number of users. 1.146 + 1.147 +The decomposition mapping, title-case mapping, and character widths tables 1.148 +have been updated to comply with the Unicode 5.0 standard. 1.149 + 1.150 +Prototypes for the utf8aux.c functions have been moved to a new utf8aux.h. 1.151 + 1.152 +The general c-client modules now include c-client.h instead of the individual 1.153 +files. Use of c-client.h instead of individual include files insulates 1.154 +against future shuffling of include files. 1.155 + 1.156 + 1.157 +Updated: 23 October 2006 1.158 + 1.159 +imap-2006c is a maintenance release, consisting primarily of bugfixes to 1.160 +problems discovered in the release that affected a small number of users. 1.161 + 1.162 +By popular request, if a user has a mix (or other dual-use) format INBOX, 1.163 +it will no longer be listed as \NoInferiors. It's a bad idea to depend 1.164 +upon this due to the case ambiguity issue, but it's there. 1.165 + 1.166 + 1.167 +Updated: 26 September 2006 1.168 + 1.169 +imap-2006b is a maintenance release, consisting entirely of bugfixes to 1.170 +problems discovered in the release that affected a small number of users. 1.171 + 1.172 + 1.173 +Updated: 15 September 2006 1.174 + 1.175 +imap-2006a is a maintenance release, consisting entirely of bugfixes to 1.176 +problems discovered in the release that affected a small number of users. 1.177 + 1.178 +If it is necessary to build IPv4-only on one of the ports that has IPv6 1.179 +preconfigured (ldb, lfd, lmd, lrh, lsu, osx, oxp), this can be done by 1.180 +using IP6=4. You can't do IP=4 in the build command directly since these 1.181 +ports set IP themselves; however, now instead of setting IP=6 they now set 1.182 +IP=$(IP6). 1.183 + 1.184 + 1.185 +Updated: 30 August 2006 1.186 + 1.187 +imap-2006 is a major release. Programs written for imap-2004g should 1.188 +build with this version with minor or no modification. imap-2005 was not 1.189 +released except as development snapshots. 1.190 + 1.191 +imap-2006 contains major extensions to its Unicode support. Searching and 1.192 +sorting are now done with strings canonicalized to titlecase and decomposed 1.193 +form. Among other things, this means that Latin letters with diacriticals 1.194 +will now sort with the basic Latin letter, and case-independent searching of 1.195 +such letters (e.g., German umlauts) now works. Previously, sorting was done 1.196 +strictly by Unicode codepoint, and case-independence only worked with ASCII. 1.197 + 1.198 +imapd now supports the UIDPLUS extension for mailboxes in unix, mmdf, mbx, mx, 1.199 +and mix formats. UID EXPUNGE is fully implemented. Note that UIDPLUS is not 1.200 +supported in the little-used drivers (mh, mtx, tenex) in which meaningful 1.201 +APPENDUID/COPYUID data can not be returned. Refer to bugs.txt for more 1.202 +details. 1.203 + 1.204 +The new mix format is a dual-use mailbox format designed for performance and 1.205 +reliability with large mailboxes. mix is documented in file mixfmt.txt. 1.206 + 1.207 +SSL/TLS certificate validation on UNIX now checks the alternative names in the 1.208 +certificate if the CN does not match. 1.209 + 1.210 +The new /tls-sslv23 flag in a mailbox name causes a TLS session to use the 1.211 +(incorrect) SSLv23 client method instead of the TLSv1 client method. Some 1.212 +broken servers use the SSLv23 server method, and this flag works around that 1.213 +problem. WARNING: use of this flag will cause TLS negotiation to fail with 1.214 +a server which uses the proper TLSv1 server method. Additionally, there are 1.215 +known security risks in SSLv2; so users should be suspicious if this switch 1.216 +suddenly becomes necesary. 1.217 + 1.218 +The silly mailbox flag combination /ssl/tls is now rejected as an invalid 1.219 +remote specification. Previous versions tried to negotiate TLS over an SSL 1.220 +session; even if the server permitted such a thing it couldn't work. 1.221 + 1.222 +The memory management of several drivers has been redesigned to consume less 1.223 +memory and hopefully be faster. 1.224 + 1.225 +The private.data member of the MESSAGECACHE (elt) has been replaced with 1.226 +a union that contains private.spare.data and private.spare.ptr, the latter 1.227 +being a pointer. 1.228 + 1.229 +A new FT_RETURNSTRINGSTRUCT flag has been added for mail_fetch_body() and 1.230 +mail_fetch_text() calls. If this flag is set, *and* if the function returns 1.231 +NIL, then the requested string data is available on a stringstruct on 1.232 +stream->private.string. This is a special hack for the IMAP and POP servers 1.233 +and is subject to incompatible change. The result is a major performance 1.234 +improvement in the servers with the mbx driver, particularly with large 1.235 +messages. 1.236 + 1.237 + 1.238 +Updated: 15 September 2005 1.239 + 1.240 +imap-2004g is a maintenance release, and consists solely of a bugfix to 1.241 +quoted string handling in the mailbox name parsing routine. 1.242 + 1.243 + 1.244 +Updated: 15 August 2005 1.245 + 1.246 +imap-2004f is a maintenance release, and consists solely of a bugfix to 1.247 +the TCP code. 1.248 + 1.249 +Also included is a new version of the UNIX SSL/TLS routines that allows the 1.250 +SSL/TLS certificate validation client code to validate alternative names in 1.251 +server certificates. This code has not been thoroughly regression-tested but 1.252 +is believed to work. To use this new code instead of the old support: 1.253 + cd imap-2004f/src/osdep/unix 1.254 + mv ssl_unix.c ssl_unix.old 1.255 + mv ssl_unix.new ssl_unix.c 1.256 +Then rebuild. 1.257 + 1.258 + 1.259 +Updated: 21 June 2005 1.260 + 1.261 +imap-2004e is a maintenance release, consisting entirely of bugfixes. 1.262 + 1.263 +There are no user-visible functional enhancements in this version. 1.264 + 1.265 + 1.266 +Updated: 20 April 2005 1.267 + 1.268 +imap-2004d is a maintenance release, released concurrently with Pine 1.269 +4.63, and consists primarily of bugfixes 1.270 + 1.271 +There is now a workaround for RedHat breaking flock(). However, since 1.272 +RedHat has said that they don't support flock(), there is no guarantee 1.273 +that they won't break it in the future. So you may want to consider some 1.274 +other Linux distribution or BSD instead. See: 1.275 + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=123415 1.276 +for the gruesome details. 1.277 + 1.278 +There are no user-visible functional enhancements in this version. 1.279 + 1.280 + 1.281 +Updated: 18 January 2005 1.282 + 1.283 +imap-2004c is a maintenance release, released concurrently with Pine 1.284 +4.62, including fixes to quoted-printable encoding and CRAM-MD5 1.285 +authentication. 1.286 + 1.287 +NNTP proxy in imapd now supports the LIST and LSUB commands. 1.288 + 1.289 +There are no other user-visible functional enhancements in this version. 1.290 + 1.291 + 1.292 +Updated: 29 November 2004 1.293 + 1.294 +imap-2004b is a maintenance release, consisting primarily of bugfixes. 1.295 +Programs written for imap-2004a will build with this version without 1.296 +modifification. 1.297 + 1.298 +There are new ports for Solaris with Blastwave Community Open Source 1.299 +Software (gcs) and Mandrake Linux (lmd). 1.300 + 1.301 +SET_SNARFINTERVAL now controls how frequently local drivers will move new 1.302 +mail from the mail spool as well as from a maildrop. Maildrops are still 1.303 +tied to a minimum interval of 1 minute, but there is now no minimum for the 1.304 +spool file. 1.305 + 1.306 +Character set conversions now map non-breaking space to space if the 1.307 +destination character set doesn't have nbsp. JIS Roman yen sign is now 1.308 +mapped to Unicode yen sign. 1.309 + 1.310 +There are no user-visible functional enhancements in this version. 1.311 + 1.312 + 1.313 +Updated: 8 July 2004 1.314 + 1.315 +imap-2004a is a maintenance release, consisting primarily of critical 1.316 +bugfixes. Programs written for imap-2004 will build with this version 1.317 +without modification. 1.318 + 1.319 +imapd now has a supported NNTP proxy capability. If the file /etc/imapd.nntp 1.320 +exists, the contents of that file are used as the host name of an NNTP 1.321 +server which will be used whenever a #news. name is used. For example, if 1.322 +/etc/imapd.nntp contains nntp.example.com, and the IMAP client SELECTs or 1.323 +EXAMINEs the name #news.comp.mail.imap, what will actually be opened in 1.324 +imapd is {nntp.example.com/nntp}comp.mail.imap 1.325 + 1.326 +The OSF/1 port (Digital UNIX, Tru64) now uses flocksim instead of flcksafe. 1.327 +Some cretin decided to delete the winning flock() call and make flock() use 1.328 +the losing fcntl() call instead. 1.329 + 1.330 +The unix[nt] and mmdf drivers now prevent mail_append() from writing Status:, 1.331 +X-Status:, X-UID, X-IMAP[base]:, and X-Keywords: header lines to a 1.332 +traditional UNIX or MMDF format mailbox. If any such lines are in the 1.333 +text supplied to mail_append(), they will be quoted by prefixing with 1.334 +"X-Original-" (e.g. Status: will become X-Original-Status:). 1.335 + 1.336 +There are no user-visible functional enhancements in this version. 1.337 + 1.338 + 1.339 +Updated: 10 May 2004 1.340 + 1.341 +imap-2004 is a major release. Programs written for imap-2002e should 1.342 +build with this version with minor modification. imap-2003 was not 1.343 +released except as development snapshots. 1.344 + 1.345 +mailutil has three new commands: delete, rename, and prune. 1.346 + 1.347 +IPv6 support now exists for UNIX and W2K. It is the default in W2K builds. 1.348 +On UNIX, add "IP=6" to the make command line. Windows IPv6 support is 1.349 +only for W2K builds. 1.350 + 1.351 +The NNTP driver now supports NNTP SASL and TLS. 1.352 + 1.353 +The ldb (Debian) and lrh (RedHat) ports now look for mlock on 1.354 +/usr/sbin/mlock instead of /etc/mlock. 1.355 + 1.356 +imapd now supports the LITERAL+ and SASL-IR initial-response extensions. 1.357 + 1.358 +The IMAP driver has some additional checks to reduce the amount of network 1.359 +traffic, including executing "silly searches" (searches of sequence numbers 1.360 +only) locally. 1.361 + 1.362 +The IMAP, POP, SMTP, and NNTP drivers now have diagnostic code to provide 1.363 +better information about servers which violate SASL's empty challenge 1.364 +requirements (e.g. with the PLAIN mechanism). 1.365 + 1.366 +There is a new mail_fetch_overview_sequence() function which is like 1.367 +mail_fetch_overview() but takes a sequence number string as an argument. 1.368 +There should have been a flags argument and FT_UID bit as in all the other 1.369 +mail_fetch_???() functions but compatibility with the past... :-( 1.370 + 1.371 +The overview_t callback (from mail_fetch_overview()) now has a fourth 1.372 +argument which contains the message sequence number (as opposed to the UID 1.373 +which is in the second argument). It turned out that some applications were 1.374 +calling mail_msgno() (which can be moderately expensive) to get the sequence 1.375 +number, and c-client already knew it. 1.376 + 1.377 +Many declarations which are completely internal to a driver have been removed 1.378 +from the driver .h file, and in those cases where there are no external 1.379 +declarations left the .h file has been eliminated entirely. As part of this, 1.380 +the mbox driver routines are now incorporated with the unix driver routines 1.381 +as opposed to being a separate file. The mbox driver still needs to be lunk 1.382 +in order to get the mbox functionality. 1.383 + 1.384 + 1.385 +Updated: 27 August 2003 1.386 + 1.387 +imap-2002e is a minor release, released concurrently with Pine 4.58, and 1.388 +contains primarily bugfixes. Programs written for imap-2002d will build 1.389 +with this version without modification. 1.390 + 1.391 +The NNTP client code now tries to perform better with legacy NNTP servers 1.392 +which do not comply with the current NNTP protocol specification draft, most 1.393 +notably Netscape Collabra. 1.394 + 1.395 +Delivery notifications now work reliably with SMTP servers that support it. 1.396 + 1.397 +The following changes are primarily of concern to developers and power users: 1.398 + 1.399 +There is a "limited advertise" option in env_unix.c which, if set, will only 1.400 +advertise the user's own namespace and the #shared/ namespace. 1.401 + 1.402 +It is now possible to build the IMAP toolkit with a separate SSL KEY file 1.403 +from the certificate file (SSLKEYS vs. SSLCERTS). 1.404 + 1.405 +A new BODY structure element, sparep, is available for the main program to 1.406 +use as a pointer for its own purposes; as well as a SET_FREEBODYSPAREP 1.407 +function, similar to SET_FREEENVELOPESPAREP, SET_FREEELTSPAREP, etc. 1.408 + 1.409 + 1.410 +Updated: 28 May 2003 1.411 + 1.412 +imap-2002d is a minor release, released concurrently with Pine 4.56, and 1.413 +contains primarily bugfixes. Programs written for imap-2002 should build 1.414 +with this version without modification, with one exception. That exception 1.415 +is the ngbogus envelope flag, which stopped being used in imap-2002c and is 1.416 +now gone for good. 1.417 + 1.418 +The NNTP newsgroup listing code now tries to use wildmats on the NNTP server, 1.419 +which should result in better performance especially on slow lines. It is 1.420 +also once again permitted to log in on NNTP servers when /loser is set. 1.421 + 1.422 +imapd now supports the UNSELECT command. 1.423 + 1.424 +A new envelope flag, imapenvonly, indicates that the envelope in a 1.425 +MESSAGE/RFC822 BODY structure only has the IMAP envelope components and 1.426 +not the additional components from c-client: Newsgroups, Followup-To, 1.427 +and References. 1.428 + 1.429 + 1.430 +Updated: 7 April 2003 1.431 + 1.432 +imap-2002c is a minor release, released concurrently with Pine 4.55, and 1.433 +contains primarily bugfixes. Programs written for imap-2002 will build 1.434 +with this version without modification. 1.435 + 1.436 +The POP3 driver will, with new servers that support CAPA, use the LIST 1.437 +command to get the elt->rfc822_size and the TOP command to get the message 1.438 +header, instead of fetching the entire message. Note that it is a bad idea 1.439 +to do this with old servers, since they may misimplement LIST and TOP. The 1.440 +result is a substantial performance improvement. 1.441 + 1.442 +Subject extraction for comparisons in SORT and THREAD are now done in full 1.443 +compliance with the rules laid out in the specification. This only makes 1.444 +a difference if "re:" was part of a MIME quoted-word. 1.445 + 1.446 +The new experimental #move namespace allows download-and-delete from a source 1.447 +mailbox to a destination mailbox. Immediately following #move is a delimiter 1.448 +character which must not appear in the source mailbox name, then the source 1.449 +mailbox name, then the delimiter again, then the destination mailbox name. 1.450 +For example: 1.451 + #move+{pop3.foo.com/pop3}+INBOX 1.452 +will download messages from "pop3.foo.com" into your local INBOX. 1.453 + 1.454 +The NNTP driver now uses the LIST EXTENSIONS command as described in the 1.455 +current NNTP protocol specification draft, and will prefer to use OVER over 1.456 +XOVER, HDR over XHDR, etc. 1.457 + 1.458 +The SET_NNTPRANGE function of mail_parameters() can be used to limit the 1.459 +number of articles recognized by the NNTP driver, resulting in a substantial 1.460 +performance improvement with NNTP servers that may have hundreds of thousands 1.461 +of old articles in the spool. If set non-zero, then only the last n article 1.462 +numbers will be considered. If you are on a slow link, you may want to set 1.463 +this to 1000 or less. 1.464 + 1.465 +Besides the normally tested UNIX and 32-bit Microsoft platforms, this release 1.466 +has also been tested and will once build under TOPS-20 and VAX/VMS. I also 1.467 +fixed a bug which would keep it from building on 16-bit DOS, but I don't know 1.468 +if it will build on that platform or not since I no longer have a system with 1.469 +the old DOS C compiler. It has not been tested on Macintosh (note however 1.470 +that Mac OS X is a type of UNIX and should build), Amiga, or OS/2, and probably 1.471 +no longer builds on those platforms. 1.472 + 1.473 + 1.474 +Updated: 7 January 2003 1.475 + 1.476 +imap-2002b is a maintenace release, released concurrently with Pine 4.52, 1.477 +and contains only bugfixes. Programs written for imap-2002 will build with 1.478 +this version without modification. 1.479 + 1.480 +Drivers which do not announce new mail are now indicated by the DR_NONEWMAIL 1.481 +driver flag. Driver which do not announce new mail when read-only are now 1.482 +indicated by the DR_NONEWMAILRONLY flag. 1.483 + 1.484 +There are no user-visible functional enhancements in this version. 1.485 + 1.486 + 1.487 +Updated: 10 December 2002 1.488 + 1.489 +imap-2002a is a maintenance release, consisting entirely of critical 1.490 +bugfixes. Programs written for imap-2002 will build with this version 1.491 +without modification. 1.492 + 1.493 +There are no functional enhancements in this version. 1.494 + 1.495 + 1.496 +Updated: 28 October 2002 1.497 + 1.498 +imap-2002 is a major release. Programs written for imap-2001 will probably 1.499 +build with this version without modification, with one exception. That 1.500 +exception is if the program uses [GS]ET_DISABLEAUTOMATICSHAREDNAMESPACES, 1.501 +which has been renamed to [GS]ET_DISABLEAUTOSHAREDNS in order to placate 1.502 +some compilers which don't like very long names. 1.503 + 1.504 +SSLTYPE=nopwd is now the default, in accordance with current IESG security 1.505 +requirements. In order to build the IMAP toolkit without SSL/TLS you must 1.506 +now use SSLTYPE=none. At initial build time, you will be told if the SSLTYPE 1.507 +setting is in compliance with IESG security requirements, and if it is not 1.508 +you will be asked to confirm to continue the build. 1.509 + 1.510 +ORDEREDSUBJECT threading has been changed in accordance with draft 12 of the 1.511 +IMAP threading specification. Previously, each non-root message in an 1.512 +ORDEREDSUBJECT thread has been a child of the message immediately preceeding 1.513 +it in the thread. Draft 12 changes this so that the second message in the 1.514 +thread is the child of the first (root) message, and all subsequent messages 1.515 +are siblings of the first message. This is significant in MUAs which display 1.516 +the thread structure graphically; the new definition is much saner than the 1.517 +old one since it does not nest endlessly due to parent/child relationships 1.518 +that may not exist. This also impacts imapd, since imapd's THREAD command 1.519 +will return a thread structure. 1.520 + 1.521 +RFC 1730 server support, which was disabled in imap-2001, is now fully 1.522 +removed from imapd. imapd still supports IMAP2bis, specifically the FIND 1.523 +command, since there are still a few IMAP2 clients out there. 1.524 + 1.525 +The IMAP client routines in the c-client library continue to support recognize 1.526 +RFC 1730 servers, but do not implement the deprecated features of RFC 1730. 1.527 + 1.528 +The Frequently Asked Questions file is now in HTML format, although a text 1.529 +version (generated from the HTML version with Lynx) is also provided. 1.530 + 1.531 +A new program, mailutil, is now bundled with the IMAP toolkit. mailutil 1.532 +replaces the old chkmail, imapcopy, imapmove, imapxfer, mbxcopy, mbxcreat, 1.533 +and mbxcvt programs that were distributed in the imap-utils. In addition, 1.534 +the tmail, dmail, and mlock programs from the imap-utils are now also 1.535 +bundled with the IMAP toolkit. 1.536 + 1.537 +In addition to the usual bugfixes, the following c-client functionalities 1.538 +are new in imap-2002: 1.539 + 1.540 +The SET_DISABLE822TZTEXT parameter allows a client to suppress generation of 1.541 +the "human friendly" time zone text in RFC822 dates. This placates netnews 1.542 +and some broken SMTP servers which think that long timezone names from Windows 1.543 +are an attempt at a buffer overflow attack. 1.544 + 1.545 +The restrictBox option in env_unix.c sets "restricted box" functionality, 1.546 +which disables access to the root (leading "/"), access to other user's 1.547 +directories (leading "~"), and access to superior directories via "..". 1.548 + 1.549 +Content-Location is now supported by the "location" member of the BODY 1.550 +structure. Note that there is a bug in the IMAP client code in older 1.551 +versions of the c-client library that causes it to handle BODYSTRUCTURE 1.552 +extension data improperly if that data is a literal. The new functionality 1.553 +for Content-Location may trigger this bug. The fix is either to upgrade 1.554 +the IMAP client program to the imap-2002 version of c-client or to remove 1.555 +the Content-Location support from imapd. 1.556 + 1.557 +There are now 8 spare bits for application use in both the elts and the 1.558 +mail streams. 1.559 + 1.560 +mail_search() now returns a value (previously it was void). If mail_search() 1.561 +returns NIL, then the supplied charset was invalid or the IMAP server 1.562 +returned NO (probably because the supplied charset was invalid). 1.563 + 1.564 +New utf8_charset() routine to look up a charset and return c-client's 1.565 +database about that charset if found. Among other things, this will give 1.566 +you the scripts supported by that charset and its Unicode conversion table. 1.567 + 1.568 +New FT_NOLOOKAHEAD flag for mail_fetch_structure() disables fetching of 1.569 +any envelopes other than the one specified. Otherwise, it will try to do 1.570 +anticipatory fetching (up to IMAPLOOKAHEAD). 1.571 + 1.572 +New GET_FETCHLOOKAHEAD allows better control of mail_fetch_structure() 1.573 +lookahead. Instead of looking IMAPLOOKAHEAD messages forward from the 1.574 +specified message, it will use a supplied SEARCHSET to generate message 1.575 +sequences and ranges. It will stop at IMAPLOOKAHEAD messages or at the 1.576 +completion of a range which exceeds IMAPLOOKAHEAD. The search set only 1.577 +applies to the next mail_fetch_structure() on that stream, and is cleared 1.578 +once it is used. Call with 1.579 + SEARCHSET **set = (SEARCHSET **) 1.580 + mail_parameters (stream,GET_FETCHLOOKAHEAD,(void *) stream); 1.581 + *set = pointer to desired search set 1.582 + 1.583 +New mail_shortdate() routine returns an date in the format expected by 1.584 +SEARCHPGMs. 1.585 + 1.586 + 1.587 +Updated: 2 November 2001 1.588 + 1.589 +imap-2001a is a maintenance release, consisting primarily of bugfixes 1.590 +including some critical bugfixes to crash and denial of service problems. 1.591 +Programs written for imap-2001 will build with this version without 1.592 +modification. 1.593 + 1.594 +The following new facilities have also been added: 1.595 + 1.596 +The new /norsh switch in mailbox names provides a more intuitive way of 1.597 +disabling rsh-IMAP than the existing :143 or setting the rsh-timeout to 0. 1.598 + 1.599 +Passwords are no longer returned in mm_dlog() callbacks unless the 1.600 +application sets the SET_DEBUGSENSITIVE parameter. 1.601 + 1.602 +The SET_NETFSSTATBUG parameter allows an application to force the 1.603 +traditional UNIX mailbox driver to close and reopen the mailbox at ping 1.604 +time. This is EXTREMELY inefficient, and should only be used to access 1.605 +files stored on AFS and old NFS systems. 1.606 + 1.607 +The ISO 8859 and Windows conversion tables have been updated to comply 1.608 +with Unicode 3.1, and the KOI8-R table has been verified as compliant with 1.609 +Unicode 3.1. 1.610 + 1.611 +The SPECIALS mechanism for passing parameters to the lowest level Makefile 1.612 +has been updated to be more general. See the next item for why you might 1.613 +care. 1.614 + 1.615 +New lrh port to build on Red Hat Linux 7.2, with pre-set definitions for 1.616 +the places where Red Hat has placed Kerberos and SSL. It's actually just 1.617 +the lnp port with SPECIALS defined accordingly. You may want to use it as 1.618 +a model if your system needs such definitions. Note that SPECIALS is 1.619 +primarily for IMAP toolkit (and Pine) purposes, and that user settings 1.620 +should use EXTRASPECIALS instead. 1.621 + 1.622 + 1.623 +Updated: 22 June 2001 1.624 + 1.625 +imap-2001 is a major release. Programs written for imap-2000 will probably 1.626 +build with this version without modification. 1.627 + 1.628 +The FAQ document has been significantly expanded. Be sure to read it for 1.629 +more information. 1.630 + 1.631 +In addition to the usual bugfixes, the following features are new in 1.632 +imap-2001: 1.633 + 1.634 +SSL is now fully integrated into the IMAP toolkit; the old "alt" kludges to 1.635 +be able to produce a "sanitized" version of the IMAP toolkit to comply with 1.636 +late unlamented US export regulations are now completely gone. 1.637 + 1.638 +Full client and server TLS support is also in this release. 1.639 + 1.640 +The server certificate must be signed by a trusted certificate authority and 1.641 +the name in the certificate match the user's entry for the server host name; 1.642 +this means that the user must enter a fully-qualified host name. 1.643 + 1.644 +To build with SSL/TLS on UNIX, you now use "SSLTYPE=unix" instead of the 1.645 +former "SPECIALAUTHENTICATORS=ssl". To build with SSL/TLS on UNIX and disable 1.646 +the use of plaintext passwords except when under SSL/TLS, use "SSLTYPE=nopwd" 1.647 +instead of "SSLTYPE=unix". 1.648 + 1.649 +RFC 1730 (IMAP4 as opposed to IMAP4rev1) support is turned off by default in 1.650 +imapd. No clients should still be using RFC 1730 protocol. Look at the imapd 1.651 +Makefile for how to re-enable RFC 1730 support. Note that this code may be 1.652 +removed in the future, so if you think you need it you had better let me know. 1.653 + 1.654 +There are some new options (turned off by default) which attempt to work around 1.655 +problems in certain clients. See the FAQ file for more details. 1.656 + 1.657 + 1.658 +Updated: 24 January 2001 1.659 + 1.660 +imap-2000c is a maintenance release, consisting primarily of bugfixes. 1.661 + 1.662 + 1.663 +Updated: 9 January 2001 1.664 + 1.665 +imap-2000b is a maintenance release, consisting primarily of bugfixes. 1.666 + 1.667 + 1.668 +Updated: 9 November 2000 1.669 + 1.670 +imap-2000a is a maintenance release, consisting primarily of bugfixes. 1.671 + 1.672 + 1.673 +Updated: 19 September 2000 1.674 + 1.675 +imap-2000 is a major release. There are major internal and external changes 1.676 +from earlier versions (imap-4.x and imap-3.x series). Programs written for 1.677 +imap-4.x will probably build with this version without modification. It is 1.678 +extremely unlikely that a program written for imap-3.x or earlier series will 1.679 +build with this version without modifications. Drivers written for earlier 1.680 +versions will definitely need to be rewritten. 1.681 + 1.682 +In addition to the usual bugfixes, the following features are new in imap-2000: 1.683 + 1.684 +SSL support is now available. For UNIX, it is necessary to install some 1.685 +version of OpenSSL; see imap-2000/docs/SSLBUILD for more information. SSL 1.686 +support is now automatic for the NT, NTK, and W2K ports. SSL use is indicated 1.687 +by the /ssl switch in the mailbox name. 1.688 + 1.689 +With SSL connections, the server certificate is validated by the client code 1.690 +on UNIX, and Windows 2000 unless /novalidate-cert is specified. Server 1.691 +certificates are currently is not validated on Windows 9x, Windows Millenium, 1.692 +or Windows NT 4; this is an artifact of the operating system and not the port 1.693 +(e.g. client code using the NT port will validate certificates if running on 1.694 +Windows 2000). On UNIX, the server certificate must be signed by a trusted 1.695 +certificate authority. On Windows 2000, the certificate must be signed by a 1.696 +trusted certificate authority and match the user's entry for the server host 1.697 +name; this means that the user must enter a fully-qualified host name. 1.698 + 1.699 +Calendar reclama for the benefit of old broken non-Y2K compliant software. 1.700 +Two digit years from 00 to 69 will be interpreted as 2000 through 2069. In 1.701 +addition, three digit years from 100 to 105 will be interpreted as 2000 1.702 +through 2005. 1.703 + 1.704 +Support for REFERENCES threading (in addition to the previously-existing 1.705 +ORDEREDSUBJECT threading). 1.706 + 1.707 +Support for the IMAP MULTIAPPEND extension. This allows much faster uploading 1.708 +of multiple messages to an IMAP server. 1.709 + 1.710 +Support for the LOGINDISABLED IMAP capability. If the IMAP server sends 1.711 +LOGINDISABLED as a capability, the client code will never attempt to send an 1.712 +IMAP LOGIN command. 1.713 + 1.714 +Support for SASL authentication identity vs. authorization identity. If the 1.715 +authentication method does not support this concept (e.g. AUTH=CRAM-MD5, 1.716 +AUTH=LOGIN, LOGIN command), the "*" character in the user name may be used to 1.717 +indicate a separate authentication identity; for example, "fred*joe" indicates 1.718 +authorization identity "fred", authentication identity "joe". 1.719 + 1.720 + 1.721 +UNIX-specific Changes: 1.722 + 1.723 +Support for SASL authentication identity vs. authorization identity in the 1.724 +IMAP and POP3 servers. If the user indicated by the authentication identity 1.725 +is in the "mailadm" group, he may specify any authorization identity and get 1.726 +logged in as the authorization identity user. 1.727 + 1.728 +If the IMAP and POP3 servers are build with PASSWDTYPE=nul, it will send 1.729 +LOGINDISABLED as a capability and also disable the AUTH=LOGIN and AUTH=PLAIN 1.730 +SASL authenticators. 1.731 + 1.732 +New MAILSUBDIR build option to change the default mailbox directory from the 1.733 +user's home directory to a subdirectory of the user's home directory. See 1.734 +imap-2000/Makefile for more information. 1.735 + 1.736 +New CHROOT_SERVER build option for closed server systems only. If defined, a 1.737 +chroot() call to the user's home directory is done as part of the login 1.738 +process. See imap-2000/Makefile for more information. 1.739 + 1.740 +New ADVERTISE_THE_WORLD build option which will add an IMAP namespace that 1.741 +points to the root. Not for the faint of heart. 1.742 + 1.743 +UNIX format mailboxes no longer require the pseudo-message, nor will a 1.744 +pseudo-message be added to a mailbox that does not have one. A new 1.745 +X-IMAPbase: header will be written in the first message. This is rather less 1.746 +efficient and robust than the pseudo-message (which remains the encouraged 1.747 +mechanism; UNIX format mailboxes will always be created with it), but perhaps 1.748 +will pacify some people who get upset by the pseudo-message. 1.749 + 1.750 +When building with MIT Kerberos it will try to detect and use libk5crypto.a 1.751 +instead of libcrypto.a. 1.752 + 1.753 +The mbx driver is more aggressive about cleaning up expunged messages that 1.754 +couldn't be purged because of shared access to the mailbox at the time of 1.755 +expunge. Now, every checkpoint will try to purge such messages; and a 1.756 +checkpoint is attempted at close time. 1.757 + 1.758 + 1.759 +Windows-specific Changes: 1.760 + 1.761 +New W2K port for Windows 2000. In addition to supporting SSL using the 1.762 +official SSPI interface (the NT and NTK ports invoke SChannel.DLL directly), 1.763 +the W2K port also supports Microsoft Kerberos. Note that the NT and NTK ports 1.764 +will work on Windows 2000, but the W2K port will not work on NT4, Windows 1.765 +9x, or Windows Millenium. 1.766 + 1.767 +There is now a #user namespace, equivalent to the "~" namespace on UNIX. 1.768 + 1.769 + 1.770 + 1.771 +Changes for Developers: 1.772 + 1.773 +New c-client.h file which acts as a master include. c-client based 1.774 +applications should now include c-client.h instead of the individual c-client 1.775 +files (mail.h, misc.h, etc.). It is believed that c-client.h will work in C++ 1.776 +applications. 1.777 + 1.778 +New GET_FREEENVELOPESPAREP/SET_FREEENVELOPESPAREP and 1.779 +GET_FREEELTSPAREP/SET_FREEELTSPAREP function callbacks to free the "sparep" 1.780 +member of the envelope and cache elements, respectively. 1.781 + 1.782 +New OP_MULNEWSRC flag to mail_open() to use multiple newsrc files, and new 1.783 +GET_NEWSRCQUERY/SET_NEWSRCQUERY function callbacks to get the name of the 1.784 +newsrc file for news access. 1.785 + 1.786 +New "secret" nntp_article() function to do the NNTP ARTICLE command; this is 1.787 +generally useful only when chasing news URLs. 1.788 + 1.789 +New GET_HIDEDOTFILES/SET_HIDEDOTFILES feature to suppress file names that 1.790 +start with "." in mail_list() results.