From 288d9455931660abb6dfa534a78d45c7fb901477 Mon Sep 17 00:00:00 2001
From: V3n3RiX <venerix@koprulu.sector>
Date: Sun, 6 Apr 2025 01:34:40 +0100
Subject: gentoo auto-resync : 06:04:2025 - 01:34:40

---
 mail-mta/Manifest.gz                             | Bin 2376 -> 2381 bytes
 mail-mta/exim/Manifest                           |   7 +-
 mail-mta/exim/exim-4.98.2.ebuild                 | 642 +++++++++++++++++++++++
 mail-mta/exim/exim-4.98.ebuild                   | 640 ----------------------
 mail-mta/exim/files/exim-4.98-tidydb-crash.patch |  16 +
 5 files changed, 662 insertions(+), 643 deletions(-)
 create mode 100644 mail-mta/exim/exim-4.98.2.ebuild
 delete mode 100644 mail-mta/exim/exim-4.98.ebuild
 create mode 100644 mail-mta/exim/files/exim-4.98-tidydb-crash.patch

(limited to 'mail-mta')

diff --git a/mail-mta/Manifest.gz b/mail-mta/Manifest.gz
index 82441a11773b..576f03cec5f2 100644
Binary files a/mail-mta/Manifest.gz and b/mail-mta/Manifest.gz differ
diff --git a/mail-mta/exim/Manifest b/mail-mta/exim/Manifest
index 253bff97bd73..a1114a7d0502 100644
--- a/mail-mta/exim/Manifest
+++ b/mail-mta/exim/Manifest
@@ -11,6 +11,7 @@ AUX exim-4.97-no-exim_id_update.patch 402 BLAKE2B 0c2f7ec1fe995f8ee58c6907e14936
 AUX exim-4.97.1-CVE-2024-39929-part1.patch 3624 BLAKE2B c58d8d2ed56acf36d851ff8cc17569aa01da3d71582f6813f43d397a7333381b7cd6acfa6923111e403ff71413a3c8d11ea1df48f8a846fcea9b0479103008cc SHA512 0d1a4080d657895153e32111fea33daee1efb2a79d1699310135fd0a25935695b016ed55e7889583170b058c072e251833057d4bbdb59a032dbb8491b8c24b8c
 AUX exim-4.97.1-CVE-2024-39929-part2.patch 7476 BLAKE2B 14a7b0e5711307cab2e19b1325162503b8e9167cc527f520d4fe395d6582a0bb8f80c058c3502487bde0414d14ae0e7fbebab5d3e471e4764679de12ad0c9600 SHA512 123bf547ee2f09f0c97f01c64c6452103eb972daf2c364b475b5d841b9d972551f03550f7dfedd8340ffd4cc3f4b6e077f04a9ea87c89d1cc3cca330249ded33
 AUX exim-4.97.1-memory-usage-bug-3047.patch 8680 BLAKE2B 6c027bebf5d2499d92cf442d3d1beaade645f59b3b6ed4e0f20db763a8697d4f77cbe2d727136df18486a9374f2c46754fa8f89da6361cb1b42812034ac0de7c SHA512 0397318fdc9de3bc9707fad84b6c5c3fec23e5c3d211d090412a907855b74013d6dde1193d590b2162e72167156c8816e9649e18081feba3061431555d6f69c6
+AUX exim-4.98-tidydb-crash.patch 357 BLAKE2B 7cf8f27a0e0e8ee70078548059faf3ea131c11731287525249aa238a5473187b729ee62a21306cd801b120f1f4f315e6a52f451c0cdf8b34f5824759e54d9dfd SHA512 68a6842b28f3e0758e453a0a41362d21ca2a01001107598207614cbcb51b7742fec022d5f51905ff0232adbc5292980f82b4130900d18fb0911bc7738db8e9bd
 AUX exim-submission.socket 161 BLAKE2B 409a5a687897af369a6a2ff0c30564096cc6b308dbc5d0afb6742df44d2aa972e45bad9681d2cb72be9731b260d23fdadb80bae644e7b875af5e34e9c8b8b40f SHA512 4a233761793e3510e9efa5aad3a6098c41b757f13133a7ea825680f2b393aba8d7935f16bf1dd065dde884fe7ba45639a8d398333a7d9bf0a6b72f88c8f2a09d
 AUX exim-submission_at.service 360 BLAKE2B 9ebcac1ab0f01a8264141843a4e711d77f634bdd910406bd466a0c197fdad8a9ff4bc31b9b28ef73c810aaff3e549eb60c0a2546507910dfc800da154eb1da00 SHA512 dc28698f15e8eaa4614ae81fc8cb76d92fed1110ce02f7a6ee8feace418dbb194711eb2d4dd444cf818628c11721e21d80b7b974879ab6ddd78cc717cce17c2f
 AUX exim.confd 141 BLAKE2B bc200e6121544d17e7feb0e162b5f6a5157647c3323492218da1556a19f3a2febf89a698e157a6dc657540d2f46088a9b1e34700655c715fbeaf0c201bc4aa9f SHA512 cb5e4aa71d3f0b7945e9806064f6a3ab64cb894381654ead40c73a49ae2d1bbb3dc587919952a09b2c81b9fcf8784f73d59c12081cda96a5b7210442f5088998
@@ -20,10 +21,10 @@ AUX exim.service 229 BLAKE2B 6d6396ef98b8e7c4fcfa28e24223bd58393387abedfb960284d
 AUX exim.socket 139 BLAKE2B bb8281a98fdac1b52031d5250fd1e658bf5a2c32e24b49ed0daa857d0d32285abf6db23c3d717992c43443ab4bcd97a19ec3811f182200a2d99a48ced6cfb6bc SHA512 db621116907ceb573e6f34581f47c91f751bff593054d7ddc32397b34c7f2405bec184bdb0589d2ac457fa3a61bcba072761e3a6293a99c9c764d2d9fd6069ae
 AUX exim_at.service 140 BLAKE2B 8624f4a555e2acdc7aaf917952c4152ad00dc063a51076aefa1d023d47d5f7fe8b268f3308734f363ed9628cd8551ccac7fc369657e0fdf65507d2e6419f704c SHA512 11c8133ee15b3e5193c9b1c59aed66c81b6e045dd23310bede9fcde6c88905db5ef08afdb798b53b75a7465915ea1247e980edf95db07a7f9b7bb58ce95fbb5a
 DIST exim-4.97.1.tar.xz 1919308 BLAKE2B ea41bf851185c7330e648c7757f2bf0b0aea3133e399630a40d220f5f542e9055e3ed0cd67c9ee5dcede281ccc17919a4ac328abd8f05d4d828e0381f10df0b8 SHA512 eab7ca28b37f1635c48f5e963ab69fcbad539b2c35a84286ecaad7d7ff5210bbefce86452302e08099afdc0710f9cb7ca6d9b152b0ba88a19292f7c5541e0cfc
-DIST exim-4.98.tar.xz 1936984 BLAKE2B 927108e25eb60fb97e390916a4623339ccdd2dc9aaa1de1f913855f04f2372da765c12cc03c97b0ad49e47ea6200370490100407898ad3881ca41ade0940461a SHA512 13dd963dd0899bb4d64bee44c20883e720e469a4d77456b877d6693cfc4419805a045cb561508cdf763dbb37cc84fbdc6177d68acc2183934c3224fbd03caf15
+DIST exim-4.98.2.tar.xz 1929020 BLAKE2B 7e8b11de364735a0d3d1d1d269ec0a8030530daca141163fb5a57c6f2a93dbd6298cbb0fc422d9e9f4ca363e675923fe952ba52080767a6f9c21ace9d01821ab SHA512 aaa4cfc8aee90818c6d1c2fd0cf64b82668d1a343f462f678b38b2b79e10a467240f2e81786eec7705eec3598d23686a74437c50b68502f29ff67788393c812a
 DIST exim-pdf-4.97.1.tar.xz 2139688 BLAKE2B baadbb6ca7b88b11ea88f6b5ce0c96d9d713a1f5b358e4dfb52647ccc2bb1a9a6f74e75341839a8ee7df327f2f5645dbf223e4e5923631b02aa53a777701b436 SHA512 6aa733b1d48b6237f458939ff53e484e702f47a0c10ba781ba101db404d39667bd2ddc876af4f597deda1991e534d5b8b874c549e6a86b5325ebd624a6713183
-DIST exim-pdf-4.98.tar.xz 2148892 BLAKE2B 032660d946d54684ab495fd93fc600f2c2611ed87cfae2f15b4dc1e4e2a1de2eea4ba273f25085b7f8a5be481848129c366daad9447bd185ca087800a3ea1c9f SHA512 e9abce5c37fd102243c08f3eb25fe44d2fb79a9e41b23aa8f72b87d26fdb8ab13d2da8d0a7bf2ee4f9ce84d69c72f80483ca375710cd4ab87c32270ce1392641
+DIST exim-pdf-4.98.2.tar.xz 2139176 BLAKE2B 7ac5a0e4107ce3928417bcc39fef6ad6ab817ad415290dc2be913f5df56ee24ee89b26ed7be07b10580b14690b89548ef9c14ed98ddaa57133ec4d6940e2014d SHA512 ca33c47911e44f1d3918180389259e9f2e7256a2186130667dfbe71d244eb3d8df5d56136fe48b564cc756c776678780d444afc99f3163e2852f9e067739fd34
 DIST system_filter.exim.gz 3075 BLAKE2B d05e872b5cef377d29126cda03fc0a74c8777b2119b76ff43da6e8de808035eb9bfcb034a85d81824f135d484e864bfc0629fc1af2c228a7277d5ee7cf9cde79 SHA512 cb358d3ce2499a0bb5920d962a06f2af8486e55ec90c8c928bd8e3aefb279aa57f5f960d5adfcef68bd94110b405eaa144e9629cfe6014a529c79c544600bbf3
 EBUILD exim-4.97.1-r6.ebuild 15532 BLAKE2B 1966575423ae14f92870ef41fe372382453c1140e2d4cf936ca13c5edf291be937cf03861d9ad16e04503ba14611b9e51a6042a7a0424a34f87cbac8dc405078 SHA512 40338c59c9cd0e1175e0eb606277615deaa18da9d43e25f03fa5fadc7e8c96801e5b458d50d66a43e803bfa143cb6f36831c0ca7fbf21c4bae16c6882354fc8b
-EBUILD exim-4.98.ebuild 15343 BLAKE2B 18991173f8ecd3c57cbe12a88ed667c41b680362c45c1ff812987cebb0a3922800cc8944f9826aa8421bdf4eacf58d6e530ddcc54e4396f4e337edf7bae435e4 SHA512 623d7bfc7b42ab11a74756fa5cb1cf808ede4060dd606bb8c8cb1cc64b130349e846a5c75ba0fab6ed7241f682cc3f377f8ce5427582891c52085d79675ab4a9
+EBUILD exim-4.98.2.ebuild 15408 BLAKE2B 24cf1e0e6808964f1b1162ba3fcd73bb4194b63c6c04e364dc60279548f70ae7bc814c83f7246415691b1c47bb65391a17388de647642899c3eaf315377467be SHA512 d29d7668c2ae56ff02fb8abecbc43f41ddc88c1f4ed85d1ff0a6d1ca7aa3920d0739eafc22905ab5651b43b0d04df360e675fd283ddd87e4bfb687ad9af7385f
 MISC metadata.xml 2488 BLAKE2B 2b6eee3c45210da4bb79ed1a01801cabbdf2be353652602b60cb7c512426197eb14defb2382dd71bcbf0101685a8e5d2f58d52fbee402894f2d86e51329d2165 SHA512 1b3f9fe9cbff738595101b32179f5c8230b5afefcce5266e06db97a3a07a73ad842f0a8be44f421a71e120cdff11e262ba1893f1c7117a0a4c42cf5f37a44d7b
diff --git a/mail-mta/exim/exim-4.98.2.ebuild b/mail-mta/exim/exim-4.98.2.ebuild
new file mode 100644
index 000000000000..44aa4d7194a5
--- /dev/null
+++ b/mail-mta/exim/exim-4.98.2.ebuild
@@ -0,0 +1,642 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit db-use flag-o-matic toolchain-funcs pam systemd
+
+DESCRIPTION="A highly configurable, drop-in replacement for sendmail"
+HOMEPAGE="https://www.exim.org/"
+
+SDIR=$(
+	[[ ${PV} == *_rc* ]]   && echo /test
+	[[ ${PV} == *.*.*.* ]] && echo /fixes
+)
+COMM_URI="https://downloads.exim.org/exim4${SDIR}"
+
+SRC_URI="${COMM_URI}/${P//_rc/-RC}.tar.xz
+	mirror://gentoo/system_filter.exim.gz
+	doc? ( ${COMM_URI}/${PN}-pdf-${PV//_rc/-RC}.tar.xz )"
+S=${WORKDIR}/${P//_rc/-RC}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+
+IUSE="arc berkdb +dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl
+dsn gdbm gnutls idn ipv6 ldap lmtp maildir mbx
+mysql nis pam perl pkcs11 postgres +prdr proxy radius redis sasl selinux
+socks5 spf sqlite srs +ssl syslog tdb tcpd +tpda X"
+REQUIRED_USE="
+	arc? ( dkim spf )
+	dane? ( ssl !gnutls )
+	!dane? ( ssl? ( gnutls ) )
+	dmarc? ( dkim spf )
+	dkim? ( ssl !gnutls )
+	gnutls? ( ssl )
+	pkcs11? ( ssl )
+	|| ( berkdb gdbm tdb sqlite )
+"
+# NOTE on USE="gnutls dane", gnutls[dane] is masked in base, unmasked
+# for x86 and amd64 only (probably due to unbound dep)
+# Exim supports it but we cannot express the dep USE=dane when
+# USE=gnutls is in effect only in package.use.mask, the only option we
+# have left is to a) ignore the dependency (but that results in bug
+# #661164) or b) mask the usage of USE=dane with USE=gnutls.  Both are
+# incorrect, but b) is the only "correct" view from dep-pointofview.
+# Bug #925108 showed that DANE is basically non-optional with OpenSSL,
+# so we make -dane mandatory to use gnutls.  Bleh.
+# We cannot express a required use for berkdb/gdbm/tdb correctly because
+# berkdb and gdbm are both enabled in base profile
+
+COMMON_DEPEND=">=sys-apps/sed-4.0.5
+	dev-libs/libpcre2:=
+	tdb? ( sys-libs/tdb:= )
+	!tdb? ( berkdb? ( >=sys-libs/db-3.2:= <sys-libs/db-6:= ) )
+	!tdb? ( !berkdb? ( sys-libs/gdbm:= ) )
+	idn? ( net-dns/libidn:= net-dns/libidn2:= )
+	perl? ( dev-lang/perl:= )
+	pam? ( sys-libs/pam )
+	tcpd? ( sys-apps/tcp-wrappers )
+	ssl? (
+		gnutls? (
+			net-libs/gnutls:0=[pkcs11?]
+			dev-libs/libtasn1
+		)
+		!gnutls? (
+			dev-libs/openssl:0=
+		)
+	)
+	ldap? ( >=net-nds/openldap-2.0.7:= )
+	elibc_glibc? (
+		net-libs/libnsl:=
+		nis? (
+			net-libs/libtirpc:=
+			>=net-libs/libnsl-1:=
+		)
+	)
+	mysql? ( dev-db/mysql-connector-c:= )
+	postgres? ( dev-db/postgresql:= )
+	sasl? ( >=dev-libs/cyrus-sasl-2.1.26-r2 )
+	redis? ( dev-libs/hiredis:= )
+	spf? ( >=mail-filter/libspf2-1.2.5-r1 )
+	dmarc? ( mail-filter/opendmarc:= )
+	X? (
+		x11-libs/libX11
+		x11-libs/libXmu
+		x11-libs/libXt
+		x11-libs/libXaw
+	)
+	sqlite? ( dev-db/sqlite:= )
+	radius? ( net-dialup/freeradius-client )
+	virtual/libcrypt:=
+	virtual/libiconv
+	"
+	# added X check for #57206
+BDEPEND="virtual/pkgconfig"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}
+	!mail-mta/courier
+	!mail-mta/esmtp
+	!mail-mta/msmtp[mta]
+	!mail-mta/netqmail
+	!mail-mta/nullmailer
+	!mail-mta/postfix
+	!mail-mta/sendmail
+	!mail-mta/opensmtpd
+	!mail-mta/ssmtp[mta]
+	>=net-mail/mailbase-0.00-r5
+	virtual/logger
+	dcc? ( mail-filter/dcc )
+	selinux? ( sec-policy/selinux-exim )
+	"
+
+src_prepare() {
+	# Legacy patches which need a respin for -p1
+	eapply -p0 "${FILESDIR}"/exim-4.14-tail.patch
+	eapply -p0 "${FILESDIR}"/exim-4.74-radius-db-ENV-clash.patch # 287426
+	eapply     "${FILESDIR}"/exim-4.97-as-needed-ldflags.patch # 352265, 391279
+	eapply -p0 "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591
+	eapply     "${FILESDIR}"/exim-4.69-r1.27021.patch
+	eapply     "${FILESDIR}"/exim-4.97-localscan_dlopen.patch
+	eapply     "${FILESDIR}"/exim-4.97-no-exim_id_update.patch
+	eapply     "${FILESDIR}"/exim-4.98-tidydb-crash.patch # upstream #3144
+
+	# oddity, they disable berkdb as hack, and then throw an error when
+	# berkdb isn't enabled
+	sed -i \
+		-e 's/_DB_/_DONTMESS_/' \
+		-e 's/define DB void/define DONTMESS void/' \
+		src/auths/call_radius.c || die
+
+	if use maildir ; then
+		eapply "${FILESDIR}"/exim-4.94-maildir.patch
+	else
+		eapply -p0 "${FILESDIR}"/exim-4.80-spool-mail-group.patch # 438606
+	fi
+
+	eapply_user
+
+	# user Exim believes it should be
+	MAILUSER=mail
+	MAILGROUP=mail
+	if use prefix && [[ ${EUID} != 0 ]] ; then
+		MAILUSER=$(id -un)
+		MAILGROUP=$(id -gn)
+	fi
+}
+
+src_configure() {
+	# general config and paths
+
+	local aliases="${EPREFIX}/etc/mail/aliases"
+	sed -i \
+		-e "/SYSTEM_ALIASES_FILE/s'SYSTEM_ALIASES_FILE'${aliases}'" \
+		src/configure.default || die
+
+	sed -i -e 's/^buildname=.*/buildname=exim-gentoo/' Makefile || die
+
+	if use elibc_musl; then
+		sed -i -e 's/^LIBS = -lnsl/LIBS =/g' OS/Makefile-Linux || die
+		append-cflags -DNO_EXECINFO
+	fi
+
+	local conffile="${EPREFIX}/etc/exim/exim.conf"
+	sed -e "48i\CFLAGS=${CFLAGS}" \
+		-e "s:BIN_DIRECTORY=/usr/exim/bin:BIN_DIRECTORY=${EPREFIX}/usr/sbin:" \
+		-e "s;EXIM_USER=;EXIM_USER=ref:${MAILUSER};" \
+		-e "s:CONFIGURE_FILE=.*$:CONFIGURE_FILE=${conffile}:" \
+		-e "s:ZCAT_COMMAND=.*$:ZCAT_COMMAND=${EPREFIX}/bin/zcat:" \
+		-e "s:COMPRESS_COMMAND=.*$:COMPRESS_COMMAND=${EPREFIX}/bin/gzip:" \
+		-e "s:^LOOKUP_DBM = yes:# LOOKUP_DBM = yes:" \
+		src/EDITME > Local/Makefile || die
+
+	# work on Local/Makefile from now on
+	cd Local
+
+	cat >> Makefile <<- EOC
+		INFO_DIRECTORY=${EPREFIX}/usr/share/info
+		PID_FILE_PATH=${EPREFIX}/run/exim.pid
+		SPOOL_DIRECTORY=${EPREFIX}/var/spool/exim
+		HAVE_ICONV=yes
+		WITH_CONTENT_SCAN=yes
+	EOC
+
+	# configure db implementation, Exim always needs one for its hints
+	# database, we prefer sqlite, tdb and gdbm, since bdb is kind of
+	# getting less and less support
+	sed -i \
+		-e 's:^USE_DB=yes:# USE_DB=yes:' \
+		-e 's:^USE_GDBM=yes:# USE_GDBM=yes:' \
+		-e 's:^USE_TDB=yes:# USE_TDB=yes:' \
+		-e 's:^USE_SQLITE=yes:# USE_SQLITE=yes:' \
+		Makefile || die
+	if use sqlite ; then
+		cat >> Makefile <<- EOC
+			USE_SQLITE=yes
+			DBMLIB = -lsqlite3
+		EOC
+	elif use tdb ; then
+		cat >> Makefile <<- EOC
+			USE_TDB=yes
+			DBMLIB = -ltdb
+		EOC
+	elif use gdbm ; then
+		cat >> Makefile <<- EOC
+			USE_GDBM=yes
+			DBMLIB = -lgdbm
+		EOC
+	else # must be berkdb via required_use
+		# use the "native" interfaces to the DBM and CDB libraries, support
+		# passwd and directory lookups by default
+		local DB_VERS="5.3 5.1 4.8 4.7 4.6 4.5 4.4 4.3 4.2 3.2"
+		cat >> Makefile <<- EOC
+			USE_DB=yes
+			LOOKUP_DBM = yes
+			# keep include in CFLAGS because exim.h -> dbstuff.h -> db.h
+			CFLAGS += -I$(db_includedir ${DB_VERS})
+			DBMLIB = -l$(db_libname ${DB_VERS})
+		EOC
+	fi
+
+	# if we use libiconv, now is the time to tell so
+	if use !elibc_glibc && use !elibc_musl ; then
+		cat >> Makefile <<- EOC
+			EXTRALIBS_EXIM=-liconv
+		EOC
+	fi
+
+	# support for IPv6
+	if use ipv6; then
+		cat >> Makefile <<- EOC
+			HAVE_IPV6=YES
+		EOC
+	fi
+
+	# support i18n/IDNA
+	if use idn; then
+		cat >> Makefile <<- EOC
+			SUPPORT_I18N=yes
+			SUPPORT_I18N_2008=yes
+			EXTRALIBS_EXIM += -lidn -lidn2
+		EOC
+	fi
+
+	#
+	# mail storage formats
+	#
+
+	# mailstore is Exim's traditional storage format
+	cat >> Makefile <<- EOC
+		SUPPORT_MAILSTORE=yes
+	EOC
+
+	# mbox
+	if use mbx; then
+		cat >> Makefile <<- EOC
+			SUPPORT_MBX=yes
+		EOC
+	fi
+
+	# maildir
+	if use maildir; then
+		cat >> Makefile <<- EOC
+			SUPPORT_MAILDIR=yes
+		EOC
+	fi
+
+	#
+	# lookup methods
+	#
+
+	# support passwd and directory lookups by default
+	cat >> Makefile <<- EOC
+		LOOKUP_CDB=yes
+		LOOKUP_PASSWD=yes
+		LOOKUP_DSEARCH=yes
+	EOC
+
+	if ! use dnsdb; then
+		# DNSDB lookup is enabled by default
+		sed -i -e 's:^LOOKUP_DNSDB=yes:# LOOKUP_DNSDB=yes:' Makefile || die
+	fi
+
+	if use ldap; then
+		cat >> Makefile <<- EOC
+			LOOKUP_LDAP=yes
+			LDAP_LIB_TYPE=OPENLDAP2
+			LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/ldap
+			LOOKUP_LIBS += -lldap -llber
+		EOC
+	fi
+
+	if use mysql; then
+		cat >> Makefile <<- EOC
+			LOOKUP_MYSQL=yes
+			LOOKUP_INCLUDE += $(mysql_config --include)
+			LOOKUP_LIBS += $(mysql_config --libs)
+		EOC
+	fi
+
+	if use nis; then
+		cat >> Makefile <<- EOC
+			LOOKUP_NIS=yes
+			LOOKUP_NISPLUS=yes
+		EOC
+		if use elibc_glibc ; then
+			cat >> Makefile <<- EOC
+				LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/tirpc
+				LOOKUP_LIBS += -lnsl
+			EOC
+		fi
+	fi
+
+	if use postgres; then
+		cat >> Makefile <<- EOC
+			LOOKUP_PGSQL=yes
+			LOOKUP_INCLUDE += -I$(pg_config --includedir)
+			LOOKUP_LIBS += -L$(pg_config --libdir) -lpq
+		EOC
+	fi
+
+	if use sqlite; then
+		cat >> Makefile <<- EOC
+			LOOKUP_SQLITE=yes
+			LOOKUP_SQLITE_PC=sqlite3
+		EOC
+	fi
+
+	if use redis; then
+		cat >> Makefile <<- EOC
+			LOOKUP_REDIS=yes
+			LOOKUP_LIBS += -lhiredis
+		EOC
+	fi
+
+	# Exim monitor, enabled by default, controlled via X USE-flag,
+	# disable if not requested, bug #46778
+	if use X; then
+		cp ../exim_monitor/EDITME eximon.conf || die
+		cat >> Makefile <<- EOC
+			EXIM_MONITOR=eximon.bin
+		EOC
+	fi
+
+	#
+	# features
+	#
+
+	# DomainKeys Identified Mail, RFC4871
+	if ! use dkim; then
+		# DKIM is enabled by default
+		cat >> Makefile <<- EOC
+			DISABLE_DKIM=yes
+		EOC
+	fi
+
+	# Per-Recipient-Data-Response
+	if ! use prdr; then
+		# PRDR is enabled by default
+		cat >> Makefile <<- EOC
+			DISABLE_PRDR=yes
+		EOC
+	fi
+
+	# Transport post-delivery actions
+	if use !tpda && use !dane; then
+		# EVENT is enabled by default
+		cat >> Makefile <<- EOC
+			DISABLE_EVENT=yes
+		EOC
+	fi
+
+	# log to syslog
+	if use syslog; then
+		local eximlog="${EPREFIX}/var/log/exim/exim_%s.log"
+		sed -i \
+			-e "s:LOG_FILE_PATH=${eximlog}:LOG_FILE_PATH=syslog:" \
+			Makefile || die
+		cat >> Makefile <<- EOC
+			LOG_FILE_PATH=syslog
+		EOC
+	else
+		cat >> Makefile <<- EOC
+			LOG_FILE_PATH=${EPREFIX}/var/log/exim/exim_%s.log
+		EOC
+	fi
+
+	# starttls support (ssl)
+	if use ssl; then
+		if use gnutls; then
+			echo "USE_GNUTLS=yes" >> Makefile
+			echo "USE_GNUTLS_PC=gnutls $(use dane && echo gnutls-dane)" \
+				>> Makefile
+			use pkcs11 || echo "AVOID_GNUTLS_PKCS11=yes" >> Makefile
+		else
+			echo "USE_OPENSSL=yes" >> Makefile
+			echo "USE_OPENSSL_PC=openssl" >> Makefile
+		fi
+	else
+		echo "DISABLE_TLS=yes" >> Makefile
+	fi
+
+	# TCP wrappers
+	if use tcpd; then
+		cat >> Makefile <<- EOC
+			USE_TCP_WRAPPERS=yes
+			EXTRALIBS_EXIM += -lwrap
+		EOC
+	fi
+
+	# Light Mail Transport Protocol
+	if use lmtp; then
+		cat >> Makefile <<- EOC
+			TRANSPORT_LMTP=yes
+		EOC
+	fi
+
+	# embedded Perl
+	if use perl; then
+		cat >> Makefile <<- EOC
+			EXIM_PERL=perl.o
+		EOC
+	fi
+
+	# dlfunc
+	if use dlfunc; then
+		cat >> Makefile <<- EOC
+			EXPAND_DLFUNC=yes
+			HAVE_LOCAL_SCAN=yes
+			DLOPEN_LOCAL_SCAN=yes
+		EOC
+	fi
+
+	# Proxy Protocol
+	if use proxy; then
+		cat >> Makefile <<- EOC
+			SUPPORT_PROXY=yes
+		EOC
+	fi
+
+	# SOCKS5 (outbound) proxy support
+	if use socks5; then
+		cat >> Makefile <<- EOC
+			SUPPORT_SOCKS=yes
+		EOC
+	fi
+
+	# DANE
+	if use !dane; then
+		# DANE is enabled by default
+		sed -i -e 's:^SUPPORT_DANE=yes:# SUPPORT_DANE=yes:' Makefile || die
+	fi
+
+	# DMARC
+	if use dmarc; then
+		cat >> Makefile <<- EOC
+			SUPPORT_DMARC=yes
+			EXTRALIBS_EXIM += -lopendmarc
+		EOC
+	fi
+
+	# Sender Policy Framework
+	if use spf; then
+		cat >> Makefile <<- EOC
+			SUPPORT_SPF=yes
+			EXTRALIBS_EXIM += -lspf2
+		EOC
+	fi
+
+	#
+	# experimental features
+	#
+
+	# Authenticated Receive Chain
+	if use arc; then
+		echo "EXPERIMENTAL_ARC=yes">> Makefile
+	fi
+
+	# Distributed Checksum Clearinghouse
+	if use dcc; then
+		echo "EXPERIMENTAL_DCC=yes">> Makefile
+	fi
+
+	# Sender Rewriting Scheme
+	if use srs; then
+		# this one is the default/supported variant since 4.95, and the
+		# only variant available since 4.96
+		cat >> Makefile <<- EOC
+			SUPPORT_SRS=yes
+		EOC
+	fi
+
+	# Delivery Sender Notifications extra information in fail message
+	if use dsn; then
+		cat >> Makefile <<- EOC
+			EXPERIMENTAL_DSN_INFO=yes
+		EOC
+	fi
+
+	#
+	# authentication (SMTP AUTH)
+	#
+
+	# standard bits
+	cat >> Makefile <<- EOC
+		AUTH_SPA=yes
+		AUTH_CRAM_MD5=yes
+		AUTH_PLAINTEXT=yes
+	EOC
+
+	# Cyrus SASL
+	if use sasl; then
+		cat >> Makefile <<- EOC
+			CYRUS_SASLAUTHD_SOCKET=${EPREFIX}/run/saslauthd/mux
+			AUTH_CYRUS_SASL=yes
+			AUTH_LIBS += -lsasl2
+		EOC
+	fi
+
+	# Dovecot
+	if use dovecot-sasl; then
+		cat >> Makefile <<- EOC
+			AUTH_DOVECOT=yes
+		EOC
+	fi
+
+	# Pluggable Authentication Modules
+	if use pam; then
+		cat >> Makefile <<- EOC
+			SUPPORT_PAM=yes
+			AUTH_LIBS += -lpam
+		EOC
+	fi
+
+	# Radius
+	if use radius; then
+		cat >> Makefile <<- EOC
+			RADIUS_CONFIG_FILE=${EPREFIX}/etc/radiusclient/radiusclient.conf
+			RADIUS_LIB_TYPE=RADIUSCLIENTNEW
+			AUTH_LIBS += -lfreeradius-client
+		EOC
+	fi
+}
+
+src_compile() {
+	emake CC="$(tc-getCC)" HOSTCC="$(tc-getBUILD_CC)" \
+		AR="$(tc-getAR) cq" RANLIB="$(tc-getRANLIB)" FULLECHO=''
+}
+
+src_install() {
+	cd "${S}"/build-exim-gentoo || die
+	dosbin exim
+	if use X; then
+		dosbin eximon.bin
+		dosbin eximon
+	fi
+	fperms 4755 /usr/sbin/exim
+
+	dosym exim /usr/sbin/sendmail
+	dosym exim /usr/sbin/rsmtp
+	dosym exim /usr/sbin/rmail
+	dosym ../sbin/exim /usr/bin/mailq
+	dosym ../sbin/exim /usr/bin/newaliases
+	dosym ../sbin/sendmail /usr/lib/sendmail
+
+	for i in exicyclog exim_dbmbuild exim_dumpdb exim_fixdb exim_lock \
+		exim_tidydb exinext exiwhat exigrep eximstats exiqsumm exiqgrep \
+		convert4r3 convert4r4 exipick
+	do
+		dosbin $i
+	done
+
+	dodoc -r "${S}"/doc/.
+	doman "${S}"/doc/exim.8
+	use dsn && dodoc "${S}"/README.DSN
+	use doc && dodoc "${WORKDIR}"/${PN}-pdf-${PV//rc/RC}/doc/*.pdf
+
+	# conf files
+	insinto /etc/exim
+	newins "${S}"/src/configure.default exim.conf.dist
+	doins "${WORKDIR}"/system_filter.exim
+	doins "${FILESDIR}"/auth_conf.sub
+
+	if use pam; then
+		pamd_mimic system-auth exim auth account
+	fi
+
+	# headers, #436406
+	if use dlfunc ; then
+		# fixup includes so they actually can be found when including
+		sed -i \
+			-e '/#include "\(config\|store\|mytypes\).h"/s:"\(.\+\)":<exim/\1>:' \
+			local_scan.h || die
+		insinto /usr/include/exim
+		doins {config,local_scan}.h ../src/{mytypes,store}.h
+	fi
+
+	insinto /etc/logrotate.d
+	newins "${FILESDIR}/exim.logrotate" exim
+
+	newinitd "${FILESDIR}"/exim.rc10 exim
+	newconfd "${FILESDIR}"/exim.confd exim
+
+	systemd_dounit \
+		"${FILESDIR}"/{exim.service,exim.socket,exim-submission.socket}
+	systemd_newunit \
+		"${FILESDIR}"/exim_at.service 'exim@.service'
+	systemd_newunit \
+		"${FILESDIR}"/exim-submission_at.service 'exim-submission@.service'
+
+	diropts -m 0750 -o ${MAILUSER} -g ${MAILGROUP}
+	keepdir /var/log/${PN}
+}
+
+pkg_postinst() {
+	if [[ ! -f ${EROOT}/etc/exim/exim.conf ]] ; then
+		einfo "${EROOT}/etc/exim/system_filter.exim is a sample system_filter."
+		einfo "${EROOT}/etc/exim/auth_conf.sub contains the configuration sub"
+		einfo "for using smtp auth."
+		einfo "Please create ${EROOT}/etc/exim/exim.conf from"
+		einfo "  ${EROOT}/etc/exim/exim.conf.dist."
+	fi
+	if use berkdb && ( use gdbm || use tdb ) ; then
+		ewarn "USE=berkdb is ignored because USE=gdbm or USE=tdb is enabled!"
+	fi
+	if use dmarc ; then
+		einfo "DMARC support requires ${EROOT}/etc/exim/opendmarc.tlds"
+		einfo "you can populate this file with the contents downloaded from"
+		einfo "  https://publicsuffix.org/list/public_suffix_list.dat"
+	fi
+	if use dcc ; then
+		einfo "DCC support is experimental, you can find some limited"
+		einfo "documentation at the bottom of this prerelease message:"
+		einfo "  http://article.gmane.org/gmane.mail.exim.devel/3579"
+	fi
+	use dsn && einfo "extra information in fail DSN message is experimental"
+	einfo
+	elog "Note that this release contains a tainted variable check that"
+	elog "is likely to break your configuration used with Exim 4.93 and before."
+	elog "Please check your transports for occurences of \$local_part, and"
+	elog "use a replacement like \$local_part_data where possible."
+}
diff --git a/mail-mta/exim/exim-4.98.ebuild b/mail-mta/exim/exim-4.98.ebuild
deleted file mode 100644
index 44fa0a5c60e0..000000000000
--- a/mail-mta/exim/exim-4.98.ebuild
+++ /dev/null
@@ -1,640 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit db-use flag-o-matic toolchain-funcs pam systemd
-
-IUSE="arc berkdb +dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl
-dsn gdbm gnutls idn ipv6 ldap lmtp maildir mbx
-mysql nis pam perl pkcs11 postgres +prdr proxy radius redis sasl selinux
-socks5 spf sqlite srs +ssl syslog tdb tcpd +tpda X"
-REQUIRED_USE="
-	arc? ( dkim spf )
-	dane? ( ssl !gnutls )
-	!dane? ( ssl? ( gnutls ) )
-	dmarc? ( dkim spf )
-	dkim? ( ssl !gnutls )
-	gnutls? ( ssl )
-	pkcs11? ( ssl )
-	|| ( berkdb gdbm tdb sqlite )
-"
-# NOTE on USE="gnutls dane", gnutls[dane] is masked in base, unmasked
-# for x86 and amd64 only (probably due to unbound dep)
-# Exim supports it but we cannot express the dep USE=dane when
-# USE=gnutls is in effect only in package.use.mask, the only option we
-# have left is to a) ignore the dependency (but that results in bug
-# #661164) or b) mask the usage of USE=dane with USE=gnutls.  Both are
-# incorrect, but b) is the only "correct" view from dep-pointofview.
-# Bug #925108 showed that DANE is basically non-optional with OpenSSL,
-# so we make -dane mandatory to use gnutls.  Bleh.
-# We cannot express a required use for berkdb/gdbm/tdb correctly because
-# berkdb and gdbm are both enabled in base profile
-
-SDIR=$([[ ${PV} == *_rc* ]]   && echo /test
-	 [[ ${PV} == *.*.*.* ]] && echo /fixes)
-COMM_URI="https://downloads.exim.org/exim4${SDIR}"
-
-GPV="r0"
-DESCRIPTION="A highly configurable, drop-in replacement for sendmail"
-SRC_URI="${COMM_URI}/${P//_rc/-RC}.tar.xz
-	mirror://gentoo/system_filter.exim.gz
-	doc? ( ${COMM_URI}/${PN}-pdf-${PV//_rc/-RC}.tar.xz )"
-HOMEPAGE="https://www.exim.org/"
-
-SLOT="0"
-LICENSE="GPL-2"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
-
-COMMON_DEPEND=">=sys-apps/sed-4.0.5
-	dev-libs/libpcre2:=
-	tdb? ( sys-libs/tdb:= )
-	!tdb? ( berkdb? ( >=sys-libs/db-3.2:= <sys-libs/db-6:= ) )
-	!tdb? ( !berkdb? ( sys-libs/gdbm:= ) )
-	idn? ( net-dns/libidn:= net-dns/libidn2:= )
-	perl? ( dev-lang/perl:= )
-	pam? ( sys-libs/pam )
-	tcpd? ( sys-apps/tcp-wrappers )
-	ssl? (
-		gnutls? (
-			net-libs/gnutls:0=[pkcs11?]
-			dev-libs/libtasn1
-		)
-		!gnutls? (
-			dev-libs/openssl:0=
-		)
-	)
-	ldap? ( >=net-nds/openldap-2.0.7:= )
-	elibc_glibc? (
-		net-libs/libnsl:=
-		nis? (
-			net-libs/libtirpc:=
-			>=net-libs/libnsl-1:=
-		)
-	)
-	mysql? ( dev-db/mysql-connector-c:= )
-	postgres? ( dev-db/postgresql:= )
-	sasl? ( >=dev-libs/cyrus-sasl-2.1.26-r2 )
-	redis? ( dev-libs/hiredis:= )
-	spf? ( >=mail-filter/libspf2-1.2.5-r1 )
-	dmarc? ( mail-filter/opendmarc:= )
-	X? (
-		x11-libs/libX11
-		x11-libs/libXmu
-		x11-libs/libXt
-		x11-libs/libXaw
-	)
-	sqlite? ( dev-db/sqlite:= )
-	radius? ( net-dialup/freeradius-client )
-	virtual/libcrypt:=
-	virtual/libiconv
-	"
-	# added X check for #57206
-BDEPEND="virtual/pkgconfig"
-DEPEND="${COMMON_DEPEND}"
-RDEPEND="${COMMON_DEPEND}
-	!mail-mta/courier
-	!mail-mta/esmtp
-	!mail-mta/msmtp[mta]
-	!mail-mta/netqmail
-	!mail-mta/nullmailer
-	!mail-mta/postfix
-	!mail-mta/sendmail
-	!mail-mta/opensmtpd
-	!mail-mta/ssmtp[mta]
-	>=net-mail/mailbase-0.00-r5
-	virtual/logger
-	dcc? ( mail-filter/dcc )
-	selinux? ( sec-policy/selinux-exim )
-	"
-
-S=${WORKDIR}/${P//_rc/-RC}
-
-src_prepare() {
-	# Legacy patches which need a respin for -p1
-	eapply -p0 "${FILESDIR}"/exim-4.14-tail.patch
-	eapply -p0 "${FILESDIR}"/exim-4.74-radius-db-ENV-clash.patch # 287426
-	eapply     "${FILESDIR}"/exim-4.97-as-needed-ldflags.patch # 352265, 391279
-	eapply -p0 "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591
-	eapply     "${FILESDIR}"/exim-4.69-r1.27021.patch
-	eapply     "${FILESDIR}"/exim-4.97-localscan_dlopen.patch
-	eapply     "${FILESDIR}"/exim-4.97-no-exim_id_update.patch
-
-	# oddity, they disable berkdb as hack, and then throw an error when
-	# berkdb isn't enabled
-	sed -i \
-		-e 's/_DB_/_DONTMESS_/' \
-		-e 's/define DB void/define DONTMESS void/' \
-		src/auths/call_radius.c || die
-
-	if use maildir ; then
-		eapply "${FILESDIR}"/exim-4.94-maildir.patch
-	else
-		eapply -p0 "${FILESDIR}"/exim-4.80-spool-mail-group.patch # 438606
-	fi
-
-	eapply_user
-
-	# user Exim believes it should be
-	MAILUSER=mail
-	MAILGROUP=mail
-	if use prefix && [[ ${EUID} != 0 ]] ; then
-		MAILUSER=$(id -un)
-		MAILGROUP=$(id -gn)
-	fi
-}
-
-src_configure() {
-	# general config and paths
-
-	local aliases="${EPREFIX}/etc/mail/aliases"
-	sed -i \
-		-e "/SYSTEM_ALIASES_FILE/s'SYSTEM_ALIASES_FILE'${aliases}'" \
-		src/configure.default || die
-
-	sed -i -e 's/^buildname=.*/buildname=exim-gentoo/' Makefile || die
-
-	if use elibc_musl; then
-		sed -i -e 's/^LIBS = -lnsl/LIBS =/g' OS/Makefile-Linux || die
-		append-cflags -DNO_EXECINFO
-	fi
-
-	local conffile="${EPREFIX}/etc/exim/exim.conf"
-	sed -e "48i\CFLAGS=${CFLAGS}" \
-		-e "s:BIN_DIRECTORY=/usr/exim/bin:BIN_DIRECTORY=${EPREFIX}/usr/sbin:" \
-		-e "s;EXIM_USER=;EXIM_USER=ref:${MAILUSER};" \
-		-e "s:CONFIGURE_FILE=.*$:CONFIGURE_FILE=${conffile}:" \
-		-e "s:ZCAT_COMMAND=.*$:ZCAT_COMMAND=${EPREFIX}/bin/zcat:" \
-		-e "s:COMPRESS_COMMAND=.*$:COMPRESS_COMMAND=${EPREFIX}/bin/gzip:" \
-		-e "s:^LOOKUP_DBM = yes:# LOOKUP_DBM = yes:" \
-		src/EDITME > Local/Makefile || die
-
-	# work on Local/Makefile from now on
-	cd Local
-
-	cat >> Makefile <<- EOC
-		INFO_DIRECTORY=${EPREFIX}/usr/share/info
-		PID_FILE_PATH=${EPREFIX}/run/exim.pid
-		SPOOL_DIRECTORY=${EPREFIX}/var/spool/exim
-		HAVE_ICONV=yes
-		WITH_CONTENT_SCAN=yes
-	EOC
-
-	# configure db implementation, Exim always needs one for its hints
-	# database, we prefer sqlite, tdb and gdbm, since bdb is kind of
-	# getting less and less support
-	sed -i \
-		-e 's:^USE_DB=yes:# USE_DB=yes:' \
-		-e 's:^USE_GDBM=yes:# USE_GDBM=yes:' \
-		-e 's:^USE_TDB=yes:# USE_TDB=yes:' \
-		-e 's:^USE_SQLITE=yes:# USE_SQLITE=yes:' \
-		Makefile || die
-	if use sqlite ; then
-		cat >> Makefile <<- EOC
-			USE_SQLITE=yes
-			DBMLIB = -lsqlite3
-		EOC
-	elif use tdb ; then
-		cat >> Makefile <<- EOC
-			USE_TDB=yes
-			DBMLIB = -ltdb
-		EOC
-	elif use gdbm ; then
-		cat >> Makefile <<- EOC
-			USE_GDBM=yes
-			DBMLIB = -lgdbm
-		EOC
-	else # must be berkdb via required_use
-		# use the "native" interfaces to the DBM and CDB libraries, support
-		# passwd and directory lookups by default
-		local DB_VERS="5.3 5.1 4.8 4.7 4.6 4.5 4.4 4.3 4.2 3.2"
-		cat >> Makefile <<- EOC
-			USE_DB=yes
-			LOOKUP_DBM = yes
-			# keep include in CFLAGS because exim.h -> dbstuff.h -> db.h
-			CFLAGS += -I$(db_includedir ${DB_VERS})
-			DBMLIB = -l$(db_libname ${DB_VERS})
-		EOC
-	fi
-
-	# if we use libiconv, now is the time to tell so
-	if use !elibc_glibc && use !elibc_musl ; then
-		cat >> Makefile <<- EOC
-			EXTRALIBS_EXIM=-liconv
-		EOC
-	fi
-
-	# support for IPv6
-	if use ipv6; then
-		cat >> Makefile <<- EOC
-			HAVE_IPV6=YES
-		EOC
-	fi
-
-	# support i18n/IDNA
-	if use idn; then
-		cat >> Makefile <<- EOC
-			SUPPORT_I18N=yes
-			SUPPORT_I18N_2008=yes
-			EXTRALIBS_EXIM += -lidn -lidn2
-		EOC
-	fi
-
-	#
-	# mail storage formats
-	#
-
-	# mailstore is Exim's traditional storage format
-	cat >> Makefile <<- EOC
-		SUPPORT_MAILSTORE=yes
-	EOC
-
-	# mbox
-	if use mbx; then
-		cat >> Makefile <<- EOC
-			SUPPORT_MBX=yes
-		EOC
-	fi
-
-	# maildir
-	if use maildir; then
-		cat >> Makefile <<- EOC
-			SUPPORT_MAILDIR=yes
-		EOC
-	fi
-
-	#
-	# lookup methods
-	#
-
-	# support passwd and directory lookups by default
-	cat >> Makefile <<- EOC
-		LOOKUP_CDB=yes
-		LOOKUP_PASSWD=yes
-		LOOKUP_DSEARCH=yes
-	EOC
-
-	if ! use dnsdb; then
-		# DNSDB lookup is enabled by default
-		sed -i -e 's:^LOOKUP_DNSDB=yes:# LOOKUP_DNSDB=yes:' Makefile || die
-	fi
-
-	if use ldap; then
-		cat >> Makefile <<- EOC
-			LOOKUP_LDAP=yes
-			LDAP_LIB_TYPE=OPENLDAP2
-			LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/ldap
-			LOOKUP_LIBS += -lldap -llber
-		EOC
-	fi
-
-	if use mysql; then
-		cat >> Makefile <<- EOC
-			LOOKUP_MYSQL=yes
-			LOOKUP_INCLUDE += $(mysql_config --include)
-			LOOKUP_LIBS += $(mysql_config --libs)
-		EOC
-	fi
-
-	if use nis; then
-		cat >> Makefile <<- EOC
-			LOOKUP_NIS=yes
-			LOOKUP_NISPLUS=yes
-		EOC
-		if use elibc_glibc ; then
-			cat >> Makefile <<- EOC
-				LOOKUP_INCLUDE += -I"${EPREFIX}"/usr/include/tirpc
-				LOOKUP_LIBS += -lnsl
-			EOC
-		fi
-	fi
-
-	if use postgres; then
-		cat >> Makefile <<- EOC
-			LOOKUP_PGSQL=yes
-			LOOKUP_INCLUDE += -I$(pg_config --includedir)
-			LOOKUP_LIBS += -L$(pg_config --libdir) -lpq
-		EOC
-	fi
-
-	if use sqlite; then
-		cat >> Makefile <<- EOC
-			LOOKUP_SQLITE=yes
-			LOOKUP_SQLITE_PC=sqlite3
-		EOC
-	fi
-
-	if use redis; then
-		cat >> Makefile <<- EOC
-			LOOKUP_REDIS=yes
-			LOOKUP_LIBS += -lhiredis
-		EOC
-	fi
-
-	# Exim monitor, enabled by default, controlled via X USE-flag,
-	# disable if not requested, bug #46778
-	if use X; then
-		cp ../exim_monitor/EDITME eximon.conf || die
-		cat >> Makefile <<- EOC
-			EXIM_MONITOR=eximon.bin
-		EOC
-	fi
-
-	#
-	# features
-	#
-
-	# DomainKeys Identified Mail, RFC4871
-	if ! use dkim; then
-		# DKIM is enabled by default
-		cat >> Makefile <<- EOC
-			DISABLE_DKIM=yes
-		EOC
-	fi
-
-	# Per-Recipient-Data-Response
-	if ! use prdr; then
-		# PRDR is enabled by default
-		cat >> Makefile <<- EOC
-			DISABLE_PRDR=yes
-		EOC
-	fi
-
-	# Transport post-delivery actions
-	if use !tpda && use !dane; then
-		# EVENT is enabled by default
-		cat >> Makefile <<- EOC
-			DISABLE_EVENT=yes
-		EOC
-	fi
-
-	# log to syslog
-	if use syslog; then
-		local eximlog="${EPREFIX}/var/log/exim/exim_%s.log"
-		sed -i \
-			-e "s:LOG_FILE_PATH=${eximlog}:LOG_FILE_PATH=syslog:" \
-			Makefile || die
-		cat >> Makefile <<- EOC
-			LOG_FILE_PATH=syslog
-		EOC
-	else
-		cat >> Makefile <<- EOC
-			LOG_FILE_PATH=${EPREFIX}/var/log/exim/exim_%s.log
-		EOC
-	fi
-
-	# starttls support (ssl)
-	if use ssl; then
-		if use gnutls; then
-			echo "USE_GNUTLS=yes" >> Makefile
-			echo "USE_GNUTLS_PC=gnutls $(use dane && echo gnutls-dane)" \
-				>> Makefile
-			use pkcs11 || echo "AVOID_GNUTLS_PKCS11=yes" >> Makefile
-		else
-			echo "USE_OPENSSL=yes" >> Makefile
-			echo "USE_OPENSSL_PC=openssl" >> Makefile
-		fi
-	else
-		echo "DISABLE_TLS=yes" >> Makefile
-	fi
-
-	# TCP wrappers
-	if use tcpd; then
-		cat >> Makefile <<- EOC
-			USE_TCP_WRAPPERS=yes
-			EXTRALIBS_EXIM += -lwrap
-		EOC
-	fi
-
-	# Light Mail Transport Protocol
-	if use lmtp; then
-		cat >> Makefile <<- EOC
-			TRANSPORT_LMTP=yes
-		EOC
-	fi
-
-	# embedded Perl
-	if use perl; then
-		cat >> Makefile <<- EOC
-			EXIM_PERL=perl.o
-		EOC
-	fi
-
-	# dlfunc
-	if use dlfunc; then
-		cat >> Makefile <<- EOC
-			EXPAND_DLFUNC=yes
-			HAVE_LOCAL_SCAN=yes
-			DLOPEN_LOCAL_SCAN=yes
-		EOC
-	fi
-
-	# Proxy Protocol
-	if use proxy; then
-		cat >> Makefile <<- EOC
-			SUPPORT_PROXY=yes
-		EOC
-	fi
-
-	# SOCKS5 (outbound) proxy support
-	if use socks5; then
-		cat >> Makefile <<- EOC
-			SUPPORT_SOCKS=yes
-		EOC
-	fi
-
-	# DANE
-	if use !dane; then
-		# DANE is enabled by default
-		sed -i -e 's:^SUPPORT_DANE=yes:# SUPPORT_DANE=yes:' Makefile || die
-	fi
-
-	# DMARC
-	if use dmarc; then
-		cat >> Makefile <<- EOC
-			SUPPORT_DMARC=yes
-			EXTRALIBS_EXIM += -lopendmarc
-		EOC
-	fi
-
-	# Sender Policy Framework
-	if use spf; then
-		cat >> Makefile <<- EOC
-			SUPPORT_SPF=yes
-			EXTRALIBS_EXIM += -lspf2
-		EOC
-	fi
-
-	#
-	# experimental features
-	#
-
-	# Authenticated Receive Chain
-	if use arc; then
-		echo "EXPERIMENTAL_ARC=yes">> Makefile
-	fi
-
-	# Distributed Checksum Clearinghouse
-	if use dcc; then
-		echo "EXPERIMENTAL_DCC=yes">> Makefile
-	fi
-
-	# Sender Rewriting Scheme
-	if use srs; then
-		# this one is the default/supported variant since 4.95, and the
-		# only variant available since 4.96
-		cat >> Makefile <<- EOC
-			SUPPORT_SRS=yes
-		EOC
-	fi
-
-	# Delivery Sender Notifications extra information in fail message
-	if use dsn; then
-		cat >> Makefile <<- EOC
-			EXPERIMENTAL_DSN_INFO=yes
-		EOC
-	fi
-
-	#
-	# authentication (SMTP AUTH)
-	#
-
-	# standard bits
-	cat >> Makefile <<- EOC
-		AUTH_SPA=yes
-		AUTH_CRAM_MD5=yes
-		AUTH_PLAINTEXT=yes
-	EOC
-
-	# Cyrus SASL
-	if use sasl; then
-		cat >> Makefile <<- EOC
-			CYRUS_SASLAUTHD_SOCKET=${EPREFIX}/run/saslauthd/mux
-			AUTH_CYRUS_SASL=yes
-			AUTH_LIBS += -lsasl2
-		EOC
-	fi
-
-	# Dovecot
-	if use dovecot-sasl; then
-		cat >> Makefile <<- EOC
-			AUTH_DOVECOT=yes
-		EOC
-	fi
-
-	# Pluggable Authentication Modules
-	if use pam; then
-		cat >> Makefile <<- EOC
-			SUPPORT_PAM=yes
-			AUTH_LIBS += -lpam
-		EOC
-	fi
-
-	# Radius
-	if use radius; then
-		cat >> Makefile <<- EOC
-			RADIUS_CONFIG_FILE=${EPREFIX}/etc/radiusclient/radiusclient.conf
-			RADIUS_LIB_TYPE=RADIUSCLIENTNEW
-			AUTH_LIBS += -lfreeradius-client
-		EOC
-	fi
-}
-
-src_compile() {
-	emake CC="$(tc-getCC)" HOSTCC="$(tc-getBUILD_CC)" \
-		AR="$(tc-getAR) cq" RANLIB="$(tc-getRANLIB)" FULLECHO=''
-}
-
-src_install() {
-	cd "${S}"/build-exim-gentoo || die
-	dosbin exim
-	if use X; then
-		dosbin eximon.bin
-		dosbin eximon
-	fi
-	fperms 4755 /usr/sbin/exim
-
-	dosym exim /usr/sbin/sendmail
-	dosym exim /usr/sbin/rsmtp
-	dosym exim /usr/sbin/rmail
-	dosym ../sbin/exim /usr/bin/mailq
-	dosym ../sbin/exim /usr/bin/newaliases
-	dosym ../sbin/sendmail /usr/lib/sendmail
-
-	for i in exicyclog exim_dbmbuild exim_dumpdb exim_fixdb exim_lock \
-		exim_tidydb exinext exiwhat exigrep eximstats exiqsumm exiqgrep \
-		convert4r3 convert4r4 exipick
-	do
-		dosbin $i
-	done
-
-	dodoc -r "${S}"/doc/.
-	doman "${S}"/doc/exim.8
-	use dsn && dodoc "${S}"/README.DSN
-	use doc && dodoc "${WORKDIR}"/${PN}-pdf-${PV//rc/RC}/doc/*.pdf
-
-	# conf files
-	insinto /etc/exim
-	newins "${S}"/src/configure.default exim.conf.dist
-	doins "${WORKDIR}"/system_filter.exim
-	doins "${FILESDIR}"/auth_conf.sub
-
-	if use pam; then
-		pamd_mimic system-auth exim auth account
-	fi
-
-	# headers, #436406
-	if use dlfunc ; then
-		# fixup includes so they actually can be found when including
-		sed -i \
-			-e '/#include "\(config\|store\|mytypes\).h"/s:"\(.\+\)":<exim/\1>:' \
-			local_scan.h || die
-		insinto /usr/include/exim
-		doins {config,local_scan}.h ../src/{mytypes,store}.h
-	fi
-
-	insinto /etc/logrotate.d
-	newins "${FILESDIR}/exim.logrotate" exim
-
-	newinitd "${FILESDIR}"/exim.rc10 exim
-	newconfd "${FILESDIR}"/exim.confd exim
-
-	systemd_dounit \
-		"${FILESDIR}"/{exim.service,exim.socket,exim-submission.socket}
-	systemd_newunit \
-		"${FILESDIR}"/exim_at.service 'exim@.service'
-	systemd_newunit \
-		"${FILESDIR}"/exim-submission_at.service 'exim-submission@.service'
-
-	diropts -m 0750 -o ${MAILUSER} -g ${MAILGROUP}
-	keepdir /var/log/${PN}
-}
-
-pkg_postinst() {
-	if [[ ! -f ${EROOT}/etc/exim/exim.conf ]] ; then
-		einfo "${EROOT}/etc/exim/system_filter.exim is a sample system_filter."
-		einfo "${EROOT}/etc/exim/auth_conf.sub contains the configuration sub"
-		einfo "for using smtp auth."
-		einfo "Please create ${EROOT}/etc/exim/exim.conf from"
-		einfo "  ${EROOT}/etc/exim/exim.conf.dist."
-	fi
-	if use berkdb && ( use gdbm || use tdb ) ; then
-		ewarn "USE=berkdb is ignored because USE=gdbm or USE=tdb is enabled!"
-	fi
-	if use dmarc ; then
-		einfo "DMARC support requires ${EROOT}/etc/exim/opendmarc.tlds"
-		einfo "you can populate this file with the contents downloaded from"
-		einfo "  https://publicsuffix.org/list/public_suffix_list.dat"
-	fi
-	if use dcc ; then
-		einfo "DCC support is experimental, you can find some limited"
-		einfo "documentation at the bottom of this prerelease message:"
-		einfo "  http://article.gmane.org/gmane.mail.exim.devel/3579"
-	fi
-	use dsn && einfo "extra information in fail DSN message is experimental"
-	einfo
-	elog "Note that this release contains a tainted variable check that"
-	elog "is likely to break your configuration used with Exim 4.93 and before."
-	elog "Please check your transports for occurences of \$local_part, and"
-	elog "use a replacement like \$local_part_data where possible."
-}
diff --git a/mail-mta/exim/files/exim-4.98-tidydb-crash.patch b/mail-mta/exim/files/exim-4.98-tidydb-crash.patch
new file mode 100644
index 000000000000..7f109688c41b
--- /dev/null
+++ b/mail-mta/exim/files/exim-4.98-tidydb-crash.patch
@@ -0,0 +1,16 @@
+https://bugs.exim.org/show_bug.cgi?id=3144
+
+--- a/src/hintsdb.h
++++ b/src/hintsdb.h
+@@ -596,7 +596,11 @@
+ /* EXIM_DBDELETE_CURSOR - terminate scanning operation. */
+ static inline void
+ exim_dbdelete_cursor(EXIM_CURSOR * cursor)
++# ifdef COMPILE_UTILITY
++{ free(cursor); }
++# else
+ { store_free(cursor); }
++# endif
+ 
+ /* EXIM_DBCLOSE */
+ static inline void
-- 
cgit v1.2.3