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.

UW-IMAP'd extensions by yuuji