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, 05 May 2021 18:43:41
Message-Id: 1620240206.51ce2b02fc364a4a963c913edfc47084c3daa8ad.grobian@gentoo
1 commit: 51ce2b02fc364a4a963c913edfc47084c3daa8ad
2 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
3 AuthorDate: Wed May 5 18:43:16 2021 +0000
4 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
5 CommitDate: Wed May 5 18:43:26 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=51ce2b02
7
8 mail-mta/exim: cleanup
9
10 Bug: https://bugs.gentoo.org/786945
11 Package-Manager: Portage-3.0.18, Repoman-3.0.2
12 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
13
14 mail-mta/exim/Manifest | 4 -
15 mail-mta/exim/exim-4.93.0.4-r2.ebuild | 592 --------------------
16 mail-mta/exim/exim-4.94-r2.ebuild | 593 --------------------
17 mail-mta/exim/exim-4.94-r3.ebuild | 617 ---------------------
18 mail-mta/exim/files/exim-4.20-maildir.patch | 14 -
19 mail-mta/exim/files/exim-4.93-CVE-2020-12783.patch | 83 ---
20 mail-mta/exim/files/exim-4.93-fno-common.patch | 16 -
21 .../exim/files/exim-4.93-localscan_dlopen.patch | 269 ---------
22 mail-mta/exim/files/exim-4.93-radius.patch | 66 ---
23 .../exim/files/exim-4.94-taint-pam-expansion.patch | 35 --
24 10 files changed, 2289 deletions(-)
25
26 diff --git a/mail-mta/exim/Manifest b/mail-mta/exim/Manifest
27 index 65f5493bddf..3a31f9eb19f 100644
28 --- a/mail-mta/exim/Manifest
29 +++ b/mail-mta/exim/Manifest
30 @@ -1,7 +1,3 @@
31 -DIST exim-4.93.0.4.tar.xz 1804696 BLAKE2B 721336101104d9c71b3bb6f432e382c28ad17d80cdb50d04213989e65a719d906caf8eb95639bfaf7a1bfdd62c7000d9df14484953446ecfca901fd7c708514e SHA512 84951849b69399d6f187d2801760dc0cb9e61c88c7c88aaca4e07e48120199a6be94b2236d058ffeacb8d611dd84056b610d480353c301a3ad5799768dd39d96
32 DIST exim-4.94.2.tar.xz 1838076 BLAKE2B 684e115a7af3efdab15451f8e11f9b53455c9166d8c078216d7a95223d77569cec8a882ed99b9180acbd8a9e747a0bca03d56993d011de15dc35143a989ab046 SHA512 5334c236221ed4e03dbc33e6a79d939b06037fa2f4b71971607a360b67af5c85a89681ee13a5eeaf0184382c55a160cf2e89ed7afb2949f025a54f1e88f9e3fc
33 -DIST exim-4.94.tar.xz 1828824 BLAKE2B 3836ae6427830b16fa366f5ca35431144eb48b922b699da20f3a5e423c9c8266def981afa008e50a879ac3583f3491d8f9c449e67c66053dc45e8612e38e836f SHA512 3bf95ade30902327403e7308089a3e423761da5b0745397dace7c7fd15ba3838d93e0ee418f1fed57606f79e57b793c7c7407e5c0d526146f0036126d5d95316
34 -DIST exim-pdf-4.93.0.4.tar.xz 2069744 BLAKE2B 28730134293d87b16d672df66119ff97aaf2d796cf28842bb5bf6831a0be6a186a5cce503200b9fc985aaa14386053ca83c259625949634c5a28937b285247ca SHA512 929b4198a3e8764a64478e7ff5a9c7398ad1990114206b68494b1f1f563c23405c7b440e2f21a9f777e9e3cd3a3398d6faea3b882407f731ef3a767c27fd9361
35 DIST exim-pdf-4.94.2.tar.xz 2092248 BLAKE2B 973ab4f117fdb58afa017bc41b4496fac1277e707a9926d67317c455b0bd617021c17cba6c8d793d8962aacef12c0790d5add7174017512b7b1ea070f8e8533d SHA512 3a661f69d81a992798d4b7e5b7def7cfffa297a7b3c02a6631be426cefff5a6e8783fa322a1bd105d01f7b06968d01e77963e6ab7be3157f63eb62eb6ff172b0
36 -DIST exim-pdf-4.94.tar.xz 2089804 BLAKE2B 08f4631e903f1344d76da8dc1dcfd122cd5963bb2efbd54a486e7cf95df9e7ef06aa31dead1243a007656f05c18993f3fda18ba16ba1fde9377ac33324d5fe99 SHA512 d56666b619ba850dfa68de90afc7435bae741d72d18b5837762781ba18032878323ad40978e0113d4b88a01fd7a1d07213e6a74c38d699371d62796b6c3c35cc
37 DIST system_filter.exim.gz 3075 BLAKE2B d05e872b5cef377d29126cda03fc0a74c8777b2119b76ff43da6e8de808035eb9bfcb034a85d81824f135d484e864bfc0629fc1af2c228a7277d5ee7cf9cde79 SHA512 cb358d3ce2499a0bb5920d962a06f2af8486e55ec90c8c928bd8e3aefb279aa57f5f960d5adfcef68bd94110b405eaa144e9629cfe6014a529c79c544600bbf3
38
39 diff --git a/mail-mta/exim/exim-4.93.0.4-r2.ebuild b/mail-mta/exim/exim-4.93.0.4-r2.ebuild
40 deleted file mode 100644
41 index 27021c7a2f0..00000000000
42 --- a/mail-mta/exim/exim-4.93.0.4-r2.ebuild
43 +++ /dev/null
44 @@ -1,592 +0,0 @@
45 -# Copyright 1999-2021 Gentoo Authors
46 -# Distributed under the terms of the GNU General Public License v2
47 -
48 -EAPI="7"
49 -
50 -inherit db-use toolchain-funcs multilib pam systemd
51 -
52 -IUSE="arc +dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl dsn elibc_glibc exiscan-acl gnutls idn ipv6 ldap lmtp maildir mbx mysql nis pam perl pkcs11 postgres +prdr proxy radius redis sasl selinux spf sqlite srs +ssl syslog tcpd +tpda X"
53 -REQUIRED_USE="
54 - arc? ( dkim spf )
55 - dane? ( ssl !gnutls )
56 - dmarc? ( dkim spf )
57 - dkim? ( ssl !gnutls )
58 - gnutls? ( ssl )
59 - pkcs11? ( ssl )
60 - spf? ( exiscan-acl )
61 - srs? ( exiscan-acl )
62 -"
63 -# NOTE on USE="gnutls dane", gnutls[dane] is masked in base, unmasked
64 -# for x86 and amd64 only, due to this, repoman won't allow depending on
65 -# gnutls[dane] for all else. Because we cannot express USE=dane when
66 -# USE=gnutls is in effect only in package.use.mask, the only option we
67 -# have left is to a) ignore the dependency (but that results in bug
68 -# #661164) or b) mask the usage of USE=dane with USE=gnutls. Both are
69 -# incorrect, but b) is the only "correct" view from repoman.
70 -
71 -SDIR=$([[ ${PV} == *_rc* ]] && echo /test
72 - [[ ${PV} == *.*.*.* ]] && echo /fixes)
73 -COMM_URI="https://downloads.exim.org/exim4${SDIR}"
74 -
75 -DESCRIPTION="A highly configurable, drop-in replacement for sendmail"
76 -SRC_URI="${COMM_URI}/${P//rc/RC}.tar.xz
77 - mirror://gentoo/system_filter.exim.gz
78 - doc? ( ${COMM_URI}/${PN}-pdf-${PV//rc/RC}.tar.xz )"
79 -HOMEPAGE="https://www.exim.org/"
80 -
81 -SLOT="0"
82 -LICENSE="GPL-2"
83 -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~x86-solaris"
84 -
85 -COMMON_DEPEND=">=sys-apps/sed-4.0.5
86 - ( >=sys-libs/db-3.2:= <sys-libs/db-6:= )
87 - dev-libs/libpcre
88 - idn? ( net-dns/libidn:= net-dns/libidn2:= )
89 - perl? ( dev-lang/perl:= )
90 - pam? ( sys-libs/pam )
91 - tcpd? ( sys-apps/tcp-wrappers )
92 - ssl? (
93 - gnutls? (
94 - net-libs/gnutls:0=[pkcs11?]
95 - dev-libs/libtasn1
96 - )
97 - !gnutls? (
98 - dev-libs/openssl:0=
99 - )
100 - )
101 - ldap? ( >=net-nds/openldap-2.0.7 )
102 - nis? (
103 - elibc_glibc? (
104 - net-libs/libtirpc
105 - >=net-libs/libnsl-1:=
106 - )
107 - )
108 - mysql? ( dev-db/mysql-connector-c:= )
109 - postgres? ( dev-db/postgresql:= )
110 - sasl? ( >=dev-libs/cyrus-sasl-2.1.26-r2 )
111 - redis? ( dev-libs/hiredis )
112 - spf? ( >=mail-filter/libspf2-1.2.5-r1 )
113 - dmarc? ( mail-filter/opendmarc )
114 - srs? ( mail-filter/libsrs_alt )
115 - X? (
116 - x11-libs/libX11
117 - x11-libs/libXmu
118 - x11-libs/libXt
119 - x11-libs/libXaw
120 - )
121 - sqlite? ( dev-db/sqlite )
122 - radius? ( net-dialup/freeradius-client )
123 - virtual/libiconv
124 - elibc_glibc? ( net-libs/libnsl )
125 - "
126 - # added X check for #57206
127 -BDEPEND="virtual/pkgconfig"
128 -DEPEND="${COMMON_DEPEND}"
129 -RDEPEND="${COMMON_DEPEND}
130 - !mail-mta/courier
131 - !mail-mta/esmtp
132 - !mail-mta/mini-qmail
133 - !<mail-mta/msmtp-1.4.19-r1
134 - !>=mail-mta/msmtp-1.4.19-r1[mta]
135 - !mail-mta/netqmail
136 - !mail-mta/nullmailer
137 - !mail-mta/postfix
138 - !mail-mta/qmail-ldap
139 - !mail-mta/sendmail
140 - !mail-mta/opensmtpd
141 - !<mail-mta/ssmtp-2.64-r2
142 - !>=mail-mta/ssmtp-2.64-r2[mta]
143 - !net-mail/mailwrapper
144 - >=net-mail/mailbase-0.00-r5
145 - virtual/logger
146 - dcc? ( mail-filter/dcc )
147 - selinux? ( sec-policy/selinux-exim )
148 - "
149 -
150 -S=${WORKDIR}/${P//rc/RC}
151 -
152 -src_prepare() {
153 - # Legacy patches which need a respin for -p1
154 - eapply -p0 "${FILESDIR}"/exim-4.14-tail.patch
155 - eapply -p0 "${FILESDIR}"/exim-4.74-radius-db-ENV-clash.patch # 287426
156 - eapply "${FILESDIR}"/exim-4.93-as-needed-ldflags.patch # 352265, 391279
157 - eapply -p0 "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591
158 - eapply "${FILESDIR}"/exim-4.69-r1.27021.patch
159 - eapply "${FILESDIR}"/exim-4.93-localscan_dlopen.patch
160 - eapply -p2 "${FILESDIR}"/exim-4.93-radius.patch # 720364
161 - eapply "${FILESDIR}"/exim-4.93-CVE-2020-12783.patch # 722484
162 - eapply "${FILESDIR}"/exim-4.93-fno-common.patch # 723430
163 -
164 - if use maildir ; then
165 - eapply "${FILESDIR}"/exim-4.20-maildir.patch
166 - else
167 - eapply -p0 "${FILESDIR}"/exim-4.80-spool-mail-group.patch # 438606
168 - fi
169 -
170 - eapply_user
171 -
172 - # user Exim believes it should be
173 - MAILUSER=mail
174 - MAILGROUP=mail
175 - if use prefix && [[ ${EUID} != 0 ]] ; then
176 - MAILUSER=$(id -un)
177 - MAILGROUP=$(id -gn)
178 - fi
179 -}
180 -
181 -src_configure() {
182 - # general config and paths
183 -
184 - local aliases="${EPREFIX}/etc/mail/aliases"
185 - sed -i \
186 - -e "/SYSTEM_ALIASES_FILE/s'SYSTEM_ALIASES_FILE'${aliases}'" \
187 - src/configure.default || die
188 -
189 - sed -i -e 's/^buildname=.*/buildname=exim-gentoo/' Makefile || die
190 -
191 - if use elibc_musl; then
192 - sed -i -e 's/^LIBS = -lnsl/LIBS =/g' OS/Makefile-Linux || die
193 - fi
194 -
195 - local conffile="${EPREFIX}/etc/exim/exim.conf"
196 - sed -e "48i\CFLAGS=${CFLAGS}" \
197 - -e "s:BIN_DIRECTORY=/usr/exim/bin:BIN_DIRECTORY=${EPREFIX}/usr/sbin:" \
198 - -e "s;EXIM_USER=;EXIM_USER=ref:${MAILUSER};" \
199 - -e "s:CONFIGURE_FILE=.*$:CONFIGURE_FILE=${conffile}:" \
200 - -e "s:ZCAT_COMMAND=.*$:ZCAT_COMMAND=${EPREFIX}/bin/zcat:" \
201 - -e "s:COMPRESS_COMMAND=.*$:COMPRESS_COMMAND=${EPREFIX}/bin/gzip:" \
202 - src/EDITME > Local/Makefile || die
203 -
204 - # work on Local/Makefile from now on
205 - cd Local
206 -
207 - cat >> Makefile <<- EOC
208 - INFO_DIRECTORY=${EPREFIX}/usr/share/info
209 - PID_FILE_PATH=${EPREFIX}/run/exim.pid
210 - SPOOL_DIRECTORY=${EPREFIX}/var/spool/exim
211 - HAVE_ICONV=yes
212 - EOC
213 -
214 - # if we use libiconv, now is the time to tell so
215 - if use !elibc_glibc && use !elibc_musl ; then
216 - cat >> Makefile <<- EOC
217 - EXTRALIBS_EXIM=-liconv
218 - EOC
219 - fi
220 -
221 - # support for IPv6
222 - if use ipv6; then
223 - cat >> Makefile <<- EOC
224 - HAVE_IPV6=YES
225 - EOC
226 - fi
227 -
228 - # support i18n/IDNA
229 - if use idn; then
230 - cat >> Makefile <<- EOC
231 - SUPPORT_I18N=yes
232 - SUPPORT_I18N_2008=yes
233 - EXTRALIBS_EXIM += -lidn -lidn2
234 - EOC
235 - fi
236 -
237 - #
238 - # mail storage formats
239 - #
240 -
241 - # mailstore is Exim's traditional storage format
242 - cat >> Makefile <<- EOC
243 - SUPPORT_MAILSTORE=yes
244 - EOC
245 -
246 - # mbox
247 - if use mbx; then
248 - cat >> Makefile <<- EOC
249 - SUPPORT_MBX=yes
250 - EOC
251 - fi
252 -
253 - # maildir
254 - if use maildir; then
255 - cat >> Makefile <<- EOC
256 - SUPPORT_MAILDIR=yes
257 - EOC
258 - fi
259 -
260 - #
261 - # lookup methods
262 -
263 - # use the "native" interfaces to the DBM and CDB libraries, support
264 - # passwd and directory lookups by default
265 - local DB_VERS="5.3 5.1 4.8 4.7 4.6 4.5 4.4 4.3 4.2 3.2"
266 - cat >> Makefile <<- EOC
267 - USE_DB=yes
268 - LOOKUP_CDB=yes
269 - LOOKUP_PASSWD=yes
270 - LOOKUP_DSEARCH=yes
271 - # keep include in CFLAGS because exim.h -> dbstuff.h -> db.h
272 - CFLAGS += -I$(db_includedir ${DB_VERS})
273 - DBMLIB = -l$(db_libname ${DB_VERS})
274 - EOC
275 -
276 - if ! use dnsdb; then
277 - # DNSDB lookup is enabled by default
278 - sed -i -e 's:^LOOKUP_DNSDB=yes:# LOOKUP_DNSDB=yes:' Makefile || die
279 - fi
280 -
281 - if use ldap; then
282 - cat >> Makefile <<- EOC
283 - LOOKUP_LDAP=yes
284 - LDAP_LIB_TYPE=OPENLDAP2
285 - LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/ldap
286 - LOOKUP_LIBS += -lldap -llber
287 - EOC
288 - fi
289 -
290 - if use mysql; then
291 - cat >> Makefile <<- EOC
292 - LOOKUP_MYSQL=yes
293 - LOOKUP_INCLUDE += $(mysql_config --include)
294 - LOOKUP_LIBS += $(mysql_config --libs)
295 - EOC
296 - fi
297 -
298 - if use nis; then
299 - cat >> Makefile <<- EOC
300 - LOOKUP_NIS=yes
301 - LOOKUP_NISPLUS=yes
302 - EOC
303 - if use elibc_glibc ; then
304 - cat >> Makefile <<- EOC
305 - LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/tirpc
306 - LOOKUP_LIBS += -lnsl
307 - EOC
308 - fi
309 - fi
310 -
311 - if use postgres; then
312 - cat >> Makefile <<- EOC
313 - LOOKUP_PGSQL=yes
314 - LOOKUP_INCLUDE += -I$(pg_config --includedir)
315 - LOOKUP_LIBS += -L$(pg_config --libdir) -lpq
316 - EOC
317 - fi
318 -
319 - if use sqlite; then
320 - cat >> Makefile <<- EOC
321 - LOOKUP_SQLITE=yes
322 - LOOKUP_SQLITE_PC=sqlite3
323 - EOC
324 - fi
325 -
326 - if use redis; then
327 - cat >> Makefile <<- EOC
328 - LOOKUP_REDIS=yes
329 - LOOKUP_LIBS += -lhiredis
330 - EOC
331 - fi
332 -
333 - # Exim monitor, enabled by default, controlled via X USE-flag,
334 - # disable if not requested, bug #46778
335 - if use X; then
336 - cp ../exim_monitor/EDITME eximon.conf || die
337 - cat >> Makefile <<- EOC
338 - EXIM_MONITOR=eximon.bin
339 - EOC
340 - fi
341 -
342 - #
343 - # features
344 - #
345 -
346 - # content scanning support
347 - if use exiscan-acl; then
348 - cat >> Makefile <<- EOC
349 - WITH_CONTENT_SCAN=yes
350 - EOC
351 - fi
352 -
353 - # DomainKeys Identified Mail, RFC4871
354 - if ! use dkim; then
355 - # DKIM is enabled by default
356 - cat >> Makefile <<- EOC
357 - DISABLE_DKIM=yes
358 - EOC
359 - fi
360 -
361 - # Per-Recipient-Data-Response
362 - if ! use prdr; then
363 - # PRDR is enabled by default
364 - cat >> Makefile <<- EOC
365 - DISABLE_PRDR=yes
366 - EOC
367 - fi
368 -
369 - # Transport post-delivery actions
370 - if use !tpda && use !dane; then
371 - # EVENT is enabled by default
372 - cat >> Makefile <<- EOC
373 - DISABLE_EVENT=yes
374 - EOC
375 - fi
376 -
377 - # log to syslog
378 - if use syslog; then
379 - local eximlog="${EPREFIX}/var/log/exim/exim_%s.log"
380 - sed -i \
381 - -e "s:LOG_FILE_PATH=${eximlog}:LOG_FILE_PATH=syslog:" \
382 - Makefile || die
383 - cat >> Makefile <<- EOC
384 - LOG_FILE_PATH=syslog
385 - EOC
386 - else
387 - cat >> Makefile <<- EOC
388 - LOG_FILE_PATH=${EPREFIX}/var/log/exim/exim_%s.log
389 - EOC
390 - fi
391 -
392 - # starttls support (ssl)
393 - if use ssl; then
394 - if use gnutls; then
395 - echo "USE_GNUTLS=yes" >> Makefile
396 - echo "USE_GNUTLS_PC=gnutls $(use dane && echo gnutls-dane)" \
397 - >> Makefile
398 - use pkcs11 || echo "AVOID_GNUTLS_PKCS11=yes" >> Makefile
399 - else
400 - echo "USE_OPENSSL=yes" >> Makefile
401 - echo "USE_OPENSSL_PC=openssl" >> Makefile
402 - fi
403 - else
404 - echo "DISABLE_TLS=yes" >> Makefile
405 - fi
406 -
407 - # TCP wrappers
408 - if use tcpd; then
409 - cat >> Makefile <<- EOC
410 - USE_TCP_WRAPPERS=yes
411 - EXTRALIBS_EXIM += -lwrap
412 - EOC
413 - fi
414 -
415 - # Light Mail Transport Protocol
416 - if use lmtp; then
417 - cat >> Makefile <<- EOC
418 - TRANSPORT_LMTP=yes
419 - EOC
420 - fi
421 -
422 - # embedded Perl
423 - if use perl; then
424 - cat >> Makefile <<- EOC
425 - EXIM_PERL=perl.o
426 - EOC
427 - fi
428 -
429 - # dlfunc
430 - if use dlfunc; then
431 - cat >> Makefile <<- EOC
432 - EXPAND_DLFUNC=yes
433 - HAVE_LOCAL_SCAN=yes
434 - DLOPEN_LOCAL_SCAN=yes
435 - EOC
436 - fi
437 -
438 - # Proxy Protocol
439 - if use proxy; then
440 - cat >> Makefile <<- EOC
441 - SUPPORT_PROXY=yes
442 - EOC
443 - fi
444 -
445 - # DANE
446 - if use !dane; then
447 - # DANE is enabled by default
448 - sed -i -e 's:^SUPPORT_DANE=yes:# SUPPORT_DANE=yes:' Makefile || die
449 - fi
450 -
451 - # DMARC
452 - if use dmarc; then
453 - cat >> Makefile <<- EOC
454 - SUPPORT_DMARC=yes
455 - EXTRALIBS_EXIM += -lopendmarc
456 - EOC
457 - fi
458 -
459 - # Sender Policy Framework
460 - if use spf; then
461 - cat >> Makefile <<- EOC
462 - SUPPORT_SPF=yes
463 - EXTRALIBS_EXIM += -lspf2
464 - EOC
465 - fi
466 -
467 - #
468 - # experimental features
469 - #
470 -
471 - # Authenticated Receive Chain
472 - if use arc; then
473 - echo "EXPERIMENTAL_ARC=yes">> Makefile
474 - fi
475 -
476 - # Distributed Checksum Clearinghouse
477 - if use dcc; then
478 - echo "EXPERIMENTAL_DCC=yes">> Makefile
479 - fi
480 -
481 - # Sender Rewriting Scheme
482 - if use srs; then
483 - cat >> Makefile <<- EOC
484 - EXPERIMENTAL_SRS=yes
485 - EXTRALIBS_EXIM += -lsrs_alt
486 - EOC
487 - fi
488 -
489 - # Delivery Sender Notifications extra information in fail message
490 - if use dsn; then
491 - cat >> Makefile <<- EOC
492 - EXPERIMENTAL_DSN_INFO=yes
493 - EOC
494 - fi
495 -
496 - #
497 - # authentication (SMTP AUTH)
498 - #
499 -
500 - # standard bits
501 - cat >> Makefile <<- EOC
502 - AUTH_SPA=yes
503 - AUTH_CRAM_MD5=yes
504 - AUTH_PLAINTEXT=yes
505 - EOC
506 -
507 - # Cyrus SASL
508 - if use sasl; then
509 - cat >> Makefile <<- EOC
510 - CYRUS_SASLAUTHD_SOCKET=${EPREFIX}/run/saslauthd/mux
511 - AUTH_CYRUS_SASL=yes
512 - AUTH_LIBS += -lsasl2
513 - EOC
514 - fi
515 -
516 - # Dovecot
517 - if use dovecot-sasl; then
518 - cat >> Makefile <<- EOC
519 - AUTH_DOVECOT=yes
520 - EOC
521 - fi
522 -
523 - # Pluggable Authentication Modules
524 - if use pam; then
525 - cat >> Makefile <<- EOC
526 - SUPPORT_PAM=yes
527 - AUTH_LIBS += -lpam
528 - EOC
529 - fi
530 -
531 - # Radius
532 - if use radius; then
533 - cat >> Makefile <<- EOC
534 - RADIUS_CONFIG_FILE=${EPREFIX}/etc/radiusclient/radiusclient.conf
535 - RADIUS_LIB_TYPE=RADIUSCLIENTNEW
536 - AUTH_LIBS += -lfreeradius-client
537 - EOC
538 - fi
539 -}
540 -
541 -src_compile() {
542 - emake CC="$(tc-getCC)" HOSTCC="$(tc-getBUILD_CC)" \
543 - AR="$(tc-getAR) cq" RANLIB="$(tc-getRANLIB)" FULLECHO=''
544 -}
545 -
546 -src_install() {
547 - cd "${S}"/build-exim-gentoo || die
548 - dosbin exim
549 - if use X; then
550 - dosbin eximon.bin
551 - dosbin eximon
552 - fi
553 - fperms 4755 /usr/sbin/exim
554 -
555 - dosym exim /usr/sbin/sendmail
556 - dosym exim /usr/sbin/rsmtp
557 - dosym exim /usr/sbin/rmail
558 - dosym ../sbin/exim /usr/bin/mailq
559 - dosym ../sbin/exim /usr/bin/newaliases
560 - dosym ../sbin/sendmail /usr/lib/sendmail
561 -
562 - for i in exicyclog exim_dbmbuild exim_dumpdb exim_fixdb exim_lock \
563 - exim_tidydb exinext exiwhat exigrep eximstats exiqsumm exiqgrep \
564 - convert4r3 convert4r4 exipick
565 - do
566 - dosbin $i
567 - done
568 -
569 - dodoc -r "${S}"/doc/.
570 - doman "${S}"/doc/exim.8
571 - use dsn && dodoc "${S}"/README.DSN
572 - use doc && dodoc "${WORKDIR}"/${PN}-pdf-${PV//rc/RC}/doc/*.pdf
573 -
574 - # conf files
575 - insinto /etc/exim
576 - newins "${S}"/src/configure.default exim.conf.dist
577 - if use exiscan-acl; then
578 - newins "${S}"/src/configure.default exim.conf.exiscan-acl
579 - fi
580 - doins "${WORKDIR}"/system_filter.exim
581 - doins "${FILESDIR}"/auth_conf.sub
582 -
583 - if use pam; then
584 - pamd_mimic system-auth exim auth account
585 - fi
586 -
587 - # headers, #436406
588 - if use dlfunc ; then
589 - # fixup includes so they actually can be found when including
590 - sed -i \
591 - -e '/#include "\(config\|store\|mytypes\).h"/s:"\(.\+\)":<exim/\1>:' \
592 - local_scan.h || die
593 - insinto /usr/include/exim
594 - doins {config,local_scan}.h ../src/{mytypes,store}.h
595 - fi
596 -
597 - insinto /etc/logrotate.d
598 - newins "${FILESDIR}/exim.logrotate" exim
599 -
600 - newinitd "${FILESDIR}"/exim.rc10 exim
601 - newconfd "${FILESDIR}"/exim.confd exim
602 -
603 - systemd_dounit \
604 - "${FILESDIR}"/{exim.service,exim.socket,exim-submission.socket}
605 - systemd_newunit \
606 - "${FILESDIR}"/exim_at.service 'exim@.service'
607 - systemd_newunit \
608 - "${FILESDIR}"/exim-submission_at.service 'exim-submission@.service'
609 -
610 - diropts -m 0750 -o ${MAILUSER} -g ${MAILGROUP}
611 - keepdir /var/log/${PN}
612 -}
613 -
614 -pkg_postinst() {
615 - if [[ ! -f ${EROOT}/etc/exim/exim.conf ]] ; then
616 - einfo "${EROOT}/etc/exim/system_filter.exim is a sample system_filter."
617 - einfo "${EROOT}/etc/exim/auth_conf.sub contains the configuration sub"
618 - einfo "for using smtp auth."
619 - einfo "Please create ${EROOT}/etc/exim/exim.conf from"
620 - einfo " ${EROOT}/etc/exim/exim.conf.dist."
621 - fi
622 - if use dmarc ; then
623 - einfo "DMARC support requires ${EROOT}/etc/exim/opendmarc.tlds"
624 - einfo "you can populate this file with the contents downloaded from"
625 - einfo " https://publicsuffix.org/list/public_suffix_list.dat"
626 - fi
627 - if use dcc ; then
628 - einfo "DCC support is experimental, you can find some limited"
629 - einfo "documentation at the bottom of this prerelease message:"
630 - einfo " http://article.gmane.org/gmane.mail.exim.devel/3579"
631 - fi
632 - use srs && einfo "SRS support is experimental"
633 - use dsn && einfo "extra information in fail DSN message is experimental"
634 - elog "The obsolete acl condition 'demime' is removed, the replacements"
635 - elog "are the ACLs acl_smtp_mime and acl_not_smtp_mime"
636 -}
637
638 diff --git a/mail-mta/exim/exim-4.94-r2.ebuild b/mail-mta/exim/exim-4.94-r2.ebuild
639 deleted file mode 100644
640 index 0abf5983259..00000000000
641 --- a/mail-mta/exim/exim-4.94-r2.ebuild
642 +++ /dev/null
643 @@ -1,593 +0,0 @@
644 -# Copyright 1999-2021 Gentoo Authors
645 -# Distributed under the terms of the GNU General Public License v2
646 -
647 -EAPI="7"
648 -
649 -inherit db-use toolchain-funcs multilib pam systemd
650 -
651 -IUSE="arc +dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl dsn elibc_glibc exiscan-acl gnutls idn ipv6 ldap lmtp maildir mbx mysql nis pam perl pkcs11 postgres +prdr proxy radius redis sasl selinux spf sqlite srs +ssl syslog tcpd +tpda X"
652 -REQUIRED_USE="
653 - arc? ( dkim spf )
654 - dane? ( ssl !gnutls )
655 - dmarc? ( dkim spf )
656 - dkim? ( ssl !gnutls )
657 - gnutls? ( ssl )
658 - pkcs11? ( ssl )
659 - spf? ( exiscan-acl )
660 - srs? ( exiscan-acl )
661 -"
662 -# NOTE on USE="gnutls dane", gnutls[dane] is masked in base, unmasked
663 -# for x86 and amd64 only, due to this, repoman won't allow depending on
664 -# gnutls[dane] for all else. Because we cannot express USE=dane when
665 -# USE=gnutls is in effect only in package.use.mask, the only option we
666 -# have left is to a) ignore the dependency (but that results in bug
667 -# #661164) or b) mask the usage of USE=dane with USE=gnutls. Both are
668 -# incorrect, but b) is the only "correct" view from repoman.
669 -
670 -SDIR=$([[ ${PV} == *_rc* ]] && echo /test
671 - [[ ${PV} == *.*.*.* ]] && echo /fixes)
672 -COMM_URI="https://downloads.exim.org/exim4${SDIR}"
673 -
674 -DESCRIPTION="A highly configurable, drop-in replacement for sendmail"
675 -SRC_URI="${COMM_URI}/${P//_rc/-RC}.tar.xz
676 - mirror://gentoo/system_filter.exim.gz
677 - doc? ( ${COMM_URI}/${PN}-pdf-${PV//_rc/-RC}.tar.xz )"
678 -HOMEPAGE="https://www.exim.org/"
679 -
680 -SLOT="0"
681 -LICENSE="GPL-2"
682 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-solaris"
683 -
684 -COMMON_DEPEND=">=sys-apps/sed-4.0.5
685 - ( >=sys-libs/db-3.2:= <sys-libs/db-6:= )
686 - dev-libs/libpcre
687 - idn? ( net-dns/libidn:= net-dns/libidn2:= )
688 - perl? ( dev-lang/perl:= )
689 - pam? ( sys-libs/pam )
690 - tcpd? ( sys-apps/tcp-wrappers )
691 - ssl? (
692 - gnutls? (
693 - net-libs/gnutls:0=[pkcs11?]
694 - dev-libs/libtasn1
695 - )
696 - !gnutls? (
697 - dev-libs/openssl:0=
698 - )
699 - )
700 - ldap? ( >=net-nds/openldap-2.0.7 )
701 - nis? (
702 - elibc_glibc? (
703 - net-libs/libtirpc
704 - >=net-libs/libnsl-1:=
705 - )
706 - )
707 - mysql? ( dev-db/mysql-connector-c:= )
708 - postgres? ( dev-db/postgresql:= )
709 - sasl? ( >=dev-libs/cyrus-sasl-2.1.26-r2 )
710 - redis? ( dev-libs/hiredis )
711 - spf? ( >=mail-filter/libspf2-1.2.5-r1 )
712 - dmarc? ( mail-filter/opendmarc )
713 - srs? ( mail-filter/libsrs_alt )
714 - X? (
715 - x11-libs/libX11
716 - x11-libs/libXmu
717 - x11-libs/libXt
718 - x11-libs/libXaw
719 - )
720 - sqlite? ( dev-db/sqlite )
721 - radius? ( net-dialup/freeradius-client )
722 - virtual/libiconv
723 - elibc_glibc? ( net-libs/libnsl )
724 - "
725 - # added X check for #57206
726 -BDEPEND="virtual/pkgconfig"
727 -DEPEND="${COMMON_DEPEND}"
728 -RDEPEND="${COMMON_DEPEND}
729 - !mail-mta/courier
730 - !mail-mta/esmtp
731 - !mail-mta/mini-qmail
732 - !<mail-mta/msmtp-1.4.19-r1
733 - !>=mail-mta/msmtp-1.4.19-r1[mta]
734 - !mail-mta/netqmail
735 - !mail-mta/nullmailer
736 - !mail-mta/postfix
737 - !mail-mta/qmail-ldap
738 - !mail-mta/sendmail
739 - !mail-mta/opensmtpd
740 - !<mail-mta/ssmtp-2.64-r2
741 - !>=mail-mta/ssmtp-2.64-r2[mta]
742 - !net-mail/mailwrapper
743 - >=net-mail/mailbase-0.00-r5
744 - virtual/logger
745 - dcc? ( mail-filter/dcc )
746 - selinux? ( sec-policy/selinux-exim )
747 - "
748 -
749 -S=${WORKDIR}/${P//_rc/-RC}
750 -
751 -src_prepare() {
752 - # Legacy patches which need a respin for -p1
753 - eapply -p0 "${FILESDIR}"/exim-4.14-tail.patch
754 - eapply -p0 "${FILESDIR}"/exim-4.74-radius-db-ENV-clash.patch # 287426
755 - eapply "${FILESDIR}"/exim-4.93-as-needed-ldflags.patch # 352265, 391279
756 - eapply -p0 "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591
757 - eapply "${FILESDIR}"/exim-4.69-r1.27021.patch
758 - eapply "${FILESDIR}"/exim-4.94-localscan_dlopen.patch
759 - eapply -p2 "${FILESDIR}"/exim-4.94-taint-pam-expansion.patch # drop on NR
760 -
761 - if use maildir ; then
762 - eapply "${FILESDIR}"/exim-4.94-maildir.patch
763 - else
764 - eapply -p0 "${FILESDIR}"/exim-4.80-spool-mail-group.patch # 438606
765 - fi
766 -
767 - eapply_user
768 -
769 - # user Exim believes it should be
770 - MAILUSER=mail
771 - MAILGROUP=mail
772 - if use prefix && [[ ${EUID} != 0 ]] ; then
773 - MAILUSER=$(id -un)
774 - MAILGROUP=$(id -gn)
775 - fi
776 -}
777 -
778 -src_configure() {
779 - # general config and paths
780 -
781 - local aliases="${EPREFIX}/etc/mail/aliases"
782 - sed -i \
783 - -e "/SYSTEM_ALIASES_FILE/s'SYSTEM_ALIASES_FILE'${aliases}'" \
784 - src/configure.default || die
785 -
786 - sed -i -e 's/^buildname=.*/buildname=exim-gentoo/' Makefile || die
787 -
788 - if use elibc_musl; then
789 - sed -i -e 's/^LIBS = -lnsl/LIBS =/g' OS/Makefile-Linux || die
790 - fi
791 -
792 - local conffile="${EPREFIX}/etc/exim/exim.conf"
793 - sed -e "48i\CFLAGS=${CFLAGS}" \
794 - -e "s:BIN_DIRECTORY=/usr/exim/bin:BIN_DIRECTORY=${EPREFIX}/usr/sbin:" \
795 - -e "s;EXIM_USER=;EXIM_USER=ref:${MAILUSER};" \
796 - -e "s:CONFIGURE_FILE=.*$:CONFIGURE_FILE=${conffile}:" \
797 - -e "s:ZCAT_COMMAND=.*$:ZCAT_COMMAND=${EPREFIX}/bin/zcat:" \
798 - -e "s:COMPRESS_COMMAND=.*$:COMPRESS_COMMAND=${EPREFIX}/bin/gzip:" \
799 - src/EDITME > Local/Makefile || die
800 -
801 - # work on Local/Makefile from now on
802 - cd Local
803 -
804 - cat >> Makefile <<- EOC
805 - INFO_DIRECTORY=${EPREFIX}/usr/share/info
806 - PID_FILE_PATH=${EPREFIX}/run/exim.pid
807 - SPOOL_DIRECTORY=${EPREFIX}/var/spool/exim
808 - HAVE_ICONV=yes
809 - EOC
810 -
811 - # if we use libiconv, now is the time to tell so
812 - if use !elibc_glibc && use !elibc_musl ; then
813 - cat >> Makefile <<- EOC
814 - EXTRALIBS_EXIM=-liconv
815 - EOC
816 - fi
817 -
818 - # support for IPv6
819 - if use ipv6; then
820 - cat >> Makefile <<- EOC
821 - HAVE_IPV6=YES
822 - EOC
823 - fi
824 -
825 - # support i18n/IDNA
826 - if use idn; then
827 - cat >> Makefile <<- EOC
828 - SUPPORT_I18N=yes
829 - SUPPORT_I18N_2008=yes
830 - EXTRALIBS_EXIM += -lidn -lidn2
831 - EOC
832 - fi
833 -
834 - #
835 - # mail storage formats
836 - #
837 -
838 - # mailstore is Exim's traditional storage format
839 - cat >> Makefile <<- EOC
840 - SUPPORT_MAILSTORE=yes
841 - EOC
842 -
843 - # mbox
844 - if use mbx; then
845 - cat >> Makefile <<- EOC
846 - SUPPORT_MBX=yes
847 - EOC
848 - fi
849 -
850 - # maildir
851 - if use maildir; then
852 - cat >> Makefile <<- EOC
853 - SUPPORT_MAILDIR=yes
854 - EOC
855 - fi
856 -
857 - #
858 - # lookup methods
859 -
860 - # use the "native" interfaces to the DBM and CDB libraries, support
861 - # passwd and directory lookups by default
862 - local DB_VERS="5.3 5.1 4.8 4.7 4.6 4.5 4.4 4.3 4.2 3.2"
863 - cat >> Makefile <<- EOC
864 - USE_DB=yes
865 - LOOKUP_CDB=yes
866 - LOOKUP_PASSWD=yes
867 - LOOKUP_DSEARCH=yes
868 - # keep include in CFLAGS because exim.h -> dbstuff.h -> db.h
869 - CFLAGS += -I$(db_includedir ${DB_VERS})
870 - DBMLIB = -l$(db_libname ${DB_VERS})
871 - EOC
872 -
873 - if ! use dnsdb; then
874 - # DNSDB lookup is enabled by default
875 - sed -i -e 's:^LOOKUP_DNSDB=yes:# LOOKUP_DNSDB=yes:' Makefile || die
876 - fi
877 -
878 - if use ldap; then
879 - cat >> Makefile <<- EOC
880 - LOOKUP_LDAP=yes
881 - LDAP_LIB_TYPE=OPENLDAP2
882 - LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/ldap
883 - LOOKUP_LIBS += -lldap -llber
884 - EOC
885 - fi
886 -
887 - if use mysql; then
888 - cat >> Makefile <<- EOC
889 - LOOKUP_MYSQL=yes
890 - LOOKUP_INCLUDE += $(mysql_config --include)
891 - LOOKUP_LIBS += $(mysql_config --libs)
892 - EOC
893 - fi
894 -
895 - if use nis; then
896 - cat >> Makefile <<- EOC
897 - LOOKUP_NIS=yes
898 - LOOKUP_NISPLUS=yes
899 - EOC
900 - if use elibc_glibc ; then
901 - cat >> Makefile <<- EOC
902 - LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/tirpc
903 - LOOKUP_LIBS += -lnsl
904 - EOC
905 - fi
906 - fi
907 -
908 - if use postgres; then
909 - cat >> Makefile <<- EOC
910 - LOOKUP_PGSQL=yes
911 - LOOKUP_INCLUDE += -I$(pg_config --includedir)
912 - LOOKUP_LIBS += -L$(pg_config --libdir) -lpq
913 - EOC
914 - fi
915 -
916 - if use sqlite; then
917 - cat >> Makefile <<- EOC
918 - LOOKUP_SQLITE=yes
919 - LOOKUP_SQLITE_PC=sqlite3
920 - EOC
921 - fi
922 -
923 - if use redis; then
924 - cat >> Makefile <<- EOC
925 - LOOKUP_REDIS=yes
926 - LOOKUP_LIBS += -lhiredis
927 - EOC
928 - fi
929 -
930 - # Exim monitor, enabled by default, controlled via X USE-flag,
931 - # disable if not requested, bug #46778
932 - if use X; then
933 - cp ../exim_monitor/EDITME eximon.conf || die
934 - cat >> Makefile <<- EOC
935 - EXIM_MONITOR=eximon.bin
936 - EOC
937 - fi
938 -
939 - #
940 - # features
941 - #
942 -
943 - # content scanning support
944 - if use exiscan-acl; then
945 - cat >> Makefile <<- EOC
946 - WITH_CONTENT_SCAN=yes
947 - EOC
948 - fi
949 -
950 - # DomainKeys Identified Mail, RFC4871
951 - if ! use dkim; then
952 - # DKIM is enabled by default
953 - cat >> Makefile <<- EOC
954 - DISABLE_DKIM=yes
955 - EOC
956 - fi
957 -
958 - # Per-Recipient-Data-Response
959 - if ! use prdr; then
960 - # PRDR is enabled by default
961 - cat >> Makefile <<- EOC
962 - DISABLE_PRDR=yes
963 - EOC
964 - fi
965 -
966 - # Transport post-delivery actions
967 - if use !tpda && use !dane; then
968 - # EVENT is enabled by default
969 - cat >> Makefile <<- EOC
970 - DISABLE_EVENT=yes
971 - EOC
972 - fi
973 -
974 - # log to syslog
975 - if use syslog; then
976 - local eximlog="${EPREFIX}/var/log/exim/exim_%s.log"
977 - sed -i \
978 - -e "s:LOG_FILE_PATH=${eximlog}:LOG_FILE_PATH=syslog:" \
979 - Makefile || die
980 - cat >> Makefile <<- EOC
981 - LOG_FILE_PATH=syslog
982 - EOC
983 - else
984 - cat >> Makefile <<- EOC
985 - LOG_FILE_PATH=${EPREFIX}/var/log/exim/exim_%s.log
986 - EOC
987 - fi
988 -
989 - # starttls support (ssl)
990 - if use ssl; then
991 - if use gnutls; then
992 - echo "USE_GNUTLS=yes" >> Makefile
993 - echo "USE_GNUTLS_PC=gnutls $(use dane && echo gnutls-dane)" \
994 - >> Makefile
995 - use pkcs11 || echo "AVOID_GNUTLS_PKCS11=yes" >> Makefile
996 - else
997 - echo "USE_OPENSSL=yes" >> Makefile
998 - echo "USE_OPENSSL_PC=openssl" >> Makefile
999 - fi
1000 - else
1001 - echo "DISABLE_TLS=yes" >> Makefile
1002 - fi
1003 -
1004 - # TCP wrappers
1005 - if use tcpd; then
1006 - cat >> Makefile <<- EOC
1007 - USE_TCP_WRAPPERS=yes
1008 - EXTRALIBS_EXIM += -lwrap
1009 - EOC
1010 - fi
1011 -
1012 - # Light Mail Transport Protocol
1013 - if use lmtp; then
1014 - cat >> Makefile <<- EOC
1015 - TRANSPORT_LMTP=yes
1016 - EOC
1017 - fi
1018 -
1019 - # embedded Perl
1020 - if use perl; then
1021 - cat >> Makefile <<- EOC
1022 - EXIM_PERL=perl.o
1023 - EOC
1024 - fi
1025 -
1026 - # dlfunc
1027 - if use dlfunc; then
1028 - cat >> Makefile <<- EOC
1029 - EXPAND_DLFUNC=yes
1030 - HAVE_LOCAL_SCAN=yes
1031 - DLOPEN_LOCAL_SCAN=yes
1032 - EOC
1033 - fi
1034 -
1035 - # Proxy Protocol
1036 - if use proxy; then
1037 - cat >> Makefile <<- EOC
1038 - SUPPORT_PROXY=yes
1039 - EOC
1040 - fi
1041 -
1042 - # DANE
1043 - if use !dane; then
1044 - # DANE is enabled by default
1045 - sed -i -e 's:^SUPPORT_DANE=yes:# SUPPORT_DANE=yes:' Makefile || die
1046 - fi
1047 -
1048 - # DMARC
1049 - if use dmarc; then
1050 - cat >> Makefile <<- EOC
1051 - SUPPORT_DMARC=yes
1052 - EXTRALIBS_EXIM += -lopendmarc
1053 - EOC
1054 - fi
1055 -
1056 - # Sender Policy Framework
1057 - if use spf; then
1058 - cat >> Makefile <<- EOC
1059 - SUPPORT_SPF=yes
1060 - EXTRALIBS_EXIM += -lspf2
1061 - EOC
1062 - fi
1063 -
1064 - #
1065 - # experimental features
1066 - #
1067 -
1068 - # Authenticated Receive Chain
1069 - if use arc; then
1070 - echo "EXPERIMENTAL_ARC=yes">> Makefile
1071 - fi
1072 -
1073 - # Distributed Checksum Clearinghouse
1074 - if use dcc; then
1075 - echo "EXPERIMENTAL_DCC=yes">> Makefile
1076 - fi
1077 -
1078 - # Sender Rewriting Scheme
1079 - if use srs; then
1080 - cat >> Makefile <<- EOC
1081 - EXPERIMENTAL_SRS=yes
1082 - EXTRALIBS_EXIM += -lsrs_alt
1083 - EOC
1084 - fi
1085 -
1086 - # Delivery Sender Notifications extra information in fail message
1087 - if use dsn; then
1088 - cat >> Makefile <<- EOC
1089 - EXPERIMENTAL_DSN_INFO=yes
1090 - EOC
1091 - fi
1092 -
1093 - #
1094 - # authentication (SMTP AUTH)
1095 - #
1096 -
1097 - # standard bits
1098 - cat >> Makefile <<- EOC
1099 - AUTH_SPA=yes
1100 - AUTH_CRAM_MD5=yes
1101 - AUTH_PLAINTEXT=yes
1102 - EOC
1103 -
1104 - # Cyrus SASL
1105 - if use sasl; then
1106 - cat >> Makefile <<- EOC
1107 - CYRUS_SASLAUTHD_SOCKET=${EPREFIX}/run/saslauthd/mux
1108 - AUTH_CYRUS_SASL=yes
1109 - AUTH_LIBS += -lsasl2
1110 - EOC
1111 - fi
1112 -
1113 - # Dovecot
1114 - if use dovecot-sasl; then
1115 - cat >> Makefile <<- EOC
1116 - AUTH_DOVECOT=yes
1117 - EOC
1118 - fi
1119 -
1120 - # Pluggable Authentication Modules
1121 - if use pam; then
1122 - cat >> Makefile <<- EOC
1123 - SUPPORT_PAM=yes
1124 - AUTH_LIBS += -lpam
1125 - EOC
1126 - fi
1127 -
1128 - # Radius
1129 - if use radius; then
1130 - cat >> Makefile <<- EOC
1131 - RADIUS_CONFIG_FILE=${EPREFIX}/etc/radiusclient/radiusclient.conf
1132 - RADIUS_LIB_TYPE=RADIUSCLIENTNEW
1133 - AUTH_LIBS += -lfreeradius-client
1134 - EOC
1135 - fi
1136 -}
1137 -
1138 -src_compile() {
1139 - emake CC="$(tc-getCC)" HOSTCC="$(tc-getBUILD_CC)" \
1140 - AR="$(tc-getAR) cq" RANLIB="$(tc-getRANLIB)" FULLECHO=''
1141 -}
1142 -
1143 -src_install() {
1144 - cd "${S}"/build-exim-gentoo || die
1145 - dosbin exim
1146 - if use X; then
1147 - dosbin eximon.bin
1148 - dosbin eximon
1149 - fi
1150 - fperms 4755 /usr/sbin/exim
1151 -
1152 - dosym exim /usr/sbin/sendmail
1153 - dosym exim /usr/sbin/rsmtp
1154 - dosym exim /usr/sbin/rmail
1155 - dosym ../sbin/exim /usr/bin/mailq
1156 - dosym ../sbin/exim /usr/bin/newaliases
1157 - dosym ../sbin/sendmail /usr/lib/sendmail
1158 -
1159 - for i in exicyclog exim_dbmbuild exim_dumpdb exim_fixdb exim_lock \
1160 - exim_tidydb exinext exiwhat exigrep eximstats exiqsumm exiqgrep \
1161 - convert4r3 convert4r4 exipick
1162 - do
1163 - dosbin $i
1164 - done
1165 -
1166 - dodoc -r "${S}"/doc/.
1167 - doman "${S}"/doc/exim.8
1168 - use dsn && dodoc "${S}"/README.DSN
1169 - use doc && dodoc "${WORKDIR}"/${PN}-pdf-${PV//rc/RC}/doc/*.pdf
1170 -
1171 - # conf files
1172 - insinto /etc/exim
1173 - newins "${S}"/src/configure.default exim.conf.dist
1174 - if use exiscan-acl; then
1175 - newins "${S}"/src/configure.default exim.conf.exiscan-acl
1176 - fi
1177 - doins "${WORKDIR}"/system_filter.exim
1178 - doins "${FILESDIR}"/auth_conf.sub
1179 -
1180 - if use pam; then
1181 - pamd_mimic system-auth exim auth account
1182 - fi
1183 -
1184 - # headers, #436406
1185 - if use dlfunc ; then
1186 - # fixup includes so they actually can be found when including
1187 - sed -i \
1188 - -e '/#include "\(config\|store\|mytypes\).h"/s:"\(.\+\)":<exim/\1>:' \
1189 - local_scan.h || die
1190 - insinto /usr/include/exim
1191 - doins {config,local_scan}.h ../src/{mytypes,store}.h
1192 - fi
1193 -
1194 - insinto /etc/logrotate.d
1195 - newins "${FILESDIR}/exim.logrotate" exim
1196 -
1197 - newinitd "${FILESDIR}"/exim.rc10 exim
1198 - newconfd "${FILESDIR}"/exim.confd exim
1199 -
1200 - systemd_dounit \
1201 - "${FILESDIR}"/{exim.service,exim.socket,exim-submission.socket}
1202 - systemd_newunit \
1203 - "${FILESDIR}"/exim_at.service 'exim@.service'
1204 - systemd_newunit \
1205 - "${FILESDIR}"/exim-submission_at.service 'exim-submission@.service'
1206 -
1207 - diropts -m 0750 -o ${MAILUSER} -g ${MAILGROUP}
1208 - keepdir /var/log/${PN}
1209 -}
1210 -
1211 -pkg_postinst() {
1212 - if [[ ! -f ${EROOT}/etc/exim/exim.conf ]] ; then
1213 - einfo "${EROOT}/etc/exim/system_filter.exim is a sample system_filter."
1214 - einfo "${EROOT}/etc/exim/auth_conf.sub contains the configuration sub"
1215 - einfo "for using smtp auth."
1216 - einfo "Please create ${EROOT}/etc/exim/exim.conf from"
1217 - einfo " ${EROOT}/etc/exim/exim.conf.dist."
1218 - fi
1219 - if use dmarc ; then
1220 - einfo "DMARC support requires ${EROOT}/etc/exim/opendmarc.tlds"
1221 - einfo "you can populate this file with the contents downloaded from"
1222 - einfo " https://publicsuffix.org/list/public_suffix_list.dat"
1223 - fi
1224 - if use dcc ; then
1225 - einfo "DCC support is experimental, you can find some limited"
1226 - einfo "documentation at the bottom of this prerelease message:"
1227 - einfo " http://article.gmane.org/gmane.mail.exim.devel/3579"
1228 - fi
1229 - use srs && einfo "SRS support is experimental"
1230 - use dsn && einfo "extra information in fail DSN message is experimental"
1231 - elog "The obsolete acl condition 'demime' is removed, the replacements"
1232 - elog "are the ACLs acl_smtp_mime and acl_not_smtp_mime"
1233 - einfo
1234 - elog "Note that \$local_part is renamed to \$local_part_data, please"
1235 - elog "update your affected sections, such as local_delivery transport"
1236 -}
1237
1238 diff --git a/mail-mta/exim/exim-4.94-r3.ebuild b/mail-mta/exim/exim-4.94-r3.ebuild
1239 deleted file mode 100644
1240 index 7ec16446c71..00000000000
1241 --- a/mail-mta/exim/exim-4.94-r3.ebuild
1242 +++ /dev/null
1243 @@ -1,617 +0,0 @@
1244 -# Copyright 1999-2021 Gentoo Authors
1245 -# Distributed under the terms of the GNU General Public License v2
1246 -
1247 -EAPI="7"
1248 -
1249 -inherit db-use toolchain-funcs multilib pam systemd
1250 -
1251 -IUSE="arc +dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl dsn elibc_glibc exiscan-acl gnutls idn ipv6 ldap lmtp maildir mbx mysql nis pam perl pkcs11 postgres +prdr proxy radius redis sasl selinux spf sqlite srs +srs-alt srs-native +ssl syslog tcpd +tpda X"
1252 -REQUIRED_USE="
1253 - arc? ( dkim spf )
1254 - dane? ( ssl !gnutls )
1255 - dmarc? ( dkim spf )
1256 - dkim? ( ssl !gnutls )
1257 - gnutls? ( ssl )
1258 - pkcs11? ( ssl )
1259 - spf? ( exiscan-acl )
1260 - srs? (
1261 - exiscan-acl
1262 - ^^ ( srs-alt srs-native )
1263 - )
1264 -"
1265 -# NOTE on USE="gnutls dane", gnutls[dane] is masked in base, unmasked
1266 -# for x86 and amd64 only, due to this, repoman won't allow depending on
1267 -# gnutls[dane] for all else. Because we cannot express USE=dane when
1268 -# USE=gnutls is in effect only in package.use.mask, the only option we
1269 -# have left is to a) ignore the dependency (but that results in bug
1270 -# #661164) or b) mask the usage of USE=dane with USE=gnutls. Both are
1271 -# incorrect, but b) is the only "correct" view from repoman.
1272 -
1273 -SDIR=$([[ ${PV} == *_rc* ]] && echo /test
1274 - [[ ${PV} == *.*.*.* ]] && echo /fixes)
1275 -COMM_URI="https://downloads.exim.org/exim4${SDIR}"
1276 -
1277 -DESCRIPTION="A highly configurable, drop-in replacement for sendmail"
1278 -SRC_URI="${COMM_URI}/${P//_rc/-RC}.tar.xz
1279 - mirror://gentoo/system_filter.exim.gz
1280 - doc? ( ${COMM_URI}/${PN}-pdf-${PV//_rc/-RC}.tar.xz )"
1281 -HOMEPAGE="https://www.exim.org/"
1282 -
1283 -SLOT="0"
1284 -LICENSE="GPL-2"
1285 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-solaris"
1286 -
1287 -COMMON_DEPEND=">=sys-apps/sed-4.0.5
1288 - ( >=sys-libs/db-3.2:= <sys-libs/db-6:= )
1289 - dev-libs/libpcre
1290 - idn? ( net-dns/libidn:= net-dns/libidn2:= )
1291 - perl? ( dev-lang/perl:= )
1292 - pam? ( sys-libs/pam )
1293 - tcpd? ( sys-apps/tcp-wrappers )
1294 - ssl? (
1295 - gnutls? (
1296 - net-libs/gnutls:0=[pkcs11?]
1297 - dev-libs/libtasn1
1298 - )
1299 - !gnutls? (
1300 - dev-libs/openssl:0=
1301 - )
1302 - )
1303 - ldap? ( >=net-nds/openldap-2.0.7 )
1304 - nis? (
1305 - elibc_glibc? (
1306 - net-libs/libtirpc
1307 - >=net-libs/libnsl-1:=
1308 - )
1309 - )
1310 - mysql? ( dev-db/mysql-connector-c:= )
1311 - postgres? ( dev-db/postgresql:= )
1312 - sasl? ( >=dev-libs/cyrus-sasl-2.1.26-r2 )
1313 - redis? ( dev-libs/hiredis )
1314 - spf? ( >=mail-filter/libspf2-1.2.5-r1 )
1315 - dmarc? ( mail-filter/opendmarc )
1316 - srs? ( srs-alt? ( mail-filter/libsrs_alt ) )
1317 - X? (
1318 - x11-libs/libX11
1319 - x11-libs/libXmu
1320 - x11-libs/libXt
1321 - x11-libs/libXaw
1322 - )
1323 - sqlite? ( dev-db/sqlite )
1324 - radius? ( net-dialup/freeradius-client )
1325 - virtual/libiconv
1326 - elibc_glibc? ( net-libs/libnsl )
1327 - "
1328 - # added X check for #57206
1329 -BDEPEND="virtual/pkgconfig"
1330 -DEPEND="${COMMON_DEPEND}"
1331 -RDEPEND="${COMMON_DEPEND}
1332 - !mail-mta/courier
1333 - !mail-mta/esmtp
1334 - !mail-mta/mini-qmail
1335 - !<mail-mta/msmtp-1.4.19-r1
1336 - !>=mail-mta/msmtp-1.4.19-r1[mta]
1337 - !mail-mta/netqmail
1338 - !mail-mta/nullmailer
1339 - !mail-mta/postfix
1340 - !mail-mta/qmail-ldap
1341 - !mail-mta/sendmail
1342 - !mail-mta/opensmtpd
1343 - !<mail-mta/ssmtp-2.64-r2
1344 - !>=mail-mta/ssmtp-2.64-r2[mta]
1345 - !net-mail/mailwrapper
1346 - >=net-mail/mailbase-0.00-r5
1347 - virtual/logger
1348 - dcc? ( mail-filter/dcc )
1349 - selinux? ( sec-policy/selinux-exim )
1350 - "
1351 -
1352 -S=${WORKDIR}/${P//_rc/-RC}
1353 -
1354 -src_prepare() {
1355 - # Legacy patches which need a respin for -p1
1356 - eapply -p0 "${FILESDIR}"/exim-4.14-tail.patch
1357 - eapply -p0 "${FILESDIR}"/exim-4.74-radius-db-ENV-clash.patch # 287426
1358 - eapply "${FILESDIR}"/exim-4.93-as-needed-ldflags.patch # 352265, 391279
1359 - eapply -p0 "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591
1360 - eapply "${FILESDIR}"/exim-4.69-r1.27021.patch
1361 - eapply "${FILESDIR}"/exim-4.94-localscan_dlopen.patch
1362 - eapply -p2 "${FILESDIR}"/exim-4.94-taint-pam-expansion.patch # drop on NR
1363 -
1364 - if use maildir ; then
1365 - eapply "${FILESDIR}"/exim-4.94-maildir.patch
1366 - else
1367 - eapply -p0 "${FILESDIR}"/exim-4.80-spool-mail-group.patch # 438606
1368 - fi
1369 -
1370 - eapply_user
1371 -
1372 - # user Exim believes it should be
1373 - MAILUSER=mail
1374 - MAILGROUP=mail
1375 - if use prefix && [[ ${EUID} != 0 ]] ; then
1376 - MAILUSER=$(id -un)
1377 - MAILGROUP=$(id -gn)
1378 - fi
1379 -}
1380 -
1381 -src_configure() {
1382 - # general config and paths
1383 -
1384 - local aliases="${EPREFIX}/etc/mail/aliases"
1385 - sed -i \
1386 - -e "/SYSTEM_ALIASES_FILE/s'SYSTEM_ALIASES_FILE'${aliases}'" \
1387 - src/configure.default || die
1388 -
1389 - sed -i -e 's/^buildname=.*/buildname=exim-gentoo/' Makefile || die
1390 -
1391 - if use elibc_musl; then
1392 - sed -i -e 's/^LIBS = -lnsl/LIBS =/g' OS/Makefile-Linux || die
1393 - fi
1394 -
1395 - local conffile="${EPREFIX}/etc/exim/exim.conf"
1396 - sed -e "48i\CFLAGS=${CFLAGS}" \
1397 - -e "s:BIN_DIRECTORY=/usr/exim/bin:BIN_DIRECTORY=${EPREFIX}/usr/sbin:" \
1398 - -e "s;EXIM_USER=;EXIM_USER=ref:${MAILUSER};" \
1399 - -e "s:CONFIGURE_FILE=.*$:CONFIGURE_FILE=${conffile}:" \
1400 - -e "s:ZCAT_COMMAND=.*$:ZCAT_COMMAND=${EPREFIX}/bin/zcat:" \
1401 - -e "s:COMPRESS_COMMAND=.*$:COMPRESS_COMMAND=${EPREFIX}/bin/gzip:" \
1402 - src/EDITME > Local/Makefile || die
1403 -
1404 - # work on Local/Makefile from now on
1405 - cd Local
1406 -
1407 - cat >> Makefile <<- EOC
1408 - INFO_DIRECTORY=${EPREFIX}/usr/share/info
1409 - PID_FILE_PATH=${EPREFIX}/run/exim.pid
1410 - SPOOL_DIRECTORY=${EPREFIX}/var/spool/exim
1411 - HAVE_ICONV=yes
1412 - EOC
1413 -
1414 - # if we use libiconv, now is the time to tell so
1415 - if use !elibc_glibc && use !elibc_musl ; then
1416 - cat >> Makefile <<- EOC
1417 - EXTRALIBS_EXIM=-liconv
1418 - EOC
1419 - fi
1420 -
1421 - # support for IPv6
1422 - if use ipv6; then
1423 - cat >> Makefile <<- EOC
1424 - HAVE_IPV6=YES
1425 - EOC
1426 - fi
1427 -
1428 - # support i18n/IDNA
1429 - if use idn; then
1430 - cat >> Makefile <<- EOC
1431 - SUPPORT_I18N=yes
1432 - SUPPORT_I18N_2008=yes
1433 - EXTRALIBS_EXIM += -lidn -lidn2
1434 - EOC
1435 - fi
1436 -
1437 - #
1438 - # mail storage formats
1439 - #
1440 -
1441 - # mailstore is Exim's traditional storage format
1442 - cat >> Makefile <<- EOC
1443 - SUPPORT_MAILSTORE=yes
1444 - EOC
1445 -
1446 - # mbox
1447 - if use mbx; then
1448 - cat >> Makefile <<- EOC
1449 - SUPPORT_MBX=yes
1450 - EOC
1451 - fi
1452 -
1453 - # maildir
1454 - if use maildir; then
1455 - cat >> Makefile <<- EOC
1456 - SUPPORT_MAILDIR=yes
1457 - EOC
1458 - fi
1459 -
1460 - #
1461 - # lookup methods
1462 -
1463 - # use the "native" interfaces to the DBM and CDB libraries, support
1464 - # passwd and directory lookups by default
1465 - local DB_VERS="5.3 5.1 4.8 4.7 4.6 4.5 4.4 4.3 4.2 3.2"
1466 - cat >> Makefile <<- EOC
1467 - USE_DB=yes
1468 - LOOKUP_CDB=yes
1469 - LOOKUP_PASSWD=yes
1470 - LOOKUP_DSEARCH=yes
1471 - # keep include in CFLAGS because exim.h -> dbstuff.h -> db.h
1472 - CFLAGS += -I$(db_includedir ${DB_VERS})
1473 - DBMLIB = -l$(db_libname ${DB_VERS})
1474 - EOC
1475 -
1476 - if ! use dnsdb; then
1477 - # DNSDB lookup is enabled by default
1478 - sed -i -e 's:^LOOKUP_DNSDB=yes:# LOOKUP_DNSDB=yes:' Makefile || die
1479 - fi
1480 -
1481 - if use ldap; then
1482 - cat >> Makefile <<- EOC
1483 - LOOKUP_LDAP=yes
1484 - LDAP_LIB_TYPE=OPENLDAP2
1485 - LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/ldap
1486 - LOOKUP_LIBS += -lldap -llber
1487 - EOC
1488 - fi
1489 -
1490 - if use mysql; then
1491 - cat >> Makefile <<- EOC
1492 - LOOKUP_MYSQL=yes
1493 - LOOKUP_INCLUDE += $(mysql_config --include)
1494 - LOOKUP_LIBS += $(mysql_config --libs)
1495 - EOC
1496 - fi
1497 -
1498 - if use nis; then
1499 - cat >> Makefile <<- EOC
1500 - LOOKUP_NIS=yes
1501 - LOOKUP_NISPLUS=yes
1502 - EOC
1503 - if use elibc_glibc ; then
1504 - cat >> Makefile <<- EOC
1505 - LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/tirpc
1506 - LOOKUP_LIBS += -lnsl
1507 - EOC
1508 - fi
1509 - fi
1510 -
1511 - if use postgres; then
1512 - cat >> Makefile <<- EOC
1513 - LOOKUP_PGSQL=yes
1514 - LOOKUP_INCLUDE += -I$(pg_config --includedir)
1515 - LOOKUP_LIBS += -L$(pg_config --libdir) -lpq
1516 - EOC
1517 - fi
1518 -
1519 - if use sqlite; then
1520 - cat >> Makefile <<- EOC
1521 - LOOKUP_SQLITE=yes
1522 - LOOKUP_SQLITE_PC=sqlite3
1523 - EOC
1524 - fi
1525 -
1526 - if use redis; then
1527 - cat >> Makefile <<- EOC
1528 - LOOKUP_REDIS=yes
1529 - LOOKUP_LIBS += -lhiredis
1530 - EOC
1531 - fi
1532 -
1533 - # Exim monitor, enabled by default, controlled via X USE-flag,
1534 - # disable if not requested, bug #46778
1535 - if use X; then
1536 - cp ../exim_monitor/EDITME eximon.conf || die
1537 - cat >> Makefile <<- EOC
1538 - EXIM_MONITOR=eximon.bin
1539 - EOC
1540 - fi
1541 -
1542 - #
1543 - # features
1544 - #
1545 -
1546 - # content scanning support
1547 - if use exiscan-acl; then
1548 - cat >> Makefile <<- EOC
1549 - WITH_CONTENT_SCAN=yes
1550 - EOC
1551 - fi
1552 -
1553 - # DomainKeys Identified Mail, RFC4871
1554 - if ! use dkim; then
1555 - # DKIM is enabled by default
1556 - cat >> Makefile <<- EOC
1557 - DISABLE_DKIM=yes
1558 - EOC
1559 - fi
1560 -
1561 - # Per-Recipient-Data-Response
1562 - if ! use prdr; then
1563 - # PRDR is enabled by default
1564 - cat >> Makefile <<- EOC
1565 - DISABLE_PRDR=yes
1566 - EOC
1567 - fi
1568 -
1569 - # Transport post-delivery actions
1570 - if use !tpda && use !dane; then
1571 - # EVENT is enabled by default
1572 - cat >> Makefile <<- EOC
1573 - DISABLE_EVENT=yes
1574 - EOC
1575 - fi
1576 -
1577 - # log to syslog
1578 - if use syslog; then
1579 - local eximlog="${EPREFIX}/var/log/exim/exim_%s.log"
1580 - sed -i \
1581 - -e "s:LOG_FILE_PATH=${eximlog}:LOG_FILE_PATH=syslog:" \
1582 - Makefile || die
1583 - cat >> Makefile <<- EOC
1584 - LOG_FILE_PATH=syslog
1585 - EOC
1586 - else
1587 - cat >> Makefile <<- EOC
1588 - LOG_FILE_PATH=${EPREFIX}/var/log/exim/exim_%s.log
1589 - EOC
1590 - fi
1591 -
1592 - # starttls support (ssl)
1593 - if use ssl; then
1594 - if use gnutls; then
1595 - echo "USE_GNUTLS=yes" >> Makefile
1596 - echo "USE_GNUTLS_PC=gnutls $(use dane && echo gnutls-dane)" \
1597 - >> Makefile
1598 - use pkcs11 || echo "AVOID_GNUTLS_PKCS11=yes" >> Makefile
1599 - else
1600 - echo "USE_OPENSSL=yes" >> Makefile
1601 - echo "USE_OPENSSL_PC=openssl" >> Makefile
1602 - fi
1603 - else
1604 - echo "DISABLE_TLS=yes" >> Makefile
1605 - fi
1606 -
1607 - # TCP wrappers
1608 - if use tcpd; then
1609 - cat >> Makefile <<- EOC
1610 - USE_TCP_WRAPPERS=yes
1611 - EXTRALIBS_EXIM += -lwrap
1612 - EOC
1613 - fi
1614 -
1615 - # Light Mail Transport Protocol
1616 - if use lmtp; then
1617 - cat >> Makefile <<- EOC
1618 - TRANSPORT_LMTP=yes
1619 - EOC
1620 - fi
1621 -
1622 - # embedded Perl
1623 - if use perl; then
1624 - cat >> Makefile <<- EOC
1625 - EXIM_PERL=perl.o
1626 - EOC
1627 - fi
1628 -
1629 - # dlfunc
1630 - if use dlfunc; then
1631 - cat >> Makefile <<- EOC
1632 - EXPAND_DLFUNC=yes
1633 - HAVE_LOCAL_SCAN=yes
1634 - DLOPEN_LOCAL_SCAN=yes
1635 - EOC
1636 - fi
1637 -
1638 - # Proxy Protocol
1639 - if use proxy; then
1640 - cat >> Makefile <<- EOC
1641 - SUPPORT_PROXY=yes
1642 - EOC
1643 - fi
1644 -
1645 - # DANE
1646 - if use !dane; then
1647 - # DANE is enabled by default
1648 - sed -i -e 's:^SUPPORT_DANE=yes:# SUPPORT_DANE=yes:' Makefile || die
1649 - fi
1650 -
1651 - # DMARC
1652 - if use dmarc; then
1653 - cat >> Makefile <<- EOC
1654 - SUPPORT_DMARC=yes
1655 - EXTRALIBS_EXIM += -lopendmarc
1656 - EOC
1657 - fi
1658 -
1659 - # Sender Policy Framework
1660 - if use spf; then
1661 - cat >> Makefile <<- EOC
1662 - SUPPORT_SPF=yes
1663 - EXTRALIBS_EXIM += -lspf2
1664 - EOC
1665 - fi
1666 -
1667 - #
1668 - # experimental features
1669 - #
1670 -
1671 - # Authenticated Receive Chain
1672 - if use arc; then
1673 - echo "EXPERIMENTAL_ARC=yes">> Makefile
1674 - fi
1675 -
1676 - # Distributed Checksum Clearinghouse
1677 - if use dcc; then
1678 - echo "EXPERIMENTAL_DCC=yes">> Makefile
1679 - fi
1680 -
1681 - # Sender Rewriting Scheme
1682 - if use srs; then
1683 - # NOTE: we currently USE-default to srs-alt, because this is
1684 - # what USE=srs used to be. Eventually we want to rid ourselves
1685 - # of this external implementation.
1686 - if use srs-alt; then
1687 - # historical default, from 4.95 this becomes
1688 - # EXPERIMENTAL_SRS_ALT
1689 - cat >> Makefile <<- EOC
1690 - EXPERIMENTAL_SRS=yes
1691 - EXTRALIBS_EXIM += -lsrs_alt
1692 - EOC
1693 - fi
1694 - if use srs-native; then
1695 - # this one becomes SUPPORT_SRS in 4.95
1696 - cat >> Makefile <<- EOC
1697 - EXPERIMENTAL_SRS_NATIVE=yes
1698 - EOC
1699 - fi
1700 - fi
1701 -
1702 - # Delivery Sender Notifications extra information in fail message
1703 - if use dsn; then
1704 - cat >> Makefile <<- EOC
1705 - EXPERIMENTAL_DSN_INFO=yes
1706 - EOC
1707 - fi
1708 -
1709 - #
1710 - # authentication (SMTP AUTH)
1711 - #
1712 -
1713 - # standard bits
1714 - cat >> Makefile <<- EOC
1715 - AUTH_SPA=yes
1716 - AUTH_CRAM_MD5=yes
1717 - AUTH_PLAINTEXT=yes
1718 - EOC
1719 -
1720 - # Cyrus SASL
1721 - if use sasl; then
1722 - cat >> Makefile <<- EOC
1723 - CYRUS_SASLAUTHD_SOCKET=${EPREFIX}/run/saslauthd/mux
1724 - AUTH_CYRUS_SASL=yes
1725 - AUTH_LIBS += -lsasl2
1726 - EOC
1727 - fi
1728 -
1729 - # Dovecot
1730 - if use dovecot-sasl; then
1731 - cat >> Makefile <<- EOC
1732 - AUTH_DOVECOT=yes
1733 - EOC
1734 - fi
1735 -
1736 - # Pluggable Authentication Modules
1737 - if use pam; then
1738 - cat >> Makefile <<- EOC
1739 - SUPPORT_PAM=yes
1740 - AUTH_LIBS += -lpam
1741 - EOC
1742 - fi
1743 -
1744 - # Radius
1745 - if use radius; then
1746 - cat >> Makefile <<- EOC
1747 - RADIUS_CONFIG_FILE=${EPREFIX}/etc/radiusclient/radiusclient.conf
1748 - RADIUS_LIB_TYPE=RADIUSCLIENTNEW
1749 - AUTH_LIBS += -lfreeradius-client
1750 - EOC
1751 - fi
1752 -}
1753 -
1754 -src_compile() {
1755 - emake CC="$(tc-getCC)" HOSTCC="$(tc-getBUILD_CC)" \
1756 - AR="$(tc-getAR) cq" RANLIB="$(tc-getRANLIB)" FULLECHO=''
1757 -}
1758 -
1759 -src_install() {
1760 - cd "${S}"/build-exim-gentoo || die
1761 - dosbin exim
1762 - if use X; then
1763 - dosbin eximon.bin
1764 - dosbin eximon
1765 - fi
1766 - fperms 4755 /usr/sbin/exim
1767 -
1768 - dosym exim /usr/sbin/sendmail
1769 - dosym exim /usr/sbin/rsmtp
1770 - dosym exim /usr/sbin/rmail
1771 - dosym ../sbin/exim /usr/bin/mailq
1772 - dosym ../sbin/exim /usr/bin/newaliases
1773 - dosym ../sbin/sendmail /usr/lib/sendmail
1774 -
1775 - for i in exicyclog exim_dbmbuild exim_dumpdb exim_fixdb exim_lock \
1776 - exim_tidydb exinext exiwhat exigrep eximstats exiqsumm exiqgrep \
1777 - convert4r3 convert4r4 exipick
1778 - do
1779 - dosbin $i
1780 - done
1781 -
1782 - dodoc -r "${S}"/doc/.
1783 - doman "${S}"/doc/exim.8
1784 - use dsn && dodoc "${S}"/README.DSN
1785 - use doc && dodoc "${WORKDIR}"/${PN}-pdf-${PV//rc/RC}/doc/*.pdf
1786 -
1787 - # conf files
1788 - insinto /etc/exim
1789 - newins "${S}"/src/configure.default exim.conf.dist
1790 - if use exiscan-acl; then
1791 - newins "${S}"/src/configure.default exim.conf.exiscan-acl
1792 - fi
1793 - doins "${WORKDIR}"/system_filter.exim
1794 - doins "${FILESDIR}"/auth_conf.sub
1795 -
1796 - if use pam; then
1797 - pamd_mimic system-auth exim auth account
1798 - fi
1799 -
1800 - # headers, #436406
1801 - if use dlfunc ; then
1802 - # fixup includes so they actually can be found when including
1803 - sed -i \
1804 - -e '/#include "\(config\|store\|mytypes\).h"/s:"\(.\+\)":<exim/\1>:' \
1805 - local_scan.h || die
1806 - insinto /usr/include/exim
1807 - doins {config,local_scan}.h ../src/{mytypes,store}.h
1808 - fi
1809 -
1810 - insinto /etc/logrotate.d
1811 - newins "${FILESDIR}/exim.logrotate" exim
1812 -
1813 - newinitd "${FILESDIR}"/exim.rc10 exim
1814 - newconfd "${FILESDIR}"/exim.confd exim
1815 -
1816 - systemd_dounit \
1817 - "${FILESDIR}"/{exim.service,exim.socket,exim-submission.socket}
1818 - systemd_newunit \
1819 - "${FILESDIR}"/exim_at.service 'exim@.service'
1820 - systemd_newunit \
1821 - "${FILESDIR}"/exim-submission_at.service 'exim-submission@.service'
1822 -
1823 - diropts -m 0750 -o ${MAILUSER} -g ${MAILGROUP}
1824 - keepdir /var/log/${PN}
1825 -}
1826 -
1827 -pkg_postinst() {
1828 - if [[ ! -f ${EROOT}/etc/exim/exim.conf ]] ; then
1829 - einfo "${EROOT}/etc/exim/system_filter.exim is a sample system_filter."
1830 - einfo "${EROOT}/etc/exim/auth_conf.sub contains the configuration sub"
1831 - einfo "for using smtp auth."
1832 - einfo "Please create ${EROOT}/etc/exim/exim.conf from"
1833 - einfo " ${EROOT}/etc/exim/exim.conf.dist."
1834 - fi
1835 - if use dmarc ; then
1836 - einfo "DMARC support requires ${EROOT}/etc/exim/opendmarc.tlds"
1837 - einfo "you can populate this file with the contents downloaded from"
1838 - einfo " https://publicsuffix.org/list/public_suffix_list.dat"
1839 - fi
1840 - if use dcc ; then
1841 - einfo "DCC support is experimental, you can find some limited"
1842 - einfo "documentation at the bottom of this prerelease message:"
1843 - einfo " http://article.gmane.org/gmane.mail.exim.devel/3579"
1844 - fi
1845 - if use srs ; then
1846 - einfo "SRS support is experimental in this release of Exim"
1847 - if use srs-alt; then
1848 - elog "You are using libsrs_alt to implement SRS support."
1849 - elog "In future release of Exim, the native SRS implementation"
1850 - elog "(USE=srs-native) will become the default. Please prepare"
1851 - elog "your package.use or switch to USE=srs-native now."
1852 - fi
1853 - fi
1854 - use dsn && einfo "extra information in fail DSN message is experimental"
1855 - einfo
1856 - elog "Note that this release contains a tainted variable check that"
1857 - elog "is likely to break your configuration used with Exim 4.93 and before."
1858 - elog "Please check your transports for occurences of \$local_part, and"
1859 - elog "use a replacement like \$local_part_data where possible."
1860 -}
1861
1862 diff --git a/mail-mta/exim/files/exim-4.20-maildir.patch b/mail-mta/exim/files/exim-4.20-maildir.patch
1863 deleted file mode 100644
1864 index 3cb198d545c..00000000000
1865 --- a/mail-mta/exim/files/exim-4.20-maildir.patch
1866 +++ /dev/null
1867 @@ -1,14 +0,0 @@
1868 -diff -urN ./exim-4.20.orig/src/configure.default exim-4.20/src/configure.default
1869 ---- ./exim-4.20.orig/src/configure.default 2003-06-27 16:48:22.000000000 -0700
1870 -+++ exim-4.20/src/configure.default 2003-06-27 16:52:20.000000000 -0700
1871 -@@ -451,7 +451,9 @@
1872 -
1873 - local_delivery:
1874 - driver = appendfile
1875 -- file = /var/mail/$local_part
1876 -+# file = /var/mail/$local_part
1877 -+ directory = /home/$local_part/.maildir
1878 -+ maildir_format
1879 - delivery_date_add
1880 - envelope_to_add
1881 - return_path_add
1882
1883 diff --git a/mail-mta/exim/files/exim-4.93-CVE-2020-12783.patch b/mail-mta/exim/files/exim-4.93-CVE-2020-12783.patch
1884 deleted file mode 100644
1885 index c957d5541e4..00000000000
1886 --- a/mail-mta/exim/files/exim-4.93-CVE-2020-12783.patch
1887 +++ /dev/null
1888 @@ -1,83 +0,0 @@
1889 -auths/spa: fix for CVE-2020-12783
1890 -
1891 -This is a combined patch of git commits:
1892 -
1893 -57aa14b216432be381b6295c312065b2fd034f86
1894 -a04174dc2a84ae1008c23b6a7109e7fa3fb7b8b0
1895 -
1896 -leaving out whitespace noise for a smaller patch
1897 -and made it apply to the 4.93 release
1898 -
1899 -modified paths because Exim dists differ in layout from the git repo
1900 -
1901 -Fix SPA authenticator, checking client-supplied data before using it. Bug 2571
1902 -Rework SPA fix to avoid overflows. Bug 2571
1903 -
1904 -
1905 ---- a/src/auths/auth-spa.c
1906 -+++ b/src/auths/auth-spa.c
1907 -@@ -405,7 +405,7 @@ int
1908 - /* base 64 to raw bytes in quasi-big-endian order, returning count of bytes */
1909 - {
1910 - int len = 0;
1911 -- register uschar digit1, digit2, digit3, digit4;
1912 -+ uschar digit1, digit2, digit3, digit4;
1913 -
1914 - if (in[0] == '+' && in[1] == ' ')
1915 - in += 2;
1916 ---- a/src/auths/spa.c
1917 -+++ b/src/auths/spa.c
1918 -@@ -139,7 +139,8 @@ SPAAuthChallenge challenge;
1919 - SPAAuthResponse response;
1920 - SPAAuthResponse *responseptr = &response;
1921 - uschar msgbuf[2048];
1922 --uschar *clearpass;
1923 -+uschar *clearpass, *s;
1924 -+unsigned off;
1925 -
1926 - /* send a 334, MS Exchange style, and grab the client's request,
1927 - unless we already have it via an initial response. */
1928 -@@ -194,9 +195,19 @@ that causes failure if the size of msgbuf is exceeded. ****/
1929 -
1930 - {
1931 - int i;
1932 -- char *p = ((char*)responseptr) + IVAL(&responseptr->uUser.offset,0);
1933 -+ char * p;
1934 - int len = SVAL(&responseptr->uUser.len,0)/2;
1935 -
1936 -+ if ( (off = IVAL(&responseptr->uUser.offset,0)) >= sizeof(SPAAuthResponse)
1937 -+ || len >= sizeof(responseptr->buffer)/2
1938 -+ || (p = (CS responseptr) + off) + len*2 >= CS (responseptr+1)
1939 -+ )
1940 -+ {
1941 -+ DEBUG(D_auth)
1942 -+ debug_printf("auth_spa_server(): bad uUser spec in response\n");
1943 -+ return FAIL;
1944 -+ }
1945 -+
1946 - if (len + 1 >= sizeof(msgbuf)) return FAIL;
1947 - for (i = 0; i < len; ++i)
1948 - {
1949 -@@ -245,12 +256,16 @@ spa_smb_nt_encrypt(clearpass, challenge.challengeData, ntRespData);
1950 -
1951 - /* compare NT hash (LM may not be available) */
1952 -
1953 --if (memcmp(ntRespData,
1954 -- ((unsigned char*)responseptr)+IVAL(&responseptr->ntResponse.offset,0),
1955 -- 24) == 0)
1956 -- /* success. we have a winner. */
1957 -- {
1958 -+off = IVAL(&responseptr->ntResponse.offset,0);
1959 -+if (off >= sizeof(SPAAuthResponse) - 24)
1960 -+ {
1961 -+ DEBUG(D_auth)
1962 -+ debug_printf("auth_spa_server(): bad ntRespData spec in response\n");
1963 -+ return FAIL;
1964 -+ }
1965 -+s = (US responseptr) + off;
1966 -+
1967 -+if (memcmp(ntRespData, s, 24) == 0)
1968 - return auth_check_serv_cond(ablock);
1969 -- }
1970 -
1971 - /* Expand server_condition as an authorization check (PH) */
1972
1973 diff --git a/mail-mta/exim/files/exim-4.93-fno-common.patch b/mail-mta/exim/files/exim-4.93-fno-common.patch
1974 deleted file mode 100644
1975 index c5fff1c6720..00000000000
1976 --- a/mail-mta/exim/files/exim-4.93-fno-common.patch
1977 +++ /dev/null
1978 @@ -1,16 +0,0 @@
1979 -Fix -fno-common linking
1980 -
1981 -Bug: https://bugs.gentoo.org/723430
1982 -Bug: https://bugs.exim.org/show_bug.cgi?id=2577
1983 -
1984 ---- exim-4.93.0.4/src/globals.h
1985 -+++ exim-4.93.0.4/src/globals.h
1986 -@@ -342,7 +342,7 @@
1987 - extern BOOL allow_domain_literals; /* As it says */
1988 - extern BOOL allow_mx_to_ip; /* Allow MX records to -> ip address */
1989 - #ifdef EXPERIMENTAL_ARC
1990 --struct arc_set *arc_received; /* highest ARC instance evaluation struct */
1991 -+extern struct arc_set *arc_received; /* highest ARC instance evaluation struct */
1992 - extern int arc_received_instance; /* highest ARC instance number in headers */
1993 - extern int arc_oldest_pass; /* lowest passing instance number in headers */
1994 - extern const uschar *arc_state; /* verification state */
1995
1996 diff --git a/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch b/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch
1997 deleted file mode 100644
1998 index 0d016dbeb26..00000000000
1999 --- a/mail-mta/exim/files/exim-4.93-localscan_dlopen.patch
2000 +++ /dev/null
2001 @@ -1,269 +0,0 @@
2002 -diff -ur exim-4.92.orig/src/config.h.defaults exim-4.92/src/config.h.defaults
2003 ---- exim-4.92.orig/src/config.h.defaults 2019-01-30 14:59:52.000000000 +0100
2004 -+++ exim-4.92/src/config.h.defaults 2019-02-16 18:17:24.547216157 +0100
2005 -@@ -32,6 +32,8 @@
2006 -
2007 - #define AUTH_VARS 3
2008 -
2009 -+#define DLOPEN_LOCAL_SCAN
2010 -+
2011 - #define BIN_DIRECTORY
2012 -
2013 - #define CONFIGURE_FILE
2014 -Only in exim-4.92/src: config.h.defaults.orig
2015 -diff -ur exim-4.92.orig/src/EDITME exim-4.92/src/EDITME
2016 ---- exim-4.92.orig/src/EDITME 2019-01-30 14:59:52.000000000 +0100
2017 -+++ exim-4.92/src/EDITME 2019-02-16 18:17:24.547216157 +0100
2018 -@@ -824,6 +824,24 @@
2019 -
2020 -
2021 - #------------------------------------------------------------------------------
2022 -+# On systems which support dynamic loading of shared libraries, Exim can
2023 -+# load a local_scan function specified in its config file instead of having
2024 -+# to be recompiled with the desired local_scan function. For a full
2025 -+# description of the API to this function, see the Exim specification.
2026 -+
2027 -+#DLOPEN_LOCAL_SCAN=yes
2028 -+
2029 -+# If you set DLOPEN_LOCAL_SCAN, then you need to include -rdynamic in the
2030 -+# linker flags. Without it, the loaded .so won't be able to access any
2031 -+# functions from exim.
2032 -+
2033 -+LFLAGS = -rdynamic
2034 -+ifeq ($(OSTYPE),Linux)
2035 -+LFLAGS += -ldl
2036 -+endif
2037 -+
2038 -+
2039 -+#------------------------------------------------------------------------------
2040 - # The default distribution of Exim contains only the plain text form of the
2041 - # documentation. Other forms are available separately. If you want to install
2042 - # the documentation in "info" format, first fetch the Texinfo documentation
2043 -Only in exim-4.92/src: EDITME.orig
2044 -diff -ur exim-4.92.orig/src/globals.c exim-4.92/src/globals.c
2045 ---- exim-4.92.orig/src/globals.c 2019-01-30 14:59:52.000000000 +0100
2046 -+++ exim-4.92/src/globals.c 2019-02-16 18:17:24.549216150 +0100
2047 -@@ -41,6 +41,10 @@
2048 -
2049 - uschar *no_aliases = NULL;
2050 -
2051 -+#ifdef DLOPEN_LOCAL_SCAN
2052 -+uschar *local_scan_path = NULL;
2053 -+#endif
2054 -+
2055 -
2056 - /* For comments on these variables, see globals.h. I'm too idle to
2057 - duplicate them here... */
2058 -Only in exim-4.92/src: globals.c.orig
2059 -diff -ur exim-4.92.orig/src/globals.h exim-4.92/src/globals.h
2060 ---- exim-4.92.orig/src/globals.h 2019-01-30 14:59:52.000000000 +0100
2061 -+++ exim-4.92/src/globals.h 2019-02-16 18:17:24.549216150 +0100
2062 -@@ -152,6 +152,9 @@
2063 - extern int (*receive_ferror)(void);
2064 - extern BOOL (*receive_smtp_buffered)(void);
2065 -
2066 -+#ifdef DLOPEN_LOCAL_SCAN
2067 -+extern uschar *local_scan_path; /* Path to local_scan() library */
2068 -+#endif
2069 -
2070 - /* For clearing, saving, restoring address expansion variables. We have to have
2071 - the size of this vector set explicitly, because it is referenced from more than
2072 -Only in exim-4.92/src: globals.h.orig
2073 -diff -ur exim-4.92.orig/src/local_scan.c exim-4.92/src/local_scan.c
2074 ---- exim-4.92.orig/src/local_scan.c 2019-01-30 14:59:52.000000000 +0100
2075 -+++ exim-4.92/src/local_scan.c 2019-02-16 18:29:56.832732592 +0100
2076 -@@ -5,61 +5,133 @@
2077 - /* Copyright (c) University of Cambridge 1995 - 2009 */
2078 - /* See the file NOTICE for conditions of use and distribution. */
2079 -
2080 -+#include "local_scan.h"
2081 -
2082 --/******************************************************************************
2083 --This file contains a template local_scan() function that just returns ACCEPT.
2084 --If you want to implement your own version, you should copy this file to, say
2085 --Local/local_scan.c, and edit the copy. To use your version instead of the
2086 --default, you must set
2087 --
2088 --HAVE_LOCAL_SCAN=yes
2089 --LOCAL_SCAN_SOURCE=Local/local_scan.c
2090 --
2091 --in your Local/Makefile. This makes it easy to copy your version for use with
2092 --subsequent Exim releases.
2093 --
2094 --For a full description of the API to this function, see the Exim specification.
2095 --******************************************************************************/
2096 --
2097 --
2098 --/* This is the only Exim header that you should include. The effect of
2099 --including any other Exim header is not defined, and may change from release to
2100 --release. Use only the documented interface! */
2101 --
2102 --#include "local_scan.h"
2103 --
2104 --
2105 --/* This is a "do-nothing" version of a local_scan() function. The arguments
2106 --are:
2107 --
2108 -- fd The file descriptor of the open -D file, which contains the
2109 -- body of the message. The file is open for reading and
2110 -- writing, but modifying it is dangerous and not recommended.
2111 --
2112 -- return_text A pointer to an unsigned char* variable which you can set in
2113 -- order to return a text string. It is initialized to NULL.
2114 --
2115 --The return values of this function are:
2116 --
2117 -- LOCAL_SCAN_ACCEPT
2118 -- The message is to be accepted. The return_text argument is
2119 -- saved in $local_scan_data.
2120 --
2121 -- LOCAL_SCAN_REJECT
2122 -- The message is to be rejected. The returned text is used
2123 -- in the rejection message.
2124 --
2125 -- LOCAL_SCAN_TEMPREJECT
2126 -- This specifies a temporary rejection. The returned text
2127 -- is used in the rejection message.
2128 --*/
2129 -+#ifdef DLOPEN_LOCAL_SCAN
2130 -+#include <stdlib.h>
2131 -+#include <dlfcn.h>
2132 -+static int (*local_scan_fn)(int fd, uschar **return_text) = NULL;
2133 -+static int load_local_scan_library(void);
2134 -+extern uschar *local_scan_path; /* Path to local_scan() library */
2135 -+#endif
2136 -
2137 - int
2138 - local_scan(int fd, uschar **return_text)
2139 - {
2140 - fd = fd; /* Keep picky compilers happy */
2141 - return_text = return_text;
2142 --return LOCAL_SCAN_ACCEPT;
2143 -+#ifdef DLOPEN_LOCAL_SCAN
2144 -+/* local_scan_path is defined AND not the empty string */
2145 -+if (local_scan_path && *local_scan_path)
2146 -+ {
2147 -+ if (!local_scan_fn)
2148 -+ {
2149 -+ if (!load_local_scan_library())
2150 -+ {
2151 -+ char *base_msg , *error_msg , *final_msg ;
2152 -+ int final_length = -1 ;
2153 -+
2154 -+ base_msg=US"Local configuration error - local_scan() library failure\n";
2155 -+ error_msg = dlerror() ;
2156 -+
2157 -+ final_length = strlen(base_msg) + strlen(error_msg) + 1 ;
2158 -+ final_msg = (char*)malloc( final_length*sizeof(char) ) ;
2159 -+ *final_msg = '\0' ;
2160 -+
2161 -+ strcat( final_msg , base_msg ) ;
2162 -+ strcat( final_msg , error_msg ) ;
2163 -+
2164 -+ *return_text = final_msg ;
2165 -+ return LOCAL_SCAN_TEMPREJECT;
2166 -+ }
2167 -+ }
2168 -+ return local_scan_fn(fd, return_text);
2169 -+ }
2170 -+else
2171 -+#endif
2172 -+ return LOCAL_SCAN_ACCEPT;
2173 -+}
2174 -+
2175 -+#ifdef DLOPEN_LOCAL_SCAN
2176 -+
2177 -+static int load_local_scan_library(void)
2178 -+{
2179 -+/* No point in keeping local_scan_lib since we'll never dlclose() anyway */
2180 -+void *local_scan_lib = NULL;
2181 -+int (*local_scan_version_fn)(void);
2182 -+int vers_maj;
2183 -+int vers_min;
2184 -+
2185 -+local_scan_lib = dlopen(local_scan_path, RTLD_NOW);
2186 -+if (!local_scan_lib)
2187 -+ {
2188 -+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library open failed - "
2189 -+ "message temporarily rejected");
2190 -+ return FALSE;
2191 -+ }
2192 -+
2193 -+local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version_major");
2194 -+if (!local_scan_version_fn)
2195 -+ {
2196 -+ dlclose(local_scan_lib);
2197 -+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
2198 -+ "local_scan_version_major() function - message temporarily rejected");
2199 -+ return FALSE;
2200 -+ }
2201 -+
2202 -+/* The major number is increased when the ABI is changed in a non
2203 -+ backward compatible way. */
2204 -+vers_maj = local_scan_version_fn();
2205 -+
2206 -+local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version_minor");
2207 -+if (!local_scan_version_fn)
2208 -+ {
2209 -+ dlclose(local_scan_lib);
2210 -+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
2211 -+ "local_scan_version_minor() function - message temporarily rejected");
2212 -+ return FALSE;
2213 -+ }
2214 -+
2215 -+/* The minor number is increased each time a new feature is added (in a
2216 -+ way that doesn't break backward compatibility) -- Marc */
2217 -+vers_min = local_scan_version_fn();
2218 -+
2219 -+
2220 -+if (vers_maj != LOCAL_SCAN_ABI_VERSION_MAJOR)
2221 -+ {
2222 -+ dlclose(local_scan_lib);
2223 -+ local_scan_lib = NULL;
2224 -+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has an incompatible major"
2225 -+ "version number, you need to recompile your module for this version"
2226 -+ "of exim (The module was compiled for version %d.%d and this exim provides"
2227 -+ "ABI version %d.%d)", vers_maj, vers_min, LOCAL_SCAN_ABI_VERSION_MAJOR,
2228 -+ LOCAL_SCAN_ABI_VERSION_MINOR);
2229 -+ return FALSE;
2230 -+ }
2231 -+else if (vers_min > LOCAL_SCAN_ABI_VERSION_MINOR)
2232 -+ {
2233 -+ dlclose(local_scan_lib);
2234 -+ local_scan_lib = NULL;
2235 -+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has an incompatible minor"
2236 -+ "version number, you need to recompile your module for this version"
2237 -+ "of exim (The module was compiled for version %d.%d and this exim provides"
2238 -+ "ABI version %d.%d)", vers_maj, vers_min, LOCAL_SCAN_ABI_VERSION_MAJOR,
2239 -+ LOCAL_SCAN_ABI_VERSION_MINOR);
2240 -+ return FALSE;
2241 -+ }
2242 -+
2243 -+local_scan_fn = dlsym(local_scan_lib, "local_scan");
2244 -+if (!local_scan_fn)
2245 -+ {
2246 -+ dlclose(local_scan_lib);
2247 -+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
2248 -+ "local_scan() function - message temporarily rejected");
2249 -+ return FALSE;
2250 -+ }
2251 -+
2252 -+return TRUE;
2253 - }
2254 -
2255 -+#endif /* DLOPEN_LOCAL_SCAN */
2256 -+
2257 - /* End of local_scan.c */
2258 -diff -ur exim-4.92.orig/src/readconf.c exim-4.92/src/readconf.c
2259 ---- exim-4.92.orig/src/readconf.c 2019-01-30 14:59:52.000000000 +0100
2260 -+++ exim-4.92/src/readconf.c 2019-02-16 18:18:46.013947455 +0100
2261 -@@ -199,6 +199,9 @@
2262 - { "local_from_prefix", opt_stringptr, &local_from_prefix },
2263 - { "local_from_suffix", opt_stringptr, &local_from_suffix },
2264 - { "local_interfaces", opt_stringptr, &local_interfaces },
2265 -+#ifdef DLOPEN_LOCAL_SCAN
2266 -+ { "local_scan_path", opt_stringptr, &local_scan_path },
2267 -+#endif
2268 - #ifdef HAVE_LOCAL_SCAN
2269 - { "local_scan_timeout", opt_time, &local_scan_timeout },
2270 - #endif
2271
2272 diff --git a/mail-mta/exim/files/exim-4.93-radius.patch b/mail-mta/exim/files/exim-4.93-radius.patch
2273 deleted file mode 100644
2274 index 55c52bee561..00000000000
2275 --- a/mail-mta/exim/files/exim-4.93-radius.patch
2276 +++ /dev/null
2277 @@ -1,66 +0,0 @@
2278 -From 70b28b113e21d21a528876c3abe88ccb5f7cc77d Mon Sep 17 00:00:00 2001
2279 -From: Fabian Groffen <grobian@g.o>
2280 -Date: Sat, 9 May 2020 11:35:12 +0200
2281 -Subject: [PATCH] call_radius: fix compilation due to incorrect usage of
2282 - string_sprintf
2283 -
2284 -Since f3ebb786e451da973560f1c9d8cdb151d25108b5, string_sprintf cannot be
2285 -used without arguments any more, so use US directly.
2286 -
2287 -While at it, also make newline usage consistent to not return a newline
2288 -in errptr, when it is debug-printed, a newline is added.
2289 -
2290 -https://bugs.gentoo.org/720364
2291 -
2292 -Signed-off-by: Fabian Groffen <grobian@g.o>
2293 ----
2294 - src/src/auths/call_radius.c | 16 ++++++++--------
2295 - 1 file changed, 8 insertions(+), 8 deletions(-)
2296 -
2297 -diff --git a/src/src/auths/call_radius.c b/src/src/auths/call_radius.c
2298 -index c3637436d..253fd75cd 100644
2299 ---- a/src/src/auths/call_radius.c
2300 -+++ b/src/src/auths/call_radius.c
2301 -@@ -115,16 +115,16 @@ if (rc_read_config(RADIUS_CONFIG_FILE) != 0)
2302 - *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE);
2303 -
2304 - else if (rc_read_dictionary(rc_conf_str("dictionary")) != 0)
2305 -- *errptr = string_sprintf("RADIUS: can't read dictionary");
2306 -+ *errptr = US("RADIUS: can't read dictionary");
2307 -
2308 - else if (rc_avpair_add(&send, PW_USER_NAME, user, 0) == NULL)
2309 -- *errptr = string_sprintf("RADIUS: add user name failed\n");
2310 -+ *errptr = US("RADIUS: add user name failed");
2311 -
2312 - else if (rc_avpair_add(&send, PW_USER_PASSWORD, CS radius_args, 0) == NULL)
2313 -- *errptr = string_sprintf("RADIUS: add password failed\n");
2314 -+ *errptr = US("RADIUS: add password failed");
2315 -
2316 - else if (rc_avpair_add(&send, PW_SERVICE_TYPE, &service, 0) == NULL)
2317 -- *errptr = string_sprintf("RADIUS: add service type failed\n");
2318 -+ *errptr = US("RADIUS: add service type failed");
2319 -
2320 - #else /* RADIUS_LIB_RADIUSCLIENT unset => RADIUS_LIB_RADIUSCLIENT2 */
2321 -
2322 -@@ -132,17 +132,17 @@ if ((h = rc_read_config(RADIUS_CONFIG_FILE)) == NULL)
2323 - *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE);
2324 -
2325 - else if (rc_read_dictionary(h, rc_conf_str(h, "dictionary")) != 0)
2326 -- *errptr = string_sprintf("RADIUS: can't read dictionary");
2327 -+ *errptr = US("RADIUS: can't read dictionary");
2328 -
2329 - else if (rc_avpair_add(h, &send, PW_USER_NAME, user, Ustrlen(user), 0) == NULL)
2330 -- *errptr = string_sprintf("RADIUS: add user name failed\n");
2331 -+ *errptr = US("RADIUS: add user name failed");
2332 -
2333 - else if (rc_avpair_add(h, &send, PW_USER_PASSWORD, CS radius_args,
2334 - Ustrlen(radius_args), 0) == NULL)
2335 -- *errptr = string_sprintf("RADIUS: add password failed\n");
2336 -+ *errptr = US("RADIUS: add password failed");
2337 -
2338 - else if (rc_avpair_add(h, &send, PW_SERVICE_TYPE, &service, 0, 0) == NULL)
2339 -- *errptr = string_sprintf("RADIUS: add service type failed\n");
2340 -+ *errptr = US("RADIUS: add service type failed");
2341 -
2342 - #endif /* RADIUS_LIB_RADIUSCLIENT */
2343 -
2344
2345 diff --git a/mail-mta/exim/files/exim-4.94-taint-pam-expansion.patch b/mail-mta/exim/files/exim-4.94-taint-pam-expansion.patch
2346 deleted file mode 100644
2347 index 81863d340ed..00000000000
2348 --- a/mail-mta/exim/files/exim-4.94-taint-pam-expansion.patch
2349 +++ /dev/null
2350 @@ -1,35 +0,0 @@
2351 -From f7f933a199be8bb7362c715e0040545b514cddca Mon Sep 17 00:00:00 2001
2352 -From: Jeremy Harris <jgh146exb@×××××××.org>
2353 -Date: Tue, 2 Jun 2020 14:50:31 +0100
2354 -Subject: [PATCH] Taint: fix pam expansion condition. Bug 2587
2355 -
2356 ----
2357 - doc/doc-txt/ChangeLog | 5 +++++
2358 - src/src/auths/call_pam.c | 5 ++---
2359 - 2 files changed, 7 insertions(+), 3 deletions(-)
2360 -
2361 -modified for gentoo so the patch applies by dropping Changelog part
2362 -
2363 -diff --git a/src/src/auths/call_pam.c b/src/src/auths/call_pam.c
2364 -index 2959cbbf3..80bb23ec3 100644
2365 ---- a/src/src/auths/call_pam.c
2366 -+++ b/src/src/auths/call_pam.c
2367 -@@ -83,8 +83,7 @@ for (int i = 0; i < num_msg; i++)
2368 - {
2369 - case PAM_PROMPT_ECHO_ON:
2370 - case PAM_PROMPT_ECHO_OFF:
2371 -- arg = string_nextinlist(&pam_args, &sep, big_buffer, big_buffer_size);
2372 -- if (!arg)
2373 -+ if (!(arg = string_nextinlist(&pam_args, &sep, NULL, 0)))
2374 - {
2375 - arg = US"";
2376 - pam_arg_ended = TRUE;
2377 -@@ -155,7 +154,7 @@ pam_arg_ended = FALSE;
2378 - fail. PAM doesn't support authentication with an empty user (it prompts for it,
2379 - causing a potential mis-interpretation). */
2380 -
2381 --user = string_nextinlist(&pam_args, &sep, big_buffer, big_buffer_size);
2382 -+user = string_nextinlist(&pam_args, &sep, NULL, 0);
2383 - if (user == NULL || user[0] == 0) return FAIL;
2384 -
2385 - /* Start off PAM interaction */