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 |
+ |