summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2020-05-09 11:57:23 +0200
committerFabian Groffen <grobian@gentoo.org>2020-05-09 11:57:38 +0200
commit631b045c07527ab0ca4d4d585c56faa3855187fe (patch)
tree7b3b1351d4908f5fedea864672bc12387a91db1f /mail-mta
parentnet-misc/gerbera: 1.4: Make libupnp dep 1.8 (diff)
downloadgentoo-631b045c07527ab0ca4d4d585c56faa3855187fe.tar.gz
gentoo-631b045c07527ab0ca4d4d585c56faa3855187fe.tar.bz2
gentoo-631b045c07527ab0ca4d4d585c56faa3855187fe.zip
mail-mta/exim-4.93.0.4: fix compilation with certain USE-combinations
- fix localscan compilation - fix nis compilation - refine DB includes to lookup only - fix radius compilation Closes: https://bugs.gentoo.org/720364 Closes: https://bugs.gentoo.org/720362 Package-Manager: Portage-2.3.89, Repoman-2.3.20 Signed-off-by: Fabian Groffen <grobian@gentoo.org>
Diffstat (limited to 'mail-mta')
-rw-r--r--mail-mta/exim/exim-4.93.0.4.ebuild8
-rw-r--r--mail-mta/exim/files/exim-4.93-localscan_dlopen.patch4
-rw-r--r--mail-mta/exim/files/exim-4.93-radius.patch66
3 files changed, 74 insertions, 4 deletions
diff --git a/mail-mta/exim/exim-4.93.0.4.ebuild b/mail-mta/exim/exim-4.93.0.4.ebuild
index a7ac64a9ffb4..6e7870394653 100644
--- a/mail-mta/exim/exim-4.93.0.4.ebuild
+++ b/mail-mta/exim/exim-4.93.0.4.ebuild
@@ -114,6 +114,7 @@ src_prepare() {
eapply -p0 "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591
eapply "${FILESDIR}"/exim-4.69-r1.27021.patch
eapply "${FILESDIR}"/exim-4.93-localscan_dlopen.patch
+ eapply -p2 "${FILESDIR}"/exim-4.93-radius.patch # 720364
if use maildir ; then
eapply "${FILESDIR}"/exim-4.20-maildir.patch
@@ -219,11 +220,11 @@ src_configure() {
local DB_VERS="5.3 5.1 4.8 4.7 4.6 4.5 4.4 4.3 4.2 3.2"
cat >> Makefile <<- EOC
USE_DB=yes
- CFLAGS+=-I$(db_includedir ${DB_VERS})
- DBMLIB=-l$(db_libname ${DB_VERS})
LOOKUP_CDB=yes
LOOKUP_PASSWD=yes
LOOKUP_DSEARCH=yes
+ LOOKUP_INCLUDE += -I$(db_includedir ${DB_VERS})
+ DBMLIB = -l$(db_libname ${DB_VERS})
EOC
if ! use dnsdb; then
@@ -255,7 +256,8 @@ src_configure() {
EOC
if use elibc_glibc ; then
cat >> Makefile <<- EOC
- CFLAGS += -I"${EPREFIX}"/usr/include/tirpc
+ LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/tirpc
+ LOOKUP_LIBS += -lnsl
EOC
fi
fi
diff --git a/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch b/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch
index d2a5e63128aa..0d016dbeb26d 100644
--- a/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch
+++ b/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch
@@ -72,7 +72,7 @@ Only in exim-4.92/src: globals.h.orig
diff -ur exim-4.92.orig/src/local_scan.c exim-4.92/src/local_scan.c
--- exim-4.92.orig/src/local_scan.c 2019-01-30 14:59:52.000000000 +0100
+++ exim-4.92/src/local_scan.c 2019-02-16 18:29:56.832732592 +0100
-@@ -5,61 +5,131 @@
+@@ -5,61 +5,133 @@
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
@@ -126,9 +126,11 @@ diff -ur exim-4.92.orig/src/local_scan.c exim-4.92/src/local_scan.c
- is used in the rejection message.
-*/
+#ifdef DLOPEN_LOCAL_SCAN
++#include <stdlib.h>
+#include <dlfcn.h>
+static int (*local_scan_fn)(int fd, uschar **return_text) = NULL;
+static int load_local_scan_library(void);
++extern uschar *local_scan_path; /* Path to local_scan() library */
+#endif
int
diff --git a/mail-mta/exim/files/exim-4.93-radius.patch b/mail-mta/exim/files/exim-4.93-radius.patch
new file mode 100644
index 000000000000..55c52bee561f
--- /dev/null
+++ b/mail-mta/exim/files/exim-4.93-radius.patch
@@ -0,0 +1,66 @@
+From 70b28b113e21d21a528876c3abe88ccb5f7cc77d Mon Sep 17 00:00:00 2001
+From: Fabian Groffen <grobian@gentoo.org>
+Date: Sat, 9 May 2020 11:35:12 +0200
+Subject: [PATCH] call_radius: fix compilation due to incorrect usage of
+ string_sprintf
+
+Since f3ebb786e451da973560f1c9d8cdb151d25108b5, string_sprintf cannot be
+used without arguments any more, so use US directly.
+
+While at it, also make newline usage consistent to not return a newline
+in errptr, when it is debug-printed, a newline is added.
+
+https://bugs.gentoo.org/720364
+
+Signed-off-by: Fabian Groffen <grobian@gentoo.org>
+---
+ src/src/auths/call_radius.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/src/auths/call_radius.c b/src/src/auths/call_radius.c
+index c3637436d..253fd75cd 100644
+--- a/src/src/auths/call_radius.c
++++ b/src/src/auths/call_radius.c
+@@ -115,16 +115,16 @@ if (rc_read_config(RADIUS_CONFIG_FILE) != 0)
+ *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE);
+
+ else if (rc_read_dictionary(rc_conf_str("dictionary")) != 0)
+- *errptr = string_sprintf("RADIUS: can't read dictionary");
++ *errptr = US("RADIUS: can't read dictionary");
+
+ else if (rc_avpair_add(&send, PW_USER_NAME, user, 0) == NULL)
+- *errptr = string_sprintf("RADIUS: add user name failed\n");
++ *errptr = US("RADIUS: add user name failed");
+
+ else if (rc_avpair_add(&send, PW_USER_PASSWORD, CS radius_args, 0) == NULL)
+- *errptr = string_sprintf("RADIUS: add password failed\n");
++ *errptr = US("RADIUS: add password failed");
+
+ else if (rc_avpair_add(&send, PW_SERVICE_TYPE, &service, 0) == NULL)
+- *errptr = string_sprintf("RADIUS: add service type failed\n");
++ *errptr = US("RADIUS: add service type failed");
+
+ #else /* RADIUS_LIB_RADIUSCLIENT unset => RADIUS_LIB_RADIUSCLIENT2 */
+
+@@ -132,17 +132,17 @@ if ((h = rc_read_config(RADIUS_CONFIG_FILE)) == NULL)
+ *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE);
+
+ else if (rc_read_dictionary(h, rc_conf_str(h, "dictionary")) != 0)
+- *errptr = string_sprintf("RADIUS: can't read dictionary");
++ *errptr = US("RADIUS: can't read dictionary");
+
+ else if (rc_avpair_add(h, &send, PW_USER_NAME, user, Ustrlen(user), 0) == NULL)
+- *errptr = string_sprintf("RADIUS: add user name failed\n");
++ *errptr = US("RADIUS: add user name failed");
+
+ else if (rc_avpair_add(h, &send, PW_USER_PASSWORD, CS radius_args,
+ Ustrlen(radius_args), 0) == NULL)
+- *errptr = string_sprintf("RADIUS: add password failed\n");
++ *errptr = US("RADIUS: add password failed");
+
+ else if (rc_avpair_add(h, &send, PW_SERVICE_TYPE, &service, 0, 0) == NULL)
+- *errptr = string_sprintf("RADIUS: add service type failed\n");
++ *errptr = US("RADIUS: add service type failed");
+
+ #endif /* RADIUS_LIB_RADIUSCLIENT */
+