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/files/, mail-mta/exim/
Date: Wed, 29 Sep 2021 06:32:08
Message-Id: 1632897114.78d56e74ed18bae2388545dd5d0fead806452786.grobian@gentoo
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