exim/exim.spec

508 lines
14 KiB
RPMSpec
Raw Normal View History

#
# spec file for package exim
#
# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
%define _fillupdir /var/adm/fillup-templates
%endif
%bcond_without mysql
%bcond_without pgsql
%bcond_without sqlite
%bcond_without ldap
%bcond_without i18n
%if 0%{?suse_version} > 1199 || 0%{?centos_version} > 599 || 0%{?rhel_version} > 599
%bcond_without dane
%else
%bcond_with dane
%endif
Name: exim
BuildRequires: cyrus-sasl-devel
BuildRequires: db-devel
BuildRequires: libidn-devel
%if 0%{?suse_version} >= 1330
BuildRequires: libnsl-devel
%endif
BuildRequires: libspf2-devel
BuildRequires: pam-devel
%if %{with_ldap}
BuildRequires: openldap2-devel
%endif
BuildRequires: pcre-devel
BuildRequires: tcpd-devel
BuildRequires: pkgconfig(libcrypto)
BuildRequires: pkgconfig(libssl)
BuildRequires: pkgconfig(xaw7)
BuildRequires: pkgconfig(xmu)
BuildRequires: pkgconfig(xt)
URL: http://www.exim.org/
Conflicts: sendmail sendmail-tls postfix
Provides: smtp_daemon
%if %{?suse_version:%suse_version}%{?!suse_version:0} > 800
Requires: logrotate
%if 0%{?suse_version} > 1220
BuildRequires: pkgconfig(systemd)
%{?systemd_requires}
%else
Requires(pre): %insserv_prereq
%endif
Requires(pre): %fillup_prereq permissions
%if 0%{?suse_version} >= 1330
BuildRequires: group(mail)
BuildRequires: user(mail)
Requires(pre): user(mail)
Requires(pre): group(mail)
%endif
Requires(pre): fileutils textutils
%endif
Accepting request 761343 from home:pwcau:branches:server:mail - update to exim 4.93.0.4 (+fixes release) * Avoid costly startup code when not strictly needed. This reduces time for some exim process initialisations. It does mean that the logging of TLS configuration problems is only done for the daemon startup. * Early-pipelining support code is now included unless disabled in Makefile. * DKIM verification defaults no long accept sha1 hashes, to conform to RFC 8301. They can still be enabled, using the dkim_verify_hashes main option. * Support CHUNKING from an smtp transport using a transport_filter, when DKIM signing is being done. Previously a transport_filter would always disable CHUNKING, falling back to traditional DATA. * Regard command-line receipients as tainted. * Bug 340: Remove the daemon pid file on exit, whe due to SIGTERM. * Bug 2489: Fix crash in the "pam" expansion condition. It seems that the PAM library frees one of the arguments given to it, despite the documentation. Therefore a plain malloc must be used. * Bug 2491: Use tainted buffers for the transport smtp context. Previously on-stack buffers were used, resulting in a taint trap when DSN information copied from a received message was written into the buffer. * Bug 2493: Harden ARC verify against Outlook, whick has been seen to mix the ordering of its ARC headers. This caused a crash. * Bug 2492: Use tainted memory for retry record when needed. Previously when a new record was being constructed with information from the peer, a trap was taken. * Bug 2494: Unset the default for dmarc_tld_file. Previously a naiive installation would get error messages from DMARC verify, when it hit the nonexistent file indicated by the default. Distros wanting DMARC enabled should both provide the file and set the option. Also enforce no DMARC verification for command-line sourced messages. * Fix an uninitialised flag in early-pipelining. Previously connections could, depending on the platform, hang at the STARTTLS response. * Bug 2498: Reset a counter used for ARC verify before handling another message on a connection. Previously if one message had ARC headers and the following one did not, a crash could result when adding an Authentication-Results: header. * Bug 2500: Rewind some of the common-coding in string handling between the Exim main code and Exim-related utities. The introduction of taint tracking also did many adjustments to string handling. Since then, eximon frequently terminated with an assert failure. * When PIPELINING, synch after every hundred or so RCPT commands sent and check for 452 responses. This slightly helps the inefficieny of doing a large alias-expansion into a recipient-limited target. The max_rcpt transport option still applies (and at the current default, will override the new feature). The check is done for either cause of synch, and forces a fast-retry of all 452'd recipients using a new MAIL FROM on the same connection. The new facility is not tunable at this time. * Fix the variables set by the gsasl authenticator. Previously a pointer to library live data was being used, so the results became garbage. Make copies while it is still usable. * Logging: when the deliver_time selector ise set, include the DT= field on delivery deferred (==) and failed (**) lines (if a delivery was attemtped). Previously it was only on completion (=>) lines. * Authentication: the gsasl driver not provides the $authN variables in time for the expansion of the server_scram_iter and server_scram_salt options. OBS-URL: https://build.opensuse.org/request/show/761343 OBS-URL: https://build.opensuse.org/package/show/server:mail/exim?expand=0&rev=225
2020-01-07 08:00:23 +00:00
Version: 4.93.0.4
Release: 1
%if %{with_mysql}
BuildRequires: mysql-devel
%endif
%if %{with_pgsql}
BuildRequires: postgresql-devel
%endif
%if %{with_sqlite}
BuildRequires: sqlite3-devel
%endif
Summary: The Exim Mail Transfer Agent, a Replacement for sendmail
License: GPL-2.0-or-later
Group: Productivity/Networking/Email/Servers
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: http://ftp.exim.org/pub/exim/exim4/fixes/exim-%{version}.tar.bz2
Source3: http://ftp.exim.org/pub/exim/exim4/fixes/exim-%{version}.tar.bz2.asc
# http://ftp.exim.org/pub/exim/Exim-Maintainers-Keyring.asc
Source4: exim.keyring
Source1: sysconfig.exim
Source2: exim.logrotate
Source11: exim.rc
Source12: permissions.exim
Source13: apparmor.usr.sbin.exim
Source30: eximstats-html-update.py
Source31: eximstats.conf
Source32: eximstats.conf-2.2
Source40: exim.service
Patch0: exim-tail.patch
Patch1: gnu_printf.patch
%package -n eximon
Summary: Eximon, an graphical frontend to administer Exim's mail queue
Group: Productivity/Networking/Email/Servers
%package -n eximstats-html
Summary: Create HTML reports of exim logs
Group: Productivity/Networking/Email/Servers
Requires: perl-GD
Requires: perl-GDGraph
Requires: perl-GDTextUtil
%description
Exim is a mail transport agent (MTA) developed at the University of
Cambridge for use on Unix systems connected to the Internet. It is
freely available under the terms of the GNU General Public Licence. In
style, it is similar to Smail 3, but its facilities are more extensive.
In particular, it has options for verifying incoming sender and
recipient addresses, for refusing mail from specified hosts, networks,
or senders, and for controlling mail relaying.
%description -n eximon
This allows administrators to view the exim agent's mail queue and
logs, and perform a variety of actions on queued messages, such as
freezing, bouncing and thawing messages, and even editing body and
header of mails.
%description -n eximstats-html
If this package is installed alongside the exim MTA, and you enable
EXIM_REPORT_WEEKLY_HTML in /etc/sysconfig/exim, logrotate/cron will
create HTML reports in /srv/www/eximstats.
You can edit /etc/apache2/conf.d/eximstats.conf to configure your
webserver for the reports.
The script /usr/sbin/eximstats-html-update.py can create the reports
for log files that were rotated in the past. (You would only run this
once, if at all. The rest is done by logrotate / cron.)
%prep
%setup -q -n exim-%{version}
%patch0
%patch1 -p1
# build with fPIE/pie on SUSE 10.0 or newer, or on any other platform
%if %{?suse_version:%suse_version}%{?!suse_version:99999} > 930
fPIE="-fPIE"
pie="-pie"
%endif
%if 0%{?suse_version} > 1100 || 0%{?centos_version} > 599 || 0%{?rhel_version} > 599
CFLAGS_OPT_WERROR="-Werror=format-security -Werror=missing-format-attribute"
%endif
cat <<-EOF > Local/Makefile
# see src/EDITME for comments.
BIN_DIRECTORY=/usr/sbin
CONFIGURE_FILE=/etc/exim/exim.conf
EXIM_USER=ref:mail
EXIM_GROUP=ref:mail
SPOOL_DIRECTORY=/var/spool/exim
ROUTER_ACCEPT=yes
ROUTER_DNSLOOKUP=yes
ROUTER_IPLITERAL=yes
ROUTER_MANUALROUTE=yes
ROUTER_QUERYPROGRAM=yes
ROUTER_REDIRECT=yes
# ROUTER_IPLOOKUP=yes
TRANSPORT_APPENDFILE=yes
TRANSPORT_AUTOREPLY=yes
TRANSPORT_PIPE=yes
TRANSPORT_SMTP=yes
TRANSPORT_LMTP=yes
SUPPORT_MAILDIR=yes
SUPPORT_MAILSTORE=yes
SUPPORT_MBX=yes
LOOKUP_DBM=yes
LOOKUP_LSEARCH=yes
LOOKUP_CDB=yes
LOOKUP_DNSDB=yes
LOOKUP_DSEARCH=yes
%if %{with_ldap}
LOOKUP_LDAP=yes
%endif
%if %{with_mysql}
LOOKUP_MYSQL=yes
%endif
%if %{with_pgsql}
LOOKUP_PGSQL=yes
%endif
%if %{with_sqlite}
LOOKUP_SQLITE=yes
%endif
LOOKUP_NIS=yes
# LOOKUP_NISPLUS=yes
LOOKUP_PASSWD=yes
# LOOKUP_WHOSON=yes
CYRUS_SASLAUTHD_SOCKET=/var/run/sasl2/mux
LOOKUP_LIBS=-llber -lnsl
%if %{with_ldap}
LDAP_LIB_TYPE=OPENLDAP2
LOOKUP_LIBS+=-lldap
%endif
%if %{with_mysql}
LOOKUP_INCLUDE+=-I /usr/include/mysql
LOOKUP_LIBS+=-L %{_libdir}/mysql -lmysqlclient
%endif
%if %{with_pgsql}
LOOKUP_INCLUDE+=-I /usr/include/pgsql
LOOKUP_LIBS+=-lpq
%endif
%if %{with_sqlite}
LOOKUP_INCLUDE+=-I /usr/include/sqlite3
LOOKUP_LIBS+=-lsqlite3
%endif
EXIM_MONITOR=eximon.bin
WITH_CONTENT_SCAN=yes
#WITH_OLD_DEMIME=yes
AUTH_CRAM_MD5=yes
AUTH_CYRUS_SASL=yes
AUTH_PLAINTEXT=yes
AUTH_SPA=yes
AUTH_DOVECOT=yes
AUTH_TLS=yes
AUTH_LIBS=-lsasl2
USE_OPENSSL=yes
SUPPORT_TLS=yes
TLS_LIBS=-lssl -lcrypto
INFO_DIRECTORY=%{_infodir}
LOG_FILE_PATH=/var/log/exim/%%s.log
EXICYCLOG_MAX=10
SYSLOG_LOG_PID=yes
SYSLOG_LONG_LINES=yes
COMPRESS_COMMAND=/bin/gzip
COMPRESS_SUFFIX=gz
ZCAT_COMMAND=/usr/bin/zcat
SUPPORT_PAM=yes
# You probably need to add -lpam to EXTRALIBS
# RADIUS_CONFIG_FILE=/etc/radiusclient/radiusclient.conf
# CYRUS_PWCHECK_SOCKET=/var/pwcheck/pwcheck
# USE_TCP_WRAPPERS=yes
NO_SYMLINK=yes
CHOWN_COMMAND=/bin/chown
CHGRP_COMMAND=/bin/chgrp
MV_COMMAND=/bin/mv
RM_COMMAND=/bin/rm
PERL_COMMAND=/usr/bin/perl
# APPENDFILE_MODE=0600
# APPENDFILE_DIRECTORY_MODE=0700
# APPENDFILE_LOCKFILE_MODE=0600
# CONFIGURE_FILE_USE_NODE=yes
# CONFIGURE_FILE_USE_EUID=yes
# DELIVER_BUFFER_SIZE=8192
# EXIMDB_DIRECTORY_MODE=0750
# EXIMDB_MODE=0640
# EXIMDB_LOCKFILE_MODE=0640
# HEADER_MAXSIZE="(1024*1024)"
# INPUT_DIRECTORY_MODE=0750
# LOG_DIRECTORY_MODE=0750
# LOG_MODE=0640
# LOOKUP_TESTDB=yes
MAKE_SHELL=/bin/bash
MAX_NAMED_LIST=64
# MAXINTERFACES=250
# MSGLOG_DIRECTORY_MODE=0750
# PERL_CC=
# PERL_CCOPTS=
# PERL_LIBS=
PID_FILE_PATH=/var/run/exim.pid
# SPOOL_DIRECTORY_MODE=0750
# SPOOL_MODE=0640
SUPPORT_MOVE_FROZEN_MESSAGES=yes
HAVE_IPV6=YES
SUPPORT_SPF=yes
LOOKUP_LIBS+=-lspf2
#SUPPORT_DMARC=yes
#CFLAGS += -I/usr/local/include
#LDFLAGS += -lopendmarc
EXPERIMENTAL_EVENT=yes
EXPERIMENTAL_PROXY=yes
EXPERIMENTAL_CERTNAMES=yes
EXPERIMENTAL_DSN=yes
SYSTEM_ALIASES_FILE=/etc/aliases
%if %{with dane}
SUPPORT_DANE=yes
%endif
EXPERIMENTAL_SOCKS=yes
%if %{with i18n}
EXPERIMENTAL_INTERNATIONAL=yes
%endif
LDFLAGS += -lidn
CFLAGS=$RPM_OPT_FLAGS -std=gnu99 -Wall $CFLAGS_OPT_WERROR -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLDAP_DEPRECATED $fPIE
EXTRALIBS=-ldl -lpam -L/usr/X11R6/%{_lib} $pie
EOF
touch Local/eximon.conf
rm -f doc/*.{orig,txt~}
%build
make
%install
%if 0%{?suse_version} > 1220
mkdir -p $RPM_BUILD_ROOT/%{_unitdir}
%else
mkdir -p $RPM_BUILD_ROOT/etc/init.d
%endif
mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
mkdir -p $RPM_BUILD_ROOT/usr/{bin,sbin,lib}
mkdir -p $RPM_BUILD_ROOT/var/log/exim
mkdir -p $RPM_BUILD_ROOT/var/spool/mail/
mkdir -p $RPM_BUILD_ROOT%{_fillupdir}
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man8
mkdir -p $RPM_BUILD_ROOT/usr/bin
make inst_dest=$RPM_BUILD_ROOT/usr/sbin \
inst_conf=$RPM_BUILD_ROOT/etc/exim/exim.conf \
inst_info=$RPM_BUILD_ROOT/%{_infodir} \
INSTALL_ARG=-no_chown install
#mv $RPM_BUILD_ROOT/usr/sbin/exim-%{version}* $RPM_BUILD_ROOT/usr/sbin/exim
Accepting request 576288 from home:kbabioch:branches:server:mail - update to 4.90.1 * Allow PKG_CONFIG_PATH to be set in Local/Makefile and use it correctly during configuration. Wildcards are allowed and expanded. * Shorten the log line for daemon startup by collapsing adjacent sets of identical IP addresses on different listening ports. Will also affect "exiwhat" output. * Tighten up the checking in isip4 (et al): dotted-quad components larger than 255 are no longer allowed. * Default openssl_options to include +no_ticket, to reduce load on peers. Disable the session-cache too, which might reduce our load. Since we currrectly use a new context for every connection, both as server and client, there is no benefit for these. * Add $SOURCE_DATE_EPOCH support for reproducible builds, per spec at <https://reproducible-builds.org/specs/source-date-epoch/>. * Fix smtp transport use of limited max_rcpt under mua_wrapper. Previously the check for any unsuccessful recipients did not notice the limit, and erroneously found still-pending ones. * Pipeline CHUNKING command and data together, on kernels that support MSG_MORE. Only in-clear (not on TLS connections). * Avoid using a temporary file during transport using dkim. Unless a transport-filter is involved we can buffer the headers in memory for creating the signature, and read the spool data file once for the signature and again for transmission. * Enable use of sendfile in Linux builds as default. It was disabled in 4.77 as the kernel support then wasn't solid, having issues in 64bit mode. Now, it's been long enough. Add support for FreeBSD also. * Add commandline_checks_require_admin option. * Do pipelining under TLS. * For the "sock" variant of the malware scanner interface, accept an empty cmdline element to get the documented default one. Previously it was inaccessible. * Prevent repeated use of -p/-oMr * DKIM: enforce the DNS pubkey record "h" permitted-hashes optional field, if present. * DKIM: when a message has multiple signatures matching an identity given in dkim_verify_signers, run the dkim acl once for each. * Support IDNA2008. * The path option on a pipe transport is now expanded before use * Have the EHLO response advertise VRFY, if there is a vrfy ACL defined. - Several bug fixes - Fix for buffer overflow in base64decode() (bsc#1079832 CVE-2018-6789) - removed patches (included upstream now): * exim-CVE-2017-1000369.patch * exim-CVE-2017-16943.patch * exim-CVE-2017-16944.patch * exim-4.86.2-mariadb_102_compile_fix.patch old: server:mail/exim new: home:kbabioch:branches:server:mail/exim rev None Index: exim.changes =================================================================== --- exim.changes (revision 200) +++ exim.changes (revision 4) @@ -1,4 +1,54 @@ ------------------------------------------------------------------- +Tue Feb 13 13:39:34 UTC 2018 - kbabioch@suse.com + +- update to 4.90.1 + * Allow PKG_CONFIG_PATH to be set in Local/Makefile and use it correctly + during configuration. Wildcards are allowed and expanded. + * Shorten the log line for daemon startup by collapsing adjacent sets of + identical IP addresses on different listening ports. Will also affect + "exiwhat" output. + * Tighten up the checking in isip4 (et al): dotted-quad components larger + than 255 are no longer allowed. + * Default openssl_options to include +no_ticket, to reduce load on peers. + Disable the session-cache too, which might reduce our load. Since we + currrectly use a new context for every connection, both as server and + client, there is no benefit for these. + * Add $SOURCE_DATE_EPOCH support for reproducible builds, per spec at + <https://reproducible-builds.org/specs/source-date-epoch/>. + * Fix smtp transport use of limited max_rcpt under mua_wrapper. Previously + the check for any unsuccessful recipients did not notice the limit, and + erroneously found still-pending ones. + * Pipeline CHUNKING command and data together, on kernels that support + MSG_MORE. Only in-clear (not on TLS connections). + * Avoid using a temporary file during transport using dkim. Unless a + transport-filter is involved we can buffer the headers in memory for + creating the signature, and read the spool data file once for the + signature and again for transmission. + * Enable use of sendfile in Linux builds as default. It was disabled in + 4.77 as the kernel support then wasn't solid, having issues in 64bit + mode. Now, it's been long enough. Add support for FreeBSD also. + * Add commandline_checks_require_admin option. + * Do pipelining under TLS. + * For the "sock" variant of the malware scanner interface, accept an empty + cmdline element to get the documented default one. Previously it was + inaccessible. + * Prevent repeated use of -p/-oMr + * DKIM: enforce the DNS pubkey record "h" permitted-hashes optional field, + if present. + * DKIM: when a message has multiple signatures matching an identity given + in dkim_verify_signers, run the dkim acl once for each. + * Support IDNA2008. + * The path option on a pipe transport is now expanded before use + * Have the EHLO response advertise VRFY, if there is a vrfy ACL defined. +- Several bug fixes +- Fix for buffer overflow in base64decode() (bsc#1079832 CVE-2018-6789) +- removed patches (included upstream now): + * exim-CVE-2017-1000369.patch + * exim-CVE-2017-16943.patch + * exim-CVE-2017-16944.patch + * exim-4.86.2-mariadb_102_compile_fix.patch + +------------------------------------------------------------------- Thu Nov 30 08:32:50 UTC 2017 - wullinger@rz.uni-kiel.de - add exim-CVE-2017-16944.patch: Index: exim.spec =================================================================== --- exim.spec (revision 200) +++ exim.spec (revision 4) @@ -1,7 +1,7 @@ # # spec file for package exim # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -78,7 +78,7 @@ %endif Requires(pre): fileutils textutils %endif -Version: 4.88 +Version: 4.90.1 Release: 0 %if %{with_mysql} BuildRequires: mysql-devel @@ -93,8 +93,8 @@ License: GPL-2.0+ Group: Productivity/Networking/Email/Servers BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: http://ftp.exim.org/pub/exim/exim4/old/exim-%{version}.tar.bz2 -Source3: http://ftp.exim.org/pub/exim/exim4/old/exim-%{version}.tar.bz2.asc +Source: http://ftp.exim.org/pub/exim/exim4/exim-%{version}.tar.bz2 +Source3: http://ftp.exim.org/pub/exim/exim4/exim-%{version}.tar.bz2.asc # http://ftp.exim.org/pub/exim/Exim-Maintainers-Keyring.asc Source4: exim.keyring Source1: sysconfig.exim @@ -107,10 +107,6 @@ Source32: eximstats.conf-2.2 Source40: exim.service Patch0: exim-tail.patch -Patch3: exim-CVE-2017-1000369.patch -Patch4: exim-CVE-2017-16943.patch -Patch5: exim-CVE-2017-16944.patch -Patch6: exim-4.86.2-mariadb_102_compile_fix.patch %package -n eximon Summary: Eximon, an graphical frontend to administer Exim's mail queue @@ -153,10 +149,6 @@ %prep %setup -q -n exim-%{version} %patch0 -%patch3 -p 1 -%patch4 -p 1 -%patch5 -p 1 -%patch6 -p 1 # build with fPIE/pie on SUSE 10.0 or newer, or on any other platform %if %{?suse_version:%suse_version}%{?!suse_version:99999} > 930 fPIE="-fPIE" @@ -328,7 +320,7 @@ inst_info=$RPM_BUILD_ROOT/%{_infodir} \ INSTALL_ARG=-no_chown install #mv $RPM_BUILD_ROOT/usr/sbin/exim-%{version}* $RPM_BUILD_ROOT/usr/sbin/exim -mv $RPM_BUILD_ROOT/usr/sbin/exim-4.8* $RPM_BUILD_ROOT/usr/sbin/exim +mv $RPM_BUILD_ROOT/usr/sbin/exim-4.9* $RPM_BUILD_ROOT/usr/sbin/exim mv $RPM_BUILD_ROOT/etc/exim/exim.conf src/configure.default # with all substitutions done %if 0%{?suse_version} > 1220 install -m 0644 %{S:40} $RPM_BUILD_ROOT/%{_unitdir}/exim.service Index: exim-4.90.1.tar.bz2 =================================================================== Binary file exim-4.90.1.tar.bz2 (revision 4) added Index: exim-4.90.1.tar.bz2.asc =================================================================== --- exim-4.90.1.tar.bz2.asc (added) +++ exim-4.90.1.tar.bz2.asc (revision 4) @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- + +iQEzBAABCgAdFiEE0L/WueylaUpvFJ3Or0zGdqa2wUIFAlp8U0MACgkQr0zGdqa2 +wUKEiwf9GmNYK5sbmpi/c2TdfPqsqU1o76l3PoTt+kxSQi5t4j30dsqZdWvzvkuj +k+/x1SsDRg44+wv19ynnYH4tSCZ3QSwTevyfXvR7bSGpSTCN0tTnaWm/AuBXNC8D +9lukQckwdZckVNciRriVCLi9VTymV/tdnIxowQu/WfdEzFTXDeYzu3KoioG+jKAV +MWhnyUDfhPYPYs+u8IKdFDE3Z9bO/I/EbgTHiR6PetLWusSugrp/MyJjICp8HsvI +f/pMj+rytJo2hOnI9x/wpUiXb7XnnQnph3mic5BQU4DF+tI6dK1zTS66PyTYAoNI +p6Po3uLY/umKYT+W6jxURPfC2TH1+A== +=k4cD +-----END PGP SIGNATURE----- Index: exim-4.86.2-mariadb_102_compile_fix.patch =================================================================== --- exim-4.86.2-mariadb_102_compile_fix.patch (revision 200) +++ exim-4.86.2-mariadb_102_compile_fix.patch (deleted) @@ -1,94 +0,0 @@ -Index: exim-4.86.2/src/lookups/mysql.c -=================================================================== ---- exim-4.86.2.orig/src/lookups/mysql.c -+++ exim-4.86.2/src/lookups/mysql.c -@@ -14,6 +14,53 @@ functions. */ - - #include <mysql.h> /* The system header */ - -+/* We define symbols for *_VERSION_ID (numeric), *_VERSION_STR (char*) -+and *_BASE_STR (char*). It's a bit of guesswork. Especially for mariadb -+with versions before 10.2, as they do not define there there specific symbols. -+*/ -+ -+// Newer (>= 10.2) MariaDB -+#if defined MARIADB_VERSION_ID -+#define EXIM_MxSQL_VERSION_ID MARIADB_VERSION_ID -+ -+// MySQL defines MYSQL_VERSION_ID, and MariaDB does so -+// https://dev.mysql.com/doc/refman/5.7/en/c-api-server-client-versions.html -+#elif defined LIBMYSQL_VERSION_ID -+#define EXIM_MxSQL_VERSION_ID LIBMYSQL_VERSION_ID -+#elif defined MYSQL_VERSION_ID -+#define EXIM_MxSQL_VERSION_ID MYSQL_VERSION_ID -+ -+#else -+#define EXIM_MYSQL_VERSION_ID 0 -+#endif -+ -+// Newer (>= 10.2) MariaDB -+#ifdef MARIADB_CLIENT_VERSION_STR -+#define EXIM_MxSQL_VERSION_STR MARIADB_CLIENT_VERSION_STR -+ -+// Mysql uses MYSQL_SERVER_VERSION -+#elif defined LIBMYSQL_VERSION -+#define EXIM_MxSQL_VERSION_STR LIBMYSQL_VERSION -+#elif defined MYSQL_SERVER_VERSION -+#define EXIM_MxSQL_VERSION_STR MYSQL_SERVER_VERSION -+ -+#else -+#define EXIM_MxSQL_VERSION_STR "N.A." -+#endif -+ -+#if defined MARIADB_BASE_VERSION -+#define EXIM_MxSQL_BASE_STR MARIADB_BASE_VERSION -+ -+#elif defined MARIADB_PACKAGE_VERSION -+#define EXIM_MxSQL_BASE_STR "mariadb" -+ -+#elif defined MYSQL_BASE_VERSION -+#define EXIM_MxSQL_BASE_STR MYSQL_BASE_VERSION -+ -+#else -+#define EXIM_MxSQL_BASE_STR "n.A." -+#endif -+ - - /* Structure and anchor for caching connections. */ - -@@ -423,10 +470,10 @@ return quoted; - void - mysql_version_report(FILE *f) - { --fprintf(f, "Library version: MySQL: Compile: %s [%s]\n" -- " Runtime: %s\n", -- MYSQL_SERVER_VERSION, MYSQL_COMPILATION_COMMENT, -- mysql_get_client_info()); -+fprintf(f, "Library version: MySQL: Compile: %lu %s [%s]\n" -+ " Runtime: %lu %s\n", -+ (long)EXIM_MxSQL_VERSION_ID, EXIM_MxSQL_VERSION_STR, EXIM_MxSQL_BASE_STR, -+ mysql_get_client_version(), mysql_get_client_info()); - #ifdef DYNLOOKUP - fprintf(f, " Exim version %s\n", EXIM_VERSION_STR); - #endif -Index: exim-4.86.2/src/EDITME -=================================================================== ---- exim-4.86.2.orig/src/EDITME -+++ exim-4.86.2/src/EDITME -@@ -253,7 +253,7 @@ TRANSPORT_SMTP=yes - # you perform upgrades and revert them. You should consider the benefit of - # embedding the Exim version number into LOOKUP_MODULE_DIR, so that you can - # maintain two concurrent sets of modules. --# -+# - # *BEWARE*: ability to modify the files in LOOKUP_MODULE_DIR is equivalent to - # the ability to modify the Exim binary, which is often setuid root! The Exim - # developers only intend this functionality be used by OS software packagers -@@ -301,6 +301,7 @@ LOOKUP_DNSDB=yes - # LOOKUP_IBASE=yes - # LOOKUP_LDAP=yes - # LOOKUP_MYSQL=yes -+# LOOKUP_MYSQL_PC=mariadb - # LOOKUP_NIS=yes - # LOOKUP_NISPLUS=yes - # LOOKUP_ORACLE=yes Index: exim-4.88.tar.bz2 =================================================================== Binary file exim-4.88.tar.bz2 (revision 200) deleted Index: exim-4.88.tar.bz2.asc =================================================================== --- exim-4.88.tar.bz2.asc (revision 200) +++ exim-4.88.tar.bz2.asc (deleted) @@ -1,10 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQEcBAABAgAGBQJYVqBoAAoJELzljIzkHzLf5vIH/R4gcGqdEwGkFDRwQA5ImNif -USPeSli63U2tL2YRpf8E/sMWlf2ywZl9vGkVWhvYFvMWI4gn+hNAh0jUj2BakCdI -aEjUk0KSA0nXHzIGmNyf0lAcC1VONRq0KLxfQvlGF8RrKnBL7urg46EVFagmU8g9 -m3KVHPjv1cUIICZdJVWICUChjjm23pBvtqr1M9TgUAhWQU0FaG9dmgY2Kh4s2pnG -0o+llbQdU1hvtk0lTMzZYmYTtS3totoyR3aKYdws/epOnE1MgVOIlnp2q5R9FMO1 -RE5bHa2Qg5UCf5wwAKSOxIDLPEVUoX6qkbP7inByuGKZ5dSvBQwUGPAt+b2Lb38= -=jgHZ ------END PGP SIGNATURE----- Index: exim-CVE-2017-1000369.patch =================================================================== --- exim-CVE-2017-1000369.patch (revision 200) +++ exim-CVE-2017-1000369.patch (deleted) @@ -1,43 +0,0 @@ -commit 65e061b76867a9ea7aeeb535341b790b90ae6c21 -Author: Heiko Schlittermann (HS12-RIPE) <hs@schlittermann.de> -Date: Wed May 31 23:08:56 2017 +0200 - - Cleanup (prevent repeated use of -p/-oMr to avoid mem leak) - -diff --git a/src/exim.c b/src/src/exim.c -index 67583e58..88e11977 100644 ---- a/src/exim.c -+++ b/src/exim.c -@@ -3106,7 +3106,14 @@ for (i = 1; i < argc; i++) - - /* -oMr: Received protocol */ - -- else if (Ustrcmp(argrest, "Mr") == 0) received_protocol = argv[++i]; -+ else if (Ustrcmp(argrest, "Mr") == 0) -+ -+ if (received_protocol) -+ { -+ fprintf(stderr, "received_protocol is set already\n"); -+ exit(EXIT_FAILURE); -+ } -+ else received_protocol = argv[++i]; - - /* -oMs: Set sender host name */ - -@@ -3202,7 +3209,15 @@ for (i = 1; i < argc; i++) - - if (*argrest != 0) - { -- uschar *hn = Ustrchr(argrest, ':'); -+ uschar *hn; -+ -+ if (received_protocol) -+ { -+ fprintf(stderr, "received_protocol is set already\n"); -+ exit(EXIT_FAILURE); -+ } -+ -+ hn = Ustrchr(argrest, ':'); - if (hn == NULL) - { - received_protocol = argrest; Index: exim-CVE-2017-16943.patch =================================================================== --- exim-CVE-2017-16943.patch (revision 200) +++ exim-CVE-2017-16943.patch (deleted) @@ -1,40 +0,0 @@ -From 4e6ae6235c68de243b1c2419027472d7659aa2b4 Mon Sep 17 00:00:00 2001 -From: Jeremy Harris <jgh146exb@wizmail.org> -Date: Fri, 24 Nov 2017 20:22:33 +0000 -Subject: [PATCH] Avoid release of store if there have been later allocations. - Bug 2199 - ---- - src/src/receive.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/src/src/receive.c b/src/src/receive.c -index e7e518a..d9b5001 100644 ---- a/src/receive.c -+++ b/src/receive.c -@@ -1810,8 +1810,8 @@ for (;;) - (and sometimes lunatic messages can have ones that are 100s of K long) we - call store_release() for strings that have been copied - if the string is at - the start of a block (and therefore the only thing in it, because we aren't -- doing any other gets), the block gets freed. We can only do this because we -- know there are no other calls to store_get() going on. */ -+ doing any other gets), the block gets freed. We can only do this release if -+ there were no allocations since the once that we want to free. */ - - if (ptr >= header_size - 4) - { -@@ -1820,9 +1820,10 @@ for (;;) - header_size *= 2; - if (!store_extend(next->text, oldsize, header_size)) - { -+ BOOL release_ok = store_last_get[store_pool] == next->text; - uschar *newtext = store_get(header_size); - memcpy(newtext, next->text, ptr); -- store_release(next->text); -+ if (release_ok) store_release(next->text); - next->text = newtext; - } - } --- -1.9.1 - Index: exim-CVE-2017-16944.patch =================================================================== --- exim-CVE-2017-16944.patch (revision 200) +++ exim-CVE-2017-16944.patch (deleted) @@ -1,41 +0,0 @@ -diff -ru a/src/receive.c b/src/receive.c ---- a/src/receive.c 2017-11-30 09:15:29.593364805 +0100 -+++ b/src/receive.c 2017-11-30 09:17:32.026970431 +0100 -@@ -1759,7 +1759,7 @@ - prevent further reading), and break out of the loop, having freed the - empty header, and set next = NULL to indicate no data line. */ - -- if (ptr == 0 && ch == '.' && (smtp_input || dot_ends)) -+ if (ptr == 0 && ch == '.' && dot_ends) - { - ch = (receive_getc)(); - if (ch == '\r') -diff -ru a/src/smtp_in.c b/src/smtp_in.c ---- a/src/smtp_in.c 2017-11-30 09:15:29.593364805 +0100 -+++ b/src/smtp_in.c 2017-11-30 09:41:47.270055566 +0100 -@@ -4751,11 +4751,17 @@ - ? CHUNKING_LAST : CHUNKING_ACTIVE; - chunking_data_left = chunking_datasize; - -+ /* push the current receive_* function on the "stack", and -+ replace them by bdat_getc(), which in turn will use the lwr_receive_* -+ functions to do the dirty work. */ - lwr_receive_getc = receive_getc; - lwr_receive_ungetc = receive_ungetc; -+ - receive_getc = bdat_getc; - receive_ungetc = bdat_ungetc; - -+ dot_ends = FALSE; -+ - DEBUG(D_any) - debug_printf("chunking state %d\n", (int)chunking_state); - goto DATA_BDAT; -@@ -4763,6 +4769,7 @@ - - case DATA_CMD: - HAD(SCH_DATA); -+ dot_ends = TRUE; - - DATA_BDAT: /* Common code for DATA and BDAT */ - if (!discarded && recipients_count <= 0) OBS-URL: https://build.opensuse.org/request/show/576288 OBS-URL: https://build.opensuse.org/package/show/server:mail/exim?expand=0&rev=201
2018-02-15 11:52:20 +00:00
mv $RPM_BUILD_ROOT/usr/sbin/exim-4.9* $RPM_BUILD_ROOT/usr/sbin/exim
mv $RPM_BUILD_ROOT/etc/exim/exim.conf src/configure.default # with all substitutions done
%if 0%{?suse_version} > 1220
install -m 0644 %{S:40} $RPM_BUILD_ROOT/%{_unitdir}/exim.service
%else
install -m 0755 %{S:11} $RPM_BUILD_ROOT/etc/init.d/exim
%endif
# aka...
for i in \
/usr/lib/sendmail \
/usr/bin/runq \
/usr/bin/rsmtp \
/usr/bin/mailq \
/usr/bin/newaliases
do
ln -sf ../sbin/exim $RPM_BUILD_ROOT$i
done
ln -sf exim $RPM_BUILD_ROOT/usr/sbin/sendmail
%if 0%{?suse_version} > 1220
ln -sv service $RPM_BUILD_ROOT/usr/sbin/rcexim
%else
ln -sv ../../etc/init.d/exim $RPM_BUILD_ROOT/usr/sbin/rcexim
%endif
mv $RPM_BUILD_ROOT/usr/sbin/eximon* $RPM_BUILD_ROOT/usr/bin/
cp -p %{S:1} $RPM_BUILD_ROOT%{_fillupdir}/sysconfig.exim
install -m 0644 %{S:2} $RPM_BUILD_ROOT/etc/logrotate.d/exim
# man pages
mv doc/exim.8 $RPM_BUILD_ROOT/%{_mandir}/man8/
pod2man --center=EXIM --section=8 $RPM_BUILD_ROOT/usr/sbin/eximstats > $RPM_BUILD_ROOT/%{_mandir}/man8/eximstats.8
for i in \
sendmail \
runq \
rsmtp \
mailq \
newaliases
do
ln -sf exim.8.gz $RPM_BUILD_ROOT/%{_mandir}/man8/$i.8.gz
done
for i in \
exim_dumpdb \
exim_fixdb \
exim_tidydb
do
ln -sf exim_db.8.gz $RPM_BUILD_ROOT/%{_mandir}/man8/$i.8.gz
done
perl -pi -e 's%/usr/share/doc/exim4%/usr/share/doc/packages/exim%g' `find $RPM_BUILD_ROOT/%{_mandir}/man8 -name "*.8"`
gzip -9 doc/*.txt
#
# package the utilities without executable permissions, to silence rpmlint warnings
chmod 644 util/*.{pl,sh} src/convert4r*
#
# eximstats-html files
mkdir -p $RPM_BUILD_ROOT/srv/www/eximstats
mkdir -p $RPM_BUILD_ROOT/etc/apache2/conf.d/
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1310
cp -p %{S:31} $RPM_BUILD_ROOT/etc/apache2/conf.d/
%else
cp -p %{S:32} $RPM_BUILD_ROOT/etc/apache2/conf.d/eximstats.conf
%endif
install -m 0755 $RPM_SOURCE_DIR/eximstats-html-update.py $RPM_BUILD_ROOT/%{_sbindir}
# apparmor profile
install -D -m 0644 $RPM_SOURCE_DIR/apparmor.usr.sbin.exim $RPM_BUILD_ROOT/usr/share/apparmor/extra-profiles/usr.sbin.exim
%pretrans
if [ -d "%{_docdir}/%{name}/doc/cve-2019-13917" ]; then
moved_suffix=""
moved_index=""
while [ -d "%{_docdir}/%{name}/doc/cve-2019-13917.rpmmoved${moved_suffix}${moved_index}" ]; do
if [ -z "${moved_suffix}" ]; then
moved_suffix="."
moved_index="0"
else
moved_index=$((${moved_index} + 1))
fi
done
mv "%{_docdir}/%{name}/doc/cve-2019-13917" "%{_docdir}/%{name}/doc/cve-2019-13917.rpmmoved${moved_suffix}${moved_index}"
fi
%pre
%if 0%{?suse_version} > 1220
%service_add_pre exim.service
%endif
%post
%if 0%{?suse_version} < 1131
%run_permissions
%else
%set_permissions /usr/sbin/exim
%endif
if ! test -s etc/exim/exim.conf; then
if test -s etc/exim.conf; then
mv etc/exim.conf etc/exim/
echo moving exim.conf to /etc/exim/
else
cp -p usr/share/doc/packages/%{name}/configure.default etc/exim/exim.conf
echo copying default config file to /etc/exim/exim.conf
fi
fi
# create logfiles if missing
for i in var/log/exim/main.log var/log/exim/panic.log var/log/exim/reject.log; do
if ! test -e $i; then touch $i; chown mail:mail $i; chmod 640 $i ; fi
done
%if 0%{?suse_version} > 1220
%{fillup_only}
%service_add_post exim.service
%else
%{fillup_and_insserv exim}
%endif
exit 0
%if %{?suse_version:1}%{?!suse_version:0}
%preun
%if 0%{?suse_version} > 1220
%service_del_preun exim.service
%else
%stop_on_removal exim
%endif
%endif
%postun
%if %{?suse_version:1}%{?!suse_version:0}
%if 0%{?suse_version} > 1220
%service_del_postun exim.service
%else
%restart_on_update exim
%insserv_cleanup
%endif
%endif
%verifyscript
%verify_permissions -e /usr/sbin/exim
%files
%defattr(-,root,root)
%ghost %{_docdir}/%{name}/doc/cve-2019-13917.rpmmoved
%doc ACKNOWLEDGMENTS CHANGES LICENCE NOTICE README.UPDATING README
%doc doc
%doc src/configure.default
%doc build-Linux-*/convert4r{3,4}
%doc util
%doc %{_mandir}/man8/*
/usr/sbin/exicyclog
/usr/sbin/exigrep
/usr/sbin/exiqgrep
%verify(not mode) %attr(4755,root,root) /usr/sbin/exim
/usr/sbin/exim_*
/usr/sbin/eximstats
/usr/sbin/exinext
/usr/sbin/exipick
/usr/sbin/exiqsumm
/usr/sbin/exiwhat
%dir /etc/exim
%if 0%{?suse_version} > 1220
%{_unitdir}/exim.service
%else
%config /etc/init.d/exim
%endif
%config(noreplace) /etc/logrotate.d/exim
%if %{?suse_version:%suse_version}%{?!suse_version:99999} < 1000
%config(noreplace) /etc/permissions.d/exim
%endif
%dir /usr/share/apparmor
%dir /usr/share/apparmor/extra-profiles
%config(noreplace) /usr/share/apparmor/extra-profiles/usr.sbin.exim
/usr/sbin/rcexim
/usr/bin/mailq
/usr/bin/runq
/usr/bin/rsmtp
/usr/bin/newaliases
/usr/sbin/sendmail
/usr/lib/sendmail
%{_fillupdir}/sysconfig.exim
%dir %attr(750,mail,mail) /var/log/exim
%files -n eximon
%defattr(-,root,root)
/usr/bin/eximon
/usr/bin/eximon.bin
%files -n eximstats-html
%defattr(-,root,root)
%attr(0750,root,www) /srv/www/eximstats
%dir /etc/apache2
%dir /etc/apache2/conf.d
%config /etc/apache2/conf.d/eximstats.conf
%{_sbindir}/eximstats-html-update.py
%changelog