Gentoo Archives: gentoo-commits

From: Fabian Groffen <grobian@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: mail-mta/exim/, mail-mta/exim/files/
Date: Sat, 09 May 2020 09:57:53
Message-Id: 1589018258.631b045c07527ab0ca4d4d585c56faa3855187fe.grobian@gentoo
1 commit: 631b045c07527ab0ca4d4d585c56faa3855187fe
2 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
3 AuthorDate: Sat May 9 09:57:23 2020 +0000
4 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
5 CommitDate: Sat May 9 09:57:38 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=631b045c
7
8 mail-mta/exim-4.93.0.4: fix compilation with certain USE-combinations
9
10 - fix localscan compilation
11 - fix nis compilation
12 - refine DB includes to lookup only
13 - fix radius compilation
14
15 Closes: https://bugs.gentoo.org/720364
16 Closes: https://bugs.gentoo.org/720362
17 Package-Manager: Portage-2.3.89, Repoman-2.3.20
18 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
19
20 mail-mta/exim/exim-4.93.0.4.ebuild | 8 ++-
21 .../exim/files/exim-4.93-localscan_dlopen.patch | 4 +-
22 mail-mta/exim/files/exim-4.93-radius.patch | 66 ++++++++++++++++++++++
23 3 files changed, 74 insertions(+), 4 deletions(-)
24
25 diff --git a/mail-mta/exim/exim-4.93.0.4.ebuild b/mail-mta/exim/exim-4.93.0.4.ebuild
26 index a7ac64a9ffb..6e787039465 100644
27 --- a/mail-mta/exim/exim-4.93.0.4.ebuild
28 +++ b/mail-mta/exim/exim-4.93.0.4.ebuild
29 @@ -114,6 +114,7 @@ src_prepare() {
30 eapply -p0 "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591
31 eapply "${FILESDIR}"/exim-4.69-r1.27021.patch
32 eapply "${FILESDIR}"/exim-4.93-localscan_dlopen.patch
33 + eapply -p2 "${FILESDIR}"/exim-4.93-radius.patch # 720364
34
35 if use maildir ; then
36 eapply "${FILESDIR}"/exim-4.20-maildir.patch
37 @@ -219,11 +220,11 @@ src_configure() {
38 local DB_VERS="5.3 5.1 4.8 4.7 4.6 4.5 4.4 4.3 4.2 3.2"
39 cat >> Makefile <<- EOC
40 USE_DB=yes
41 - CFLAGS+=-I$(db_includedir ${DB_VERS})
42 - DBMLIB=-l$(db_libname ${DB_VERS})
43 LOOKUP_CDB=yes
44 LOOKUP_PASSWD=yes
45 LOOKUP_DSEARCH=yes
46 + LOOKUP_INCLUDE += -I$(db_includedir ${DB_VERS})
47 + DBMLIB = -l$(db_libname ${DB_VERS})
48 EOC
49
50 if ! use dnsdb; then
51 @@ -255,7 +256,8 @@ src_configure() {
52 EOC
53 if use elibc_glibc ; then
54 cat >> Makefile <<- EOC
55 - CFLAGS += -I"${EPREFIX}"/usr/include/tirpc
56 + LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/tirpc
57 + LOOKUP_LIBS += -lnsl
58 EOC
59 fi
60 fi
61
62 diff --git a/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch b/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch
63 index d2a5e63128a..0d016dbeb26 100644
64 --- a/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch
65 +++ b/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch
66 @@ -72,7 +72,7 @@ Only in exim-4.92/src: globals.h.orig
67 diff -ur exim-4.92.orig/src/local_scan.c exim-4.92/src/local_scan.c
68 --- exim-4.92.orig/src/local_scan.c 2019-01-30 14:59:52.000000000 +0100
69 +++ exim-4.92/src/local_scan.c 2019-02-16 18:29:56.832732592 +0100
70 -@@ -5,61 +5,131 @@
71 +@@ -5,61 +5,133 @@
72 /* Copyright (c) University of Cambridge 1995 - 2009 */
73 /* See the file NOTICE for conditions of use and distribution. */
74
75 @@ -126,9 +126,11 @@ diff -ur exim-4.92.orig/src/local_scan.c exim-4.92/src/local_scan.c
76 - is used in the rejection message.
77 -*/
78 +#ifdef DLOPEN_LOCAL_SCAN
79 ++#include <stdlib.h>
80 +#include <dlfcn.h>
81 +static int (*local_scan_fn)(int fd, uschar **return_text) = NULL;
82 +static int load_local_scan_library(void);
83 ++extern uschar *local_scan_path; /* Path to local_scan() library */
84 +#endif
85
86 int
87
88 diff --git a/mail-mta/exim/files/exim-4.93-radius.patch b/mail-mta/exim/files/exim-4.93-radius.patch
89 new file mode 100644
90 index 00000000000..55c52bee561
91 --- /dev/null
92 +++ b/mail-mta/exim/files/exim-4.93-radius.patch
93 @@ -0,0 +1,66 @@
94 +From 70b28b113e21d21a528876c3abe88ccb5f7cc77d Mon Sep 17 00:00:00 2001
95 +From: Fabian Groffen <grobian@g.o>
96 +Date: Sat, 9 May 2020 11:35:12 +0200
97 +Subject: [PATCH] call_radius: fix compilation due to incorrect usage of
98 + string_sprintf
99 +
100 +Since f3ebb786e451da973560f1c9d8cdb151d25108b5, string_sprintf cannot be
101 +used without arguments any more, so use US directly.
102 +
103 +While at it, also make newline usage consistent to not return a newline
104 +in errptr, when it is debug-printed, a newline is added.
105 +
106 +https://bugs.gentoo.org/720364
107 +
108 +Signed-off-by: Fabian Groffen <grobian@g.o>
109 +---
110 + src/src/auths/call_radius.c | 16 ++++++++--------
111 + 1 file changed, 8 insertions(+), 8 deletions(-)
112 +
113 +diff --git a/src/src/auths/call_radius.c b/src/src/auths/call_radius.c
114 +index c3637436d..253fd75cd 100644
115 +--- a/src/src/auths/call_radius.c
116 ++++ b/src/src/auths/call_radius.c
117 +@@ -115,16 +115,16 @@ if (rc_read_config(RADIUS_CONFIG_FILE) != 0)
118 + *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE);
119 +
120 + else if (rc_read_dictionary(rc_conf_str("dictionary")) != 0)
121 +- *errptr = string_sprintf("RADIUS: can't read dictionary");
122 ++ *errptr = US("RADIUS: can't read dictionary");
123 +
124 + else if (rc_avpair_add(&send, PW_USER_NAME, user, 0) == NULL)
125 +- *errptr = string_sprintf("RADIUS: add user name failed\n");
126 ++ *errptr = US("RADIUS: add user name failed");
127 +
128 + else if (rc_avpair_add(&send, PW_USER_PASSWORD, CS radius_args, 0) == NULL)
129 +- *errptr = string_sprintf("RADIUS: add password failed\n");
130 ++ *errptr = US("RADIUS: add password failed");
131 +
132 + else if (rc_avpair_add(&send, PW_SERVICE_TYPE, &service, 0) == NULL)
133 +- *errptr = string_sprintf("RADIUS: add service type failed\n");
134 ++ *errptr = US("RADIUS: add service type failed");
135 +
136 + #else /* RADIUS_LIB_RADIUSCLIENT unset => RADIUS_LIB_RADIUSCLIENT2 */
137 +
138 +@@ -132,17 +132,17 @@ if ((h = rc_read_config(RADIUS_CONFIG_FILE)) == NULL)
139 + *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE);
140 +
141 + else if (rc_read_dictionary(h, rc_conf_str(h, "dictionary")) != 0)
142 +- *errptr = string_sprintf("RADIUS: can't read dictionary");
143 ++ *errptr = US("RADIUS: can't read dictionary");
144 +
145 + else if (rc_avpair_add(h, &send, PW_USER_NAME, user, Ustrlen(user), 0) == NULL)
146 +- *errptr = string_sprintf("RADIUS: add user name failed\n");
147 ++ *errptr = US("RADIUS: add user name failed");
148 +
149 + else if (rc_avpair_add(h, &send, PW_USER_PASSWORD, CS radius_args,
150 + Ustrlen(radius_args), 0) == NULL)
151 +- *errptr = string_sprintf("RADIUS: add password failed\n");
152 ++ *errptr = US("RADIUS: add password failed");
153 +
154 + else if (rc_avpair_add(h, &send, PW_SERVICE_TYPE, &service, 0, 0) == NULL)
155 +- *errptr = string_sprintf("RADIUS: add service type failed\n");
156 ++ *errptr = US("RADIUS: add service type failed");
157 +
158 + #endif /* RADIUS_LIB_RADIUSCLIENT */
159 +