X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/3375e053c40dacf62a7eac02d52438a43398c053..dd0b893238d03a9bb38e793f3d935272ed73da6d:/src/README.UPDATING diff --git a/src/README.UPDATING b/src/README.UPDATING index e685b8ec3..2438cc953 100644 --- a/src/README.UPDATING +++ b/src/README.UPDATING @@ -26,11 +26,104 @@ The rest of this document contains information about changes in 4.xx releases that might affect a running system. +Exim version 4.92 +----------------- + + * Exim used to manually follow CNAME chains, to a limited depth. In this + day-and-age we expect the resolver to be doing this for us, so the loop + is limited to one retry unless the (new) config option dns_cname_loops + is changed. + +Exim version 4.91 +----------------- + + * DANE and SPF have been promoted from Experimental to Supported status, thus + the options to enable them in Local/Makefile have been renamed. + See current src/EDITME for full details, including changes in dependencies, + but loosely: replace EXPERIMENTAL_SPF with SUPPORT_SPF and replace + EXPERIMENTAL_DANE with SUPPORT_DANE. + + * Ancient ClamAV stream support, long deprecated by ClamAV, has been removed; + if you were building with WITH_OLD_CLAMAV_STREAM enabled then your problems + have marginally increased. + + * A number of logging changes; if relying upon the previous DKIM additional + log-line, explicit log_selector configuration is needed to keep it. + + * Other incompatible changes in EXPERIMENTAL_* features, read NewStuff and + ChangeLog carefully if relying upon an experimental feature such as DMARC. + Note that this includes changes to SPF as it was promoted into Supported. + + +Exim version 4.89 +----------------- + + * SMTP CHUNKING in Exim 4.88 did not ensure that received mails had a final + newline; attempts to deliver such messages onwards to non-chunking hosts + would probably hang, as Exim does not insert the newline before a ".". + In 4.89, the newline is added upon receipt. For already-received messages + in your queue, try util/chunking_fixqueue_finalnewlines.pl + to walk the queue, fixing any affected messages. Note that because a + delivery attempt will be hanging, attempts to lock the messages for fixing + them will stall; stopping all queue-runners temporarily is recommended. + + * OpenSSL: oldest supported release series is now 1.0.2, which is the oldest + supported by the OpenSSL project. If you can build Exim with an older + release series, congratulations. If you can't, then upgrade. + The file doc/openssl.txt contains instructions for installing a current + OpenSSL outside the system library paths and building Exim to use it. + + * FreeBSD: we now always use the system iconv in libc, as all versions of + FreeBSD supported by the FreeBSD project provide this functionality. + + +Exim version 4.88 +----------------- + + * The "demime" ACL condition, deprecated for the past 10 years, has + now been removed. + + * Old GnuTLS configuration options "gnutls_require_kx", "gnutls_require_mac", + and "gnutls_require_protocols" have now been removed. (Inoperative from + 4.80, per below; logging warnings since 4.83, again per below). + + +Exim version 4.83 +----------------- + + * SPF condition results renamed "permerror" and "temperror". The old + names are still accepted for back-compatability, for this release. + + * TLS details are now logged on rejects, subject to log selectors. + + * Items in headers_remove lists must now have any embedded list-separators + doubled. + + * Attempted use of the deprecated options "gnutls_require_kx" et. al. + now result in logged warning. + + +Exim version 4.82 +----------------- + + * New option gnutls_allow_auto_pkcs11 defaults false; if you have GnuTLS 2.12.0 + or later and do want PKCS11 modules to be autoloaded, then set this option. + + * A per-transport wait- database is no longer updated if the transport + sets "connection_max_messages" to 1, as it can not be used and causes + unnecessary serialisation and load. External tools tracking the state of + Exim by the hints databases may need modification to take this into account. + + * The av_scanner option can now accept multiple clamd TCP targets, all other + setting limitations remain. + + Exim version 4.80 ----------------- * BEWARE backwards-incompatible changes in SSL libraries, thus the version bump. See points below for details. + Also an LDAP data returned format change. * The value of $tls_peerdn is now print-escaped when written to the spool file in a -tls_peerdn line, and unescaped when read back in. We received reports @@ -42,6 +135,12 @@ Exim version 4.80 the message. No tool has been provided as we believe this is a rare occurence. + * For OpenSSL, SSLv2 is now disabled by default. (GnuTLS does not support + SSLv2). RFC 6176 prohibits SSLv2 and some informal surveys suggest no + actual usage. You can re-enable with the "openssl_options" Exim option, + in the main configuration section. Note that supporting SSLv2 exposes + you to ciphersuite downgrade attacks. + * With OpenSSL 1.0.1+, Exim now supports TLS 1.1 and TLS 1.2. If built against 1.0.1a then you will get a warning message and the "openssl_options" value will not parse "no_tlsv1_1": the value changes @@ -51,8 +150,9 @@ Exim version 4.80 "openssl_options" gains "no_tlsv1_1", "no_tlsv1_2" and "no_compression". COMPATIBILITY WARNING: The default value of "openssl_options" is no longer - "+dont_insert_empty_fragments". We default to unset. That old default was - grandfathered in from before openssl_options became a configuration option. + "+dont_insert_empty_fragments". We default to "+no_sslv2". + That old default was grandfathered in from before openssl_options became a + configuration option. Empty fragments are inserted by default through TLS1.0, to partially defend against certain attacks; TLS1.1+ change the protocol so that this is not needed. The DIEF SSL option was required for some old releases of mail @@ -77,6 +177,12 @@ Exim version 4.80 attribute as a comma-separated list. Note the distinction from multiple attributes being returned, where each one is a name=value pair. + If you are currently splitting the results from LDAP upon a comma, then you + should check carefully to see if adjustments are needed. + + This change lets cautious folks distinguish "comma used as separator for + joining values" from "comma inside the data". + * accept_8bitmime now defaults on, which is not RFC compliant but is better suited to today's Internet. See http://cr.yp.to/smtp/8bitmime.html for a sane rationale. Those who wish to be strictly RFC compliant, or know that @@ -98,7 +204,7 @@ Exim version 4.80 is instead given to gnutls_priority_init(3), which expects a priority string; this behaviour is much closer to the OpenSSL behaviour. See: - http://www.gnu.org/software/gnutls/manual/html_node/Priority-Strings.html + http://www.gnutls.org/manual/html_node/Priority-Strings.html for fuller documentation of the strings parsed. The three gnutls_require_* options are still parsed by Exim and, for this release, silently ignored. @@ -135,6 +241,21 @@ Exim version 4.80 fail completely. (The check is not done as root, to ensure that problems here are not made worse by the check). + * The "tls_dhparam" option has been updated, so that it can now specify a + path or an identifier for a standard DH prime from one of a few RFCs. + The default for OpenSSL is no longer to not use DH but instead to use + one of these standard primes. The default for GnuTLS is no longer to use + a file in the spool directory, but to use that same standard prime. + The option is now used by GnuTLS too. If it points to a path, then + GnuTLS will use that path, instead of a file in the spool directory; + GnuTLS will attempt to create it if it does not exist. + + To preserve the previous behaviour of generating files in the spool + directory, set "tls_dhparam = historic". Since prior releases of Exim + ignored tls_dhparam when using GnuTLS, this can safely be done before + the upgrade. + + Exim version 4.77 ----------------- @@ -471,7 +592,7 @@ Version 4.23 3. Version 4.23 saves the contents of the ACL variables with the message, so that they can be used later. If one of these variables contains a newline, there will be a newline character in the spool that will not be interpreted - correctely by a previous version of Exim. (Exim ignores keyed spool file + correctly by a previous version of Exim. (Exim ignores keyed spool file items that it doesn't understand - precisely for this kind of problem - but it expects them all to be on one line.)