From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1305801-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id C44D11392E8
	for <garchives@archives.gentoo.org>; Sun, 25 Jul 2021 04:00:13 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id F1FB8E09EE;
	Sun, 25 Jul 2021 04:00:12 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id CE7D0E09EE
	for <gentoo-commits@lists.gentoo.org>; Sun, 25 Jul 2021 04:00:12 +0000 (UTC)
Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 35AC0342ACA
	for <gentoo-commits@lists.gentoo.org>; Sun, 25 Jul 2021 04:00:11 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 9C3E37B2
	for <gentoo-commits@lists.gentoo.org>; Sun, 25 Jul 2021 04:00:09 +0000 (UTC)
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org>
Message-ID: <1627185595.949a32eef6a11fbb27ca155dbb9f86cba3bed8f7.sam@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/asterisk/, net-misc/asterisk/files/
X-VCS-Repository: repo/gentoo
X-VCS-Files: net-misc/asterisk/Manifest net-misc/asterisk/asterisk-13.38.2-r1.ebuild net-misc/asterisk/asterisk-13.38.2-r4.ebuild net-misc/asterisk/asterisk-13.38.2-r5.ebuild net-misc/asterisk/asterisk-16.18.0-r2.ebuild net-misc/asterisk/asterisk-16.19.0-r1.ebuild net-misc/asterisk/asterisk-18.4.0-r2.ebuild net-misc/asterisk/asterisk-18.5.0-r1.ebuild net-misc/asterisk/files/asterisk-13.38.1-r1-func_lock-fix-races.patch net-misc/asterisk/files/asterisk-16.18.0-r1-func_lock-fix-races.patch
X-VCS-Directories: net-misc/asterisk/ net-misc/asterisk/files/
X-VCS-Committer: sam
X-VCS-Committer-Name: Sam James
X-VCS-Revision: 949a32eef6a11fbb27ca155dbb9f86cba3bed8f7
X-VCS-Branch: master
Date: Sun, 25 Jul 2021 04:00:09 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 297d1e2e-78b3-4a7a-a51d-3fe6c31d0f7f
X-Archives-Hash: af2cb85a2ae7c13ca7c13eb4f9db7f21

commit:     949a32eef6a11fbb27ca155dbb9f86cba3bed8f7
Author:     Jaco Kroon <jaco <AT> uls <DOT> co <DOT> za>
AuthorDate: Sat Jul 24 09:23:11 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jul 25 03:59:55 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=949a32ee

net-misc/asterisk: Cleanup

Bug: https://bugs.gentoo.org/803440
Package-Manager: Portage-3.0.20, Repoman-3.0.2
Signed-off-by: Jaco Kroon <jaco <AT> uls.co.za>
Closes: https://github.com/gentoo/gentoo/pull/21762
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-misc/asterisk/Manifest                         |   5 -
 net-misc/asterisk/asterisk-13.38.2-r1.ebuild       | 313 ------------------
 net-misc/asterisk/asterisk-13.38.2-r4.ebuild       | 349 --------------------
 net-misc/asterisk/asterisk-13.38.2-r5.ebuild       | 349 --------------------
 net-misc/asterisk/asterisk-16.18.0-r2.ebuild       | 320 ------------------
 net-misc/asterisk/asterisk-16.19.0-r1.ebuild       | 363 ---------------------
 net-misc/asterisk/asterisk-18.4.0-r2.ebuild        | 363 ---------------------
 net-misc/asterisk/asterisk-18.5.0-r1.ebuild        | 362 --------------------
 .../asterisk-13.38.1-r1-func_lock-fix-races.patch  | 291 -----------------
 .../asterisk-16.18.0-r1-func_lock-fix-races.patch  | 177 ----------
 10 files changed, 2892 deletions(-)

diff --git a/net-misc/asterisk/Manifest b/net-misc/asterisk/Manifest
index e949affbe44..a3e877e9cf8 100644
--- a/net-misc/asterisk/Manifest
+++ b/net-misc/asterisk/Manifest
@@ -1,8 +1,3 @@
-DIST asterisk-13.38.2.tar.gz 33708267 BLAKE2B f8c188f6500a01e807982518486972c18f8f903285910e64b4d8e2a4f553d42534f910696a02ab13e371dbd83dfd932c5cb7a6cea08817862ecaddcc7afd99d2 SHA512 bd9755503048cd8dcf8e39947dd5cfb617c20c4b1ad5033ae297499a4967c06ba11b6e43233c1ae0d33f8f11a81dbb9b4487f16a1f4786007172028caf1ee051
 DIST asterisk-13.38.3.tar.gz 33711458 BLAKE2B a1f37c210e7e95962665310b542d9a3b682ecc5e90188e8272a0cd6e22ebfa963ed5af46f0f85c2074bc0bbe34d72473343ff3437d80b58e5383eb80385d0b89 SHA512 dd67f73704f1c68639313852ba1508165c7b525f0f4156c776258e27ee19a0ee87293ae7805178b0f37188fca91b861c52b5206cbba754a6181492d0efb7e895
-DIST asterisk-16.18.0.tar.gz 27843069 BLAKE2B 643c371b4747111e233c0758efb529e7f54f1deeff10e65fb05f3a1a58c4ba5c139bdb583d2a2552e29aacac5d0f3980fd9aeb19fda2513843fbe0c849dec217 SHA512 025a30a1eed1d2cd14eb1345e1e0edfcc23b4c517e0d33da7d06d97b3ffa3c9ce9c2fe9449109eefade6d62b6205b598fecb69245adb04f03bd53f8482fbd7ad
-DIST asterisk-16.19.0.tar.gz 27872364 BLAKE2B 3510f300c2cd0d67232e5d36752f60a2e67dde988de1ca41b5709dc29aa462f268b49b6c48cf669a7b5fdc0aec038dbfb1d56f7ebe6e9a7285d2cee34b3fc789 SHA512 e50b7c42591ff7fedba3e591a4e696ace62731d81b4d054757a91d8997ee454e949c56a4cf19e37c160407b23ec8c654c1b8af18712d09078e6149b5b22c5040
 DIST asterisk-16.19.1.tar.gz 27870922 BLAKE2B e7b2ceac60f9db19802acc6c69b233556834815e1a9a3d17b2fd331d2577beb356f31a531a6d8fde70f78e9362bd8b6dbc796f906557c82bcd4847a612c788a3 SHA512 7b74fedce91ac597f3cc7a03b401ae7506bc6479faf008f3ea9c0f4783d85c5ce06d71bf73333d4bc1609a2cb96511d931d79f3bc8613906f370f9b4015b30b9
-DIST asterisk-18.4.0.tar.gz 27926601 BLAKE2B 1a4089ee274732462a8e480d449e4043f7393a6df0b78dd3ea341d3996b9e433066e6d7c53b3ab334db5946a4b847ac02abb4afc5747b6f541cad81a6d58d468 SHA512 024d0a5c75d55fe614ba6219aece62778e9522a0f8365d57192aa5aa22be94d45a3bed69ac14659738e97dd98967533c13096a855366083e6df2b7800e684602
-DIST asterisk-18.5.0.tar.gz 27956264 BLAKE2B 1b2cc477dd37be81b7c1611f1334db8e5095a2d76b1cfa0148072f7c3e9247e3d43da8b0bf502e18c2f553a893b1cc0a1aa9f2ca0942b012d0261c6171536370 SHA512 f31ac2ccd4b9af3ee4ad1c1368519e889d2e3e5b6b22e6f1b6dc020ffbdc8caccf0c03ba620f4a8b6346403abffde23d93fa8c06a6d7d993074edfaa0cf256df
 DIST asterisk-18.5.1.tar.gz 27953748 BLAKE2B 543f2bfbe1527f3a168dc73d3d9f20e80e95be9de9532a97ff6a5c70a548d525c39ce5251b80dbcd1c0e31c066fc48520e6c373b1404bf24a00b0a48ad134bcd SHA512 95f30c14602587827c7d7bc4652639163f4fe6338fade35d533525aa8825d7a5082c9d6fa4671a5f4f89bd90a0d657ce7e51fd4216558bd367abcb10b25aeb23

diff --git a/net-misc/asterisk/asterisk-13.38.2-r1.ebuild b/net-misc/asterisk/asterisk-13.38.2-r1.ebuild
deleted file mode 100644
index b6fc143048f..00000000000
--- a/net-misc/asterisk/asterisk-13.38.2-r1.ebuild
+++ /dev/null
@@ -1,313 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-{1..4} )
-
-inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
-
-DESCRIPTION="Asterisk: A Modular Open Source PBX System"
-HOMEPAGE="https://www.asterisk.org/"
-SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
-LICENSE="GPL-2"
-SLOT="0/${PV%%.*}"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
-
-IUSE_VOICEMAIL_STORAGE=(
-	+voicemail_storage_file
-	voicemail_storage_odbc
-	voicemail_storage_imap
-)
-IUSE="${IUSE_VOICEMAIL_STORAGE[*]} alsa blocks bluetooth calendar +caps cluster curl dahdi debug doc freetds gtalk http iconv ilbc ldap lua mysql newt odbc oss pjproject portaudio postgres radius selinux snmp span speex srtp +ssl static statsd syslog vorbis xmpp"
-REQUIRED_USE="gtalk? ( xmpp )
-	lua? ( ${LUA_REQUIRED_USE} )
-	^^ ( ${IUSE_VOICEMAIL_STORAGE[*]//+/} )
-	voicemail_storage_odbc? ( odbc )
-"
-
-PATCHES=(
-	"${FILESDIR}/asterisk-historic-no-var-run-install.patch"
-	"${FILESDIR}/asterisk-13.38.1-r1-autoconf-lua-version.patch"
-	"${FILESDIR}/asterisk-13.38.1-r1-func_lock-fix-races.patch"
-	"${FILESDIR}/asterisk-13.18.1-r2-autoconf-2.70.patch"
-)
-
-DEPEND="acct-user/asterisk
-	acct-group/asterisk
-	dev-db/sqlite:3
-	dev-libs/popt
-	dev-libs/jansson
-	dev-libs/libedit
-	dev-libs/libxml2:2
-	dev-libs/libxslt
-	virtual/libcrypt:=
-	sys-libs/ncurses:0=
-	sys-libs/zlib
-	alsa? ( media-libs/alsa-lib )
-	bluetooth? ( net-wireless/bluez:= )
-	calendar? (
-		net-libs/neon:=
-		dev-libs/libical:=
-		dev-libs/iksemel
-	)
-	caps? ( sys-libs/libcap )
-	blocks? ( sys-libs/blocksruntime )
-	cluster? ( sys-cluster/corosync )
-	curl? ( net-misc/curl )
-	dahdi? (
-		net-libs/libpri
-		net-misc/dahdi-tools
-	)
-	freetds? ( dev-db/freetds )
-	gtalk? ( dev-libs/iksemel )
-	http? ( dev-libs/gmime:2.6 )
-	iconv? ( virtual/libiconv )
-	ilbc? ( media-libs/libilbc )
-	ldap? ( net-nds/openldap )
-	lua? ( ${LUA_DEPS} )
-	mysql? ( dev-db/mysql-connector-c:= )
-	newt? ( dev-libs/newt )
-	odbc? ( dev-db/unixODBC )
-	pjproject? ( net-libs/pjproject )
-	portaudio? ( media-libs/portaudio )
-	postgres? ( dev-db/postgresql:* )
-	radius? ( net-dialup/freeradius-client )
-	snmp? ( net-analyzer/net-snmp:= )
-	span? ( media-libs/spandsp )
-	speex? (
-		media-libs/libogg
-		media-libs/speex
-		media-libs/speexdsp
-	)
-	srtp? ( net-libs/libsrtp:0 )
-	ssl? (
-		dev-libs/openssl:0=
-	)
-	vorbis? (
-		media-libs/libogg
-		media-libs/libvorbis
-	)
-	voicemail_storage_imap? ( virtual/imap-c-client )
-	xmpp? ( dev-libs/iksemel )
-"
-
-RDEPEND="${DEPEND}
-	net-misc/asterisk-core-sounds
-	net-misc/asterisk-extra-sounds
-	net-misc/asterisk-moh-opsound
-	selinux? ( sec-policy/selinux-asterisk )
-	syslog? ( virtual/logger )"
-
-BDEPEND="dev-libs/libxml2:2
-	virtual/pkgconfig"
-
-QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
-
-pkg_pretend() {
-	CONFIG_CHECK="~!NF_CONNTRACK_SIP"
-	local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
-	have reported that this module dropped critical SIP packets in their deployments. You
-	may want to disable it if you see such problems."
-	check_extra_config
-
-	[[ "${MERGE_TYPE}" == binary ]] && return
-
-	if tc-is-clang; then
-		use blocks || die "CC=clang requires USE=blocks"
-	else
-		use blocks && die "USE=blocks can only be used with CC=clang"
-	fi
-}
-
-pkg_setup() {
-	use lua && lua-single_pkg_setup
-}
-
-src_prepare() {
-	default
-	AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
-}
-
-src_configure() {
-	local vmst
-
-	econf \
-		LUA_VERSION="${ELUA#lua}" \
-		--libdir="/usr/$(get_libdir)" \
-		--localstatedir="/var" \
-		--with-crypto \
-		--with-gsm=internal \
-		--with-popt \
-		--with-z \
-		--with-libedit \
-		$(use_with caps cap) \
-		$(use_with lua lua) \
-		$(use_with http gmime) \
-		$(use_with newt) \
-		$(use_with pjproject) \
-		$(use_with portaudio) \
-		$(use_with ssl)
-
-	_menuselect() {
-		menuselect/menuselect "$@" || die "menuselect $* failed."
-	}
-
-	_use_select() {
-		local state=$(usex "$1" enable disable)
-		shift # remove use from parameters
-
-		while [[ -n $1 ]]; do
-			_menuselect --${state} "$1" menuselect.makeopts
-			shift
-		done
-	}
-
-	# Blank out sounds/sounds.xml file to prevent
-	# asterisk from installing sounds files (we pull them in via
-	# asterisk-{core,extra}-sounds and asterisk-moh-opsound.
-	>"${S}"/sounds/sounds.xml
-
-	# That NATIVE_ARCH chatter really is quite bothersome
-	sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
-
-	# Compile menuselect binary for optional components
-	emake NOISE_BUILD=yes menuselect.makeopts
-
-	# Disable BUILD_NATIVE (bug #667498)
-	_menuselect --disable build_native menuselect.makeopts
-
-	# Broken functionality is forcibly disabled (bug #360143)
-	_menuselect --disable chan_misdn menuselect.makeopts
-	_menuselect --disable chan_ooh323 menuselect.makeopts
-
-	# Utility set is forcibly enabled (bug #358001)
-	_menuselect --enable smsq menuselect.makeopts
-	_menuselect --enable streamplayer menuselect.makeopts
-	_menuselect --enable aelparse menuselect.makeopts
-	_menuselect --enable astman menuselect.makeopts
-
-	# this is connected, otherwise it would not find
-	# ast_pktccops_gate_alloc symbol
-	_menuselect --enable chan_mgcp menuselect.makeopts
-	_menuselect --enable res_pktccops menuselect.makeopts
-
-	# SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
-	_menuselect --enable pbx_dundi menuselect.makeopts
-	_menuselect --enable func_aes menuselect.makeopts
-	_menuselect --enable chan_iax2 menuselect.makeopts
-
-	# SQlite3 is now the main database backend, enable related features
-	_menuselect --enable cdr_sqlite3_custom menuselect.makeopts
-	_menuselect --enable cel_sqlite3_custom menuselect.makeopts
-
-	# The others are based on USE-flag settings
-	_use_select alsa         chan_alsa
-	_use_select bluetooth    chan_mobile
-	_use_select calendar     res_calendar res_calendar_{caldav,ews,exchange,icalendar}
-	_use_select cluster      res_corosync
-	_use_select curl         func_curl res_config_curl res_curl
-	_use_select dahdi        app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
-	_use_select freetds      {cdr,cel}_tds
-	_use_select gtalk        chan_motif
-	_use_select http         res_http_post
-	_use_select iconv        func_iconv
-	_use_select ilbc         codec_ilbc format_ilbc
-	_use_select ldap         res_config_ldap
-	_use_select lua          pbx_lua
-	_use_select mysql        app_mysql cdr_mysql res_config_mysql
-	_use_select odbc         cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
-	_use_select oss          chan_oss
-	_use_select postgres     {cdr,cel}_pgsql res_config_pgsql
-	_use_select radius       {cdr,cel}_radius
-	_use_select snmp         res_snmp
-	_use_select span         res_fax_spandsp
-	_use_select speex        {codec,func}_speex
-	_use_select speex        format_ogg_speex
-	_use_select srtp         res_srtp
-	_use_select statsd       res_statsd res_{endpoint,chan}_stats
-	_use_select syslog       cdr_syslog
-	_use_select vorbis       format_ogg_vorbis
-	_use_select xmpp         res_xmpp
-
-	# Voicemail storage ...
-	for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
-		if use "${vmst#+}"; then
-			_menuselect --enable "$(echo "${vmst##*_}" | tr '[:lower:]' '[:upper:]')_STORAGE" menuselect.makeopts
-		fi
-	done
-
-	if use debug; then
-		for o in DONT_OPTIMIZE DEBUG_THREADS BETTER_BACKTRACES; do
-			_menuselect --enable $o menuselect.makeopts
-		done
-	fi
-}
-
-src_compile() {
-	emake ASTCFLAGS="${CFLAGS}" ASTLDFLAGS="${LDFLAGS}" NOISY_BUILD=yes
-}
-
-src_install() {
-	local d
-
-	dodir "/usr/$(get_libdir)/pkgconfig"
-	emake DESTDIR="${D}" NOISY_BUILD=yes install
-
-	if use radius; then
-		insinto /etc/radiusclient/
-		doins contrib/dictionary.digium
-	fi
-	diropts -m 0750 -o root -g asterisk
-	keepdir	/etc/asterisk
-	emake NOISY_BUILD=yes DESTDIR="${D}" CONFIG_SRC=configs/samples CONFIG_EXTEN=.sample install-configs
-	chown root:root "${ED}/etc/asterisk/"* || die "chown root:root of config files failed"
-	chmod 644 "${ED}/etc/asterisk/"* || die "chmod 644 of config files failed"
-
-	# keep directories
-	diropts -m 0750 -o asterisk -g root
-	keepdir /var/lib/asterisk
-	keepdir /var/spool/asterisk
-	keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording}
-	diropts -m 0750 -o asterisk -g asterisk
-	keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
-
-	newinitd "${FILESDIR}"/initd-13.32.0-r1 asterisk
-	newconfd "${FILESDIR}"/confd-13.32.0 asterisk
-
-	systemd_dounit "${FILESDIR}"/asterisk.service
-	newtmpfiles "${FILESDIR}"/asterisk.tmpfiles2.conf asterisk.conf
-	systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
-
-	# Reset diropts else dodoc uses it for doc installations.
-	diropts -m0755
-
-	# install the upgrade documentation
-	dodoc UPGRADE* BUGS CREDITS
-
-	# install extra documentation
-	use doc && dodoc doc/*.{txt,pdf}
-
-	# install logrotate snippet; bug #329281
-	#
-	insinto /etc/logrotate.d
-	newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
-
-	# Asterisk installs a few folders that's empty by design,
-	# but still required.  This finds them, and marks them for
-	# portage.
-	while read d < <(find "${ED}"/var -type d -empty || die "Find failed."); do
-		keepdir "${d#${ED}}"
-	done
-}
-
-pkg_postinst() {
-	if [ -z "${REPLACING_VERSIONS}" ]; then
-		elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
-		elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
-		elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	fi
-}

diff --git a/net-misc/asterisk/asterisk-13.38.2-r4.ebuild b/net-misc/asterisk/asterisk-13.38.2-r4.ebuild
deleted file mode 100644
index 555ccbc9e75..00000000000
--- a/net-misc/asterisk/asterisk-13.38.2-r4.ebuild
+++ /dev/null
@@ -1,349 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-{1..4} )
-
-inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
-
-DESCRIPTION="Asterisk: A Modular Open Source PBX System"
-HOMEPAGE="https://www.asterisk.org/"
-SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
-LICENSE="GPL-2"
-SLOT="0/${PV%%.*}"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
-
-IUSE_VOICEMAIL_STORAGE=(
-	+voicemail_storage_file
-	voicemail_storage_odbc
-	voicemail_storage_imap
-)
-IUSE="${IUSE_VOICEMAIL_STORAGE[*]} alsa blocks bluetooth calendar +caps cluster curl dahdi debug doc freetds gtalk http iconv ilbc ldap lua mysql newt odbc oss pjproject portaudio postgres radius selinux snmp span speex srtp +ssl static statsd syslog systemd vorbis xmpp"
-REQUIRED_USE="gtalk? ( xmpp )
-	lua? ( ${LUA_REQUIRED_USE} )
-	^^ ( ${IUSE_VOICEMAIL_STORAGE[*]//+/} )
-	voicemail_storage_odbc? ( odbc )
-"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-historic-no-var-run-install.patch"
-	"${FILESDIR}/${PN}-13.38.1-r1-autoconf-lua-version.patch"
-	"${FILESDIR}/${PN}-13.38.1-r1-func_lock-fix-races.patch"
-	"${FILESDIR}/${PN}-13.18.1-r2-autoconf-2.70.patch"
-	"${FILESDIR}/${PN}-13.38.2-r1-menuselect-exitcodes.patch"
-	"${FILESDIR}/${PN}-13.38.2-r2-func_odbc_minargs-ARGC.patch"
-)
-
-DEPEND="acct-user/asterisk
-	acct-group/asterisk
-	dev-db/sqlite:3
-	dev-libs/popt
-	dev-libs/jansson
-	dev-libs/libedit
-	dev-libs/libxml2:2
-	dev-libs/libxslt
-	virtual/libcrypt:=
-	sys-libs/zlib
-	alsa? ( media-libs/alsa-lib )
-	bluetooth? ( net-wireless/bluez:= )
-	calendar? (
-		net-libs/neon:=
-		dev-libs/libical:=
-		dev-libs/iksemel
-	)
-	caps? ( sys-libs/libcap )
-	blocks? ( sys-libs/blocksruntime )
-	cluster? ( sys-cluster/corosync )
-	curl? ( net-misc/curl )
-	dahdi? (
-		net-libs/libpri
-		net-misc/dahdi-tools
-	)
-	freetds? ( dev-db/freetds )
-	gtalk? ( dev-libs/iksemel )
-	http? ( dev-libs/gmime:2.6 )
-	iconv? ( virtual/libiconv )
-	ilbc? ( media-libs/libilbc )
-	ldap? ( net-nds/openldap )
-	lua? ( ${LUA_DEPS} )
-	mysql? ( dev-db/mysql-connector-c:= )
-	newt? ( dev-libs/newt )
-	odbc? ( dev-db/unixODBC )
-	pjproject? ( net-libs/pjproject:= )
-	portaudio? ( media-libs/portaudio )
-	postgres? ( dev-db/postgresql:* )
-	radius? ( net-dialup/freeradius-client )
-	snmp? ( net-analyzer/net-snmp:= )
-	span? ( media-libs/spandsp )
-	speex? (
-		media-libs/speex
-		media-libs/speexdsp
-	)
-	srtp? ( net-libs/libsrtp:0 )
-	ssl? (
-		dev-libs/openssl:0=
-	)
-	systemd? ( sys-apps/systemd )
-	!systemd? ( !sys-apps/systemd )
-	vorbis? (
-		media-libs/libogg
-		media-libs/libvorbis
-	)
-	voicemail_storage_imap? ( virtual/imap-c-client )
-	xmpp? ( dev-libs/iksemel )
-"
-
-RDEPEND="${DEPEND}
-	net-misc/asterisk-core-sounds
-	net-misc/asterisk-extra-sounds
-	net-misc/asterisk-moh-opsound
-	selinux? ( sec-policy/selinux-asterisk )
-	syslog? ( virtual/logger )"
-
-BDEPEND="dev-libs/libxml2:2
-	virtual/pkgconfig"
-
-QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
-
-_make_args=(
-	"NOISY_BUILD=yes"
-	"ASTDBDIR=\$(ASTDATADIR)/astdb"
-	"OPTIMIZE="
-	"DEBUG="
-	"DESTDIR=${D}"
-	"CONFIG_SRC=configs/samples"
-	"CONFIG_EXTEN=.sample"
-)
-
-pkg_pretend() {
-	CONFIG_CHECK="~!NF_CONNTRACK_SIP"
-	local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
-	have reported that this module dropped critical SIP packets in their deployments. You
-	may want to disable it if you see such problems."
-	check_extra_config
-
-	[[ "${MERGE_TYPE}" == binary ]] && return
-
-	if tc-is-clang; then
-		use blocks || die "CC=clang requires USE=blocks"
-	else
-		use blocks && die "USE=blocks can only be used with CC=clang"
-	fi
-}
-
-pkg_setup() {
-	use lua && lua-single_pkg_setup
-}
-
-src_prepare() {
-	default
-	AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
-}
-
-src_configure() {
-	local vmst
-	local copt cstate
-
-	econf \
-		LUA_VERSION="${ELUA#lua}" \
-		--libdir="/usr/$(get_libdir)" \
-		--localstatedir="/var" \
-		--with-crypto \
-		--with-gsm=internal \
-		--with-popt \
-		--with-z \
-		--with-libedit \
-		$(use_with caps cap) \
-		$(use_with lua lua) \
-		$(use_with http gmime) \
-		$(use_with newt) \
-		$(use_with pjproject) \
-		$(use_with portaudio) \
-		$(use_with ssl)
-
-	_menuselect() {
-		menuselect/menuselect "$@" || die "menuselect $* failed."
-	}
-
-	_use_select() {
-		local state=$(usex "$1" enable disable)
-		shift # remove use from parameters
-
-		while [[ -n $1 ]]; do
-			_menuselect --${state} "$1" menuselect.makeopts
-			shift
-		done
-	}
-
-	# Blank out sounds/sounds.xml file to prevent
-	# asterisk from installing sounds files (we pull them in via
-	# asterisk-{core,extra}-sounds and asterisk-moh-opsound.
-	>"${S}"/sounds/sounds.xml
-
-	# That NATIVE_ARCH chatter really is quite bothersome
-	sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
-
-	# Compile menuselect binary for optional components
-	emake "${_make_args[@]}" menuselect.makeopts
-
-	# Disable BUILD_NATIVE (bug #667498)
-	_menuselect --disable build_native menuselect.makeopts
-
-	# Broken functionality is forcibly disabled (bug #360143)
-	_menuselect --disable chan_misdn menuselect.makeopts
-	_menuselect --disable chan_ooh323 menuselect.makeopts
-
-	# Utility set is forcibly enabled (bug #358001)
-	_menuselect --enable smsq menuselect.makeopts
-	_menuselect --enable streamplayer menuselect.makeopts
-	_menuselect --enable aelparse menuselect.makeopts
-	_menuselect --enable astman menuselect.makeopts
-
-	# this is connected, otherwise it would not find
-	# ast_pktccops_gate_alloc symbol
-	_menuselect --enable chan_mgcp menuselect.makeopts
-	_menuselect --enable res_pktccops menuselect.makeopts
-
-	# SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
-	_menuselect --enable pbx_dundi menuselect.makeopts
-	_menuselect --enable func_aes menuselect.makeopts
-	_menuselect --enable chan_iax2 menuselect.makeopts
-
-	# SQlite3 is now the main database backend, enable related features
-	_menuselect --enable cdr_sqlite3_custom menuselect.makeopts
-	_menuselect --enable cel_sqlite3_custom menuselect.makeopts
-
-	# The others are based on USE-flag settings
-	_use_select alsa         chan_alsa
-	_use_select bluetooth    chan_mobile
-	_use_select calendar     res_calendar res_calendar_{caldav,ews,exchange,icalendar}
-	_use_select cluster      res_corosync
-	_use_select curl         func_curl res_config_curl res_curl
-	_use_select dahdi        app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
-	_use_select freetds      {cdr,cel}_tds
-	_use_select gtalk        chan_motif
-	_use_select http         res_http_post
-	_use_select iconv        func_iconv
-	_use_select ilbc         codec_ilbc format_ilbc
-	_use_select ldap         res_config_ldap
-	_use_select lua          pbx_lua
-	_use_select mysql        app_mysql cdr_mysql res_config_mysql
-	_use_select odbc         cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
-	_use_select oss          chan_oss
-	_use_select postgres     {cdr,cel}_pgsql res_config_pgsql
-	_use_select radius       {cdr,cel}_radius
-	_use_select snmp         res_snmp
-	_use_select span         res_fax_spandsp
-	_use_select speex        {codec,func}_speex
-	_use_select srtp         res_srtp
-	_use_select statsd       res_statsd res_{endpoint,chan}_stats
-	_use_select syslog       cdr_syslog
-	_use_select vorbis       format_ogg_vorbis
-	_use_select xmpp         res_xmpp
-
-	# Voicemail storage ...
-	for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
-		if use "${vmst#+}"; then
-			_menuselect --enable "$(echo "${vmst##*_}" | tr '[:lower:]' '[:upper:]')_STORAGE" menuselect.makeopts
-		fi
-	done
-
-	if use debug; then
-		for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG BETTER_BACKTRACES; do
-			_menuselect --enable $o menuselect.makeopts
-		done
-	fi
-
-	if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
-		for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
-			cstate=--enable
-			[[ "${copt}" == -* ]] && cstate=--disable
-			ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
-			_menuselect ${cstate} "${copt#[-+]}"
-			eend $?
-		done
-	fi
-}
-
-src_compile() {
-	emake "${_make_args[@]}"
-}
-
-src_install() {
-	local d
-
-	dodir "/usr/$(get_libdir)/pkgconfig"
-	diropts -m 0750 -o root -g asterisk
-	dodir	/etc/asterisk
-
-	emake "${_make_args[@]}" install install-configs
-
-	fowners asterisk: /var/lib/asterisk/astdb
-
-	if use radius; then
-		insinto /etc/radiusclient/
-		doins contrib/dictionary.digium
-	fi
-
-	# keep directories
-	diropts -m 0750 -o asterisk -g root
-	keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording}
-	diropts -m 0750 -o asterisk -g asterisk
-	keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
-
-	newinitd "${FILESDIR}"/initd-13.32.0-r1 asterisk
-	newconfd "${FILESDIR}"/confd-13.32.0 asterisk
-
-	systemd_dounit "${FILESDIR}"/asterisk.service
-	newtmpfiles "${FILESDIR}"/asterisk.tmpfiles2.conf asterisk.conf
-	systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
-
-	# Reset diropts else dodoc uses it for doc installations.
-	diropts -m0755
-
-	# install the upgrade documentation
-	dodoc UPGRADE* BUGS CREDITS
-
-	# install extra documentation
-	use doc && dodoc doc/*.{txt,pdf}
-
-	# install logrotate snippet; bug #329281
-	#
-	insinto /etc/logrotate.d
-	newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
-
-	# Asterisk installs a few folders that's empty by design,
-	# but still required.  This finds them, and marks them for
-	# portage.
-	while read d < <(find "${ED}"/var -type d -empty || die "Find failed."); do
-		keepdir "${d#${ED}}"
-	done
-}
-
-pkg_postinst() {
-	if [ -z "${REPLACING_VERSIONS}" ]; then
-		elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
-		elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
-		elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	fi
-
-	if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
-		ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this should only be used"
-		ewarn "for debugging, for anything else, please file a bug on https://bugs.gentoo.org"
-	fi
-
-	if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
-		ewarn "Default astdb location has changed from /var/lib/asterisk to /var/lib/asterisk/astdb"
-		ewarn "You still have a /var/lib/asterisk/astdb.sqlite file.  You need to either set"
-		ewarn "astdbdir in /etc/asterisk/asterisk.conf to /var/lib/asterisk or follow these"
-		ewarn "steps to migrate:"
-		ewarn "1.  /etc/init.d/asterisk stop"
-		ewarn "2.  mv /var/lib/asterisk/astdb.sqlite /var/lib/asterisk/astdb/"
-		ewarn "3.  /etc/init.d/asterisk start"
-		ewarn "This update was done partly for security reasons so that /var/lib/asterisk can be root owned."
-	fi
-}

diff --git a/net-misc/asterisk/asterisk-13.38.2-r5.ebuild b/net-misc/asterisk/asterisk-13.38.2-r5.ebuild
deleted file mode 100644
index 400218a388d..00000000000
--- a/net-misc/asterisk/asterisk-13.38.2-r5.ebuild
+++ /dev/null
@@ -1,349 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-{1..4} )
-
-inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
-
-DESCRIPTION="Asterisk: A Modular Open Source PBX System"
-HOMEPAGE="https://www.asterisk.org/"
-SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
-LICENSE="GPL-2"
-SLOT="0/${PV%%.*}"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
-
-IUSE_VOICEMAIL_STORAGE=(
-	+voicemail_storage_file
-	voicemail_storage_odbc
-	voicemail_storage_imap
-)
-IUSE="${IUSE_VOICEMAIL_STORAGE[*]} alsa blocks bluetooth calendar +caps cluster curl dahdi debug doc freetds gtalk http iconv ilbc ldap lua mysql newt odbc oss pjproject portaudio postgres radius selinux snmp span speex srtp +ssl static statsd syslog systemd vorbis xmpp"
-REQUIRED_USE="gtalk? ( xmpp )
-	lua? ( ${LUA_REQUIRED_USE} )
-	^^ ( ${IUSE_VOICEMAIL_STORAGE[*]//+/} )
-	voicemail_storage_odbc? ( odbc )
-"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-historic-no-var-run-install.patch"
-	"${FILESDIR}/${PN}-13.38.1-r1-autoconf-lua-version.patch"
-	"${FILESDIR}/${PN}-13.38.2-r3-func_lock-fix-races.patch"
-	"${FILESDIR}/${PN}-13.18.1-r2-autoconf-2.70.patch"
-	"${FILESDIR}/${PN}-13.38.2-r1-menuselect-exitcodes.patch"
-	"${FILESDIR}/${PN}-13.38.2-r2-func_odbc_minargs-ARGC.patch"
-)
-
-DEPEND="acct-user/asterisk
-	acct-group/asterisk
-	dev-db/sqlite:3
-	dev-libs/popt
-	dev-libs/jansson
-	dev-libs/libedit
-	dev-libs/libxml2:2
-	dev-libs/libxslt
-	virtual/libcrypt:=
-	sys-libs/zlib
-	alsa? ( media-libs/alsa-lib )
-	bluetooth? ( net-wireless/bluez:= )
-	calendar? (
-		net-libs/neon:=
-		dev-libs/libical:=
-		dev-libs/iksemel
-	)
-	caps? ( sys-libs/libcap )
-	blocks? ( sys-libs/blocksruntime )
-	cluster? ( sys-cluster/corosync )
-	curl? ( net-misc/curl )
-	dahdi? (
-		net-libs/libpri
-		net-misc/dahdi-tools
-	)
-	freetds? ( dev-db/freetds )
-	gtalk? ( dev-libs/iksemel )
-	http? ( dev-libs/gmime:2.6 )
-	iconv? ( virtual/libiconv )
-	ilbc? ( media-libs/libilbc )
-	ldap? ( net-nds/openldap )
-	lua? ( ${LUA_DEPS} )
-	mysql? ( dev-db/mysql-connector-c:= )
-	newt? ( dev-libs/newt )
-	odbc? ( dev-db/unixODBC )
-	pjproject? ( net-libs/pjproject:= )
-	portaudio? ( media-libs/portaudio )
-	postgres? ( dev-db/postgresql:* )
-	radius? ( net-dialup/freeradius-client )
-	snmp? ( net-analyzer/net-snmp:= )
-	span? ( media-libs/spandsp )
-	speex? (
-		media-libs/speex
-		media-libs/speexdsp
-	)
-	srtp? ( net-libs/libsrtp:0 )
-	ssl? (
-		dev-libs/openssl:0=
-	)
-	systemd? ( sys-apps/systemd )
-	!systemd? ( !sys-apps/systemd )
-	vorbis? (
-		media-libs/libogg
-		media-libs/libvorbis
-	)
-	voicemail_storage_imap? ( virtual/imap-c-client )
-	xmpp? ( dev-libs/iksemel )
-"
-
-RDEPEND="${DEPEND}
-	net-misc/asterisk-core-sounds
-	net-misc/asterisk-extra-sounds
-	net-misc/asterisk-moh-opsound
-	selinux? ( sec-policy/selinux-asterisk )
-	syslog? ( virtual/logger )"
-
-BDEPEND="dev-libs/libxml2:2
-	virtual/pkgconfig"
-
-QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
-
-_make_args=(
-	"NOISY_BUILD=yes"
-	"ASTDBDIR=\$(ASTDATADIR)/astdb"
-	"OPTIMIZE="
-	"DEBUG="
-	"DESTDIR=${D}"
-	"CONFIG_SRC=configs/samples"
-	"CONFIG_EXTEN=.sample"
-)
-
-pkg_pretend() {
-	CONFIG_CHECK="~!NF_CONNTRACK_SIP"
-	local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
-	have reported that this module dropped critical SIP packets in their deployments. You
-	may want to disable it if you see such problems."
-	check_extra_config
-
-	[[ "${MERGE_TYPE}" == binary ]] && return
-
-	if tc-is-clang; then
-		use blocks || die "CC=clang requires USE=blocks"
-	else
-		use blocks && die "USE=blocks can only be used with CC=clang"
-	fi
-}
-
-pkg_setup() {
-	use lua && lua-single_pkg_setup
-}
-
-src_prepare() {
-	default
-	AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
-}
-
-src_configure() {
-	local vmst
-	local copt cstate
-
-	econf \
-		LUA_VERSION="${ELUA#lua}" \
-		--libdir="/usr/$(get_libdir)" \
-		--localstatedir="/var" \
-		--with-crypto \
-		--with-gsm=internal \
-		--with-popt \
-		--with-z \
-		--with-libedit \
-		$(use_with caps cap) \
-		$(use_with lua lua) \
-		$(use_with http gmime) \
-		$(use_with newt) \
-		$(use_with pjproject) \
-		$(use_with portaudio) \
-		$(use_with ssl)
-
-	_menuselect() {
-		menuselect/menuselect "$@" || die "menuselect $* failed."
-	}
-
-	_use_select() {
-		local state=$(usex "$1" enable disable)
-		shift # remove use from parameters
-
-		while [[ -n $1 ]]; do
-			_menuselect --${state} "$1" menuselect.makeopts
-			shift
-		done
-	}
-
-	# Blank out sounds/sounds.xml file to prevent
-	# asterisk from installing sounds files (we pull them in via
-	# asterisk-{core,extra}-sounds and asterisk-moh-opsound.
-	>"${S}"/sounds/sounds.xml
-
-	# That NATIVE_ARCH chatter really is quite bothersome
-	sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
-
-	# Compile menuselect binary for optional components
-	emake "${_make_args[@]}" menuselect.makeopts
-
-	# Disable BUILD_NATIVE (bug #667498)
-	_menuselect --disable build_native menuselect.makeopts
-
-	# Broken functionality is forcibly disabled (bug #360143)
-	_menuselect --disable chan_misdn menuselect.makeopts
-	_menuselect --disable chan_ooh323 menuselect.makeopts
-
-	# Utility set is forcibly enabled (bug #358001)
-	_menuselect --enable smsq menuselect.makeopts
-	_menuselect --enable streamplayer menuselect.makeopts
-	_menuselect --enable aelparse menuselect.makeopts
-	_menuselect --enable astman menuselect.makeopts
-
-	# this is connected, otherwise it would not find
-	# ast_pktccops_gate_alloc symbol
-	_menuselect --enable chan_mgcp menuselect.makeopts
-	_menuselect --enable res_pktccops menuselect.makeopts
-
-	# SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
-	_menuselect --enable pbx_dundi menuselect.makeopts
-	_menuselect --enable func_aes menuselect.makeopts
-	_menuselect --enable chan_iax2 menuselect.makeopts
-
-	# SQlite3 is now the main database backend, enable related features
-	_menuselect --enable cdr_sqlite3_custom menuselect.makeopts
-	_menuselect --enable cel_sqlite3_custom menuselect.makeopts
-
-	# The others are based on USE-flag settings
-	_use_select alsa         chan_alsa
-	_use_select bluetooth    chan_mobile
-	_use_select calendar     res_calendar res_calendar_{caldav,ews,exchange,icalendar}
-	_use_select cluster      res_corosync
-	_use_select curl         func_curl res_config_curl res_curl
-	_use_select dahdi        app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
-	_use_select freetds      {cdr,cel}_tds
-	_use_select gtalk        chan_motif
-	_use_select http         res_http_post
-	_use_select iconv        func_iconv
-	_use_select ilbc         codec_ilbc format_ilbc
-	_use_select ldap         res_config_ldap
-	_use_select lua          pbx_lua
-	_use_select mysql        app_mysql cdr_mysql res_config_mysql
-	_use_select odbc         cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
-	_use_select oss          chan_oss
-	_use_select postgres     {cdr,cel}_pgsql res_config_pgsql
-	_use_select radius       {cdr,cel}_radius
-	_use_select snmp         res_snmp
-	_use_select span         res_fax_spandsp
-	_use_select speex        {codec,func}_speex
-	_use_select srtp         res_srtp
-	_use_select statsd       res_statsd res_{endpoint,chan}_stats
-	_use_select syslog       cdr_syslog
-	_use_select vorbis       format_ogg_vorbis
-	_use_select xmpp         res_xmpp
-
-	# Voicemail storage ...
-	for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
-		if use "${vmst#+}"; then
-			_menuselect --enable "$(echo "${vmst##*_}" | tr '[:lower:]' '[:upper:]')_STORAGE" menuselect.makeopts
-		fi
-	done
-
-	if use debug; then
-		for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG BETTER_BACKTRACES; do
-			_menuselect --enable $o menuselect.makeopts
-		done
-	fi
-
-	if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
-		for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
-			cstate=--enable
-			[[ "${copt}" == -* ]] && cstate=--disable
-			ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
-			_menuselect ${cstate} "${copt#[-+]}"
-			eend $?
-		done
-	fi
-}
-
-src_compile() {
-	emake "${_make_args[@]}"
-}
-
-src_install() {
-	local d
-
-	dodir "/usr/$(get_libdir)/pkgconfig"
-	diropts -m 0750 -o root -g asterisk
-	dodir	/etc/asterisk
-
-	emake "${_make_args[@]}" install install-configs
-
-	fowners asterisk: /var/lib/asterisk/astdb
-
-	if use radius; then
-		insinto /etc/radiusclient/
-		doins contrib/dictionary.digium
-	fi
-
-	# keep directories
-	diropts -m 0750 -o asterisk -g root
-	keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording}
-	diropts -m 0750 -o asterisk -g asterisk
-	keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
-
-	newinitd "${FILESDIR}"/initd-13.32.0-r1 asterisk
-	newconfd "${FILESDIR}"/confd-13.32.0 asterisk
-
-	systemd_dounit "${FILESDIR}"/asterisk.service
-	newtmpfiles "${FILESDIR}"/asterisk.tmpfiles2.conf asterisk.conf
-	systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
-
-	# Reset diropts else dodoc uses it for doc installations.
-	diropts -m0755
-
-	# install the upgrade documentation
-	dodoc UPGRADE* BUGS CREDITS
-
-	# install extra documentation
-	use doc && dodoc doc/*.{txt,pdf}
-
-	# install logrotate snippet; bug #329281
-	#
-	insinto /etc/logrotate.d
-	newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
-
-	# Asterisk installs a few folders that's empty by design,
-	# but still required.  This finds them, and marks them for
-	# portage.
-	while read d < <(find "${ED}"/var -type d -empty || die "Find failed."); do
-		keepdir "${d#${ED}}"
-	done
-}
-
-pkg_postinst() {
-	if [ -z "${REPLACING_VERSIONS}" ]; then
-		elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
-		elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
-		elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	fi
-
-	if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
-		ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this should only be used"
-		ewarn "for debugging, for anything else, please file a bug on https://bugs.gentoo.org"
-	fi
-
-	if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
-		ewarn "Default astdb location has changed from /var/lib/asterisk to /var/lib/asterisk/astdb"
-		ewarn "You still have a /var/lib/asterisk/astdb.sqlite file.  You need to either set"
-		ewarn "astdbdir in /etc/asterisk/asterisk.conf to /var/lib/asterisk or follow these"
-		ewarn "steps to migrate:"
-		ewarn "1.  /etc/init.d/asterisk stop"
-		ewarn "2.  mv /var/lib/asterisk/astdb.sqlite /var/lib/asterisk/astdb/"
-		ewarn "3.  /etc/init.d/asterisk start"
-		ewarn "This update was done partly for security reasons so that /var/lib/asterisk can be root owned."
-	fi
-}

diff --git a/net-misc/asterisk/asterisk-16.18.0-r2.ebuild b/net-misc/asterisk/asterisk-16.18.0-r2.ebuild
deleted file mode 100644
index 5e2d0afa12b..00000000000
--- a/net-misc/asterisk/asterisk-16.18.0-r2.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-{1..4} )
-
-inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
-
-DESCRIPTION="Asterisk: A Modular Open Source PBX System"
-HOMEPAGE="https://www.asterisk.org/"
-SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
-LICENSE="GPL-2"
-SLOT="0/${PV%%.*}"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
-
-IUSE_VOICEMAIL_STORAGE=(
-	+voicemail_storage_file
-	voicemail_storage_odbc
-	voicemail_storage_imap
-)
-IUSE="${IUSE_VOICEMAIL_STORAGE[*]} alsa blocks bluetooth calendar +caps cluster codec2 curl dahdi debug doc freetds gtalk http iconv ilbc ldap lua mysql newt odbc oss pjproject portaudio postgres radius selinux snmp span speex srtp +ssl static statsd syslog unbound vorbis xmpp"
-IUSE_EXPAND="VOICEMAIL_STORAGE"
-REQUIRED_USE="gtalk? ( xmpp )
-	lua? ( ${LUA_REQUIRED_USE} )
-	^^ ( ${IUSE_VOICEMAIL_STORAGE[*]//+/} )
-	voicemail_storage_odbc? ( odbc )
-"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-16.16.2-no-var-run-install.patch"
-	"${FILESDIR}/${PN}-16.18.0-r1-func_lock-fix-races.patch"
-)
-
-DEPEND="acct-user/asterisk
-	acct-group/asterisk
-	dev-db/sqlite:3
-	dev-libs/popt
-	>=dev-libs/jansson-2.11
-	dev-libs/libedit
-	dev-libs/libxml2:2
-	dev-libs/libxslt
-	virtual/libcrypt:=
-	sys-apps/util-linux
-	sys-libs/ncurses:0=
-	sys-libs/zlib
-	alsa? ( media-libs/alsa-lib )
-	bluetooth? ( net-wireless/bluez:= )
-	calendar? (
-		net-libs/neon:=
-		dev-libs/libical:=
-		dev-libs/iksemel
-	)
-	caps? ( sys-libs/libcap )
-	blocks? ( sys-libs/blocksruntime )
-	cluster? ( sys-cluster/corosync )
-	codec2? ( media-libs/codec2:= )
-	curl? ( net-misc/curl )
-	dahdi? (
-		net-libs/libpri
-		net-misc/dahdi-tools
-	)
-	freetds? ( dev-db/freetds )
-	gtalk? ( dev-libs/iksemel )
-	http? ( dev-libs/gmime:2.6 )
-	iconv? ( virtual/libiconv )
-	ilbc? ( media-libs/libilbc )
-	ldap? ( net-nds/openldap )
-	lua? ( ${LUA_DEPS} )
-	mysql? ( dev-db/mysql-connector-c:= )
-	newt? ( dev-libs/newt )
-	odbc? ( dev-db/unixODBC )
-	pjproject? ( >=net-libs/pjproject-2.9 )
-	portaudio? ( media-libs/portaudio )
-	postgres? ( dev-db/postgresql:* )
-	radius? ( net-dialup/freeradius-client )
-	snmp? ( net-analyzer/net-snmp:= )
-	span? ( media-libs/spandsp )
-	speex? (
-		media-libs/libogg
-		media-libs/speex
-		media-libs/speexdsp
-	)
-	srtp? ( net-libs/libsrtp:0 )
-	ssl? (
-		dev-libs/openssl:0=
-	)
-	unbound? ( net-dns/unbound )
-	vorbis? (
-		media-libs/libogg
-		media-libs/libvorbis
-	)
-	voicemail_storage_imap? ( virtual/imap-c-client )
-	xmpp? ( dev-libs/iksemel )
-"
-
-RDEPEND="${DEPEND}
-	net-misc/asterisk-core-sounds
-	net-misc/asterisk-extra-sounds
-	net-misc/asterisk-moh-opsound
-	selinux? ( sec-policy/selinux-asterisk )
-	syslog? ( virtual/logger )"
-
-BDEPEND="dev-libs/libxml2:2
-	virtual/pkgconfig"
-
-QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
-
-pkg_pretend() {
-	CONFIG_CHECK="~!NF_CONNTRACK_SIP"
-	local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
-	have reported that this module dropped critical SIP packets in their deployments. You
-	may want to disable it if you see such problems."
-	check_extra_config
-
-	[[ "${MERGE_TYPE}" == binary ]] && return
-
-	if tc-is-clang; then
-		use blocks || die "CC=clang requires USE=blocks"
-	else
-		use blocks && die "USE=blocks can only be used with CC=clang"
-	fi
-}
-
-pkg_setup() {
-	use lua && lua-single_pkg_setup
-}
-
-src_prepare() {
-	default
-	AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
-}
-
-src_configure() {
-	local vmst
-
-	econf \
-		LUA_VERSION="${ELUA#lua}" \
-		--libdir="/usr/$(get_libdir)" \
-		--localstatedir="/var" \
-		--with-crypto \
-		--with-gsm=internal \
-		--with-popt \
-		--with-z \
-		--with-libedit \
-		--without-jansson-bundled \
-		--without-pjproject-bundled \
-		$(use_with caps cap) \
-		$(use_with codec2) \
-		$(use_with lua lua) \
-		$(use_with http gmime) \
-		$(use_with newt) \
-		$(use_with pjproject) \
-		$(use_with portaudio) \
-		$(use_with ssl) \
-		$(use_with unbound)
-
-	_menuselect() {
-		menuselect/menuselect "$@" || die "menuselect $* failed."
-	}
-
-	_use_select() {
-		local state=$(use "$1" && echo enable || echo disable)
-		shift # remove use from parameters
-
-		while [[ -n $1 ]]; do
-			_menuselect --${state} "$1" menuselect.makeopts
-			shift
-		done
-	}
-
-	# Blank out sounds/sounds.xml file to prevent
-	# asterisk from installing sounds files (we pull them in via
-	# asterisk-{core,extra}-sounds and asterisk-moh-opsound.
-	>"${S}"/sounds/sounds.xml
-
-	# That NATIVE_ARCH chatter really is quite bothersome
-	sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
-
-	# Compile menuselect binary for optional components
-	emake NOISY_BUILD=yes menuselect.makeopts
-
-	# Disable BUILD_NATIVE (bug #667498)
-	_menuselect --disable build_native menuselect.makeopts
-
-	# Broken functionality is forcibly disabled (bug #360143)
-	_menuselect --disable chan_misdn menuselect.makeopts
-	_menuselect --disable chan_ooh323 menuselect.makeopts
-
-	# Utility set is forcibly enabled (bug #358001)
-	_menuselect --enable smsq menuselect.makeopts
-	_menuselect --enable streamplayer menuselect.makeopts
-	_menuselect --enable aelparse menuselect.makeopts
-	_menuselect --enable astman menuselect.makeopts
-
-	# this is connected, otherwise it would not find
-	# ast_pktccops_gate_alloc symbol
-	_menuselect --enable chan_mgcp menuselect.makeopts
-	_menuselect --enable res_pktccops menuselect.makeopts
-
-	# SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
-	_menuselect --enable pbx_dundi menuselect.makeopts
-	_menuselect --enable func_aes menuselect.makeopts
-	_menuselect --enable chan_iax2 menuselect.makeopts
-
-	# SQlite3 is now the main database backend, enable related features
-	_menuselect --enable cdr_sqlite3_custom menuselect.makeopts
-	_menuselect --enable cel_sqlite3_custom menuselect.makeopts
-
-	# The others are based on USE-flag settings
-	_use_select alsa         chan_alsa
-	_use_select bluetooth    chan_mobile
-	_use_select calendar     res_calendar res_calendar_{caldav,ews,exchange,icalendar}
-	_use_select cluster      res_corosync
-	_use_select codec2       codec_codec2
-	_use_select curl         func_curl res_config_curl res_curl
-	_use_select dahdi        app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
-	_use_select freetds      {cdr,cel}_tds
-	_use_select gtalk        chan_motif
-	_use_select http         res_http_post
-	_use_select iconv        func_iconv
-	_use_select ilbc         codec_ilbc format_ilbc
-	_use_select ldap         res_config_ldap
-	_use_select lua          pbx_lua
-	_use_select mysql        app_mysql cdr_mysql res_config_mysql
-	_use_select odbc         cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
-	_use_select oss          chan_oss
-	_use_select postgres     {cdr,cel}_pgsql res_config_pgsql
-	_use_select radius       {cdr,cel}_radius
-	_use_select snmp         res_snmp
-	_use_select span         res_fax_spandsp
-	_use_select speex        {codec,func}_speex
-	_use_select speex        format_ogg_speex
-	_use_select srtp         res_srtp
-	_use_select statsd       res_statsd res_{endpoint,chan}_stats
-	_use_select syslog       cdr_syslog
-	_use_select vorbis       format_ogg_vorbis
-	_use_select xmpp         res_xmpp
-
-	# Voicemail storage ...
-	for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
-		if use "${vmst#+}"; then
-			_menuselect --enable "$(echo "${vmst##*_}" | tr '[:lower:]' '[:upper:]')_STORAGE" menuselect.makeopts
-		fi
-	done
-
-	if use debug; then
-		for o in DONT_OPTIMIZE DEBUG_THREADS BETTER_BACKTRACES; do
-			_menuselect --enable "${o}" menuselect.makeopts
-		done
-	fi
-}
-
-src_compile() {
-	emake ASTCFLAGS="${CFLAGS}" ASTLDFLAGS="${LDFLAGS}" NOISY_BUILD=yes
-}
-
-src_install() {
-	local d
-
-	dodir "/usr/$(get_libdir)/pkgconfig"
-	emake DESTDIR="${D}" NOISY_BUILD=yes install
-
-	if use radius; then
-		insinto /etc/radiusclient/
-		doins contrib/dictionary.digium
-	fi
-	diropts -m 0750 -o root -g asterisk
-	keepdir	/etc/asterisk
-	emake NOISY_BUILD=yes DESTDIR="${D}" CONFIG_SRC=configs/samples CONFIG_EXTEN=.sample install-configs
-	chown root:root "${ED}/etc/asterisk/"* || die "chown root:root of config files failed."
-	chmod 644 "${ED}/etc/asterisk/"* || die "chmod 644 of config files failed."
-
-	# keep directories
-	diropts -m 0750 -o asterisk -g root
-	keepdir /var/lib/asterisk
-	keepdir /var/spool/asterisk
-	keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording}
-	diropts -m 0750 -o asterisk -g asterisk
-	keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
-
-	newinitd "${FILESDIR}"/initd-13.32.0-r1 asterisk
-	newconfd "${FILESDIR}"/confd-13.32.0 asterisk
-
-	systemd_dounit "${FILESDIR}"/asterisk.service
-	newtmpfiles "${FILESDIR}"/asterisk.tmpfiles2.conf asterisk.conf
-	systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
-
-	# Reset diropts else dodoc uses it for doc installations.
-	diropts -m0755
-
-	# install the upgrade documentation
-	dodoc UPGRADE* BUGS CREDITS
-
-	# install extra documentation
-	use doc && dodoc doc/*.{txt,pdf}
-
-	# install logrotate snippet; bug #329281
-	#
-	insinto /etc/logrotate.d
-	newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
-
-	# Asterisk installs a few folders that's empty by design,
-	# but still required.  This finds them, and marks them for
-	# portage.
-	while read d < <(find "${ED}"/var -type d -empty || die "Find failed."); do
-		keepdir "${d#${ED}}"
-	done
-}
-
-pkg_postinst() {
-	if [ -z "${REPLACING_VERSIONS}" ]; then
-		elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
-		elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
-		elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	fi
-}

diff --git a/net-misc/asterisk/asterisk-16.19.0-r1.ebuild b/net-misc/asterisk/asterisk-16.19.0-r1.ebuild
deleted file mode 100644
index 9548b400631..00000000000
--- a/net-misc/asterisk/asterisk-16.19.0-r1.ebuild
+++ /dev/null
@@ -1,363 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-{1..4} )
-
-inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
-
-DESCRIPTION="Asterisk: A Modular Open Source PBX System"
-HOMEPAGE="https://www.asterisk.org/"
-SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
-LICENSE="GPL-2"
-SLOT="0/${PV%%.*}"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
-
-IUSE_VOICEMAIL_STORAGE=(
-	+voicemail_storage_file
-	voicemail_storage_odbc
-	voicemail_storage_imap
-)
-IUSE="${IUSE_VOICEMAIL_STORAGE[*]} alsa blocks bluetooth calendar +caps cluster codec2 curl dahdi debug deprecated doc freetds gtalk http iconv ilbc ldap lua mysql newt odbc oss pjproject portaudio postgres radius selinux snmp span speex srtp +ssl static statsd syslog systemd unbound vorbis xmpp"
-IUSE_EXPAND="VOICEMAIL_STORAGE"
-REQUIRED_USE="gtalk? ( xmpp )
-	lua? ( ${LUA_REQUIRED_USE} )
-	^^ ( ${IUSE_VOICEMAIL_STORAGE[*]//+/} )
-	voicemail_storage_odbc? ( odbc )
-"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-16.16.2-no-var-run-install.patch"
-)
-
-DEPEND="acct-user/asterisk
-	acct-group/asterisk
-	dev-db/sqlite:3
-	dev-libs/popt
-	>=dev-libs/jansson-2.11
-	dev-libs/libedit
-	dev-libs/libxml2:2
-	dev-libs/libxslt
-	sys-apps/util-linux
-	sys-libs/zlib
-	virtual/libcrypt:=
-	alsa? ( media-libs/alsa-lib )
-	bluetooth? ( net-wireless/bluez:= )
-	calendar? (
-		net-libs/neon:=
-		dev-libs/libical:=
-		dev-libs/iksemel
-	)
-	caps? ( sys-libs/libcap )
-	blocks? ( sys-libs/blocksruntime )
-	cluster? ( sys-cluster/corosync )
-	codec2? ( media-libs/codec2:= )
-	curl? ( net-misc/curl )
-	dahdi? (
-		net-libs/libpri
-		net-misc/dahdi-tools
-	)
-	freetds? ( dev-db/freetds )
-	gtalk? ( dev-libs/iksemel )
-	http? ( dev-libs/gmime:2.6 )
-	iconv? ( virtual/libiconv )
-	ilbc? ( media-libs/libilbc )
-	ldap? ( net-nds/openldap )
-	lua? ( ${LUA_DEPS} )
-	mysql? ( dev-db/mysql-connector-c:= )
-	newt? ( dev-libs/newt )
-	odbc? ( dev-db/unixODBC )
-	pjproject? ( >=net-libs/pjproject-2.9:= )
-	portaudio? ( media-libs/portaudio )
-	postgres? ( dev-db/postgresql:* )
-	radius? ( net-dialup/freeradius-client )
-	snmp? ( net-analyzer/net-snmp:= )
-	span? ( media-libs/spandsp )
-	speex? (
-		media-libs/libogg
-		media-libs/speex
-		media-libs/speexdsp
-	)
-	srtp? ( net-libs/libsrtp:0 )
-	ssl? (
-		dev-libs/openssl:0=
-	)
-	systemd? ( sys-apps/systemd )
-	!systemd? ( !sys-apps/systemd )
-	unbound? ( net-dns/unbound )
-	vorbis? (
-		media-libs/libogg
-		media-libs/libvorbis
-	)
-	voicemail_storage_imap? ( virtual/imap-c-client )
-	xmpp? ( dev-libs/iksemel )
-"
-
-RDEPEND="${DEPEND}
-	net-misc/asterisk-core-sounds
-	net-misc/asterisk-extra-sounds
-	net-misc/asterisk-moh-opsound
-	selinux? ( sec-policy/selinux-asterisk )
-	syslog? ( virtual/logger )"
-
-BDEPEND="dev-libs/libxml2:2
-	virtual/pkgconfig"
-
-QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
-
-_make_args=(
-	"NOISY_BUILD=yes"
-	"ASTDBDIR=\$(ASTDATADIR)/astdb"
-	"ASTCACHEDIR=/var/cache/asterisk"
-	"OPTIMIZE="
-	"DEBUG="
-	"DESTDIR=${D}"
-	"CONFIG_SRC=configs/samples"
-	"CONFIG_EXTEN=.sample"
-)
-
-pkg_pretend() {
-	CONFIG_CHECK="~!NF_CONNTRACK_SIP"
-	local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
-	have reported that this module dropped critical SIP packets in their deployments. You
-	may want to disable it if you see such problems."
-	check_extra_config
-
-	[[ "${MERGE_TYPE}" == binary ]] && return
-
-	if tc-is-clang; then
-		use blocks || die "CC=clang requires USE=blocks"
-	else
-		use blocks && die "USE=blocks can only be used with CC=clang"
-	fi
-}
-
-pkg_setup() {
-	use lua && lua-single_pkg_setup
-}
-
-src_prepare() {
-	default
-	AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
-}
-
-src_configure() {
-	local vmst
-	local copt cstate
-
-	econf \
-		LUA_VERSION="${ELUA#lua}" \
-		--libdir="/usr/$(get_libdir)" \
-		--localstatedir="/var" \
-		--with-crypto \
-		--with-gsm=internal \
-		--with-popt \
-		--with-z \
-		--with-libedit \
-		--without-jansson-bundled \
-		--without-pjproject-bundled \
-		$(use_with caps cap) \
-		$(use_with codec2) \
-		$(use_with lua lua) \
-		$(use_with http gmime) \
-		$(use_with newt) \
-		$(use_with pjproject) \
-		$(use_with portaudio) \
-		$(use_with ssl) \
-		$(use_with unbound)
-
-	_menuselect() {
-		menuselect/menuselect "$@" || die "menuselect $* failed."
-	}
-
-	_use_select() {
-		local state=$(use "$1" && echo enable || echo disable)
-		shift # remove use from parameters
-
-		while [[ -n $1 ]]; do
-			_menuselect --${state} "$1" menuselect.makeopts
-			shift
-		done
-	}
-
-	# Blank out sounds/sounds.xml file to prevent
-	# asterisk from installing sounds files (we pull them in via
-	# asterisk-{core,extra}-sounds and asterisk-moh-opsound.
-	>"${S}"/sounds/sounds.xml
-
-	# That NATIVE_ARCH chatter really is quite bothersome
-	sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
-
-	# Compile menuselect binary for optional components
-	emake "${_make_args[@]}" menuselect.makeopts
-
-	# Disable BUILD_NATIVE (bug #667498)
-	_menuselect --disable build_native menuselect.makeopts
-
-	# Broken functionality is forcibly disabled (bug #360143)
-	_menuselect --disable chan_misdn menuselect.makeopts
-	_menuselect --disable chan_ooh323 menuselect.makeopts
-
-	# Utility set is forcibly enabled (bug #358001)
-	_menuselect --enable smsq menuselect.makeopts
-	_menuselect --enable streamplayer menuselect.makeopts
-	_menuselect --enable aelparse menuselect.makeopts
-	_menuselect --enable astman menuselect.makeopts
-
-	# this is connected, otherwise it would not find
-	# ast_pktccops_gate_alloc symbol
-	_menuselect --enable chan_mgcp menuselect.makeopts
-	_menuselect --enable res_pktccops menuselect.makeopts
-
-	# SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
-	_menuselect --enable pbx_dundi menuselect.makeopts
-	_menuselect --enable func_aes menuselect.makeopts
-	_menuselect --enable chan_iax2 menuselect.makeopts
-
-	# SQlite3 is now the main database backend, enable related features
-	_menuselect --enable cdr_sqlite3_custom menuselect.makeopts
-	_menuselect --enable cel_sqlite3_custom menuselect.makeopts
-
-	# The others are based on USE-flag settings
-	_use_select alsa         chan_alsa
-	_use_select bluetooth    chan_mobile
-	_use_select calendar     res_calendar res_calendar_{caldav,ews,exchange,icalendar}
-	_use_select cluster      res_corosync
-	_use_select codec2       codec_codec2
-	_use_select curl         func_curl res_config_curl res_curl
-	_use_select dahdi        app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
-	_use_select deprecated   app_macro
-	_use_select freetds      {cdr,cel}_tds
-	_use_select gtalk        chan_motif
-	_use_select http         res_http_post
-	_use_select iconv        func_iconv
-	_use_select ilbc         codec_ilbc format_ilbc
-	_use_select ldap         res_config_ldap
-	_use_select lua          pbx_lua
-	_use_select mysql        app_mysql cdr_mysql res_config_mysql
-	_use_select odbc         cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
-	_use_select oss          chan_oss
-	_use_select postgres     {cdr,cel}_pgsql res_config_pgsql
-	_use_select radius       {cdr,cel}_radius
-	_use_select snmp         res_snmp
-	_use_select span         res_fax_spandsp
-	_use_select speex        {codec,func}_speex
-	_use_select speex        format_ogg_speex
-	_use_select srtp         res_srtp
-	_use_select statsd       res_statsd res_{endpoint,chan}_stats
-	_use_select syslog       cdr_syslog
-	_use_select vorbis       format_ogg_vorbis
-	_use_select xmpp         res_xmpp
-
-	# Voicemail storage ...
-	for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
-		if use "${vmst#+}"; then
-			_menuselect --enable "$(echo "${vmst##*_}" | tr '[:lower:]' '[:upper:]')_STORAGE" menuselect.makeopts
-		fi
-	done
-
-	if use debug; then
-		for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG BETTER_BACKTRACES; do
-			_menuselect --enable "${o}" menuselect.makeopts
-		done
-	fi
-
-	if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
-		for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
-			cstate=--enable
-			[[ "${copt}" == -* ]] && cstate=--disable
-			ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
-			_menuselect ${cstate} "${copt#[-+]}"
-			eend $?
-		done
-	fi
-}
-
-src_compile() {
-	emake "${_make_args[@]}"
-}
-
-src_install() {
-	local d
-
-	dodir "/usr/$(get_libdir)/pkgconfig"
-
-	diropts -m 0750 -o root -g asterisk
-	dodir /etc/asterisk
-
-	emake "${_make_args[@]}" install install-configs
-
-	fowners asterisk: /var/lib/asterisk/astdb
-
-	if use radius; then
-		insinto /etc/radiusclient/
-		doins contrib/dictionary.digium
-	fi
-
-	# keep directories
-	diropts -m 0750 -o asterisk -g root
-	keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording,outgoing}
-	diropts -m 0750 -o asterisk -g asterisk
-	keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
-
-	newinitd "${FILESDIR}"/initd-16.16.2-r1 asterisk
-	newconfd "${FILESDIR}"/confd-16.16.2-r1 asterisk
-
-	systemd_dounit "${FILESDIR}"/asterisk.service
-	newtmpfiles "${FILESDIR}"/asterisk.tmpfiles3.conf asterisk.conf
-	systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
-
-	# Reset diropts else dodoc uses it for doc installations.
-	diropts -m0755
-
-	# install the upgrade documentation
-	dodoc UPGRADE* BUGS CREDITS
-
-	# install extra documentation
-	use doc && dodoc doc/*.{txt,pdf}
-
-	# install logrotate snippet; bug #329281
-	#
-	insinto /etc/logrotate.d
-	newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
-
-	# Asterisk installs a few folders that's empty by design,
-	# but still required.  This finds them, and marks them for
-	# portage.
-	while read d <&3; do
-		keepdir "${d#${ED}}"
-	done 3< <(find "${ED}"/var -type d -empty || die "Find failed.")
-}
-
-pkg_postinst() {
-	if [ -z "${REPLACING_VERSIONS}" ]; then
-		elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
-		elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
-		elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	fi
-
-	if use deprecated; then
-		ewarn "You really aught to port whatever code you have that depends on this since these are going to go away."
-		ewarn "Refer: https://wiki.asterisk.org/wiki/display/AST/Module+Deprecation"
-	fi
-
-	if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
-		ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this should only be used"
-		ewarn "for debugging, for anything else, please file a bug on https://bugs.gentoo.org"
-	fi
-
-	if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
-		ewarn "Default astdb location has changed from /var/lib/asterisk to /var/lib/asterisk/astdb"
-		ewarn "You still have a /var/lib/asterisk/astdb.sqlite file.  You need to either set"
-		ewarn "astdbdir in /etc/asterisk/asterisk.conf to /var/lib/asterisk or follow these"
-		ewarn "steps to migrate:"
-		ewarn "1.  /etc/init.d/asterisk stop"
-		ewarn "2.  mv /var/lib/asterisk/astdb.sqlite /var/lib/asterisk/astdb/"
-		ewarn "3.  /etc/init.d/asterisk start"
-		ewarn "This update was done partly for security reasons so that /var/lib/asterisk can be root owned."
-	fi
-}

diff --git a/net-misc/asterisk/asterisk-18.4.0-r2.ebuild b/net-misc/asterisk/asterisk-18.4.0-r2.ebuild
deleted file mode 100644
index d1792573693..00000000000
--- a/net-misc/asterisk/asterisk-18.4.0-r2.ebuild
+++ /dev/null
@@ -1,363 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-{1..4} )
-
-inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
-
-DESCRIPTION="Asterisk: A Modular Open Source PBX System"
-HOMEPAGE="https://www.asterisk.org/"
-SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
-LICENSE="GPL-2"
-SLOT="0/${PV%%.*}"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
-
-IUSE_VOICEMAIL_STORAGE=(
-	voicemail_storage_odbc
-	voicemail_storage_imap
-)
-IUSE="${IUSE_VOICEMAIL_STORAGE[*]} alsa blocks bluetooth calendar +caps cluster codec2 curl dahdi debug deprecated doc freetds gtalk http iconv ilbc ldap lua mysql newt odbc oss pjproject portaudio postgres radius selinux snmp span speex srtp +ssl static statsd syslog systemd unbound vorbis xmpp"
-IUSE_EXPAND="VOICEMAIL_STORAGE"
-REQUIRED_USE="gtalk? ( xmpp )
-	lua? ( ${LUA_REQUIRED_USE} )
-	voicemail_storage_odbc? ( odbc )
-"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-16.16.2-no-var-run-install.patch"
-	"${FILESDIR}/${PN}-16.18.0-r1-func_lock-fix-races.patch"
-)
-
-DEPEND="acct-user/asterisk
-	acct-group/asterisk
-	dev-db/sqlite:3
-	dev-libs/popt
-	>=dev-libs/jansson-2.11
-	dev-libs/libedit
-	dev-libs/libxml2:2
-	dev-libs/libxslt
-	virtual/libcrypt:=
-	sys-apps/util-linux
-	sys-libs/zlib
-	alsa? ( media-libs/alsa-lib )
-	bluetooth? ( net-wireless/bluez:= )
-	calendar? (
-		net-libs/neon:=
-		dev-libs/libical:=
-		dev-libs/iksemel
-	)
-	caps? ( sys-libs/libcap )
-	blocks? ( sys-libs/blocksruntime )
-	cluster? ( sys-cluster/corosync )
-	codec2? ( media-libs/codec2:= )
-	curl? ( net-misc/curl )
-	dahdi? (
-		net-libs/libpri
-		net-misc/dahdi-tools
-	)
-	freetds? ( dev-db/freetds )
-	gtalk? ( dev-libs/iksemel )
-	http? ( dev-libs/gmime:2.6 )
-	iconv? ( virtual/libiconv )
-	ilbc? ( media-libs/libilbc )
-	ldap? ( net-nds/openldap )
-	lua? ( ${LUA_DEPS} )
-	mysql? ( dev-db/mysql-connector-c:= )
-	newt? ( dev-libs/newt )
-	odbc? ( dev-db/unixODBC )
-	pjproject? ( >=net-libs/pjproject-2.9:= )
-	portaudio? ( media-libs/portaudio )
-	postgres? ( dev-db/postgresql:* )
-	radius? ( net-dialup/freeradius-client )
-	snmp? ( net-analyzer/net-snmp:= )
-	span? ( media-libs/spandsp )
-	speex? (
-		media-libs/libogg
-		media-libs/speex
-		media-libs/speexdsp
-	)
-	srtp? ( net-libs/libsrtp:0 )
-	ssl? (
-		dev-libs/openssl:0=
-	)
-	systemd? ( sys-apps/systemd )
-	!systemd? ( !sys-apps/systemd )
-	unbound? ( net-dns/unbound )
-	vorbis? (
-		media-libs/libogg
-		media-libs/libvorbis
-	)
-	voicemail_storage_imap? ( virtual/imap-c-client )
-	xmpp? ( dev-libs/iksemel )
-"
-
-RDEPEND="${DEPEND}
-	net-misc/asterisk-core-sounds
-	net-misc/asterisk-extra-sounds
-	net-misc/asterisk-moh-opsound
-	selinux? ( sec-policy/selinux-asterisk )
-	syslog? ( virtual/logger )"
-
-BDEPEND="dev-libs/libxml2:2
-	virtual/pkgconfig"
-
-QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
-
-_make_args=(
-	"NOISY_BUILD=yes"
-	"ASTDBDIR=\$(ASTDATADIR)/astdb"
-	"ASTCACHEDIR=/var/cache/asterisk"
-	"OPTIMIZE="
-	"DEBUG="
-	"DESTDIR=${D}"
-	"CONFIG_SRC=configs/samples"
-	"CONFIG_EXTEN=.sample"
-)
-
-pkg_pretend() {
-	CONFIG_CHECK="~!NF_CONNTRACK_SIP"
-	local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
-	have reported that this module dropped critical SIP packets in their deployments. You
-	may want to disable it if you see such problems."
-	check_extra_config
-
-	[[ "${MERGE_TYPE}" == binary ]] && return
-
-	if tc-is-clang; then
-		use blocks || die "CC=clang requires USE=blocks"
-	else
-		use blocks && die "USE=blocks can only be used with CC=clang"
-	fi
-}
-
-pkg_setup() {
-	use lua && lua-single_pkg_setup
-}
-
-src_prepare() {
-	default
-	AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
-}
-
-src_configure() {
-	local vmst
-	local copt cstate
-
-	econf \
-		LUA_VERSION="${ELUA#lua}" \
-		--libdir="/usr/$(get_libdir)" \
-		--localstatedir="/var" \
-		--with-crypto \
-		--with-gsm=internal \
-		--with-popt \
-		--with-z \
-		--with-libedit \
-		--without-jansson-bundled \
-		--without-pjproject-bundled \
-		$(use_with caps cap) \
-		$(use_with codec2) \
-		$(use_with lua lua) \
-		$(use_with http gmime) \
-		$(use_with newt) \
-		$(use_with pjproject) \
-		$(use_with portaudio) \
-		$(use_with ssl) \
-		$(use_with unbound)
-
-	_menuselect() {
-		menuselect/menuselect "$@" || die "menuselect $* failed."
-	}
-
-	_use_select() {
-		local state=$(use "$1" && echo enable || echo disable)
-		shift # remove use from parameters
-
-		while [[ -n $1 ]]; do
-			_menuselect --${state} "$1" menuselect.makeopts
-			shift
-		done
-	}
-
-	# Blank out sounds/sounds.xml file to prevent
-	# asterisk from installing sounds files (we pull them in via
-	# asterisk-{core,extra}-sounds and asterisk-moh-opsound.
-	>"${S}"/sounds/sounds.xml
-
-	# That NATIVE_ARCH chatter really is quite bothersome
-	sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
-
-	# Compile menuselect binary for optional components
-	emake "${_make_args[@]}" menuselect.makeopts
-
-	# Disable BUILD_NATIVE (bug #667498)
-	_menuselect --disable build_native menuselect.makeopts
-
-	# Broken functionality is forcibly disabled (bug #360143)
-	_menuselect --disable chan_misdn menuselect.makeopts
-	_menuselect --disable chan_ooh323 menuselect.makeopts
-
-	# Utility set is forcibly enabled (bug #358001)
-	_menuselect --enable smsq menuselect.makeopts
-	_menuselect --enable streamplayer menuselect.makeopts
-	_menuselect --enable aelparse menuselect.makeopts
-	_menuselect --enable astman menuselect.makeopts
-
-	# this is connected, otherwise it would not find
-	# ast_pktccops_gate_alloc symbol
-	_menuselect --enable chan_mgcp menuselect.makeopts
-	_menuselect --enable res_pktccops menuselect.makeopts
-
-	# SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
-	_menuselect --enable pbx_dundi menuselect.makeopts
-	_menuselect --enable func_aes menuselect.makeopts
-	_menuselect --enable chan_iax2 menuselect.makeopts
-
-	# SQlite3 is now the main database backend, enable related features
-	_menuselect --enable cdr_sqlite3_custom menuselect.makeopts
-	_menuselect --enable cel_sqlite3_custom menuselect.makeopts
-
-	# The others are based on USE-flag settings
-	_use_select alsa         chan_alsa
-	_use_select bluetooth    chan_mobile
-	_use_select calendar     res_calendar res_calendar_{caldav,ews,exchange,icalendar}
-	_use_select cluster      res_corosync
-	_use_select codec2       codec_codec2
-	_use_select curl         func_curl res_config_curl res_curl
-	_use_select dahdi        app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
-	_use_select deprecated   app_macro
-	_use_select freetds      {cdr,cel}_tds
-	_use_select gtalk        chan_motif
-	_use_select http         res_http_post
-	_use_select iconv        func_iconv
-	_use_select ilbc         codec_ilbc format_ilbc
-	_use_select ldap         res_config_ldap
-	_use_select lua          pbx_lua
-	_use_select mysql        app_mysql cdr_mysql res_config_mysql
-	_use_select odbc         cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
-	_use_select oss          chan_oss
-	_use_select postgres     {cdr,cel}_pgsql res_config_pgsql
-	_use_select radius       {cdr,cel}_radius
-	_use_select snmp         res_snmp
-	_use_select span         res_fax_spandsp
-	_use_select speex        {codec,func}_speex
-	_use_select speex        format_ogg_speex
-	_use_select srtp         res_srtp
-	_use_select statsd       res_statsd res_{endpoint,chan}_stats
-	_use_select syslog       cdr_syslog
-	_use_select vorbis       format_ogg_vorbis
-	_use_select xmpp         res_xmpp
-
-	# Voicemail storage ...
-	_menuselect --enable app_voicemail menuselect.makeopts
-	for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
-		if use "${vmst#+}"; then
-			_menuselect --enable "app_voicemail_${vmst##*_}" menuselect.makeopts
-		fi
-	done
-
-	if use debug; then
-		for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG BETTER_BACKTRACES; do
-			_menuselect --enable "${o}" menuselect.makeopts
-		done
-	fi
-
-	if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
-		for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
-			cstate=--enable
-			[[ "${copt}" == -* ]] && cstate=--disable
-			ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
-			_menuselect ${cstate} "${copt#[-+]}"
-			eend $?
-		done
-	fi
-}
-
-src_compile() {
-	emake "${_make_args[@]}"
-}
-
-src_install() {
-	local d
-
-	dodir "/usr/$(get_libdir)/pkgconfig"
-
-	diropts -m 0750 -o root -g asterisk
-	dodir /etc/asterisk
-
-	emake "${_make_args[@]}" install install-headers install-configs
-
-	fowners asterisk: /var/lib/asterisk/astdb
-
-	if use radius; then
-		insinto /etc/radiusclient/
-		doins contrib/dictionary.digium
-	fi
-
-	# keep directories
-	diropts -m 0750 -o asterisk -g root
-	keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording}
-	diropts -m 0750 -o asterisk -g asterisk
-	keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
-
-	newinitd "${FILESDIR}"/initd-16.16.2-r1 asterisk
-	newconfd "${FILESDIR}"/confd-16.16.2-r1 asterisk
-
-	systemd_dounit "${FILESDIR}"/asterisk.service
-	newtmpfiles "${FILESDIR}"/asterisk.tmpfiles3.conf asterisk.conf
-	systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
-
-	# Reset diropts else dodoc uses it for doc installations.
-	diropts -m0755
-
-	# install the upgrade documentation
-	dodoc UPGRADE* BUGS CREDITS
-
-	# install extra documentation
-	use doc && dodoc doc/*.{txt,pdf}
-
-	# install logrotate snippet; bug #329281
-	#
-	insinto /etc/logrotate.d
-	newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
-
-	# Asterisk installs a few folders that's empty by design,
-	# but still required.  This finds them, and marks them for
-	# portage.
-	while read d < <(find "${ED}"/var -type d -empty || die "Find failed."); do
-		keepdir "${d#${ED}}"
-	done
-}
-
-pkg_postinst() {
-	if [ -z "${REPLACING_VERSIONS}" ]; then
-		elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
-		elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
-		elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	fi
-
-	if use deprecated; then
-		ewarn "You really aught to port whatever code you have that depends on this since these are going to go away."
-		ewarn "Refer: https://wiki.asterisk.org/wiki/display/AST/Module+Deprecation"
-	fi
-
-	if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
-		ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this should only be used"
-		ewarn "for debugging, for anything else, please file a bug on https://bugs.gentoo.org"
-	fi
-
-	if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
-		ewarn "Default astdb location has changed from /var/lib/asterisk to /var/lib/asterisk/astdb"
-		ewarn "You still have a /var/lib/asterisk/astdb.sqlite file.  You need to either set"
-		ewarn "astdbdir in /etc/asterisk/asterisk.conf to /var/lib/asterisk or follow these"
-		ewarn "steps to migrate:"
-		ewarn "1.  /etc/init.d/asterisk stop"
-		ewarn "2.  mv /var/lib/asterisk/astdb.sqlite /var/lib/asterisk/astdb/"
-		ewarn "3.  /etc/init.d/asterisk start"
-		ewarn "This update was done partly for security reasons so that /var/lib/asterisk can be root owned."
-	fi
-}

diff --git a/net-misc/asterisk/asterisk-18.5.0-r1.ebuild b/net-misc/asterisk/asterisk-18.5.0-r1.ebuild
deleted file mode 100644
index 1334c613ae6..00000000000
--- a/net-misc/asterisk/asterisk-18.5.0-r1.ebuild
+++ /dev/null
@@ -1,362 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-{1..4} )
-
-inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
-
-DESCRIPTION="Asterisk: A Modular Open Source PBX System"
-HOMEPAGE="https://www.asterisk.org/"
-SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
-LICENSE="GPL-2"
-SLOT="0/${PV%%.*}"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
-
-IUSE_VOICEMAIL_STORAGE=(
-	voicemail_storage_odbc
-	voicemail_storage_imap
-)
-IUSE="${IUSE_VOICEMAIL_STORAGE[*]} alsa blocks bluetooth calendar +caps cluster codec2 curl dahdi debug deprecated doc freetds gtalk http iconv ilbc ldap lua mysql newt odbc oss pjproject portaudio postgres radius selinux snmp span speex srtp +ssl static statsd syslog systemd unbound vorbis xmpp"
-IUSE_EXPAND="VOICEMAIL_STORAGE"
-REQUIRED_USE="gtalk? ( xmpp )
-	lua? ( ${LUA_REQUIRED_USE} )
-	voicemail_storage_odbc? ( odbc )
-"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-16.16.2-no-var-run-install.patch"
-)
-
-DEPEND="acct-user/asterisk
-	acct-group/asterisk
-	dev-db/sqlite:3
-	dev-libs/popt
-	>=dev-libs/jansson-2.11
-	dev-libs/libedit
-	dev-libs/libxml2:2
-	dev-libs/libxslt
-	sys-apps/util-linux
-	sys-libs/zlib
-	virtual/libcrypt:=
-	alsa? ( media-libs/alsa-lib )
-	bluetooth? ( net-wireless/bluez:= )
-	calendar? (
-		net-libs/neon:=
-		dev-libs/libical:=
-		dev-libs/iksemel
-	)
-	caps? ( sys-libs/libcap )
-	blocks? ( sys-libs/blocksruntime )
-	cluster? ( sys-cluster/corosync )
-	codec2? ( media-libs/codec2:= )
-	curl? ( net-misc/curl )
-	dahdi? (
-		net-libs/libpri
-		net-misc/dahdi-tools
-	)
-	freetds? ( dev-db/freetds )
-	gtalk? ( dev-libs/iksemel )
-	http? ( dev-libs/gmime:2.6 )
-	iconv? ( virtual/libiconv )
-	ilbc? ( media-libs/libilbc )
-	ldap? ( net-nds/openldap )
-	lua? ( ${LUA_DEPS} )
-	mysql? ( dev-db/mysql-connector-c:= )
-	newt? ( dev-libs/newt )
-	odbc? ( dev-db/unixODBC )
-	pjproject? ( >=net-libs/pjproject-2.9:= )
-	portaudio? ( media-libs/portaudio )
-	postgres? ( dev-db/postgresql:* )
-	radius? ( net-dialup/freeradius-client )
-	snmp? ( net-analyzer/net-snmp:= )
-	span? ( media-libs/spandsp )
-	speex? (
-		media-libs/libogg
-		media-libs/speex
-		media-libs/speexdsp
-	)
-	srtp? ( net-libs/libsrtp:0 )
-	ssl? (
-		dev-libs/openssl:0=
-	)
-	systemd? ( sys-apps/systemd )
-	!systemd? ( !sys-apps/systemd )
-	unbound? ( net-dns/unbound )
-	vorbis? (
-		media-libs/libogg
-		media-libs/libvorbis
-	)
-	voicemail_storage_imap? ( virtual/imap-c-client )
-	xmpp? ( dev-libs/iksemel )
-"
-
-RDEPEND="${DEPEND}
-	net-misc/asterisk-core-sounds
-	net-misc/asterisk-extra-sounds
-	net-misc/asterisk-moh-opsound
-	selinux? ( sec-policy/selinux-asterisk )
-	syslog? ( virtual/logger )"
-
-BDEPEND="dev-libs/libxml2:2
-	virtual/pkgconfig"
-
-QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
-
-_make_args=(
-	"NOISY_BUILD=yes"
-	"ASTDBDIR=\$(ASTDATADIR)/astdb"
-	"ASTCACHEDIR=/var/cache/asterisk"
-	"OPTIMIZE="
-	"DEBUG="
-	"DESTDIR=${D}"
-	"CONFIG_SRC=configs/samples"
-	"CONFIG_EXTEN=.sample"
-)
-
-pkg_pretend() {
-	CONFIG_CHECK="~!NF_CONNTRACK_SIP"
-	local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
-	have reported that this module dropped critical SIP packets in their deployments. You
-	may want to disable it if you see such problems."
-	check_extra_config
-
-	[[ "${MERGE_TYPE}" == binary ]] && return
-
-	if tc-is-clang; then
-		use blocks || die "CC=clang requires USE=blocks"
-	else
-		use blocks && die "USE=blocks can only be used with CC=clang"
-	fi
-}
-
-pkg_setup() {
-	use lua && lua-single_pkg_setup
-}
-
-src_prepare() {
-	default
-	AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
-}
-
-src_configure() {
-	local vmst
-	local copt cstate
-
-	econf \
-		LUA_VERSION="${ELUA#lua}" \
-		--libdir="/usr/$(get_libdir)" \
-		--localstatedir="/var" \
-		--with-crypto \
-		--with-gsm=internal \
-		--with-popt \
-		--with-z \
-		--with-libedit \
-		--without-jansson-bundled \
-		--without-pjproject-bundled \
-		$(use_with caps cap) \
-		$(use_with codec2) \
-		$(use_with lua lua) \
-		$(use_with http gmime) \
-		$(use_with newt) \
-		$(use_with pjproject) \
-		$(use_with portaudio) \
-		$(use_with ssl) \
-		$(use_with unbound)
-
-	_menuselect() {
-		menuselect/menuselect "$@" || die "menuselect $* failed."
-	}
-
-	_use_select() {
-		local state=$(use "$1" && echo enable || echo disable)
-		shift # remove use from parameters
-
-		while [[ -n $1 ]]; do
-			_menuselect --${state} "$1" menuselect.makeopts
-			shift
-		done
-	}
-
-	# Blank out sounds/sounds.xml file to prevent
-	# asterisk from installing sounds files (we pull them in via
-	# asterisk-{core,extra}-sounds and asterisk-moh-opsound.
-	>"${S}"/sounds/sounds.xml
-
-	# That NATIVE_ARCH chatter really is quite bothersome
-	sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
-
-	# Compile menuselect binary for optional components
-	emake "${_make_args[@]}" menuselect.makeopts
-
-	# Disable BUILD_NATIVE (bug #667498)
-	_menuselect --disable build_native menuselect.makeopts
-
-	# Broken functionality is forcibly disabled (bug #360143)
-	_menuselect --disable chan_misdn menuselect.makeopts
-	_menuselect --disable chan_ooh323 menuselect.makeopts
-
-	# Utility set is forcibly enabled (bug #358001)
-	_menuselect --enable smsq menuselect.makeopts
-	_menuselect --enable streamplayer menuselect.makeopts
-	_menuselect --enable aelparse menuselect.makeopts
-	_menuselect --enable astman menuselect.makeopts
-
-	# this is connected, otherwise it would not find
-	# ast_pktccops_gate_alloc symbol
-	_menuselect --enable chan_mgcp menuselect.makeopts
-	_menuselect --enable res_pktccops menuselect.makeopts
-
-	# SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
-	_menuselect --enable pbx_dundi menuselect.makeopts
-	_menuselect --enable func_aes menuselect.makeopts
-	_menuselect --enable chan_iax2 menuselect.makeopts
-
-	# SQlite3 is now the main database backend, enable related features
-	_menuselect --enable cdr_sqlite3_custom menuselect.makeopts
-	_menuselect --enable cel_sqlite3_custom menuselect.makeopts
-
-	# The others are based on USE-flag settings
-	_use_select alsa         chan_alsa
-	_use_select bluetooth    chan_mobile
-	_use_select calendar     res_calendar res_calendar_{caldav,ews,exchange,icalendar}
-	_use_select cluster      res_corosync
-	_use_select codec2       codec_codec2
-	_use_select curl         func_curl res_config_curl res_curl
-	_use_select dahdi        app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
-	_use_select deprecated   app_macro
-	_use_select freetds      {cdr,cel}_tds
-	_use_select gtalk        chan_motif
-	_use_select http         res_http_post
-	_use_select iconv        func_iconv
-	_use_select ilbc         codec_ilbc format_ilbc
-	_use_select ldap         res_config_ldap
-	_use_select lua          pbx_lua
-	_use_select mysql        app_mysql cdr_mysql res_config_mysql
-	_use_select odbc         cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
-	_use_select oss          chan_oss
-	_use_select postgres     {cdr,cel}_pgsql res_config_pgsql
-	_use_select radius       {cdr,cel}_radius
-	_use_select snmp         res_snmp
-	_use_select span         res_fax_spandsp
-	_use_select speex        {codec,func}_speex
-	_use_select speex        format_ogg_speex
-	_use_select srtp         res_srtp
-	_use_select statsd       res_statsd res_{endpoint,chan}_stats
-	_use_select syslog       cdr_syslog
-	_use_select vorbis       format_ogg_vorbis
-	_use_select xmpp         res_xmpp
-
-	# Voicemail storage ...
-	_menuselect --enable app_voicemail menuselect.makeopts
-	for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
-		if use "${vmst#+}"; then
-			_menuselect --enable "app_voicemail_${vmst##*_}" menuselect.makeopts
-		fi
-	done
-
-	if use debug; then
-		for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG BETTER_BACKTRACES; do
-			_menuselect --enable "${o}" menuselect.makeopts
-		done
-	fi
-
-	if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
-		for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
-			cstate=--enable
-			[[ "${copt}" == -* ]] && cstate=--disable
-			ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
-			_menuselect ${cstate} "${copt#[-+]}"
-			eend $?
-		done
-	fi
-}
-
-src_compile() {
-	emake "${_make_args[@]}"
-}
-
-src_install() {
-	local d
-
-	dodir "/usr/$(get_libdir)/pkgconfig"
-
-	diropts -m 0750 -o root -g asterisk
-	dodir /etc/asterisk
-
-	emake "${_make_args[@]}" install install-headers install-configs
-
-	fowners asterisk: /var/lib/asterisk/astdb
-
-	if use radius; then
-		insinto /etc/radiusclient/
-		doins contrib/dictionary.digium
-	fi
-
-	# keep directories
-	diropts -m 0750 -o asterisk -g root
-	keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording,outgoing}
-	diropts -m 0750 -o asterisk -g asterisk
-	keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
-
-	newinitd "${FILESDIR}"/initd-16.16.2-r1 asterisk
-	newconfd "${FILESDIR}"/confd-16.16.2-r1 asterisk
-
-	systemd_dounit "${FILESDIR}"/asterisk.service
-	newtmpfiles "${FILESDIR}"/asterisk.tmpfiles3.conf asterisk.conf
-	systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
-
-	# Reset diropts else dodoc uses it for doc installations.
-	diropts -m0755
-
-	# install the upgrade documentation
-	dodoc UPGRADE* BUGS CREDITS
-
-	# install extra documentation
-	use doc && dodoc doc/*.{txt,pdf}
-
-	# install logrotate snippet; bug #329281
-	#
-	insinto /etc/logrotate.d
-	newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
-
-	# Asterisk installs a few folders that's empty by design,
-	# but still required.  This finds them, and marks them for
-	# portage.
-	while read d <&3; do
-		keepdir "${d#${ED}}"
-	done 3< <(find "${ED}"/var -type d -empty || die "Find failed.")
-}
-
-pkg_postinst() {
-	if [ -z "${REPLACING_VERSIONS}" ]; then
-		elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
-		elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
-		elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
-		elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
-	fi
-
-	if use deprecated; then
-		ewarn "You really aught to port whatever code you have that depends on this since these are going to go away."
-		ewarn "Refer: https://wiki.asterisk.org/wiki/display/AST/Module+Deprecation"
-	fi
-
-	if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
-		ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this should only be used"
-		ewarn "for debugging, for anything else, please file a bug on https://bugs.gentoo.org"
-	fi
-
-	if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
-		ewarn "Default astdb location has changed from /var/lib/asterisk to /var/lib/asterisk/astdb"
-		ewarn "You still have a /var/lib/asterisk/astdb.sqlite file.  You need to either set"
-		ewarn "astdbdir in /etc/asterisk/asterisk.conf to /var/lib/asterisk or follow these"
-		ewarn "steps to migrate:"
-		ewarn "1.  /etc/init.d/asterisk stop"
-		ewarn "2.  mv /var/lib/asterisk/astdb.sqlite /var/lib/asterisk/astdb/"
-		ewarn "3.  /etc/init.d/asterisk start"
-		ewarn "This update was done partly for security reasons so that /var/lib/asterisk can be root owned."
-	fi
-}

diff --git a/net-misc/asterisk/files/asterisk-13.38.1-r1-func_lock-fix-races.patch b/net-misc/asterisk/files/asterisk-13.38.1-r1-func_lock-fix-races.patch
deleted file mode 100644
index b8b98e4929b..00000000000
--- a/net-misc/asterisk/files/asterisk-13.38.1-r1-func_lock-fix-races.patch
+++ /dev/null
@@ -1,291 +0,0 @@
-From 8ec686ebb4fa68512ca2dfe40b117523074aed0f Mon Sep 17 00:00:00 2001
-From: Jaco Kroon <jaco@uls.co.za>
-Date: Fri, 18 Dec 2020 21:06:20 +0200
-Subject: [PATCH] func_lock: fix multiple-channel-grant problems.
-
-Under contention it becomes possible that multiple channels will be told
-they successfully obtained the lock, which is a bug.  Please refer
-
-ASTERISK-29217
-
-This introduces a couple of changes.
-
-1.  Replaces requesters ao2 container with simple counter (we don't
-    really care who is waiting for the lock, only how many).  This is
-    updated undex ->mutex to prevent memory access races.
-2.  Correct semantics for ast_cond_timedwait() as described in
-    pthread_cond_broadcast(3P) is used (multiple threads can be released
-    on a single _signal()).
-3.  Module unload races are taken care of and memory properly cleaned
-    up.
-
-Change-Id: I6f68b5ec82ff25b2909daf6e4d19ca864a463e29
-Signed-off-by: Jaco Kroon <jaco@uls.co.za>
----
- funcs/func_lock.c | 163 ++++++++++++++++------------------------------
- 1 file changed, 56 insertions(+), 107 deletions(-)
-
-diff --git a/funcs/func_lock.c b/funcs/func_lock.c
-index acb5fc935c..072640751e 100644
---- a/funcs/func_lock.c
-+++ b/funcs/func_lock.c
-@@ -110,7 +110,6 @@ static AST_LIST_HEAD_STATIC(locklist, lock_frame);
- static void lock_free(void *data);
- static void lock_fixup(void *data, struct ast_channel *oldchan, struct ast_channel *newchan);
- static int unloading = 0;
--static pthread_t broker_tid = AST_PTHREADT_NULL;
- 
- static const struct ast_datastore_info lock_info = {
- 	.type = "MUTEX",
-@@ -124,8 +123,8 @@ struct lock_frame {
- 	ast_cond_t cond;
- 	/*! count is needed so if a recursive mutex exits early, we know how many times to unlock it. */
- 	unsigned int count;
--	/*! Container of requesters for the named lock */
--	struct ao2_container *requesters;
-+	/*! Count of waiting of requesters for the named lock */
-+	unsigned int requesters;
- 	/*! who owns us */
- 	struct ast_channel *owner;
- 	/*! name of the lock */
-@@ -147,8 +146,11 @@ static void lock_free(void *data)
- 	while ((clframe = AST_LIST_REMOVE_HEAD(oldlist, list))) {
- 		/* Only unlock if we own the lock */
- 		if (clframe->channel == clframe->lock_frame->owner) {
-+			ast_mutex_lock(&clframe->lock_frame->mutex);
- 			clframe->lock_frame->count = 0;
- 			clframe->lock_frame->owner = NULL;
-+			ast_cond_signal(&clframe->lock_frame->cond);
-+			ast_mutex_unlock(&clframe->lock_frame->mutex);
- 		}
- 		ast_free(clframe);
- 	}
-@@ -173,54 +175,11 @@ static void lock_fixup(void *data, struct ast_channel *oldchan, struct ast_chann
- 		if (clframe->lock_frame->owner == oldchan) {
- 			clframe->lock_frame->owner = newchan;
- 		}
--		/* We don't move requesters, because the thread stack is different */
- 		clframe->channel = newchan;
- 	}
- 	AST_LIST_UNLOCK(list);
- }
- 
--static void *lock_broker(void *unused)
--{
--	struct lock_frame *frame;
--	struct timespec forever = { 1000000, 0 };
--	for (;;) {
--		int found_requester = 0;
--
--		/* Test for cancel outside of the lock */
--		pthread_testcancel();
--		AST_LIST_LOCK(&locklist);
--
--		AST_LIST_TRAVERSE(&locklist, frame, entries) {
--			if (ao2_container_count(frame->requesters)) {
--				found_requester++;
--				ast_mutex_lock(&frame->mutex);
--				if (!frame->owner) {
--					ast_cond_signal(&frame->cond);
--				}
--				ast_mutex_unlock(&frame->mutex);
--			}
--		}
--
--		AST_LIST_UNLOCK(&locklist);
--		pthread_testcancel();
--
--		/* If there are no requesters, then wait for a signal */
--		if (!found_requester) {
--			nanosleep(&forever, NULL);
--		} else {
--			sched_yield();
--		}
--	}
--	/* Not reached */
--	return NULL;
--}
--
--static int ast_channel_cmp_cb(void *obj, void *arg, int flags)
--{
--	struct ast_channel *chan = obj, *cmp_args = arg;
--	return strcasecmp(ast_channel_name(chan), ast_channel_name(cmp_args)) ? 0 : CMP_MATCH;
--}
--
- static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
- {
- 	struct ast_datastore *lock_store = ast_channel_datastore_find(chan, &lock_info, NULL);
-@@ -290,17 +249,13 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
- 			AST_LIST_UNLOCK(&locklist);
- 			return -1;
- 		}
--		current->requesters = ao2_container_alloc_list(AO2_ALLOC_OPT_LOCK_MUTEX, 0,
--			NULL, ast_channel_cmp_cb);
--		if (!current->requesters) {
--			ast_mutex_destroy(&current->mutex);
--			ast_cond_destroy(&current->cond);
--			ast_free(current);
--			AST_LIST_UNLOCK(&locklist);
--			return -1;
--		}
-+		current->requesters = 0;
- 		AST_LIST_INSERT_TAIL(&locklist, current, entries);
- 	}
-+	/* Add to requester list */
-+	ast_mutex_lock(&current->mutex);
-+	current->requesters++;
-+	ast_mutex_unlock(&current->mutex);
- 	AST_LIST_UNLOCK(&locklist);
- 
- 	/* Found lock or created one - now find or create the corresponding link in the channel */
-@@ -337,44 +292,42 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
- 	 * the same amount, before we'll release this one.
- 	 */
- 	if (current->owner == chan) {
-+		/* We're not a requester, we already have it */
-+		ast_mutex_lock(&current->mutex);
-+		current->requesters--;
-+		ast_mutex_unlock(&current->mutex);
- 		current->count++;
- 		return 0;
- 	}
- 
--	/* Okay, we have both frames, so now we need to try to lock.
--	 *
--	 * Locking order: always lock locklist first.  We need the
--	 * locklist lock because the broker thread counts whether
--	 * there are requesters with the locklist lock held, and we
--	 * need to hold it, so that when we send our signal, below,
--	 * to wake up the broker thread, it definitely will see that
--	 * a requester exists at that point in time.  Otherwise, we
--	 * could add to the requesters after it has already seen that
--	 * that lock is unoccupied and wait forever for another signal.
--	 */
--	AST_LIST_LOCK(&locklist);
--	ast_mutex_lock(&current->mutex);
--	/* Add to requester list */
--	ao2_link(current->requesters, chan);
--	pthread_kill(broker_tid, SIGURG);
--	AST_LIST_UNLOCK(&locklist);
--
- 	/* Wait up to three seconds from now for LOCK. */
- 	now = ast_tvnow();
- 	timeout.tv_sec = now.tv_sec + 3;
- 	timeout.tv_nsec = now.tv_usec * 1000;
- 
--	if (!current->owner
--		|| (!trylock
--			&& !(res = ast_cond_timedwait(&current->cond, &current->mutex, &timeout)))) {
--		res = 0;
-+	ast_mutex_lock(&current->mutex);
-+
-+	res = 0;
-+	while (!trylock && !res && current->owner) {
-+		res = ast_cond_timedwait(&current->cond, &current->mutex, &timeout);
-+	}
-+	if (current->owner) {
-+		/* timeout;
-+		 * trylock; or
-+		 * cond_timedwait failed.
-+		 *
-+		 * either way, we fail to obtain the lock.
-+		 */
-+		res = -1;
-+	} else {
- 		current->owner = chan;
- 		current->count++;
--	} else {
--		res = -1;
-+		res = 0;
- 	}
- 	/* Remove from requester list */
--	ao2_unlink(current->requesters, chan);
-+	current->requesters--;
-+	if (res && unloading)
-+		ast_cond_signal(&current->cond);
- 	ast_mutex_unlock(&current->mutex);
- 
- 	return res;
-@@ -422,7 +375,10 @@ static int unlock_read(struct ast_channel *chan, const char *cmd, char *data, ch
- 	}
- 
- 	if (--clframe->lock_frame->count == 0) {
-+		ast_mutex_lock(&clframe->lock_frame->mutex);
- 		clframe->lock_frame->owner = NULL;
-+		ast_cond_signal(&clframe->lock_frame->cond);
-+		ast_mutex_unlock(&clframe->lock_frame->mutex);
- 	}
- 
- 	ast_copy_string(buf, "1", len);
-@@ -478,34 +434,34 @@ static int unload_module(void)
- 	/* Module flag */
- 	unloading = 1;
- 
-+	/* Make it impossible for new requesters to be added
-+	 * NOTE:  channels could already be in get_lock() */
-+	ast_custom_function_unregister(&lock_function);
-+	ast_custom_function_unregister(&trylock_function);
-+
- 	AST_LIST_LOCK(&locklist);
--	while ((current = AST_LIST_REMOVE_HEAD(&locklist, entries))) {
--		/* If any locks are currently in use, then we cannot unload this module */
--		if (current->owner || ao2_container_count(current->requesters)) {
--			/* Put it back */
--			AST_LIST_INSERT_HEAD(&locklist, current, entries);
--			AST_LIST_UNLOCK(&locklist);
--			unloading = 0;
--			return -1;
-+	AST_LIST_TRAVERSE(&locklist, current, entries) {
-+		ast_mutex_lock(&current->mutex);
-+		while (current->owner || current->requesters) {
-+			/* either the mutex is locked, or other parties are currently in get_lock,
-+			 * we need to wait for all of those to clear first */
-+			ast_cond_wait(&current->cond, &current->mutex);
- 		}
-+		ast_mutex_unlock(&current->mutex);
-+		/* At this point we know:
-+		 * 1. the lock has been released,
-+		 * 2. there are no requesters (nor should any be able to sneak in).
-+		 */
- 		ast_mutex_destroy(&current->mutex);
--		ao2_ref(current->requesters, -1);
-+		ast_cond_destroy(&current->cond);
- 		ast_free(current);
- 	}
-+	AST_LIST_UNLOCK(&locklist);
-+	AST_LIST_HEAD_DESTROY(&locklist);
- 
--	/* No locks left, unregister functions */
--	ast_custom_function_unregister(&lock_function);
--	ast_custom_function_unregister(&trylock_function);
-+	/* At this point we can safely stop access to UNLOCK */
- 	ast_custom_function_unregister(&unlock_function);
- 
--	if (broker_tid != AST_PTHREADT_NULL) {
--		pthread_cancel(broker_tid);
--		pthread_kill(broker_tid, SIGURG);
--		pthread_join(broker_tid, NULL);
--	}
--
--	AST_LIST_UNLOCK(&locklist);
--
- 	return 0;
- }
- 
-@@ -515,13 +471,6 @@ static int load_module(void)
- 	res |= ast_custom_function_register_escalating(&trylock_function, AST_CFE_READ);
- 	res |= ast_custom_function_register_escalating(&unlock_function, AST_CFE_READ);
- 
--	if (ast_pthread_create_background(&broker_tid, NULL, lock_broker, NULL)) {
--		ast_log(LOG_ERROR, "Failed to start lock broker thread. Unloading func_lock module.\n");
--		broker_tid = AST_PTHREADT_NULL;
--		unload_module();
--		return AST_MODULE_LOAD_DECLINE;
--	}
--
- 	return res;
- }
- 
--- 
-2.26.2
-

diff --git a/net-misc/asterisk/files/asterisk-16.18.0-r1-func_lock-fix-races.patch b/net-misc/asterisk/files/asterisk-16.18.0-r1-func_lock-fix-races.patch
deleted file mode 100644
index a18ef34d499..00000000000
--- a/net-misc/asterisk/files/asterisk-16.18.0-r1-func_lock-fix-races.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-Combined patch from upstream (All authored by myself):
-
-https://gerrit.asterisk.org/c/asterisk/+/15942 (CLI: locks show)
-https://gerrit.asterisk.org/c/asterisk/+/15943 (unload memory corruption)
-https://gerrit.asterisk.org/c/asterisk/+/15944 (error path ref counting)
-https://gerrit.asterisk.org/c/asterisk/+/15945 (ast_module_ref usage)
-
-The cause of my nightmares was the unload memory corruption, however,
-the other two whilst much less likely to occur are just as serious.
-
-Fixes on all has been well tested.  The individual patches are quite small.
-
-Signed-off-by: Jaco Kroon <jaco@uls.co.za>
----
-diff --git a/funcs/func_lock.c b/funcs/func_lock.c
-index 072640751e..31a7fcda29 100644
---- a/funcs/func_lock.c
-+++ b/funcs/func_lock.c
-@@ -42,6 +42,7 @@
- #include "asterisk/linkedlists.h"
- #include "asterisk/astobj2.h"
- #include "asterisk/utils.h"
-+#include "asterisk/cli.h"
- 
- /*** DOCUMENTATION
- 	<function name="LOCK" language="en_US">
-@@ -157,6 +158,8 @@ static void lock_free(void *data)
- 	AST_LIST_UNLOCK(oldlist);
- 	AST_LIST_HEAD_DESTROY(oldlist);
- 	ast_free(oldlist);
-+
-+	ast_module_unref(ast_module_info->self);
- }
- 
- static void lock_fixup(void *data, struct ast_channel *oldchan, struct ast_channel *newchan)
-@@ -191,7 +194,12 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
- 	struct timeval now;
- 
- 	if (!lock_store) {
--		ast_debug(1, "Channel %s has no lock datastore, so we're allocating one.\n", ast_channel_name(chan));
-+		if (unloading) {
-+			ast_log(LOG_ERROR, "%sLOCK has no datastore and func_lock is unloading, failing.\n",
-+					trylock ? "TRY" : "");
-+			return -1;
-+		}
-+
- 		lock_store = ast_datastore_alloc(&lock_info, NULL);
- 		if (!lock_store) {
- 			ast_log(LOG_ERROR, "Unable to allocate new datastore.  No locks will be obtained.\n");
-@@ -210,6 +218,9 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
- 		lock_store->data = list;
- 		AST_LIST_HEAD_INIT(list);
- 		ast_channel_datastore_add(chan, lock_store);
-+
-+		/* We cannot unload until this channel has released the lock_store */
-+		ast_module_ref(ast_module_info->self);
- 	} else
- 		list = lock_store->data;
- 
-@@ -223,6 +234,9 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
- 
- 	if (!current) {
- 		if (unloading) {
-+			ast_log(LOG_ERROR,
-+				"Lock doesn't exist whilst unloading.  %sLOCK will fail.\n",
-+				trylock ? "TRY" : "");
- 			/* Don't bother */
- 			AST_LIST_UNLOCK(&locklist);
- 			return -1;
-@@ -249,7 +263,6 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
- 			AST_LIST_UNLOCK(&locklist);
- 			return -1;
- 		}
--		current->requesters = 0;
- 		AST_LIST_INSERT_TAIL(&locklist, current, entries);
- 	}
- 	/* Add to requester list */
-@@ -268,7 +281,13 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
- 
- 	if (!clframe) {
- 		if (unloading) {
-+			ast_log(LOG_ERROR,
-+				"Busy unloading.  %sLOCK will fail.\n",
-+				trylock ? "TRY" : "");
- 			/* Don't bother */
-+			ast_mutex_lock(&current->mutex);
-+			current->requesters--;
-+			ast_mutex_unlock(&current->mutex);
- 			AST_LIST_UNLOCK(list);
- 			return -1;
- 		}
-@@ -277,6 +296,9 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
- 			ast_log(LOG_ERROR,
- 				"Unable to allocate channel lock frame.  %sLOCK will fail.\n",
- 				trylock ? "TRY" : "");
-+			ast_mutex_lock(&current->mutex);
-+			current->requesters--;
-+			ast_mutex_unlock(&current->mutex);
- 			AST_LIST_UNLOCK(list);
- 			return -1;
- 		}
-@@ -409,6 +431,37 @@ static int trylock_read(struct ast_channel *chan, const char *cmd, char *data, c
- 	return 0;
- }
- 
-+static char *handle_cli_locks_show(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
-+{
-+	int c = 0;
-+	struct lock_frame* current;
-+	switch (cmd) {
-+	case CLI_INIT:
-+		e->command = "locks show";
-+		e->usage =
-+			"Usage: locks show\n"
-+			"       List all locks known to func_lock, along with their current status.\n";
-+		return NULL;
-+	case CLI_GENERATE:
-+		return NULL;
-+	}
-+
-+	ast_cli(a->fd, "func_lock locks:\n");
-+	ast_cli(a->fd, "%-40s Requesters Owner\n", "Name");
-+	AST_LIST_LOCK(&locklist);
-+	AST_LIST_TRAVERSE(&locklist, current, entries) {
-+		ast_mutex_lock(&current->mutex);
-+		ast_cli(a->fd, "%-40s %-10d %s\n", current->name, current->requesters,
-+				current->owner ? ast_channel_name(current->owner) : "(unlocked)");
-+		ast_mutex_unlock(&current->mutex);
-+		c++;
-+	}
-+	AST_LIST_UNLOCK(&locklist);
-+	ast_cli(a->fd, "%d total locks listed.\n", c);
-+
-+	return 0;
-+}
-+
- static struct ast_custom_function lock_function = {
- 	.name = "LOCK",
- 	.read = lock_read,
-@@ -427,6 +480,8 @@ static struct ast_custom_function unlock_function = {
- 	.read_max = 2,
- };
- 
-+static struct ast_cli_entry cli_locks_show = AST_CLI_DEFINE(handle_cli_locks_show, "List func_lock locks.");
-+
- static int unload_module(void)
- {
- 	struct lock_frame *current;
-@@ -439,10 +494,19 @@ static int unload_module(void)
- 	ast_custom_function_unregister(&lock_function);
- 	ast_custom_function_unregister(&trylock_function);
- 
-+	ast_cli_unregister(&cli_locks_show);
-+
- 	AST_LIST_LOCK(&locklist);
--	AST_LIST_TRAVERSE(&locklist, current, entries) {
-+	while ((current = AST_LIST_REMOVE_HEAD(&locklist, entries))) {
-+		int warned = 0;
- 		ast_mutex_lock(&current->mutex);
- 		while (current->owner || current->requesters) {
-+			if (!warned) {
-+				ast_log(LOG_WARNING, "Waiting for %d requesters for %s lock %s.\n",
-+						current->requesters, current->owner ? "locked" : "unlocked",
-+						current->name);
-+				warned = 1;
-+			}
- 			/* either the mutex is locked, or other parties are currently in get_lock,
- 			 * we need to wait for all of those to clear first */
- 			ast_cond_wait(&current->cond, &current->mutex);
-@@ -470,6 +534,7 @@ static int load_module(void)
- 	int res = ast_custom_function_register_escalating(&lock_function, AST_CFE_READ);
- 	res |= ast_custom_function_register_escalating(&trylock_function, AST_CFE_READ);
- 	res |= ast_custom_function_register_escalating(&unlock_function, AST_CFE_READ);
-+	res |= ast_cli_register(&cli_locks_show);
- 
- 	return res;
- }