diff --git a/mail/exim/Makefile b/mail/exim/Makefile index ebc17dcecb..8fa2147114 100644 --- a/mail/exim/Makefile +++ b/mail/exim/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=exim -PKG_VERSION:=4.96.2 +PKG_VERSION:=4.97.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://ftp.exim.org/pub/exim/exim4/ -PKG_HASH:=038e327e8d1e93d005bac9bb06fd22aec44d5028930d6dbe8817ad44bbfc1de6 +PKG_HASH:=bd782057509a793593508528590626d185ea160ce32cb34beda262e99cefdfa9 PKG_MAINTAINER:=Daniel Golle PKG_LICENSE:=GPL-2.0-or-later @@ -138,7 +138,7 @@ define Package/exim/conffiles endef HOST_CFLAGS += -std=c99 -TARGET_CFLAGS += $(FPIC) -DNO_IP_OPTIONS -D_FILE_OFFSET_BITS=64 +TARGET_CFLAGS += $(FPIC) -DNO_IP_OPTIONS -D_FILE_OFFSET_BITS=64 -DNO_EXECINFO MAKE_VARS += build=Linux-$$(ARCH) MAKE_FLAGS += AR="$$(TARGET_AR) r" @@ -152,7 +152,7 @@ define Build/Configure $(SED) 's%# EXIM_GROUP=.*%EXIM_GROUP=42%' $(PKG_BUILD_DIR)/Local/Makefile $(SED) 's%# EXIM_USER=.*%EXIM_USER=42%' $(PKG_BUILD_DIR)/Local/Makefile $(SED) 's%# INCLUDE=.*%INCLUDE=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/usr/include%' $(PKG_BUILD_DIR)/Local/Makefile - $(SED) 's%# HAVE_IPV6=YES%HAVE_IPV6=YES%' $(PKG_BUILD_DIR)/Local/Makefile + $(SED) 's%# HAVE_IPV6=yes%HAVE_IPV6=yes%' $(PKG_BUILD_DIR)/Local/Makefile $(SED) 's%# WITH_CONTENT_SCAN=yes%WITH_CONTENT_SCAN=yes%' $(PKG_BUILD_DIR)/Local/Makefile $(SED) 's%# SUPPORT_MAILDIR=yes%SUPPORT_MAILDIR=yes%' $(PKG_BUILD_DIR)/Local/Makefile $(SED) 's%# SUPPORT_MAILSTORE=yes%SUPPORT_MAILSTORE=yes%' $(PKG_BUILD_DIR)/Local/Makefile diff --git a/mail/exim/patches/010-allow-json-dynamic-lookup.patch b/mail/exim/patches/010-allow-json-dynamic-lookup.patch index 39b6ae96e9..25daa6e485 100644 --- a/mail/exim/patches/010-allow-json-dynamic-lookup.patch +++ b/mail/exim/patches/010-allow-json-dynamic-lookup.patch @@ -1,6 +1,6 @@ --- a/src/drtables.c +++ b/src/drtables.c -@@ -662,7 +662,7 @@ addlookupmodule(NULL, &ibase_lookup_modu +@@ -663,7 +663,7 @@ addlookupmodule(NULL, &ibase_lookup_modu addlookupmodule(NULL, &ldap_lookup_module_info); #endif diff --git a/mail/exim/patches/030-openssl-deprecated.patch b/mail/exim/patches/030-openssl-deprecated.patch index 2561de7852..b3ecb56626 100644 --- a/mail/exim/patches/030-openssl-deprecated.patch +++ b/mail/exim/patches/030-openssl-deprecated.patch @@ -13,7 +13,7 @@ } --- a/src/pdkim/signing.c +++ b/src/pdkim/signing.c -@@ -703,7 +703,6 @@ return NULL; +@@ -704,7 +704,6 @@ return NULL; void exim_dkim_init(void) { @@ -23,7 +23,7 @@ --- a/src/tls-openssl.c +++ b/src/tls-openssl.c -@@ -22,7 +22,10 @@ functions from the OpenSSL library. */ +@@ -23,7 +23,10 @@ functions from the OpenSSL library. */ #include #include #include @@ -34,7 +34,7 @@ #ifndef OPENSSL_NO_ECDH # include #endif -@@ -885,8 +888,9 @@ pkey = EVP_RSA_gen(2048); +@@ -944,8 +947,9 @@ pkey = EVP_RSA_gen(2048); X509_set_version(x509, 2); /* N+1 - version 3 */ ASN1_INTEGER_set(X509_get_serialNumber(x509), 1); @@ -46,7 +46,7 @@ X509_set_pubkey(x509, pkey); name = X509_get_subject_name(x509); -@@ -4670,8 +4674,8 @@ return string_fmt_append(g, +@@ -4979,8 +4983,8 @@ return string_fmt_append(g, " Runtime: %s\n" " : %s\n", OPENSSL_VERSION_TEXT, @@ -57,7 +57,7 @@ /* third line is 38 characters for the %s and the line is 73 chars long; the OpenSSL output includes a "built on: " prefix already. */ } -@@ -4713,8 +4717,6 @@ if (pidnow != pidlast) +@@ -5022,8 +5026,6 @@ if (pidnow != pidlast) is unique for each thread", this doesn't apparently apply across processes, so our own warning from vaguely_random_number_fallback() applies here too. Fix per PostgreSQL. */ @@ -68,7 +68,7 @@ --- a/src/tlscert-openssl.c +++ b/src/tlscert-openssl.c -@@ -218,13 +218,13 @@ return mod ? tls_field_from_dn(cp, mod) +@@ -219,13 +219,13 @@ return mod ? tls_field_from_dn(cp, mod) uschar * tls_cert_not_before(void * cert, uschar * mod) { diff --git a/mail/exim/patches/100-localscan_dlopen.patch b/mail/exim/patches/100-localscan_dlopen.patch index 115201c05a..69f62ed38e 100644 --- a/mail/exim/patches/100-localscan_dlopen.patch +++ b/mail/exim/patches/100-localscan_dlopen.patch @@ -10,7 +10,7 @@ Last-Update: 2021-07-28 --- a/src/EDITME +++ b/src/EDITME -@@ -873,6 +873,21 @@ HEADERS_CHARSET="ISO-8859-1" +@@ -904,6 +904,21 @@ HEADERS_CHARSET="ISO-8859-1" #------------------------------------------------------------------------------ @@ -45,7 +45,7 @@ Last-Update: 2021-07-28 #define CONFIGURE_FILE --- a/src/globals.c +++ b/src/globals.c -@@ -117,6 +117,10 @@ int dsn_ret = 0; +@@ -118,6 +118,10 @@ int dsn_ret = 0; const pcre2_code *regex_DSN = NULL; uschar *dsn_advertise_hosts = NULL; @@ -58,7 +58,7 @@ Last-Update: 2021-07-28 BOOL gnutls_allow_auto_pkcs11 = FALSE; --- a/src/globals.h +++ b/src/globals.h -@@ -155,6 +155,9 @@ extern int dsn_ret; / +@@ -157,6 +157,9 @@ extern int dsn_ret; / extern const pcre2_code *regex_DSN; /* For recognizing DSN settings */ extern uschar *dsn_advertise_hosts; /* host for which TLS is advertised */ @@ -70,8 +70,8 @@ Last-Update: 2021-07-28 --- a/src/local_scan.c +++ b/src/local_scan.c -@@ -7,58 +7,133 @@ - /* See the file NOTICE for conditions of use and distribution. */ +@@ -8,58 +8,133 @@ + /* SPDX-License-Identifier: GPL-2.0-or-later */ -/****************************************************************************** @@ -248,7 +248,7 @@ Last-Update: 2021-07-28 /* End of local_scan.c */ --- a/src/local_scan.h +++ b/src/local_scan.h -@@ -27,6 +27,7 @@ settings, and the store functions. */ +@@ -28,6 +28,7 @@ settings, and the store functions. */ #include #include @@ -256,7 +256,7 @@ Last-Update: 2021-07-28 #include "config.h" #include "mytypes.h" #include "store.h" -@@ -166,6 +167,9 @@ extern header_line *header_list; / +@@ -177,6 +178,9 @@ extern header_line *header_list; / extern BOOL host_checking; /* Set when checking a host */ extern uschar *interface_address; /* Interface for incoming call */ extern int interface_port; /* Port number for incoming call */ @@ -266,7 +266,7 @@ Last-Update: 2021-07-28 extern uschar *message_id; /* Internal id of message being handled */ extern uschar *received_protocol; /* Name of incoming protocol */ extern int recipients_count; /* Number of recipients */ -@@ -236,4 +240,6 @@ extern pid_t child_open_exim2_functio +@@ -247,4 +251,6 @@ extern pid_t child_open_exim2_functio extern pid_t child_open_function(uschar **, uschar **, int, int *, int *, BOOL, const uschar *); #endif @@ -275,7 +275,7 @@ Last-Update: 2021-07-28 /* End of local_scan.h */ --- a/src/readconf.c +++ b/src/readconf.c -@@ -212,6 +212,9 @@ static optionlist optionlist_config[] = +@@ -216,6 +216,9 @@ static optionlist optionlist_config[] = { "local_from_prefix", opt_stringptr, {&local_from_prefix} }, { "local_from_suffix", opt_stringptr, {&local_from_suffix} }, { "local_interfaces", opt_stringptr, {&local_interfaces} }, @@ -287,7 +287,7 @@ Last-Update: 2021-07-28 #endif --- a/src/string.c +++ b/src/string.c -@@ -428,6 +428,7 @@ return ss; +@@ -453,6 +453,7 @@ return ss; #if (defined(HAVE_LOCAL_SCAN) || defined(EXPAND_DLFUNC)) \ && !defined(MACRO_PREDEF) && !defined(COMPILE_UTILITY) @@ -295,7 +295,7 @@ Last-Update: 2021-07-28 /************************************************* * Copy and save string * *************************************************/ -@@ -473,6 +474,7 @@ string_copyn_function(const uschar * s, +@@ -498,6 +499,7 @@ string_copyn_function(const uschar * s, { return string_copyn(s, n); } diff --git a/mail/exim/patches/200-fix-build.patch b/mail/exim/patches/200-fix-build.patch index a53bc8fce2..e5c63c32d8 100644 --- a/mail/exim/patches/200-fix-build.patch +++ b/mail/exim/patches/200-fix-build.patch @@ -1,17 +1,6 @@ ---- a/src/drtables.c -+++ b/src/drtables.c -@@ -736,7 +736,7 @@ else - { - char * name = ent->d_name; - int len = (int)strlen(name); -- if (regex_match(regex_islookupmod, US name, len, NUL)) -+ if (regex_match(regex_islookupmod, US name, len, NULL)) - { - int pathnamelen = len + (int)strlen(LOOKUP_MODULE_DIR) + 2; - void *dl; --- a/src/exim.c +++ b/src/exim.c -@@ -636,13 +636,15 @@ exim_nullstd(void) +@@ -642,13 +642,15 @@ exim_nullstd(void) { int devnull = -1; struct stat statbuf; @@ -31,7 +20,7 @@ } --- a/src/local_scan.h +++ b/src/local_scan.h -@@ -26,6 +26,7 @@ store.c +@@ -27,6 +27,7 @@ store.c settings, and the store functions. */ #include diff --git a/mail/exim/patches/210-no-exim_id_update.patch b/mail/exim/patches/210-no-exim_id_update.patch new file mode 100644 index 0000000000..05301148b1 --- /dev/null +++ b/mail/exim/patches/210-no-exim_id_update.patch @@ -0,0 +1,11 @@ +--- a/OS/Makefile-Base ++++ b/OS/Makefile-Base +@@ -253,7 +253,7 @@ utils: $(EXIM_MONITOR) exicyclog exinext + transport-filter.pl convert4r3 convert4r4 \ + exim_checkaccess \ + exim_dbmbuild exim_dumpdb exim_fixdb exim_tidydb \ +- exim_lock exim_msgdate exim_id_update ++ exim_lock exim_msgdate + + + # Targets for special-purpose configuration header builders diff --git a/mail/exim/patches/300-avoid-time-printf.patch b/mail/exim/patches/300-avoid-time-printf.patch new file mode 100644 index 0000000000..f4f1c88ec0 --- /dev/null +++ b/mail/exim/patches/300-avoid-time-printf.patch @@ -0,0 +1,11 @@ +--- a/src/transports/smtp.c ++++ b/src/transports/smtp.c +@@ -938,7 +938,7 @@ if ( sx->early_pipe_active + if (!(er = dbfn_read_enforce_length(dbm_file, ehlo_resp_key, sizeof(dbdata_ehlo_resp)))) + debug_printf("no ehlo-resp record!\n"); + else +- debug_printf("ehlo-resp record is %d seconds old\n", time(NULL) - er->time_stamp); ++ debug_printf("ehlo-resp record is %.0f seconds old\n", difftime(time(NULL), er->time_stamp)); + } + + dbfn_delete(dbm_file, ehlo_resp_key);