1 |
commit: 78d56e74ed18bae2388545dd5d0fead806452786 |
2 |
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Sep 29 06:31:54 2021 +0000 |
4 |
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Sep 29 06:31:54 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=78d56e74 |
7 |
|
8 |
mail-mta/exim-4.95: version bump, change of srs default |
9 |
|
10 |
Package-Manager: Portage-3.0.20, Repoman-3.0.3 |
11 |
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> |
12 |
|
13 |
mail-mta/exim/Manifest | 2 + |
14 |
.../{exim-4.94.2-r5.ebuild => exim-4.95.ebuild} | 28 ++- |
15 |
.../exim/files/exim-4.95-localscan_dlopen.patch | 221 +++++++++++++++++++++ |
16 |
3 files changed, 236 insertions(+), 15 deletions(-) |
17 |
|
18 |
diff --git a/mail-mta/exim/Manifest b/mail-mta/exim/Manifest |
19 |
index 3a31f9eb19f..b87cdd7fa6a 100644 |
20 |
--- a/mail-mta/exim/Manifest |
21 |
+++ b/mail-mta/exim/Manifest |
22 |
@@ -1,3 +1,5 @@ |
23 |
DIST exim-4.94.2.tar.xz 1838076 BLAKE2B 684e115a7af3efdab15451f8e11f9b53455c9166d8c078216d7a95223d77569cec8a882ed99b9180acbd8a9e747a0bca03d56993d011de15dc35143a989ab046 SHA512 5334c236221ed4e03dbc33e6a79d939b06037fa2f4b71971607a360b67af5c85a89681ee13a5eeaf0184382c55a160cf2e89ed7afb2949f025a54f1e88f9e3fc |
24 |
+DIST exim-4.95.tar.xz 1865172 BLAKE2B 0dc8dbc394c1bf4c6075e6ae1c1609b3f41841b2bb4c210d7353e4ad28ab38f905b6c245539bfa772512e2a9baf2dcc855e31d6ccb14ab49077f8da4fe6f1d0b SHA512 93d09c20d99f27da5edbe3e6dc7d25aa4548faa2b67ca26f2cc0b4aeaf58398dd468e0263714fcf0df97531f05d16fcd3f1f0e9d0656ead7858a66b248a44a65 |
25 |
DIST exim-pdf-4.94.2.tar.xz 2092248 BLAKE2B 973ab4f117fdb58afa017bc41b4496fac1277e707a9926d67317c455b0bd617021c17cba6c8d793d8962aacef12c0790d5add7174017512b7b1ea070f8e8533d SHA512 3a661f69d81a992798d4b7e5b7def7cfffa297a7b3c02a6631be426cefff5a6e8783fa322a1bd105d01f7b06968d01e77963e6ab7be3157f63eb62eb6ff172b0 |
26 |
+DIST exim-pdf-4.95.tar.xz 2117384 BLAKE2B ac310ec7741110a067f2df135b6397a8219e48a1e8989c66118f6c62820467e6f7b1c391799ff9b7ddef7896e1340208c4bed21f126014fa94c24d338f681f94 SHA512 47f30f3c82fe2cb5b0836594b325da1d255c53d2514af90e720d4bf6c74cff43d4a6b1ab5fb7b148253e5330da74e8ebb80e29b3a08fbe1faed2f004476c9d6a |
27 |
DIST system_filter.exim.gz 3075 BLAKE2B d05e872b5cef377d29126cda03fc0a74c8777b2119b76ff43da6e8de808035eb9bfcb034a85d81824f135d484e864bfc0629fc1af2c228a7277d5ee7cf9cde79 SHA512 cb358d3ce2499a0bb5920d962a06f2af8486e55ec90c8c928bd8e3aefb279aa57f5f960d5adfcef68bd94110b405eaa144e9629cfe6014a529c79c544600bbf3 |
28 |
|
29 |
diff --git a/mail-mta/exim/exim-4.94.2-r5.ebuild b/mail-mta/exim/exim-4.95.ebuild |
30 |
similarity index 95% |
31 |
rename from mail-mta/exim/exim-4.94.2-r5.ebuild |
32 |
rename to mail-mta/exim/exim-4.95.ebuild |
33 |
index d664f4b1c8d..43c4cb4797f 100644 |
34 |
--- a/mail-mta/exim/exim-4.94.2-r5.ebuild |
35 |
+++ b/mail-mta/exim/exim-4.95.ebuild |
36 |
@@ -8,7 +8,7 @@ inherit db-use toolchain-funcs multilib pam systemd |
37 |
IUSE="arc berkdb +dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl |
38 |
dsn elibc_glibc exiscan-acl gdbm gnutls idn ipv6 ldap lmtp maildir mbx |
39 |
mysql nis pam perl pkcs11 postgres +prdr proxy radius redis sasl selinux |
40 |
-socks5 spf sqlite srs +srs-alt srs-native +ssl syslog tdb tcpd +tpda X" |
41 |
+socks5 spf sqlite srs srs-alt +srs-native +ssl syslog tdb tcpd +tpda X" |
42 |
REQUIRED_USE=" |
43 |
arc? ( dkim spf ) |
44 |
dane? ( ssl !gnutls ) |
45 |
@@ -124,7 +124,7 @@ src_prepare() { |
46 |
eapply "${FILESDIR}"/exim-4.93-as-needed-ldflags.patch # 352265, 391279 |
47 |
eapply -p0 "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591 |
48 |
eapply "${FILESDIR}"/exim-4.69-r1.27021.patch |
49 |
- eapply "${FILESDIR}"/exim-4.94-localscan_dlopen.patch |
50 |
+ eapply "${FILESDIR}"/exim-4.95-localscan_dlopen.patch |
51 |
|
52 |
# for this reason we have a := dep on opendmarc, they changed their |
53 |
# API in a minor release |
54 |
@@ -488,17 +488,16 @@ src_configure() { |
55 |
# what USE=srs used to be. Eventually we want to rid ourselves |
56 |
# of this external implementation. |
57 |
if use srs-alt; then |
58 |
- # historical default, from 4.95 this becomes |
59 |
- # EXPERIMENTAL_SRS_ALT |
60 |
+ # historical default, until 4.95 |
61 |
cat >> Makefile <<- EOC |
62 |
- EXPERIMENTAL_SRS=yes |
63 |
+ EXPERIMENTAL_SRS_ALT=yes |
64 |
EXTRALIBS_EXIM += -lsrs_alt |
65 |
EOC |
66 |
fi |
67 |
if use srs-native; then |
68 |
- # this one becomes SUPPORT_SRS in 4.95 |
69 |
+ # this one is the default/supported variant since 4.95 |
70 |
cat >> Makefile <<- EOC |
71 |
- EXPERIMENTAL_SRS_NATIVE=yes |
72 |
+ SUPPORT_SRS=yes |
73 |
EOC |
74 |
fi |
75 |
fi |
76 |
@@ -646,14 +645,13 @@ pkg_postinst() { |
77 |
einfo "documentation at the bottom of this prerelease message:" |
78 |
einfo " http://article.gmane.org/gmane.mail.exim.devel/3579" |
79 |
fi |
80 |
- if use srs ; then |
81 |
- einfo "SRS support is experimental in this release of Exim" |
82 |
- if use srs-alt; then |
83 |
- elog "You are using libsrs_alt to implement SRS support." |
84 |
- elog "In future release of Exim, the native SRS implementation" |
85 |
- elog "(USE=srs-native) will become the default. Please prepare" |
86 |
- elog "your package.use or switch to USE=srs-native now." |
87 |
- fi |
88 |
+ if use srs-alt; then |
89 |
+ einfo "SRS support using libsrs_alt is experimental in this" |
90 |
+ einfo "release of Exim" |
91 |
+ elog "You are using libsrs_alt to implement SRS support." |
92 |
+ elog "The native SRS implementation (USE=srs-native) is the" |
93 |
+ elog "default implementation, which means libsrs_alt may go" |
94 |
+ elog "away in a future release." |
95 |
fi |
96 |
use dsn && einfo "extra information in fail DSN message is experimental" |
97 |
einfo |
98 |
|
99 |
diff --git a/mail-mta/exim/files/exim-4.95-localscan_dlopen.patch b/mail-mta/exim/files/exim-4.95-localscan_dlopen.patch |
100 |
new file mode 100644 |
101 |
index 00000000000..320cc9936da |
102 |
--- /dev/null |
103 |
+++ b/mail-mta/exim/files/exim-4.95-localscan_dlopen.patch |
104 |
@@ -0,0 +1,221 @@ |
105 |
+Only in exim-4.95: dlopen.patch |
106 |
+diff -aur exim-4.95.orig/src/config.h.defaults exim-4.95/src/config.h.defaults |
107 |
+--- exim-4.95.orig/src/config.h.defaults 2021-09-28 10:24:46.000000000 +0200 |
108 |
++++ exim-4.95/src/config.h.defaults 2021-09-29 08:20:03.677883649 +0200 |
109 |
+@@ -35,6 +35,8 @@ |
110 |
+ |
111 |
+ #define AUTH_VARS 4 |
112 |
+ |
113 |
++#define DLOPEN_LOCAL_SCAN |
114 |
++ |
115 |
+ #define BIN_DIRECTORY |
116 |
+ |
117 |
+ #define CONFIGURE_FILE |
118 |
+Only in exim-4.95/src: config.h.defaults.orig |
119 |
+diff -aur exim-4.95.orig/src/EDITME exim-4.95/src/EDITME |
120 |
+--- exim-4.95.orig/src/EDITME 2021-09-28 10:24:46.000000000 +0200 |
121 |
++++ exim-4.95/src/EDITME 2021-09-29 08:20:03.678883649 +0200 |
122 |
+@@ -883,6 +883,24 @@ |
123 |
+ |
124 |
+ |
125 |
+ #------------------------------------------------------------------------------ |
126 |
++# On systems which support dynamic loading of shared libraries, Exim can |
127 |
++# load a local_scan function specified in its config file instead of having |
128 |
++# to be recompiled with the desired local_scan function. For a full |
129 |
++# description of the API to this function, see the Exim specification. |
130 |
++ |
131 |
++#DLOPEN_LOCAL_SCAN=yes |
132 |
++ |
133 |
++# If you set DLOPEN_LOCAL_SCAN, then you need to include -rdynamic in the |
134 |
++# linker flags. Without it, the loaded .so won't be able to access any |
135 |
++# functions from exim. |
136 |
++ |
137 |
++LFLAGS = -rdynamic |
138 |
++ifeq ($(OSTYPE),Linux) |
139 |
++LFLAGS += -ldl |
140 |
++endif |
141 |
++ |
142 |
++ |
143 |
++#------------------------------------------------------------------------------ |
144 |
+ # The default distribution of Exim contains only the plain text form of the |
145 |
+ # documentation. Other forms are available separately. If you want to install |
146 |
+ # the documentation in "info" format, first fetch the Texinfo documentation |
147 |
+Only in exim-4.95/src: EDITME.orig |
148 |
+diff -aur exim-4.95.orig/src/globals.c exim-4.95/src/globals.c |
149 |
+--- exim-4.95.orig/src/globals.c 2021-09-28 10:24:46.000000000 +0200 |
150 |
++++ exim-4.95/src/globals.c 2021-09-29 08:20:03.679883649 +0200 |
151 |
+@@ -42,6 +42,10 @@ |
152 |
+ |
153 |
+ uschar *no_aliases = NULL; |
154 |
+ |
155 |
++#ifdef DLOPEN_LOCAL_SCAN |
156 |
++uschar *local_scan_path = NULL; |
157 |
++#endif |
158 |
++ |
159 |
+ |
160 |
+ /* For comments on these variables, see globals.h. I'm too idle to |
161 |
+ duplicate them here... */ |
162 |
+Only in exim-4.95/src: globals.c.orig |
163 |
+diff -aur exim-4.95.orig/src/globals.h exim-4.95/src/globals.h |
164 |
+--- exim-4.95.orig/src/globals.h 2021-09-28 10:24:46.000000000 +0200 |
165 |
++++ exim-4.95/src/globals.h 2021-09-29 08:20:03.680883648 +0200 |
166 |
+@@ -170,6 +170,9 @@ |
167 |
+ extern int (*receive_ferror)(void); |
168 |
+ extern BOOL (*receive_smtp_buffered)(void); |
169 |
+ |
170 |
++#ifdef DLOPEN_LOCAL_SCAN |
171 |
++extern uschar *local_scan_path; /* Path to local_scan() library */ |
172 |
++#endif |
173 |
+ |
174 |
+ /* For clearing, saving, restoring address expansion variables. We have to have |
175 |
+ the size of this vector set explicitly, because it is referenced from more than |
176 |
+Only in exim-4.95/src: globals.h.orig |
177 |
+diff -aur exim-4.95.orig/src/local_scan.c exim-4.95/src/local_scan.c |
178 |
+--- exim-4.95.orig/src/local_scan.c 2021-09-28 10:24:46.000000000 +0200 |
179 |
++++ exim-4.95/src/local_scan.c 2021-09-29 08:23:33.756785663 +0200 |
180 |
+@@ -54,10 +54,130 @@ |
181 |
+ is used in the rejection message. |
182 |
+ */ |
183 |
+ |
184 |
++#ifdef DLOPEN_LOCAL_SCAN |
185 |
++# include <stdlib.h> |
186 |
++# include <dlfcn.h> |
187 |
++static int (*local_scan_fn)(int fd, uschar **return_text) = NULL; |
188 |
++static int load_local_scan_library(void); |
189 |
++extern uschar *local_scan_path; /* Path to local_scan() library */ |
190 |
++#endif |
191 |
++ |
192 |
+ int |
193 |
+ local_scan(int fd, uschar **return_text) |
194 |
+ { |
195 |
+-return LOCAL_SCAN_ACCEPT; |
196 |
++#ifdef DLOPEN_LOCAL_SCAN |
197 |
++/* local_scan_path is defined AND not the empty string */ |
198 |
++if (local_scan_path && *local_scan_path) |
199 |
++ { |
200 |
++ if (!local_scan_fn) |
201 |
++ { |
202 |
++ if (!load_local_scan_library()) |
203 |
++ { |
204 |
++ char *base_msg , *error_msg , *final_msg ; |
205 |
++ int final_length = -1 ; |
206 |
++ |
207 |
++ base_msg=US"Local configuration error - local_scan() library failure\n"; |
208 |
++ error_msg = dlerror() ; |
209 |
++ |
210 |
++ final_length = strlen(base_msg) + strlen(error_msg) + 1 ; |
211 |
++ final_msg = (char*)malloc( final_length*sizeof(char) ) ; |
212 |
++ *final_msg = '\0' ; |
213 |
++ |
214 |
++ strcat( final_msg , base_msg ) ; |
215 |
++ strcat( final_msg , error_msg ) ; |
216 |
++ |
217 |
++ *return_text = final_msg ; |
218 |
++ return LOCAL_SCAN_TEMPREJECT; |
219 |
++ } |
220 |
++ } |
221 |
++ return local_scan_fn(fd, return_text); |
222 |
++ } |
223 |
++else |
224 |
++#endif |
225 |
++ return LOCAL_SCAN_ACCEPT; |
226 |
++} |
227 |
++ |
228 |
++#ifdef DLOPEN_LOCAL_SCAN |
229 |
++ |
230 |
++static int load_local_scan_library(void) |
231 |
++{ |
232 |
++/* No point in keeping local_scan_lib since we'll never dlclose() anyway */ |
233 |
++void *local_scan_lib = NULL; |
234 |
++int (*local_scan_version_fn)(void); |
235 |
++int vers_maj; |
236 |
++int vers_min; |
237 |
++ |
238 |
++local_scan_lib = dlopen(local_scan_path, RTLD_NOW); |
239 |
++if (!local_scan_lib) |
240 |
++ { |
241 |
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library open failed - " |
242 |
++ "message temporarily rejected"); |
243 |
++ return FALSE; |
244 |
++ } |
245 |
++ |
246 |
++local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version_major"); |
247 |
++if (!local_scan_version_fn) |
248 |
++ { |
249 |
++ dlclose(local_scan_lib); |
250 |
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain " |
251 |
++ "local_scan_version_major() function - message temporarily rejected"); |
252 |
++ return FALSE; |
253 |
++ } |
254 |
++ |
255 |
++/* The major number is increased when the ABI is changed in a non |
256 |
++ backward compatible way. */ |
257 |
++vers_maj = local_scan_version_fn(); |
258 |
++ |
259 |
++local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version_minor"); |
260 |
++if (!local_scan_version_fn) |
261 |
++ { |
262 |
++ dlclose(local_scan_lib); |
263 |
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain " |
264 |
++ "local_scan_version_minor() function - message temporarily rejected"); |
265 |
++ return FALSE; |
266 |
++ } |
267 |
++ |
268 |
++/* The minor number is increased each time a new feature is added (in a |
269 |
++ way that doesn't break backward compatibility) -- Marc */ |
270 |
++vers_min = local_scan_version_fn(); |
271 |
++ |
272 |
++ |
273 |
++if (vers_maj != LOCAL_SCAN_ABI_VERSION_MAJOR) |
274 |
++ { |
275 |
++ dlclose(local_scan_lib); |
276 |
++ local_scan_lib = NULL; |
277 |
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has an incompatible major" |
278 |
++ "version number, you need to recompile your module for this version" |
279 |
++ "of exim (The module was compiled for version %d.%d and this exim provides" |
280 |
++ "ABI version %d.%d)", vers_maj, vers_min, LOCAL_SCAN_ABI_VERSION_MAJOR, |
281 |
++ LOCAL_SCAN_ABI_VERSION_MINOR); |
282 |
++ return FALSE; |
283 |
++ } |
284 |
++else if (vers_min > LOCAL_SCAN_ABI_VERSION_MINOR) |
285 |
++ { |
286 |
++ dlclose(local_scan_lib); |
287 |
++ local_scan_lib = NULL; |
288 |
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has an incompatible minor" |
289 |
++ "version number, you need to recompile your module for this version" |
290 |
++ "of exim (The module was compiled for version %d.%d and this exim provides" |
291 |
++ "ABI version %d.%d)", vers_maj, vers_min, LOCAL_SCAN_ABI_VERSION_MAJOR, |
292 |
++ LOCAL_SCAN_ABI_VERSION_MINOR); |
293 |
++ return FALSE; |
294 |
++ } |
295 |
++ |
296 |
++local_scan_fn = dlsym(local_scan_lib, "local_scan"); |
297 |
++if (!local_scan_fn) |
298 |
++ { |
299 |
++ dlclose(local_scan_lib); |
300 |
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain " |
301 |
++ "local_scan() function - message temporarily rejected"); |
302 |
++ return FALSE; |
303 |
++ } |
304 |
++ |
305 |
++return TRUE; |
306 |
+ } |
307 |
+ |
308 |
++#endif /* DLOPEN_LOCAL_SCAN */ |
309 |
++ |
310 |
++ |
311 |
+ /* End of local_scan.c */ |
312 |
+diff -aur exim-4.95.orig/src/readconf.c exim-4.95/src/readconf.c |
313 |
+--- exim-4.95.orig/src/readconf.c 2021-09-28 10:24:46.000000000 +0200 |
314 |
++++ exim-4.95/src/readconf.c 2021-09-29 08:20:03.682883647 +0200 |
315 |
+@@ -215,6 +215,9 @@ |
316 |
+ { "local_from_prefix", opt_stringptr, {&local_from_prefix} }, |
317 |
+ { "local_from_suffix", opt_stringptr, {&local_from_suffix} }, |
318 |
+ { "local_interfaces", opt_stringptr, {&local_interfaces} }, |
319 |
++#ifdef DLOPEN_LOCAL_SCAN |
320 |
++ { "local_scan_path", opt_stringptr, {&local_scan_path} }, |
321 |
++#endif |
322 |
+ #ifdef HAVE_LOCAL_SCAN |
323 |
+ { "local_scan_timeout", opt_time, {&local_scan_timeout} }, |
324 |
+ #endif |
325 |
+Only in exim-4.95/src: readconf.c.orig |