diff --git a/mail/exim/Makefile b/mail/exim/Makefile index bf67a49cd3..b2b9af9df4 100644 --- a/mail/exim/Makefile +++ b/mail/exim/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=exim -PKG_VERSION:=4.95 +PKG_VERSION:=4.96 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://ftp.exim.org/pub/exim/exim4/ -PKG_HASH:=cc9cb653fff2ea947c3702680b59c99ac0bd1bbf19976d37e22a463cd804f167 +PKG_HASH:=299a56927b2eb3477daafd3c5bda02bc67e5c4e5898a7aeaf2740875278cf1a3 PKG_MAINTAINER:=Daniel Golle PKG_LICENSE:=GPL-2.0-or-later @@ -45,7 +45,7 @@ LOOKUPS:= \ define Package/exim/Default SECTION:=mail CATEGORY:=Mail - DEPENDS:=+libdb47 +libpcre $(ICONV_DEPENDS) +BUILD_NLS:libidn2 +BUILD_NLS:libidn + DEPENDS:=+libdb47 +libpcre2 $(ICONV_DEPENDS) +BUILD_NLS:libidn2 +BUILD_NLS:libidn TITLE:=Exim message transfer agent URL:=http://www.exim.org/ USERID:=exim=42:exim=42 diff --git a/mail/exim/patches/030-openssl-deprecated.patch b/mail/exim/patches/030-openssl-deprecated.patch index d4ff72d1a3..2561de7852 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 -@@ -704,7 +704,6 @@ return NULL; +@@ -703,7 +703,6 @@ return NULL; void exim_dkim_init(void) { @@ -34,7 +34,7 @@ #ifndef OPENSSL_NO_ECDH # include #endif -@@ -834,8 +837,9 @@ if (!EVP_PKEY_assign_RSA(pkey, rsa)) +@@ -885,8 +888,9 @@ pkey = EVP_RSA_gen(2048); X509_set_version(x509, 2); /* N+1 - version 3 */ ASN1_INTEGER_set(X509_get_serialNumber(x509), 1); @@ -46,18 +46,18 @@ X509_set_pubkey(x509, pkey); name = X509_get_subject_name(x509); -@@ -4512,8 +4516,8 @@ fprintf(f, "Library version: OpenSSL: Co - " Runtime: %s\n" - " : %s\n", - OPENSSL_VERSION_TEXT, -- SSLeay_version(SSLEAY_VERSION), -- SSLeay_version(SSLEAY_BUILT_ON)); -+ OpenSSL_version(OPENSSL_VERSION), -+ OpenSSL_version(OPENSSL_BUILT_ON)); - /* third line is 38 characters for the %s and the line is 73 chars long; - the OpenSSL output includes a "built on: " prefix already. */ +@@ -4670,8 +4674,8 @@ return string_fmt_append(g, + " Runtime: %s\n" + " : %s\n", + OPENSSL_VERSION_TEXT, +- SSLeay_version(SSLEAY_VERSION), +- SSLeay_version(SSLEAY_BUILT_ON)); ++ OpenSSL_version(OPENSSL_VERSION), ++ OpenSSL_version(OPENSSL_BUILT_ON)); + /* third line is 38 characters for the %s and the line is 73 chars long; + the OpenSSL output includes a "built on: " prefix already. */ } -@@ -4555,8 +4559,6 @@ if (pidnow != pidlast) +@@ -4713,8 +4717,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 -@@ -217,13 +217,13 @@ return mod ? tls_field_from_dn(cp, mod) +@@ -218,13 +218,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 b4456dbcf0..e5efd5e566 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 -@@ -883,6 +883,21 @@ HEADERS_CHARSET="ISO-8859-1" +@@ -873,6 +873,21 @@ HEADERS_CHARSET="ISO-8859-1" #------------------------------------------------------------------------------ @@ -34,7 +34,7 @@ Last-Update: 2021-07-28 # the documentation in "info" format, first fetch the Texinfo documentation --- a/src/config.h.defaults +++ b/src/config.h.defaults -@@ -35,6 +35,8 @@ Do not put spaces between # and the 'def +@@ -33,6 +33,8 @@ Do not put spaces between # and the 'def #define AUTH_VARS 4 @@ -45,8 +45,8 @@ Last-Update: 2021-07-28 #define CONFIGURE_FILE --- a/src/globals.c +++ b/src/globals.c -@@ -121,6 +121,10 @@ int dsn_ret = 0; - const pcre *regex_DSN = NULL; +@@ -117,6 +117,10 @@ int dsn_ret = 0; + const pcre2_code *regex_DSN = NULL; uschar *dsn_advertise_hosts = NULL; +#ifdef DLOPEN_LOCAL_SCAN @@ -58,8 +58,8 @@ Last-Update: 2021-07-28 BOOL gnutls_allow_auto_pkcs11 = FALSE; --- a/src/globals.h +++ b/src/globals.h -@@ -156,6 +156,9 @@ extern int dsn_ret; / - extern const pcre *regex_DSN; /* For recognizing DSN settings */ +@@ -155,6 +155,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 */ +#ifdef DLOPEN_LOCAL_SCAN @@ -70,7 +70,7 @@ Last-Update: 2021-07-28 --- a/src/local_scan.c +++ b/src/local_scan.c -@@ -6,58 +6,133 @@ +@@ -7,58 +7,133 @@ /* See the file NOTICE for conditions of use and distribution. */ @@ -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 */ -@@ -235,4 +239,6 @@ extern pid_t child_open_exim2_functio +@@ -236,4 +240,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 -@@ -215,6 +215,9 @@ static optionlist optionlist_config[] = +@@ -212,6 +212,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} }, @@ -295,9 +295,9 @@ Last-Update: 2021-07-28 /************************************************* * Copy and save string * *************************************************/ -@@ -470,6 +471,7 @@ Ustrncpy(ss, s, n); - ss[n] = 0; - return ss; +@@ -463,6 +464,7 @@ string_copyn_function(const uschar * s, + { + return string_copyn(s, n); } +#pragma GCC visibility pop #endif diff --git a/mail/exim/patches/200-fix-build.patch b/mail/exim/patches/200-fix-build.patch new file mode 100644 index 0000000000..a53bc8fce2 --- /dev/null +++ b/mail/exim/patches/200-fix-build.patch @@ -0,0 +1,41 @@ +--- 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) + { + int devnull = -1; + struct stat statbuf; ++const char devnullpath[] = "/dev/null"; ++ + for (int i = 0; i <= 2; i++) + { + if (fstat(i, &statbuf) < 0 && errno == EBADF) + { +- if (devnull < 0) devnull = open("/dev/null", O_RDWR); ++ if (devnull < 0) devnull = open(devnullpath, O_RDWR); + if (devnull < 0) log_write(0, LOG_MAIN|LOG_PANIC_DIE, "%s", +- string_open_failed("/dev/null", NULL)); ++ string_open_failed("%s", devnullpath)); + if (devnull != i) (void)dup2(devnull, i); + } + } +--- a/src/local_scan.h ++++ b/src/local_scan.h +@@ -26,6 +26,7 @@ store.c + settings, and the store functions. */ + + #include ++#include + #include + #pragma GCC visibility push(default) + #include "config.h"