Представлен релиз почтового сервера Exim в котором отмечено 47 изменений. Ряд изменений, связанных с поддержкой OpenSSL, GnuTLS и LDAP, являются обратно несовместимыми с прошлыми выпусками.
В частности, начиная с выпуска Exim 4.80 по умолчанию отключена поддержка SSLv2 при использовании OpenSSL. Для возвращения поддержки SSLv2 следует явно определить опцию "openssl_options -no_sslv2". GnuTLS переведён на использование нового API, что привело к прекращению поддержки ряда опций, начинающихся с "gnutls_", таких как gnutls_require_kx, gnutls_require_mac и gnutls_require_protocols. Многозначные атрибуты LDAP теперь воспринимаются как список разделённых запятой значений, что нужно учитывать при использовании символа запятой в данных - запятые в данные теперь экранируются удвоением символа (используется ",,").
Основные новшества Exim 4.80:
По умолчанию включена опция accept_8bitmime, при которой в процессе инициирования сеанса указывается поддержка расширения 8BITMIME, заявляющего о возможности обработки 8-разрядных MIME-вложений. Опция включена в ответ на доводы Дэниэла Бернштейна (Daniel Bernstein, автор qmail) о том, что 7-битные ограничения, определяемые в RFC, являются архаизмом и многие почтовые серверы уже поддерживают расширение 8BITMIME.
Упрощение сборки благодаря задействованию системы pkg-config, позволяющей унифицировать использование параметров cflags и информации о дополнительных библиотеках Exim, вместо непосредственного изменения переменных "CFLAGS", "AUTH_LIBS", "LOOKUP_INCLUDE" и "LOOKUP_LIBS". Дополнительно при установке PCRE_CONFIG=yes для поиска заголовочных файлов и библиотек PCRE теперь запускается pcre-config;
Поддержка TLS-расширения SNI (Server Name Indication) как в режиме клиента, так и в режиме сервера. Таким образом Exim теперь может использовать различные TLS-идентификаторы/сертификаты для разных клиентов на одном сетевом порту. Настройка поддержки SNI осуществляется через опцию $tls_sni, для ведения лога параметров SNI добавлен новый log_selector "+tls_sni"
Добавлена поддержка TLS 1.1 и TLS 1.2, при наличии OpenSSL 1.0.1;
Новые драйверы аутентификации gsasl (SASL-интерфейс, распространяемый под лицензией GPL) и heimdal_gssapi (замена использованию cyrus_sasl совместно с Heimdal), работающие только в режиме сервера;
Возможность запуска Exim через inetd в режиме ожидания соединения ("wait-mode"). При запуске с опцией "-bw" Exim использует stdin как сокет для ожидания соединений. В будущем планируется реализация полноценной поддержки активации сокета, которую можно использовать в современных init-системах (сейчас по сути реализована активация сокета для фиксированного файлового дескриптора 0);
Оператор вычисления значений ${eval...} на 64-разрядных платформах теперь поддерживает 64-разрядные арифметические операции. Добавлена поддержка суфикса G для указания гигабайт (значение умножается на 1024^3);
Новые переменные для вычисляемых выражений - $tls_bits и $tod_epoch_l (время высокой точности);
Новый тип lookup-хранилища "dbmjz", в качестве ключа в котором фигурирует список элементов, разделённых символом NULL, а в качестве БД - используется DBM. Dbmjz подходит для использования в gsasl для доступа к sasldb2-файлам, используемым в Cyrus SASL;
В ${lookup dnsdb{ }} добавлена поддержка типов записей SPF, которые обрабатываются идентично записям TXT.