diff options
author | Fabian Groffen <grobian@gentoo.org> | 2020-05-09 11:57:23 +0200 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2020-05-09 11:57:38 +0200 |
commit | 631b045c07527ab0ca4d4d585c56faa3855187fe (patch) | |
tree | 7b3b1351d4908f5fedea864672bc12387a91db1f /mail-mta | |
parent | net-misc/gerbera: 1.4: Make libupnp dep 1.8 (diff) | |
download | gentoo-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.ebuild | 8 | ||||
-rw-r--r-- | mail-mta/exim/files/exim-4.93-localscan_dlopen.patch | 4 | ||||
-rw-r--r-- | mail-mta/exim/files/exim-4.93-radius.patch | 66 |
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 */ + |