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
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
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
--- /dev/null
+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 */
+