Представлен релиз почтового сервера 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.
