Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/asterisk/, net-misc/asterisk/files/
Date: Sun, 25 Jul 2021 04:00:13
Message-Id: 1627185595.949a32eef6a11fbb27ca155dbb9f86cba3bed8f7.sam@gentoo
1 commit: 949a32eef6a11fbb27ca155dbb9f86cba3bed8f7
2 Author: Jaco Kroon <jaco <AT> uls <DOT> co <DOT> za>
3 AuthorDate: Sat Jul 24 09:23:11 2021 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Sun Jul 25 03:59:55 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=949a32ee
7
8 net-misc/asterisk: Cleanup
9
10 Bug: https://bugs.gentoo.org/803440
11 Package-Manager: Portage-3.0.20, Repoman-3.0.2
12 Signed-off-by: Jaco Kroon <jaco <AT> uls.co.za>
13 Closes: https://github.com/gentoo/gentoo/pull/21762
14 Signed-off-by: Sam James <sam <AT> gentoo.org>
15
16 net-misc/asterisk/Manifest | 5 -
17 net-misc/asterisk/asterisk-13.38.2-r1.ebuild | 313 ------------------
18 net-misc/asterisk/asterisk-13.38.2-r4.ebuild | 349 --------------------
19 net-misc/asterisk/asterisk-13.38.2-r5.ebuild | 349 --------------------
20 net-misc/asterisk/asterisk-16.18.0-r2.ebuild | 320 ------------------
21 net-misc/asterisk/asterisk-16.19.0-r1.ebuild | 363 ---------------------
22 net-misc/asterisk/asterisk-18.4.0-r2.ebuild | 363 ---------------------
23 net-misc/asterisk/asterisk-18.5.0-r1.ebuild | 362 --------------------
24 .../asterisk-13.38.1-r1-func_lock-fix-races.patch | 291 -----------------
25 .../asterisk-16.18.0-r1-func_lock-fix-races.patch | 177 ----------
26 10 files changed, 2892 deletions(-)
27
28 diff --git a/net-misc/asterisk/Manifest b/net-misc/asterisk/Manifest
29 index e949affbe44..a3e877e9cf8 100644
30 --- a/net-misc/asterisk/Manifest
31 +++ b/net-misc/asterisk/Manifest
32 @@ -1,8 +1,3 @@
33 -DIST asterisk-13.38.2.tar.gz 33708267 BLAKE2B f8c188f6500a01e807982518486972c18f8f903285910e64b4d8e2a4f553d42534f910696a02ab13e371dbd83dfd932c5cb7a6cea08817862ecaddcc7afd99d2 SHA512 bd9755503048cd8dcf8e39947dd5cfb617c20c4b1ad5033ae297499a4967c06ba11b6e43233c1ae0d33f8f11a81dbb9b4487f16a1f4786007172028caf1ee051
34 DIST asterisk-13.38.3.tar.gz 33711458 BLAKE2B a1f37c210e7e95962665310b542d9a3b682ecc5e90188e8272a0cd6e22ebfa963ed5af46f0f85c2074bc0bbe34d72473343ff3437d80b58e5383eb80385d0b89 SHA512 dd67f73704f1c68639313852ba1508165c7b525f0f4156c776258e27ee19a0ee87293ae7805178b0f37188fca91b861c52b5206cbba754a6181492d0efb7e895
35 -DIST asterisk-16.18.0.tar.gz 27843069 BLAKE2B 643c371b4747111e233c0758efb529e7f54f1deeff10e65fb05f3a1a58c4ba5c139bdb583d2a2552e29aacac5d0f3980fd9aeb19fda2513843fbe0c849dec217 SHA512 025a30a1eed1d2cd14eb1345e1e0edfcc23b4c517e0d33da7d06d97b3ffa3c9ce9c2fe9449109eefade6d62b6205b598fecb69245adb04f03bd53f8482fbd7ad
36 -DIST asterisk-16.19.0.tar.gz 27872364 BLAKE2B 3510f300c2cd0d67232e5d36752f60a2e67dde988de1ca41b5709dc29aa462f268b49b6c48cf669a7b5fdc0aec038dbfb1d56f7ebe6e9a7285d2cee34b3fc789 SHA512 e50b7c42591ff7fedba3e591a4e696ace62731d81b4d054757a91d8997ee454e949c56a4cf19e37c160407b23ec8c654c1b8af18712d09078e6149b5b22c5040
37 DIST asterisk-16.19.1.tar.gz 27870922 BLAKE2B e7b2ceac60f9db19802acc6c69b233556834815e1a9a3d17b2fd331d2577beb356f31a531a6d8fde70f78e9362bd8b6dbc796f906557c82bcd4847a612c788a3 SHA512 7b74fedce91ac597f3cc7a03b401ae7506bc6479faf008f3ea9c0f4783d85c5ce06d71bf73333d4bc1609a2cb96511d931d79f3bc8613906f370f9b4015b30b9
38 -DIST asterisk-18.4.0.tar.gz 27926601 BLAKE2B 1a4089ee274732462a8e480d449e4043f7393a6df0b78dd3ea341d3996b9e433066e6d7c53b3ab334db5946a4b847ac02abb4afc5747b6f541cad81a6d58d468 SHA512 024d0a5c75d55fe614ba6219aece62778e9522a0f8365d57192aa5aa22be94d45a3bed69ac14659738e97dd98967533c13096a855366083e6df2b7800e684602
39 -DIST asterisk-18.5.0.tar.gz 27956264 BLAKE2B 1b2cc477dd37be81b7c1611f1334db8e5095a2d76b1cfa0148072f7c3e9247e3d43da8b0bf502e18c2f553a893b1cc0a1aa9f2ca0942b012d0261c6171536370 SHA512 f31ac2ccd4b9af3ee4ad1c1368519e889d2e3e5b6b22e6f1b6dc020ffbdc8caccf0c03ba620f4a8b6346403abffde23d93fa8c06a6d7d993074edfaa0cf256df
40 DIST asterisk-18.5.1.tar.gz 27953748 BLAKE2B 543f2bfbe1527f3a168dc73d3d9f20e80e95be9de9532a97ff6a5c70a548d525c39ce5251b80dbcd1c0e31c066fc48520e6c373b1404bf24a00b0a48ad134bcd SHA512 95f30c14602587827c7d7bc4652639163f4fe6338fade35d533525aa8825d7a5082c9d6fa4671a5f4f89bd90a0d657ce7e51fd4216558bd367abcb10b25aeb23
41
42 diff --git a/net-misc/asterisk/asterisk-13.38.2-r1.ebuild b/net-misc/asterisk/asterisk-13.38.2-r1.ebuild
43 deleted file mode 100644
44 index b6fc143048f..00000000000
45 --- a/net-misc/asterisk/asterisk-13.38.2-r1.ebuild
46 +++ /dev/null
47 @@ -1,313 +0,0 @@
48 -# Copyright 1999-2021 Gentoo Authors
49 -# Distributed under the terms of the GNU General Public License v2
50 -
51 -EAPI=7
52 -
53 -LUA_COMPAT=( lua5-{1..4} )
54 -
55 -inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
56 -
57 -DESCRIPTION="Asterisk: A Modular Open Source PBX System"
58 -HOMEPAGE="https://www.asterisk.org/"
59 -SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
60 -LICENSE="GPL-2"
61 -SLOT="0/${PV%%.*}"
62 -KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
63 -
64 -IUSE_VOICEMAIL_STORAGE=(
65 - +voicemail_storage_file
66 - voicemail_storage_odbc
67 - voicemail_storage_imap
68 -)
69 -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"
70 -REQUIRED_USE="gtalk? ( xmpp )
71 - lua? ( ${LUA_REQUIRED_USE} )
72 - ^^ ( ${IUSE_VOICEMAIL_STORAGE[*]//+/} )
73 - voicemail_storage_odbc? ( odbc )
74 -"
75 -
76 -PATCHES=(
77 - "${FILESDIR}/asterisk-historic-no-var-run-install.patch"
78 - "${FILESDIR}/asterisk-13.38.1-r1-autoconf-lua-version.patch"
79 - "${FILESDIR}/asterisk-13.38.1-r1-func_lock-fix-races.patch"
80 - "${FILESDIR}/asterisk-13.18.1-r2-autoconf-2.70.patch"
81 -)
82 -
83 -DEPEND="acct-user/asterisk
84 - acct-group/asterisk
85 - dev-db/sqlite:3
86 - dev-libs/popt
87 - dev-libs/jansson
88 - dev-libs/libedit
89 - dev-libs/libxml2:2
90 - dev-libs/libxslt
91 - virtual/libcrypt:=
92 - sys-libs/ncurses:0=
93 - sys-libs/zlib
94 - alsa? ( media-libs/alsa-lib )
95 - bluetooth? ( net-wireless/bluez:= )
96 - calendar? (
97 - net-libs/neon:=
98 - dev-libs/libical:=
99 - dev-libs/iksemel
100 - )
101 - caps? ( sys-libs/libcap )
102 - blocks? ( sys-libs/blocksruntime )
103 - cluster? ( sys-cluster/corosync )
104 - curl? ( net-misc/curl )
105 - dahdi? (
106 - net-libs/libpri
107 - net-misc/dahdi-tools
108 - )
109 - freetds? ( dev-db/freetds )
110 - gtalk? ( dev-libs/iksemel )
111 - http? ( dev-libs/gmime:2.6 )
112 - iconv? ( virtual/libiconv )
113 - ilbc? ( media-libs/libilbc )
114 - ldap? ( net-nds/openldap )
115 - lua? ( ${LUA_DEPS} )
116 - mysql? ( dev-db/mysql-connector-c:= )
117 - newt? ( dev-libs/newt )
118 - odbc? ( dev-db/unixODBC )
119 - pjproject? ( net-libs/pjproject )
120 - portaudio? ( media-libs/portaudio )
121 - postgres? ( dev-db/postgresql:* )
122 - radius? ( net-dialup/freeradius-client )
123 - snmp? ( net-analyzer/net-snmp:= )
124 - span? ( media-libs/spandsp )
125 - speex? (
126 - media-libs/libogg
127 - media-libs/speex
128 - media-libs/speexdsp
129 - )
130 - srtp? ( net-libs/libsrtp:0 )
131 - ssl? (
132 - dev-libs/openssl:0=
133 - )
134 - vorbis? (
135 - media-libs/libogg
136 - media-libs/libvorbis
137 - )
138 - voicemail_storage_imap? ( virtual/imap-c-client )
139 - xmpp? ( dev-libs/iksemel )
140 -"
141 -
142 -RDEPEND="${DEPEND}
143 - net-misc/asterisk-core-sounds
144 - net-misc/asterisk-extra-sounds
145 - net-misc/asterisk-moh-opsound
146 - selinux? ( sec-policy/selinux-asterisk )
147 - syslog? ( virtual/logger )"
148 -
149 -BDEPEND="dev-libs/libxml2:2
150 - virtual/pkgconfig"
151 -
152 -QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
153 -
154 -pkg_pretend() {
155 - CONFIG_CHECK="~!NF_CONNTRACK_SIP"
156 - local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
157 - have reported that this module dropped critical SIP packets in their deployments. You
158 - may want to disable it if you see such problems."
159 - check_extra_config
160 -
161 - [[ "${MERGE_TYPE}" == binary ]] && return
162 -
163 - if tc-is-clang; then
164 - use blocks || die "CC=clang requires USE=blocks"
165 - else
166 - use blocks && die "USE=blocks can only be used with CC=clang"
167 - fi
168 -}
169 -
170 -pkg_setup() {
171 - use lua && lua-single_pkg_setup
172 -}
173 -
174 -src_prepare() {
175 - default
176 - AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
177 -}
178 -
179 -src_configure() {
180 - local vmst
181 -
182 - econf \
183 - LUA_VERSION="${ELUA#lua}" \
184 - --libdir="/usr/$(get_libdir)" \
185 - --localstatedir="/var" \
186 - --with-crypto \
187 - --with-gsm=internal \
188 - --with-popt \
189 - --with-z \
190 - --with-libedit \
191 - $(use_with caps cap) \
192 - $(use_with lua lua) \
193 - $(use_with http gmime) \
194 - $(use_with newt) \
195 - $(use_with pjproject) \
196 - $(use_with portaudio) \
197 - $(use_with ssl)
198 -
199 - _menuselect() {
200 - menuselect/menuselect "$@" || die "menuselect $* failed."
201 - }
202 -
203 - _use_select() {
204 - local state=$(usex "$1" enable disable)
205 - shift # remove use from parameters
206 -
207 - while [[ -n $1 ]]; do
208 - _menuselect --${state} "$1" menuselect.makeopts
209 - shift
210 - done
211 - }
212 -
213 - # Blank out sounds/sounds.xml file to prevent
214 - # asterisk from installing sounds files (we pull them in via
215 - # asterisk-{core,extra}-sounds and asterisk-moh-opsound.
216 - >"${S}"/sounds/sounds.xml
217 -
218 - # That NATIVE_ARCH chatter really is quite bothersome
219 - sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
220 -
221 - # Compile menuselect binary for optional components
222 - emake NOISE_BUILD=yes menuselect.makeopts
223 -
224 - # Disable BUILD_NATIVE (bug #667498)
225 - _menuselect --disable build_native menuselect.makeopts
226 -
227 - # Broken functionality is forcibly disabled (bug #360143)
228 - _menuselect --disable chan_misdn menuselect.makeopts
229 - _menuselect --disable chan_ooh323 menuselect.makeopts
230 -
231 - # Utility set is forcibly enabled (bug #358001)
232 - _menuselect --enable smsq menuselect.makeopts
233 - _menuselect --enable streamplayer menuselect.makeopts
234 - _menuselect --enable aelparse menuselect.makeopts
235 - _menuselect --enable astman menuselect.makeopts
236 -
237 - # this is connected, otherwise it would not find
238 - # ast_pktccops_gate_alloc symbol
239 - _menuselect --enable chan_mgcp menuselect.makeopts
240 - _menuselect --enable res_pktccops menuselect.makeopts
241 -
242 - # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
243 - _menuselect --enable pbx_dundi menuselect.makeopts
244 - _menuselect --enable func_aes menuselect.makeopts
245 - _menuselect --enable chan_iax2 menuselect.makeopts
246 -
247 - # SQlite3 is now the main database backend, enable related features
248 - _menuselect --enable cdr_sqlite3_custom menuselect.makeopts
249 - _menuselect --enable cel_sqlite3_custom menuselect.makeopts
250 -
251 - # The others are based on USE-flag settings
252 - _use_select alsa chan_alsa
253 - _use_select bluetooth chan_mobile
254 - _use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar}
255 - _use_select cluster res_corosync
256 - _use_select curl func_curl res_config_curl res_curl
257 - _use_select dahdi app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
258 - _use_select freetds {cdr,cel}_tds
259 - _use_select gtalk chan_motif
260 - _use_select http res_http_post
261 - _use_select iconv func_iconv
262 - _use_select ilbc codec_ilbc format_ilbc
263 - _use_select ldap res_config_ldap
264 - _use_select lua pbx_lua
265 - _use_select mysql app_mysql cdr_mysql res_config_mysql
266 - _use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
267 - _use_select oss chan_oss
268 - _use_select postgres {cdr,cel}_pgsql res_config_pgsql
269 - _use_select radius {cdr,cel}_radius
270 - _use_select snmp res_snmp
271 - _use_select span res_fax_spandsp
272 - _use_select speex {codec,func}_speex
273 - _use_select speex format_ogg_speex
274 - _use_select srtp res_srtp
275 - _use_select statsd res_statsd res_{endpoint,chan}_stats
276 - _use_select syslog cdr_syslog
277 - _use_select vorbis format_ogg_vorbis
278 - _use_select xmpp res_xmpp
279 -
280 - # Voicemail storage ...
281 - for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
282 - if use "${vmst#+}"; then
283 - _menuselect --enable "$(echo "${vmst##*_}" | tr '[:lower:]' '[:upper:]')_STORAGE" menuselect.makeopts
284 - fi
285 - done
286 -
287 - if use debug; then
288 - for o in DONT_OPTIMIZE DEBUG_THREADS BETTER_BACKTRACES; do
289 - _menuselect --enable $o menuselect.makeopts
290 - done
291 - fi
292 -}
293 -
294 -src_compile() {
295 - emake ASTCFLAGS="${CFLAGS}" ASTLDFLAGS="${LDFLAGS}" NOISY_BUILD=yes
296 -}
297 -
298 -src_install() {
299 - local d
300 -
301 - dodir "/usr/$(get_libdir)/pkgconfig"
302 - emake DESTDIR="${D}" NOISY_BUILD=yes install
303 -
304 - if use radius; then
305 - insinto /etc/radiusclient/
306 - doins contrib/dictionary.digium
307 - fi
308 - diropts -m 0750 -o root -g asterisk
309 - keepdir /etc/asterisk
310 - emake NOISY_BUILD=yes DESTDIR="${D}" CONFIG_SRC=configs/samples CONFIG_EXTEN=.sample install-configs
311 - chown root:root "${ED}/etc/asterisk/"* || die "chown root:root of config files failed"
312 - chmod 644 "${ED}/etc/asterisk/"* || die "chmod 644 of config files failed"
313 -
314 - # keep directories
315 - diropts -m 0750 -o asterisk -g root
316 - keepdir /var/lib/asterisk
317 - keepdir /var/spool/asterisk
318 - keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording}
319 - diropts -m 0750 -o asterisk -g asterisk
320 - keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
321 -
322 - newinitd "${FILESDIR}"/initd-13.32.0-r1 asterisk
323 - newconfd "${FILESDIR}"/confd-13.32.0 asterisk
324 -
325 - systemd_dounit "${FILESDIR}"/asterisk.service
326 - newtmpfiles "${FILESDIR}"/asterisk.tmpfiles2.conf asterisk.conf
327 - systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
328 -
329 - # Reset diropts else dodoc uses it for doc installations.
330 - diropts -m0755
331 -
332 - # install the upgrade documentation
333 - dodoc UPGRADE* BUGS CREDITS
334 -
335 - # install extra documentation
336 - use doc && dodoc doc/*.{txt,pdf}
337 -
338 - # install logrotate snippet; bug #329281
339 - #
340 - insinto /etc/logrotate.d
341 - newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
342 -
343 - # Asterisk installs a few folders that's empty by design,
344 - # but still required. This finds them, and marks them for
345 - # portage.
346 - while read d < <(find "${ED}"/var -type d -empty || die "Find failed."); do
347 - keepdir "${d#${ED}}"
348 - done
349 -}
350 -
351 -pkg_postinst() {
352 - if [ -z "${REPLACING_VERSIONS}" ]; then
353 - elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
354 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
355 - elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
356 - elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
357 - elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
358 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
359 - fi
360 -}
361
362 diff --git a/net-misc/asterisk/asterisk-13.38.2-r4.ebuild b/net-misc/asterisk/asterisk-13.38.2-r4.ebuild
363 deleted file mode 100644
364 index 555ccbc9e75..00000000000
365 --- a/net-misc/asterisk/asterisk-13.38.2-r4.ebuild
366 +++ /dev/null
367 @@ -1,349 +0,0 @@
368 -# Copyright 1999-2021 Gentoo Authors
369 -# Distributed under the terms of the GNU General Public License v2
370 -
371 -EAPI=7
372 -
373 -LUA_COMPAT=( lua5-{1..4} )
374 -
375 -inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
376 -
377 -DESCRIPTION="Asterisk: A Modular Open Source PBX System"
378 -HOMEPAGE="https://www.asterisk.org/"
379 -SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
380 -LICENSE="GPL-2"
381 -SLOT="0/${PV%%.*}"
382 -KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
383 -
384 -IUSE_VOICEMAIL_STORAGE=(
385 - +voicemail_storage_file
386 - voicemail_storage_odbc
387 - voicemail_storage_imap
388 -)
389 -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"
390 -REQUIRED_USE="gtalk? ( xmpp )
391 - lua? ( ${LUA_REQUIRED_USE} )
392 - ^^ ( ${IUSE_VOICEMAIL_STORAGE[*]//+/} )
393 - voicemail_storage_odbc? ( odbc )
394 -"
395 -
396 -PATCHES=(
397 - "${FILESDIR}/${PN}-historic-no-var-run-install.patch"
398 - "${FILESDIR}/${PN}-13.38.1-r1-autoconf-lua-version.patch"
399 - "${FILESDIR}/${PN}-13.38.1-r1-func_lock-fix-races.patch"
400 - "${FILESDIR}/${PN}-13.18.1-r2-autoconf-2.70.patch"
401 - "${FILESDIR}/${PN}-13.38.2-r1-menuselect-exitcodes.patch"
402 - "${FILESDIR}/${PN}-13.38.2-r2-func_odbc_minargs-ARGC.patch"
403 -)
404 -
405 -DEPEND="acct-user/asterisk
406 - acct-group/asterisk
407 - dev-db/sqlite:3
408 - dev-libs/popt
409 - dev-libs/jansson
410 - dev-libs/libedit
411 - dev-libs/libxml2:2
412 - dev-libs/libxslt
413 - virtual/libcrypt:=
414 - sys-libs/zlib
415 - alsa? ( media-libs/alsa-lib )
416 - bluetooth? ( net-wireless/bluez:= )
417 - calendar? (
418 - net-libs/neon:=
419 - dev-libs/libical:=
420 - dev-libs/iksemel
421 - )
422 - caps? ( sys-libs/libcap )
423 - blocks? ( sys-libs/blocksruntime )
424 - cluster? ( sys-cluster/corosync )
425 - curl? ( net-misc/curl )
426 - dahdi? (
427 - net-libs/libpri
428 - net-misc/dahdi-tools
429 - )
430 - freetds? ( dev-db/freetds )
431 - gtalk? ( dev-libs/iksemel )
432 - http? ( dev-libs/gmime:2.6 )
433 - iconv? ( virtual/libiconv )
434 - ilbc? ( media-libs/libilbc )
435 - ldap? ( net-nds/openldap )
436 - lua? ( ${LUA_DEPS} )
437 - mysql? ( dev-db/mysql-connector-c:= )
438 - newt? ( dev-libs/newt )
439 - odbc? ( dev-db/unixODBC )
440 - pjproject? ( net-libs/pjproject:= )
441 - portaudio? ( media-libs/portaudio )
442 - postgres? ( dev-db/postgresql:* )
443 - radius? ( net-dialup/freeradius-client )
444 - snmp? ( net-analyzer/net-snmp:= )
445 - span? ( media-libs/spandsp )
446 - speex? (
447 - media-libs/speex
448 - media-libs/speexdsp
449 - )
450 - srtp? ( net-libs/libsrtp:0 )
451 - ssl? (
452 - dev-libs/openssl:0=
453 - )
454 - systemd? ( sys-apps/systemd )
455 - !systemd? ( !sys-apps/systemd )
456 - vorbis? (
457 - media-libs/libogg
458 - media-libs/libvorbis
459 - )
460 - voicemail_storage_imap? ( virtual/imap-c-client )
461 - xmpp? ( dev-libs/iksemel )
462 -"
463 -
464 -RDEPEND="${DEPEND}
465 - net-misc/asterisk-core-sounds
466 - net-misc/asterisk-extra-sounds
467 - net-misc/asterisk-moh-opsound
468 - selinux? ( sec-policy/selinux-asterisk )
469 - syslog? ( virtual/logger )"
470 -
471 -BDEPEND="dev-libs/libxml2:2
472 - virtual/pkgconfig"
473 -
474 -QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
475 -
476 -_make_args=(
477 - "NOISY_BUILD=yes"
478 - "ASTDBDIR=\$(ASTDATADIR)/astdb"
479 - "OPTIMIZE="
480 - "DEBUG="
481 - "DESTDIR=${D}"
482 - "CONFIG_SRC=configs/samples"
483 - "CONFIG_EXTEN=.sample"
484 -)
485 -
486 -pkg_pretend() {
487 - CONFIG_CHECK="~!NF_CONNTRACK_SIP"
488 - local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
489 - have reported that this module dropped critical SIP packets in their deployments. You
490 - may want to disable it if you see such problems."
491 - check_extra_config
492 -
493 - [[ "${MERGE_TYPE}" == binary ]] && return
494 -
495 - if tc-is-clang; then
496 - use blocks || die "CC=clang requires USE=blocks"
497 - else
498 - use blocks && die "USE=blocks can only be used with CC=clang"
499 - fi
500 -}
501 -
502 -pkg_setup() {
503 - use lua && lua-single_pkg_setup
504 -}
505 -
506 -src_prepare() {
507 - default
508 - AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
509 -}
510 -
511 -src_configure() {
512 - local vmst
513 - local copt cstate
514 -
515 - econf \
516 - LUA_VERSION="${ELUA#lua}" \
517 - --libdir="/usr/$(get_libdir)" \
518 - --localstatedir="/var" \
519 - --with-crypto \
520 - --with-gsm=internal \
521 - --with-popt \
522 - --with-z \
523 - --with-libedit \
524 - $(use_with caps cap) \
525 - $(use_with lua lua) \
526 - $(use_with http gmime) \
527 - $(use_with newt) \
528 - $(use_with pjproject) \
529 - $(use_with portaudio) \
530 - $(use_with ssl)
531 -
532 - _menuselect() {
533 - menuselect/menuselect "$@" || die "menuselect $* failed."
534 - }
535 -
536 - _use_select() {
537 - local state=$(usex "$1" enable disable)
538 - shift # remove use from parameters
539 -
540 - while [[ -n $1 ]]; do
541 - _menuselect --${state} "$1" menuselect.makeopts
542 - shift
543 - done
544 - }
545 -
546 - # Blank out sounds/sounds.xml file to prevent
547 - # asterisk from installing sounds files (we pull them in via
548 - # asterisk-{core,extra}-sounds and asterisk-moh-opsound.
549 - >"${S}"/sounds/sounds.xml
550 -
551 - # That NATIVE_ARCH chatter really is quite bothersome
552 - sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
553 -
554 - # Compile menuselect binary for optional components
555 - emake "${_make_args[@]}" menuselect.makeopts
556 -
557 - # Disable BUILD_NATIVE (bug #667498)
558 - _menuselect --disable build_native menuselect.makeopts
559 -
560 - # Broken functionality is forcibly disabled (bug #360143)
561 - _menuselect --disable chan_misdn menuselect.makeopts
562 - _menuselect --disable chan_ooh323 menuselect.makeopts
563 -
564 - # Utility set is forcibly enabled (bug #358001)
565 - _menuselect --enable smsq menuselect.makeopts
566 - _menuselect --enable streamplayer menuselect.makeopts
567 - _menuselect --enable aelparse menuselect.makeopts
568 - _menuselect --enable astman menuselect.makeopts
569 -
570 - # this is connected, otherwise it would not find
571 - # ast_pktccops_gate_alloc symbol
572 - _menuselect --enable chan_mgcp menuselect.makeopts
573 - _menuselect --enable res_pktccops menuselect.makeopts
574 -
575 - # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
576 - _menuselect --enable pbx_dundi menuselect.makeopts
577 - _menuselect --enable func_aes menuselect.makeopts
578 - _menuselect --enable chan_iax2 menuselect.makeopts
579 -
580 - # SQlite3 is now the main database backend, enable related features
581 - _menuselect --enable cdr_sqlite3_custom menuselect.makeopts
582 - _menuselect --enable cel_sqlite3_custom menuselect.makeopts
583 -
584 - # The others are based on USE-flag settings
585 - _use_select alsa chan_alsa
586 - _use_select bluetooth chan_mobile
587 - _use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar}
588 - _use_select cluster res_corosync
589 - _use_select curl func_curl res_config_curl res_curl
590 - _use_select dahdi app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
591 - _use_select freetds {cdr,cel}_tds
592 - _use_select gtalk chan_motif
593 - _use_select http res_http_post
594 - _use_select iconv func_iconv
595 - _use_select ilbc codec_ilbc format_ilbc
596 - _use_select ldap res_config_ldap
597 - _use_select lua pbx_lua
598 - _use_select mysql app_mysql cdr_mysql res_config_mysql
599 - _use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
600 - _use_select oss chan_oss
601 - _use_select postgres {cdr,cel}_pgsql res_config_pgsql
602 - _use_select radius {cdr,cel}_radius
603 - _use_select snmp res_snmp
604 - _use_select span res_fax_spandsp
605 - _use_select speex {codec,func}_speex
606 - _use_select srtp res_srtp
607 - _use_select statsd res_statsd res_{endpoint,chan}_stats
608 - _use_select syslog cdr_syslog
609 - _use_select vorbis format_ogg_vorbis
610 - _use_select xmpp res_xmpp
611 -
612 - # Voicemail storage ...
613 - for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
614 - if use "${vmst#+}"; then
615 - _menuselect --enable "$(echo "${vmst##*_}" | tr '[:lower:]' '[:upper:]')_STORAGE" menuselect.makeopts
616 - fi
617 - done
618 -
619 - if use debug; then
620 - for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG BETTER_BACKTRACES; do
621 - _menuselect --enable $o menuselect.makeopts
622 - done
623 - fi
624 -
625 - if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
626 - for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
627 - cstate=--enable
628 - [[ "${copt}" == -* ]] && cstate=--disable
629 - ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
630 - _menuselect ${cstate} "${copt#[-+]}"
631 - eend $?
632 - done
633 - fi
634 -}
635 -
636 -src_compile() {
637 - emake "${_make_args[@]}"
638 -}
639 -
640 -src_install() {
641 - local d
642 -
643 - dodir "/usr/$(get_libdir)/pkgconfig"
644 - diropts -m 0750 -o root -g asterisk
645 - dodir /etc/asterisk
646 -
647 - emake "${_make_args[@]}" install install-configs
648 -
649 - fowners asterisk: /var/lib/asterisk/astdb
650 -
651 - if use radius; then
652 - insinto /etc/radiusclient/
653 - doins contrib/dictionary.digium
654 - fi
655 -
656 - # keep directories
657 - diropts -m 0750 -o asterisk -g root
658 - keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording}
659 - diropts -m 0750 -o asterisk -g asterisk
660 - keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
661 -
662 - newinitd "${FILESDIR}"/initd-13.32.0-r1 asterisk
663 - newconfd "${FILESDIR}"/confd-13.32.0 asterisk
664 -
665 - systemd_dounit "${FILESDIR}"/asterisk.service
666 - newtmpfiles "${FILESDIR}"/asterisk.tmpfiles2.conf asterisk.conf
667 - systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
668 -
669 - # Reset diropts else dodoc uses it for doc installations.
670 - diropts -m0755
671 -
672 - # install the upgrade documentation
673 - dodoc UPGRADE* BUGS CREDITS
674 -
675 - # install extra documentation
676 - use doc && dodoc doc/*.{txt,pdf}
677 -
678 - # install logrotate snippet; bug #329281
679 - #
680 - insinto /etc/logrotate.d
681 - newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
682 -
683 - # Asterisk installs a few folders that's empty by design,
684 - # but still required. This finds them, and marks them for
685 - # portage.
686 - while read d < <(find "${ED}"/var -type d -empty || die "Find failed."); do
687 - keepdir "${d#${ED}}"
688 - done
689 -}
690 -
691 -pkg_postinst() {
692 - if [ -z "${REPLACING_VERSIONS}" ]; then
693 - elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
694 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
695 - elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
696 - elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
697 - elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
698 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
699 - fi
700 -
701 - if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
702 - ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this should only be used"
703 - ewarn "for debugging, for anything else, please file a bug on https://bugs.gentoo.org"
704 - fi
705 -
706 - if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
707 - ewarn "Default astdb location has changed from /var/lib/asterisk to /var/lib/asterisk/astdb"
708 - ewarn "You still have a /var/lib/asterisk/astdb.sqlite file. You need to either set"
709 - ewarn "astdbdir in /etc/asterisk/asterisk.conf to /var/lib/asterisk or follow these"
710 - ewarn "steps to migrate:"
711 - ewarn "1. /etc/init.d/asterisk stop"
712 - ewarn "2. mv /var/lib/asterisk/astdb.sqlite /var/lib/asterisk/astdb/"
713 - ewarn "3. /etc/init.d/asterisk start"
714 - ewarn "This update was done partly for security reasons so that /var/lib/asterisk can be root owned."
715 - fi
716 -}
717
718 diff --git a/net-misc/asterisk/asterisk-13.38.2-r5.ebuild b/net-misc/asterisk/asterisk-13.38.2-r5.ebuild
719 deleted file mode 100644
720 index 400218a388d..00000000000
721 --- a/net-misc/asterisk/asterisk-13.38.2-r5.ebuild
722 +++ /dev/null
723 @@ -1,349 +0,0 @@
724 -# Copyright 1999-2021 Gentoo Authors
725 -# Distributed under the terms of the GNU General Public License v2
726 -
727 -EAPI=7
728 -
729 -LUA_COMPAT=( lua5-{1..4} )
730 -
731 -inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
732 -
733 -DESCRIPTION="Asterisk: A Modular Open Source PBX System"
734 -HOMEPAGE="https://www.asterisk.org/"
735 -SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
736 -LICENSE="GPL-2"
737 -SLOT="0/${PV%%.*}"
738 -KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
739 -
740 -IUSE_VOICEMAIL_STORAGE=(
741 - +voicemail_storage_file
742 - voicemail_storage_odbc
743 - voicemail_storage_imap
744 -)
745 -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"
746 -REQUIRED_USE="gtalk? ( xmpp )
747 - lua? ( ${LUA_REQUIRED_USE} )
748 - ^^ ( ${IUSE_VOICEMAIL_STORAGE[*]//+/} )
749 - voicemail_storage_odbc? ( odbc )
750 -"
751 -
752 -PATCHES=(
753 - "${FILESDIR}/${PN}-historic-no-var-run-install.patch"
754 - "${FILESDIR}/${PN}-13.38.1-r1-autoconf-lua-version.patch"
755 - "${FILESDIR}/${PN}-13.38.2-r3-func_lock-fix-races.patch"
756 - "${FILESDIR}/${PN}-13.18.1-r2-autoconf-2.70.patch"
757 - "${FILESDIR}/${PN}-13.38.2-r1-menuselect-exitcodes.patch"
758 - "${FILESDIR}/${PN}-13.38.2-r2-func_odbc_minargs-ARGC.patch"
759 -)
760 -
761 -DEPEND="acct-user/asterisk
762 - acct-group/asterisk
763 - dev-db/sqlite:3
764 - dev-libs/popt
765 - dev-libs/jansson
766 - dev-libs/libedit
767 - dev-libs/libxml2:2
768 - dev-libs/libxslt
769 - virtual/libcrypt:=
770 - sys-libs/zlib
771 - alsa? ( media-libs/alsa-lib )
772 - bluetooth? ( net-wireless/bluez:= )
773 - calendar? (
774 - net-libs/neon:=
775 - dev-libs/libical:=
776 - dev-libs/iksemel
777 - )
778 - caps? ( sys-libs/libcap )
779 - blocks? ( sys-libs/blocksruntime )
780 - cluster? ( sys-cluster/corosync )
781 - curl? ( net-misc/curl )
782 - dahdi? (
783 - net-libs/libpri
784 - net-misc/dahdi-tools
785 - )
786 - freetds? ( dev-db/freetds )
787 - gtalk? ( dev-libs/iksemel )
788 - http? ( dev-libs/gmime:2.6 )
789 - iconv? ( virtual/libiconv )
790 - ilbc? ( media-libs/libilbc )
791 - ldap? ( net-nds/openldap )
792 - lua? ( ${LUA_DEPS} )
793 - mysql? ( dev-db/mysql-connector-c:= )
794 - newt? ( dev-libs/newt )
795 - odbc? ( dev-db/unixODBC )
796 - pjproject? ( net-libs/pjproject:= )
797 - portaudio? ( media-libs/portaudio )
798 - postgres? ( dev-db/postgresql:* )
799 - radius? ( net-dialup/freeradius-client )
800 - snmp? ( net-analyzer/net-snmp:= )
801 - span? ( media-libs/spandsp )
802 - speex? (
803 - media-libs/speex
804 - media-libs/speexdsp
805 - )
806 - srtp? ( net-libs/libsrtp:0 )
807 - ssl? (
808 - dev-libs/openssl:0=
809 - )
810 - systemd? ( sys-apps/systemd )
811 - !systemd? ( !sys-apps/systemd )
812 - vorbis? (
813 - media-libs/libogg
814 - media-libs/libvorbis
815 - )
816 - voicemail_storage_imap? ( virtual/imap-c-client )
817 - xmpp? ( dev-libs/iksemel )
818 -"
819 -
820 -RDEPEND="${DEPEND}
821 - net-misc/asterisk-core-sounds
822 - net-misc/asterisk-extra-sounds
823 - net-misc/asterisk-moh-opsound
824 - selinux? ( sec-policy/selinux-asterisk )
825 - syslog? ( virtual/logger )"
826 -
827 -BDEPEND="dev-libs/libxml2:2
828 - virtual/pkgconfig"
829 -
830 -QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
831 -
832 -_make_args=(
833 - "NOISY_BUILD=yes"
834 - "ASTDBDIR=\$(ASTDATADIR)/astdb"
835 - "OPTIMIZE="
836 - "DEBUG="
837 - "DESTDIR=${D}"
838 - "CONFIG_SRC=configs/samples"
839 - "CONFIG_EXTEN=.sample"
840 -)
841 -
842 -pkg_pretend() {
843 - CONFIG_CHECK="~!NF_CONNTRACK_SIP"
844 - local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
845 - have reported that this module dropped critical SIP packets in their deployments. You
846 - may want to disable it if you see such problems."
847 - check_extra_config
848 -
849 - [[ "${MERGE_TYPE}" == binary ]] && return
850 -
851 - if tc-is-clang; then
852 - use blocks || die "CC=clang requires USE=blocks"
853 - else
854 - use blocks && die "USE=blocks can only be used with CC=clang"
855 - fi
856 -}
857 -
858 -pkg_setup() {
859 - use lua && lua-single_pkg_setup
860 -}
861 -
862 -src_prepare() {
863 - default
864 - AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
865 -}
866 -
867 -src_configure() {
868 - local vmst
869 - local copt cstate
870 -
871 - econf \
872 - LUA_VERSION="${ELUA#lua}" \
873 - --libdir="/usr/$(get_libdir)" \
874 - --localstatedir="/var" \
875 - --with-crypto \
876 - --with-gsm=internal \
877 - --with-popt \
878 - --with-z \
879 - --with-libedit \
880 - $(use_with caps cap) \
881 - $(use_with lua lua) \
882 - $(use_with http gmime) \
883 - $(use_with newt) \
884 - $(use_with pjproject) \
885 - $(use_with portaudio) \
886 - $(use_with ssl)
887 -
888 - _menuselect() {
889 - menuselect/menuselect "$@" || die "menuselect $* failed."
890 - }
891 -
892 - _use_select() {
893 - local state=$(usex "$1" enable disable)
894 - shift # remove use from parameters
895 -
896 - while [[ -n $1 ]]; do
897 - _menuselect --${state} "$1" menuselect.makeopts
898 - shift
899 - done
900 - }
901 -
902 - # Blank out sounds/sounds.xml file to prevent
903 - # asterisk from installing sounds files (we pull them in via
904 - # asterisk-{core,extra}-sounds and asterisk-moh-opsound.
905 - >"${S}"/sounds/sounds.xml
906 -
907 - # That NATIVE_ARCH chatter really is quite bothersome
908 - sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
909 -
910 - # Compile menuselect binary for optional components
911 - emake "${_make_args[@]}" menuselect.makeopts
912 -
913 - # Disable BUILD_NATIVE (bug #667498)
914 - _menuselect --disable build_native menuselect.makeopts
915 -
916 - # Broken functionality is forcibly disabled (bug #360143)
917 - _menuselect --disable chan_misdn menuselect.makeopts
918 - _menuselect --disable chan_ooh323 menuselect.makeopts
919 -
920 - # Utility set is forcibly enabled (bug #358001)
921 - _menuselect --enable smsq menuselect.makeopts
922 - _menuselect --enable streamplayer menuselect.makeopts
923 - _menuselect --enable aelparse menuselect.makeopts
924 - _menuselect --enable astman menuselect.makeopts
925 -
926 - # this is connected, otherwise it would not find
927 - # ast_pktccops_gate_alloc symbol
928 - _menuselect --enable chan_mgcp menuselect.makeopts
929 - _menuselect --enable res_pktccops menuselect.makeopts
930 -
931 - # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
932 - _menuselect --enable pbx_dundi menuselect.makeopts
933 - _menuselect --enable func_aes menuselect.makeopts
934 - _menuselect --enable chan_iax2 menuselect.makeopts
935 -
936 - # SQlite3 is now the main database backend, enable related features
937 - _menuselect --enable cdr_sqlite3_custom menuselect.makeopts
938 - _menuselect --enable cel_sqlite3_custom menuselect.makeopts
939 -
940 - # The others are based on USE-flag settings
941 - _use_select alsa chan_alsa
942 - _use_select bluetooth chan_mobile
943 - _use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar}
944 - _use_select cluster res_corosync
945 - _use_select curl func_curl res_config_curl res_curl
946 - _use_select dahdi app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
947 - _use_select freetds {cdr,cel}_tds
948 - _use_select gtalk chan_motif
949 - _use_select http res_http_post
950 - _use_select iconv func_iconv
951 - _use_select ilbc codec_ilbc format_ilbc
952 - _use_select ldap res_config_ldap
953 - _use_select lua pbx_lua
954 - _use_select mysql app_mysql cdr_mysql res_config_mysql
955 - _use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
956 - _use_select oss chan_oss
957 - _use_select postgres {cdr,cel}_pgsql res_config_pgsql
958 - _use_select radius {cdr,cel}_radius
959 - _use_select snmp res_snmp
960 - _use_select span res_fax_spandsp
961 - _use_select speex {codec,func}_speex
962 - _use_select srtp res_srtp
963 - _use_select statsd res_statsd res_{endpoint,chan}_stats
964 - _use_select syslog cdr_syslog
965 - _use_select vorbis format_ogg_vorbis
966 - _use_select xmpp res_xmpp
967 -
968 - # Voicemail storage ...
969 - for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
970 - if use "${vmst#+}"; then
971 - _menuselect --enable "$(echo "${vmst##*_}" | tr '[:lower:]' '[:upper:]')_STORAGE" menuselect.makeopts
972 - fi
973 - done
974 -
975 - if use debug; then
976 - for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG BETTER_BACKTRACES; do
977 - _menuselect --enable $o menuselect.makeopts
978 - done
979 - fi
980 -
981 - if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
982 - for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
983 - cstate=--enable
984 - [[ "${copt}" == -* ]] && cstate=--disable
985 - ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
986 - _menuselect ${cstate} "${copt#[-+]}"
987 - eend $?
988 - done
989 - fi
990 -}
991 -
992 -src_compile() {
993 - emake "${_make_args[@]}"
994 -}
995 -
996 -src_install() {
997 - local d
998 -
999 - dodir "/usr/$(get_libdir)/pkgconfig"
1000 - diropts -m 0750 -o root -g asterisk
1001 - dodir /etc/asterisk
1002 -
1003 - emake "${_make_args[@]}" install install-configs
1004 -
1005 - fowners asterisk: /var/lib/asterisk/astdb
1006 -
1007 - if use radius; then
1008 - insinto /etc/radiusclient/
1009 - doins contrib/dictionary.digium
1010 - fi
1011 -
1012 - # keep directories
1013 - diropts -m 0750 -o asterisk -g root
1014 - keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording}
1015 - diropts -m 0750 -o asterisk -g asterisk
1016 - keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
1017 -
1018 - newinitd "${FILESDIR}"/initd-13.32.0-r1 asterisk
1019 - newconfd "${FILESDIR}"/confd-13.32.0 asterisk
1020 -
1021 - systemd_dounit "${FILESDIR}"/asterisk.service
1022 - newtmpfiles "${FILESDIR}"/asterisk.tmpfiles2.conf asterisk.conf
1023 - systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
1024 -
1025 - # Reset diropts else dodoc uses it for doc installations.
1026 - diropts -m0755
1027 -
1028 - # install the upgrade documentation
1029 - dodoc UPGRADE* BUGS CREDITS
1030 -
1031 - # install extra documentation
1032 - use doc && dodoc doc/*.{txt,pdf}
1033 -
1034 - # install logrotate snippet; bug #329281
1035 - #
1036 - insinto /etc/logrotate.d
1037 - newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
1038 -
1039 - # Asterisk installs a few folders that's empty by design,
1040 - # but still required. This finds them, and marks them for
1041 - # portage.
1042 - while read d < <(find "${ED}"/var -type d -empty || die "Find failed."); do
1043 - keepdir "${d#${ED}}"
1044 - done
1045 -}
1046 -
1047 -pkg_postinst() {
1048 - if [ -z "${REPLACING_VERSIONS}" ]; then
1049 - elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
1050 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
1051 - elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
1052 - elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
1053 - elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
1054 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
1055 - fi
1056 -
1057 - if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
1058 - ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this should only be used"
1059 - ewarn "for debugging, for anything else, please file a bug on https://bugs.gentoo.org"
1060 - fi
1061 -
1062 - if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
1063 - ewarn "Default astdb location has changed from /var/lib/asterisk to /var/lib/asterisk/astdb"
1064 - ewarn "You still have a /var/lib/asterisk/astdb.sqlite file. You need to either set"
1065 - ewarn "astdbdir in /etc/asterisk/asterisk.conf to /var/lib/asterisk or follow these"
1066 - ewarn "steps to migrate:"
1067 - ewarn "1. /etc/init.d/asterisk stop"
1068 - ewarn "2. mv /var/lib/asterisk/astdb.sqlite /var/lib/asterisk/astdb/"
1069 - ewarn "3. /etc/init.d/asterisk start"
1070 - ewarn "This update was done partly for security reasons so that /var/lib/asterisk can be root owned."
1071 - fi
1072 -}
1073
1074 diff --git a/net-misc/asterisk/asterisk-16.18.0-r2.ebuild b/net-misc/asterisk/asterisk-16.18.0-r2.ebuild
1075 deleted file mode 100644
1076 index 5e2d0afa12b..00000000000
1077 --- a/net-misc/asterisk/asterisk-16.18.0-r2.ebuild
1078 +++ /dev/null
1079 @@ -1,320 +0,0 @@
1080 -# Copyright 1999-2021 Gentoo Authors
1081 -# Distributed under the terms of the GNU General Public License v2
1082 -
1083 -EAPI=7
1084 -
1085 -LUA_COMPAT=( lua5-{1..4} )
1086 -
1087 -inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
1088 -
1089 -DESCRIPTION="Asterisk: A Modular Open Source PBX System"
1090 -HOMEPAGE="https://www.asterisk.org/"
1091 -SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
1092 -LICENSE="GPL-2"
1093 -SLOT="0/${PV%%.*}"
1094 -KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
1095 -
1096 -IUSE_VOICEMAIL_STORAGE=(
1097 - +voicemail_storage_file
1098 - voicemail_storage_odbc
1099 - voicemail_storage_imap
1100 -)
1101 -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"
1102 -IUSE_EXPAND="VOICEMAIL_STORAGE"
1103 -REQUIRED_USE="gtalk? ( xmpp )
1104 - lua? ( ${LUA_REQUIRED_USE} )
1105 - ^^ ( ${IUSE_VOICEMAIL_STORAGE[*]//+/} )
1106 - voicemail_storage_odbc? ( odbc )
1107 -"
1108 -
1109 -PATCHES=(
1110 - "${FILESDIR}/${PN}-16.16.2-no-var-run-install.patch"
1111 - "${FILESDIR}/${PN}-16.18.0-r1-func_lock-fix-races.patch"
1112 -)
1113 -
1114 -DEPEND="acct-user/asterisk
1115 - acct-group/asterisk
1116 - dev-db/sqlite:3
1117 - dev-libs/popt
1118 - >=dev-libs/jansson-2.11
1119 - dev-libs/libedit
1120 - dev-libs/libxml2:2
1121 - dev-libs/libxslt
1122 - virtual/libcrypt:=
1123 - sys-apps/util-linux
1124 - sys-libs/ncurses:0=
1125 - sys-libs/zlib
1126 - alsa? ( media-libs/alsa-lib )
1127 - bluetooth? ( net-wireless/bluez:= )
1128 - calendar? (
1129 - net-libs/neon:=
1130 - dev-libs/libical:=
1131 - dev-libs/iksemel
1132 - )
1133 - caps? ( sys-libs/libcap )
1134 - blocks? ( sys-libs/blocksruntime )
1135 - cluster? ( sys-cluster/corosync )
1136 - codec2? ( media-libs/codec2:= )
1137 - curl? ( net-misc/curl )
1138 - dahdi? (
1139 - net-libs/libpri
1140 - net-misc/dahdi-tools
1141 - )
1142 - freetds? ( dev-db/freetds )
1143 - gtalk? ( dev-libs/iksemel )
1144 - http? ( dev-libs/gmime:2.6 )
1145 - iconv? ( virtual/libiconv )
1146 - ilbc? ( media-libs/libilbc )
1147 - ldap? ( net-nds/openldap )
1148 - lua? ( ${LUA_DEPS} )
1149 - mysql? ( dev-db/mysql-connector-c:= )
1150 - newt? ( dev-libs/newt )
1151 - odbc? ( dev-db/unixODBC )
1152 - pjproject? ( >=net-libs/pjproject-2.9 )
1153 - portaudio? ( media-libs/portaudio )
1154 - postgres? ( dev-db/postgresql:* )
1155 - radius? ( net-dialup/freeradius-client )
1156 - snmp? ( net-analyzer/net-snmp:= )
1157 - span? ( media-libs/spandsp )
1158 - speex? (
1159 - media-libs/libogg
1160 - media-libs/speex
1161 - media-libs/speexdsp
1162 - )
1163 - srtp? ( net-libs/libsrtp:0 )
1164 - ssl? (
1165 - dev-libs/openssl:0=
1166 - )
1167 - unbound? ( net-dns/unbound )
1168 - vorbis? (
1169 - media-libs/libogg
1170 - media-libs/libvorbis
1171 - )
1172 - voicemail_storage_imap? ( virtual/imap-c-client )
1173 - xmpp? ( dev-libs/iksemel )
1174 -"
1175 -
1176 -RDEPEND="${DEPEND}
1177 - net-misc/asterisk-core-sounds
1178 - net-misc/asterisk-extra-sounds
1179 - net-misc/asterisk-moh-opsound
1180 - selinux? ( sec-policy/selinux-asterisk )
1181 - syslog? ( virtual/logger )"
1182 -
1183 -BDEPEND="dev-libs/libxml2:2
1184 - virtual/pkgconfig"
1185 -
1186 -QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
1187 -
1188 -pkg_pretend() {
1189 - CONFIG_CHECK="~!NF_CONNTRACK_SIP"
1190 - local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
1191 - have reported that this module dropped critical SIP packets in their deployments. You
1192 - may want to disable it if you see such problems."
1193 - check_extra_config
1194 -
1195 - [[ "${MERGE_TYPE}" == binary ]] && return
1196 -
1197 - if tc-is-clang; then
1198 - use blocks || die "CC=clang requires USE=blocks"
1199 - else
1200 - use blocks && die "USE=blocks can only be used with CC=clang"
1201 - fi
1202 -}
1203 -
1204 -pkg_setup() {
1205 - use lua && lua-single_pkg_setup
1206 -}
1207 -
1208 -src_prepare() {
1209 - default
1210 - AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
1211 -}
1212 -
1213 -src_configure() {
1214 - local vmst
1215 -
1216 - econf \
1217 - LUA_VERSION="${ELUA#lua}" \
1218 - --libdir="/usr/$(get_libdir)" \
1219 - --localstatedir="/var" \
1220 - --with-crypto \
1221 - --with-gsm=internal \
1222 - --with-popt \
1223 - --with-z \
1224 - --with-libedit \
1225 - --without-jansson-bundled \
1226 - --without-pjproject-bundled \
1227 - $(use_with caps cap) \
1228 - $(use_with codec2) \
1229 - $(use_with lua lua) \
1230 - $(use_with http gmime) \
1231 - $(use_with newt) \
1232 - $(use_with pjproject) \
1233 - $(use_with portaudio) \
1234 - $(use_with ssl) \
1235 - $(use_with unbound)
1236 -
1237 - _menuselect() {
1238 - menuselect/menuselect "$@" || die "menuselect $* failed."
1239 - }
1240 -
1241 - _use_select() {
1242 - local state=$(use "$1" && echo enable || echo disable)
1243 - shift # remove use from parameters
1244 -
1245 - while [[ -n $1 ]]; do
1246 - _menuselect --${state} "$1" menuselect.makeopts
1247 - shift
1248 - done
1249 - }
1250 -
1251 - # Blank out sounds/sounds.xml file to prevent
1252 - # asterisk from installing sounds files (we pull them in via
1253 - # asterisk-{core,extra}-sounds and asterisk-moh-opsound.
1254 - >"${S}"/sounds/sounds.xml
1255 -
1256 - # That NATIVE_ARCH chatter really is quite bothersome
1257 - sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
1258 -
1259 - # Compile menuselect binary for optional components
1260 - emake NOISY_BUILD=yes menuselect.makeopts
1261 -
1262 - # Disable BUILD_NATIVE (bug #667498)
1263 - _menuselect --disable build_native menuselect.makeopts
1264 -
1265 - # Broken functionality is forcibly disabled (bug #360143)
1266 - _menuselect --disable chan_misdn menuselect.makeopts
1267 - _menuselect --disable chan_ooh323 menuselect.makeopts
1268 -
1269 - # Utility set is forcibly enabled (bug #358001)
1270 - _menuselect --enable smsq menuselect.makeopts
1271 - _menuselect --enable streamplayer menuselect.makeopts
1272 - _menuselect --enable aelparse menuselect.makeopts
1273 - _menuselect --enable astman menuselect.makeopts
1274 -
1275 - # this is connected, otherwise it would not find
1276 - # ast_pktccops_gate_alloc symbol
1277 - _menuselect --enable chan_mgcp menuselect.makeopts
1278 - _menuselect --enable res_pktccops menuselect.makeopts
1279 -
1280 - # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
1281 - _menuselect --enable pbx_dundi menuselect.makeopts
1282 - _menuselect --enable func_aes menuselect.makeopts
1283 - _menuselect --enable chan_iax2 menuselect.makeopts
1284 -
1285 - # SQlite3 is now the main database backend, enable related features
1286 - _menuselect --enable cdr_sqlite3_custom menuselect.makeopts
1287 - _menuselect --enable cel_sqlite3_custom menuselect.makeopts
1288 -
1289 - # The others are based on USE-flag settings
1290 - _use_select alsa chan_alsa
1291 - _use_select bluetooth chan_mobile
1292 - _use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar}
1293 - _use_select cluster res_corosync
1294 - _use_select codec2 codec_codec2
1295 - _use_select curl func_curl res_config_curl res_curl
1296 - _use_select dahdi app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
1297 - _use_select freetds {cdr,cel}_tds
1298 - _use_select gtalk chan_motif
1299 - _use_select http res_http_post
1300 - _use_select iconv func_iconv
1301 - _use_select ilbc codec_ilbc format_ilbc
1302 - _use_select ldap res_config_ldap
1303 - _use_select lua pbx_lua
1304 - _use_select mysql app_mysql cdr_mysql res_config_mysql
1305 - _use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
1306 - _use_select oss chan_oss
1307 - _use_select postgres {cdr,cel}_pgsql res_config_pgsql
1308 - _use_select radius {cdr,cel}_radius
1309 - _use_select snmp res_snmp
1310 - _use_select span res_fax_spandsp
1311 - _use_select speex {codec,func}_speex
1312 - _use_select speex format_ogg_speex
1313 - _use_select srtp res_srtp
1314 - _use_select statsd res_statsd res_{endpoint,chan}_stats
1315 - _use_select syslog cdr_syslog
1316 - _use_select vorbis format_ogg_vorbis
1317 - _use_select xmpp res_xmpp
1318 -
1319 - # Voicemail storage ...
1320 - for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
1321 - if use "${vmst#+}"; then
1322 - _menuselect --enable "$(echo "${vmst##*_}" | tr '[:lower:]' '[:upper:]')_STORAGE" menuselect.makeopts
1323 - fi
1324 - done
1325 -
1326 - if use debug; then
1327 - for o in DONT_OPTIMIZE DEBUG_THREADS BETTER_BACKTRACES; do
1328 - _menuselect --enable "${o}" menuselect.makeopts
1329 - done
1330 - fi
1331 -}
1332 -
1333 -src_compile() {
1334 - emake ASTCFLAGS="${CFLAGS}" ASTLDFLAGS="${LDFLAGS}" NOISY_BUILD=yes
1335 -}
1336 -
1337 -src_install() {
1338 - local d
1339 -
1340 - dodir "/usr/$(get_libdir)/pkgconfig"
1341 - emake DESTDIR="${D}" NOISY_BUILD=yes install
1342 -
1343 - if use radius; then
1344 - insinto /etc/radiusclient/
1345 - doins contrib/dictionary.digium
1346 - fi
1347 - diropts -m 0750 -o root -g asterisk
1348 - keepdir /etc/asterisk
1349 - emake NOISY_BUILD=yes DESTDIR="${D}" CONFIG_SRC=configs/samples CONFIG_EXTEN=.sample install-configs
1350 - chown root:root "${ED}/etc/asterisk/"* || die "chown root:root of config files failed."
1351 - chmod 644 "${ED}/etc/asterisk/"* || die "chmod 644 of config files failed."
1352 -
1353 - # keep directories
1354 - diropts -m 0750 -o asterisk -g root
1355 - keepdir /var/lib/asterisk
1356 - keepdir /var/spool/asterisk
1357 - keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording}
1358 - diropts -m 0750 -o asterisk -g asterisk
1359 - keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
1360 -
1361 - newinitd "${FILESDIR}"/initd-13.32.0-r1 asterisk
1362 - newconfd "${FILESDIR}"/confd-13.32.0 asterisk
1363 -
1364 - systemd_dounit "${FILESDIR}"/asterisk.service
1365 - newtmpfiles "${FILESDIR}"/asterisk.tmpfiles2.conf asterisk.conf
1366 - systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
1367 -
1368 - # Reset diropts else dodoc uses it for doc installations.
1369 - diropts -m0755
1370 -
1371 - # install the upgrade documentation
1372 - dodoc UPGRADE* BUGS CREDITS
1373 -
1374 - # install extra documentation
1375 - use doc && dodoc doc/*.{txt,pdf}
1376 -
1377 - # install logrotate snippet; bug #329281
1378 - #
1379 - insinto /etc/logrotate.d
1380 - newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
1381 -
1382 - # Asterisk installs a few folders that's empty by design,
1383 - # but still required. This finds them, and marks them for
1384 - # portage.
1385 - while read d < <(find "${ED}"/var -type d -empty || die "Find failed."); do
1386 - keepdir "${d#${ED}}"
1387 - done
1388 -}
1389 -
1390 -pkg_postinst() {
1391 - if [ -z "${REPLACING_VERSIONS}" ]; then
1392 - elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
1393 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
1394 - elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
1395 - elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
1396 - elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
1397 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
1398 - fi
1399 -}
1400
1401 diff --git a/net-misc/asterisk/asterisk-16.19.0-r1.ebuild b/net-misc/asterisk/asterisk-16.19.0-r1.ebuild
1402 deleted file mode 100644
1403 index 9548b400631..00000000000
1404 --- a/net-misc/asterisk/asterisk-16.19.0-r1.ebuild
1405 +++ /dev/null
1406 @@ -1,363 +0,0 @@
1407 -# Copyright 1999-2021 Gentoo Authors
1408 -# Distributed under the terms of the GNU General Public License v2
1409 -
1410 -EAPI=7
1411 -
1412 -LUA_COMPAT=( lua5-{1..4} )
1413 -
1414 -inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
1415 -
1416 -DESCRIPTION="Asterisk: A Modular Open Source PBX System"
1417 -HOMEPAGE="https://www.asterisk.org/"
1418 -SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
1419 -LICENSE="GPL-2"
1420 -SLOT="0/${PV%%.*}"
1421 -KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
1422 -
1423 -IUSE_VOICEMAIL_STORAGE=(
1424 - +voicemail_storage_file
1425 - voicemail_storage_odbc
1426 - voicemail_storage_imap
1427 -)
1428 -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"
1429 -IUSE_EXPAND="VOICEMAIL_STORAGE"
1430 -REQUIRED_USE="gtalk? ( xmpp )
1431 - lua? ( ${LUA_REQUIRED_USE} )
1432 - ^^ ( ${IUSE_VOICEMAIL_STORAGE[*]//+/} )
1433 - voicemail_storage_odbc? ( odbc )
1434 -"
1435 -
1436 -PATCHES=(
1437 - "${FILESDIR}/${PN}-16.16.2-no-var-run-install.patch"
1438 -)
1439 -
1440 -DEPEND="acct-user/asterisk
1441 - acct-group/asterisk
1442 - dev-db/sqlite:3
1443 - dev-libs/popt
1444 - >=dev-libs/jansson-2.11
1445 - dev-libs/libedit
1446 - dev-libs/libxml2:2
1447 - dev-libs/libxslt
1448 - sys-apps/util-linux
1449 - sys-libs/zlib
1450 - virtual/libcrypt:=
1451 - alsa? ( media-libs/alsa-lib )
1452 - bluetooth? ( net-wireless/bluez:= )
1453 - calendar? (
1454 - net-libs/neon:=
1455 - dev-libs/libical:=
1456 - dev-libs/iksemel
1457 - )
1458 - caps? ( sys-libs/libcap )
1459 - blocks? ( sys-libs/blocksruntime )
1460 - cluster? ( sys-cluster/corosync )
1461 - codec2? ( media-libs/codec2:= )
1462 - curl? ( net-misc/curl )
1463 - dahdi? (
1464 - net-libs/libpri
1465 - net-misc/dahdi-tools
1466 - )
1467 - freetds? ( dev-db/freetds )
1468 - gtalk? ( dev-libs/iksemel )
1469 - http? ( dev-libs/gmime:2.6 )
1470 - iconv? ( virtual/libiconv )
1471 - ilbc? ( media-libs/libilbc )
1472 - ldap? ( net-nds/openldap )
1473 - lua? ( ${LUA_DEPS} )
1474 - mysql? ( dev-db/mysql-connector-c:= )
1475 - newt? ( dev-libs/newt )
1476 - odbc? ( dev-db/unixODBC )
1477 - pjproject? ( >=net-libs/pjproject-2.9:= )
1478 - portaudio? ( media-libs/portaudio )
1479 - postgres? ( dev-db/postgresql:* )
1480 - radius? ( net-dialup/freeradius-client )
1481 - snmp? ( net-analyzer/net-snmp:= )
1482 - span? ( media-libs/spandsp )
1483 - speex? (
1484 - media-libs/libogg
1485 - media-libs/speex
1486 - media-libs/speexdsp
1487 - )
1488 - srtp? ( net-libs/libsrtp:0 )
1489 - ssl? (
1490 - dev-libs/openssl:0=
1491 - )
1492 - systemd? ( sys-apps/systemd )
1493 - !systemd? ( !sys-apps/systemd )
1494 - unbound? ( net-dns/unbound )
1495 - vorbis? (
1496 - media-libs/libogg
1497 - media-libs/libvorbis
1498 - )
1499 - voicemail_storage_imap? ( virtual/imap-c-client )
1500 - xmpp? ( dev-libs/iksemel )
1501 -"
1502 -
1503 -RDEPEND="${DEPEND}
1504 - net-misc/asterisk-core-sounds
1505 - net-misc/asterisk-extra-sounds
1506 - net-misc/asterisk-moh-opsound
1507 - selinux? ( sec-policy/selinux-asterisk )
1508 - syslog? ( virtual/logger )"
1509 -
1510 -BDEPEND="dev-libs/libxml2:2
1511 - virtual/pkgconfig"
1512 -
1513 -QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
1514 -
1515 -_make_args=(
1516 - "NOISY_BUILD=yes"
1517 - "ASTDBDIR=\$(ASTDATADIR)/astdb"
1518 - "ASTCACHEDIR=/var/cache/asterisk"
1519 - "OPTIMIZE="
1520 - "DEBUG="
1521 - "DESTDIR=${D}"
1522 - "CONFIG_SRC=configs/samples"
1523 - "CONFIG_EXTEN=.sample"
1524 -)
1525 -
1526 -pkg_pretend() {
1527 - CONFIG_CHECK="~!NF_CONNTRACK_SIP"
1528 - local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
1529 - have reported that this module dropped critical SIP packets in their deployments. You
1530 - may want to disable it if you see such problems."
1531 - check_extra_config
1532 -
1533 - [[ "${MERGE_TYPE}" == binary ]] && return
1534 -
1535 - if tc-is-clang; then
1536 - use blocks || die "CC=clang requires USE=blocks"
1537 - else
1538 - use blocks && die "USE=blocks can only be used with CC=clang"
1539 - fi
1540 -}
1541 -
1542 -pkg_setup() {
1543 - use lua && lua-single_pkg_setup
1544 -}
1545 -
1546 -src_prepare() {
1547 - default
1548 - AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
1549 -}
1550 -
1551 -src_configure() {
1552 - local vmst
1553 - local copt cstate
1554 -
1555 - econf \
1556 - LUA_VERSION="${ELUA#lua}" \
1557 - --libdir="/usr/$(get_libdir)" \
1558 - --localstatedir="/var" \
1559 - --with-crypto \
1560 - --with-gsm=internal \
1561 - --with-popt \
1562 - --with-z \
1563 - --with-libedit \
1564 - --without-jansson-bundled \
1565 - --without-pjproject-bundled \
1566 - $(use_with caps cap) \
1567 - $(use_with codec2) \
1568 - $(use_with lua lua) \
1569 - $(use_with http gmime) \
1570 - $(use_with newt) \
1571 - $(use_with pjproject) \
1572 - $(use_with portaudio) \
1573 - $(use_with ssl) \
1574 - $(use_with unbound)
1575 -
1576 - _menuselect() {
1577 - menuselect/menuselect "$@" || die "menuselect $* failed."
1578 - }
1579 -
1580 - _use_select() {
1581 - local state=$(use "$1" && echo enable || echo disable)
1582 - shift # remove use from parameters
1583 -
1584 - while [[ -n $1 ]]; do
1585 - _menuselect --${state} "$1" menuselect.makeopts
1586 - shift
1587 - done
1588 - }
1589 -
1590 - # Blank out sounds/sounds.xml file to prevent
1591 - # asterisk from installing sounds files (we pull them in via
1592 - # asterisk-{core,extra}-sounds and asterisk-moh-opsound.
1593 - >"${S}"/sounds/sounds.xml
1594 -
1595 - # That NATIVE_ARCH chatter really is quite bothersome
1596 - sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
1597 -
1598 - # Compile menuselect binary for optional components
1599 - emake "${_make_args[@]}" menuselect.makeopts
1600 -
1601 - # Disable BUILD_NATIVE (bug #667498)
1602 - _menuselect --disable build_native menuselect.makeopts
1603 -
1604 - # Broken functionality is forcibly disabled (bug #360143)
1605 - _menuselect --disable chan_misdn menuselect.makeopts
1606 - _menuselect --disable chan_ooh323 menuselect.makeopts
1607 -
1608 - # Utility set is forcibly enabled (bug #358001)
1609 - _menuselect --enable smsq menuselect.makeopts
1610 - _menuselect --enable streamplayer menuselect.makeopts
1611 - _menuselect --enable aelparse menuselect.makeopts
1612 - _menuselect --enable astman menuselect.makeopts
1613 -
1614 - # this is connected, otherwise it would not find
1615 - # ast_pktccops_gate_alloc symbol
1616 - _menuselect --enable chan_mgcp menuselect.makeopts
1617 - _menuselect --enable res_pktccops menuselect.makeopts
1618 -
1619 - # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
1620 - _menuselect --enable pbx_dundi menuselect.makeopts
1621 - _menuselect --enable func_aes menuselect.makeopts
1622 - _menuselect --enable chan_iax2 menuselect.makeopts
1623 -
1624 - # SQlite3 is now the main database backend, enable related features
1625 - _menuselect --enable cdr_sqlite3_custom menuselect.makeopts
1626 - _menuselect --enable cel_sqlite3_custom menuselect.makeopts
1627 -
1628 - # The others are based on USE-flag settings
1629 - _use_select alsa chan_alsa
1630 - _use_select bluetooth chan_mobile
1631 - _use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar}
1632 - _use_select cluster res_corosync
1633 - _use_select codec2 codec_codec2
1634 - _use_select curl func_curl res_config_curl res_curl
1635 - _use_select dahdi app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
1636 - _use_select deprecated app_macro
1637 - _use_select freetds {cdr,cel}_tds
1638 - _use_select gtalk chan_motif
1639 - _use_select http res_http_post
1640 - _use_select iconv func_iconv
1641 - _use_select ilbc codec_ilbc format_ilbc
1642 - _use_select ldap res_config_ldap
1643 - _use_select lua pbx_lua
1644 - _use_select mysql app_mysql cdr_mysql res_config_mysql
1645 - _use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
1646 - _use_select oss chan_oss
1647 - _use_select postgres {cdr,cel}_pgsql res_config_pgsql
1648 - _use_select radius {cdr,cel}_radius
1649 - _use_select snmp res_snmp
1650 - _use_select span res_fax_spandsp
1651 - _use_select speex {codec,func}_speex
1652 - _use_select speex format_ogg_speex
1653 - _use_select srtp res_srtp
1654 - _use_select statsd res_statsd res_{endpoint,chan}_stats
1655 - _use_select syslog cdr_syslog
1656 - _use_select vorbis format_ogg_vorbis
1657 - _use_select xmpp res_xmpp
1658 -
1659 - # Voicemail storage ...
1660 - for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
1661 - if use "${vmst#+}"; then
1662 - _menuselect --enable "$(echo "${vmst##*_}" | tr '[:lower:]' '[:upper:]')_STORAGE" menuselect.makeopts
1663 - fi
1664 - done
1665 -
1666 - if use debug; then
1667 - for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG BETTER_BACKTRACES; do
1668 - _menuselect --enable "${o}" menuselect.makeopts
1669 - done
1670 - fi
1671 -
1672 - if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
1673 - for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
1674 - cstate=--enable
1675 - [[ "${copt}" == -* ]] && cstate=--disable
1676 - ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
1677 - _menuselect ${cstate} "${copt#[-+]}"
1678 - eend $?
1679 - done
1680 - fi
1681 -}
1682 -
1683 -src_compile() {
1684 - emake "${_make_args[@]}"
1685 -}
1686 -
1687 -src_install() {
1688 - local d
1689 -
1690 - dodir "/usr/$(get_libdir)/pkgconfig"
1691 -
1692 - diropts -m 0750 -o root -g asterisk
1693 - dodir /etc/asterisk
1694 -
1695 - emake "${_make_args[@]}" install install-configs
1696 -
1697 - fowners asterisk: /var/lib/asterisk/astdb
1698 -
1699 - if use radius; then
1700 - insinto /etc/radiusclient/
1701 - doins contrib/dictionary.digium
1702 - fi
1703 -
1704 - # keep directories
1705 - diropts -m 0750 -o asterisk -g root
1706 - keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording,outgoing}
1707 - diropts -m 0750 -o asterisk -g asterisk
1708 - keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
1709 -
1710 - newinitd "${FILESDIR}"/initd-16.16.2-r1 asterisk
1711 - newconfd "${FILESDIR}"/confd-16.16.2-r1 asterisk
1712 -
1713 - systemd_dounit "${FILESDIR}"/asterisk.service
1714 - newtmpfiles "${FILESDIR}"/asterisk.tmpfiles3.conf asterisk.conf
1715 - systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
1716 -
1717 - # Reset diropts else dodoc uses it for doc installations.
1718 - diropts -m0755
1719 -
1720 - # install the upgrade documentation
1721 - dodoc UPGRADE* BUGS CREDITS
1722 -
1723 - # install extra documentation
1724 - use doc && dodoc doc/*.{txt,pdf}
1725 -
1726 - # install logrotate snippet; bug #329281
1727 - #
1728 - insinto /etc/logrotate.d
1729 - newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
1730 -
1731 - # Asterisk installs a few folders that's empty by design,
1732 - # but still required. This finds them, and marks them for
1733 - # portage.
1734 - while read d <&3; do
1735 - keepdir "${d#${ED}}"
1736 - done 3< <(find "${ED}"/var -type d -empty || die "Find failed.")
1737 -}
1738 -
1739 -pkg_postinst() {
1740 - if [ -z "${REPLACING_VERSIONS}" ]; then
1741 - elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
1742 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
1743 - elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
1744 - elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
1745 - elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
1746 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
1747 - fi
1748 -
1749 - if use deprecated; then
1750 - ewarn "You really aught to port whatever code you have that depends on this since these are going to go away."
1751 - ewarn "Refer: https://wiki.asterisk.org/wiki/display/AST/Module+Deprecation"
1752 - fi
1753 -
1754 - if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
1755 - ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this should only be used"
1756 - ewarn "for debugging, for anything else, please file a bug on https://bugs.gentoo.org"
1757 - fi
1758 -
1759 - if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
1760 - ewarn "Default astdb location has changed from /var/lib/asterisk to /var/lib/asterisk/astdb"
1761 - ewarn "You still have a /var/lib/asterisk/astdb.sqlite file. You need to either set"
1762 - ewarn "astdbdir in /etc/asterisk/asterisk.conf to /var/lib/asterisk or follow these"
1763 - ewarn "steps to migrate:"
1764 - ewarn "1. /etc/init.d/asterisk stop"
1765 - ewarn "2. mv /var/lib/asterisk/astdb.sqlite /var/lib/asterisk/astdb/"
1766 - ewarn "3. /etc/init.d/asterisk start"
1767 - ewarn "This update was done partly for security reasons so that /var/lib/asterisk can be root owned."
1768 - fi
1769 -}
1770
1771 diff --git a/net-misc/asterisk/asterisk-18.4.0-r2.ebuild b/net-misc/asterisk/asterisk-18.4.0-r2.ebuild
1772 deleted file mode 100644
1773 index d1792573693..00000000000
1774 --- a/net-misc/asterisk/asterisk-18.4.0-r2.ebuild
1775 +++ /dev/null
1776 @@ -1,363 +0,0 @@
1777 -# Copyright 1999-2021 Gentoo Authors
1778 -# Distributed under the terms of the GNU General Public License v2
1779 -
1780 -EAPI=7
1781 -
1782 -LUA_COMPAT=( lua5-{1..4} )
1783 -
1784 -inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
1785 -
1786 -DESCRIPTION="Asterisk: A Modular Open Source PBX System"
1787 -HOMEPAGE="https://www.asterisk.org/"
1788 -SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
1789 -LICENSE="GPL-2"
1790 -SLOT="0/${PV%%.*}"
1791 -KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
1792 -
1793 -IUSE_VOICEMAIL_STORAGE=(
1794 - voicemail_storage_odbc
1795 - voicemail_storage_imap
1796 -)
1797 -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"
1798 -IUSE_EXPAND="VOICEMAIL_STORAGE"
1799 -REQUIRED_USE="gtalk? ( xmpp )
1800 - lua? ( ${LUA_REQUIRED_USE} )
1801 - voicemail_storage_odbc? ( odbc )
1802 -"
1803 -
1804 -PATCHES=(
1805 - "${FILESDIR}/${PN}-16.16.2-no-var-run-install.patch"
1806 - "${FILESDIR}/${PN}-16.18.0-r1-func_lock-fix-races.patch"
1807 -)
1808 -
1809 -DEPEND="acct-user/asterisk
1810 - acct-group/asterisk
1811 - dev-db/sqlite:3
1812 - dev-libs/popt
1813 - >=dev-libs/jansson-2.11
1814 - dev-libs/libedit
1815 - dev-libs/libxml2:2
1816 - dev-libs/libxslt
1817 - virtual/libcrypt:=
1818 - sys-apps/util-linux
1819 - sys-libs/zlib
1820 - alsa? ( media-libs/alsa-lib )
1821 - bluetooth? ( net-wireless/bluez:= )
1822 - calendar? (
1823 - net-libs/neon:=
1824 - dev-libs/libical:=
1825 - dev-libs/iksemel
1826 - )
1827 - caps? ( sys-libs/libcap )
1828 - blocks? ( sys-libs/blocksruntime )
1829 - cluster? ( sys-cluster/corosync )
1830 - codec2? ( media-libs/codec2:= )
1831 - curl? ( net-misc/curl )
1832 - dahdi? (
1833 - net-libs/libpri
1834 - net-misc/dahdi-tools
1835 - )
1836 - freetds? ( dev-db/freetds )
1837 - gtalk? ( dev-libs/iksemel )
1838 - http? ( dev-libs/gmime:2.6 )
1839 - iconv? ( virtual/libiconv )
1840 - ilbc? ( media-libs/libilbc )
1841 - ldap? ( net-nds/openldap )
1842 - lua? ( ${LUA_DEPS} )
1843 - mysql? ( dev-db/mysql-connector-c:= )
1844 - newt? ( dev-libs/newt )
1845 - odbc? ( dev-db/unixODBC )
1846 - pjproject? ( >=net-libs/pjproject-2.9:= )
1847 - portaudio? ( media-libs/portaudio )
1848 - postgres? ( dev-db/postgresql:* )
1849 - radius? ( net-dialup/freeradius-client )
1850 - snmp? ( net-analyzer/net-snmp:= )
1851 - span? ( media-libs/spandsp )
1852 - speex? (
1853 - media-libs/libogg
1854 - media-libs/speex
1855 - media-libs/speexdsp
1856 - )
1857 - srtp? ( net-libs/libsrtp:0 )
1858 - ssl? (
1859 - dev-libs/openssl:0=
1860 - )
1861 - systemd? ( sys-apps/systemd )
1862 - !systemd? ( !sys-apps/systemd )
1863 - unbound? ( net-dns/unbound )
1864 - vorbis? (
1865 - media-libs/libogg
1866 - media-libs/libvorbis
1867 - )
1868 - voicemail_storage_imap? ( virtual/imap-c-client )
1869 - xmpp? ( dev-libs/iksemel )
1870 -"
1871 -
1872 -RDEPEND="${DEPEND}
1873 - net-misc/asterisk-core-sounds
1874 - net-misc/asterisk-extra-sounds
1875 - net-misc/asterisk-moh-opsound
1876 - selinux? ( sec-policy/selinux-asterisk )
1877 - syslog? ( virtual/logger )"
1878 -
1879 -BDEPEND="dev-libs/libxml2:2
1880 - virtual/pkgconfig"
1881 -
1882 -QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
1883 -
1884 -_make_args=(
1885 - "NOISY_BUILD=yes"
1886 - "ASTDBDIR=\$(ASTDATADIR)/astdb"
1887 - "ASTCACHEDIR=/var/cache/asterisk"
1888 - "OPTIMIZE="
1889 - "DEBUG="
1890 - "DESTDIR=${D}"
1891 - "CONFIG_SRC=configs/samples"
1892 - "CONFIG_EXTEN=.sample"
1893 -)
1894 -
1895 -pkg_pretend() {
1896 - CONFIG_CHECK="~!NF_CONNTRACK_SIP"
1897 - local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
1898 - have reported that this module dropped critical SIP packets in their deployments. You
1899 - may want to disable it if you see such problems."
1900 - check_extra_config
1901 -
1902 - [[ "${MERGE_TYPE}" == binary ]] && return
1903 -
1904 - if tc-is-clang; then
1905 - use blocks || die "CC=clang requires USE=blocks"
1906 - else
1907 - use blocks && die "USE=blocks can only be used with CC=clang"
1908 - fi
1909 -}
1910 -
1911 -pkg_setup() {
1912 - use lua && lua-single_pkg_setup
1913 -}
1914 -
1915 -src_prepare() {
1916 - default
1917 - AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
1918 -}
1919 -
1920 -src_configure() {
1921 - local vmst
1922 - local copt cstate
1923 -
1924 - econf \
1925 - LUA_VERSION="${ELUA#lua}" \
1926 - --libdir="/usr/$(get_libdir)" \
1927 - --localstatedir="/var" \
1928 - --with-crypto \
1929 - --with-gsm=internal \
1930 - --with-popt \
1931 - --with-z \
1932 - --with-libedit \
1933 - --without-jansson-bundled \
1934 - --without-pjproject-bundled \
1935 - $(use_with caps cap) \
1936 - $(use_with codec2) \
1937 - $(use_with lua lua) \
1938 - $(use_with http gmime) \
1939 - $(use_with newt) \
1940 - $(use_with pjproject) \
1941 - $(use_with portaudio) \
1942 - $(use_with ssl) \
1943 - $(use_with unbound)
1944 -
1945 - _menuselect() {
1946 - menuselect/menuselect "$@" || die "menuselect $* failed."
1947 - }
1948 -
1949 - _use_select() {
1950 - local state=$(use "$1" && echo enable || echo disable)
1951 - shift # remove use from parameters
1952 -
1953 - while [[ -n $1 ]]; do
1954 - _menuselect --${state} "$1" menuselect.makeopts
1955 - shift
1956 - done
1957 - }
1958 -
1959 - # Blank out sounds/sounds.xml file to prevent
1960 - # asterisk from installing sounds files (we pull them in via
1961 - # asterisk-{core,extra}-sounds and asterisk-moh-opsound.
1962 - >"${S}"/sounds/sounds.xml
1963 -
1964 - # That NATIVE_ARCH chatter really is quite bothersome
1965 - sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
1966 -
1967 - # Compile menuselect binary for optional components
1968 - emake "${_make_args[@]}" menuselect.makeopts
1969 -
1970 - # Disable BUILD_NATIVE (bug #667498)
1971 - _menuselect --disable build_native menuselect.makeopts
1972 -
1973 - # Broken functionality is forcibly disabled (bug #360143)
1974 - _menuselect --disable chan_misdn menuselect.makeopts
1975 - _menuselect --disable chan_ooh323 menuselect.makeopts
1976 -
1977 - # Utility set is forcibly enabled (bug #358001)
1978 - _menuselect --enable smsq menuselect.makeopts
1979 - _menuselect --enable streamplayer menuselect.makeopts
1980 - _menuselect --enable aelparse menuselect.makeopts
1981 - _menuselect --enable astman menuselect.makeopts
1982 -
1983 - # this is connected, otherwise it would not find
1984 - # ast_pktccops_gate_alloc symbol
1985 - _menuselect --enable chan_mgcp menuselect.makeopts
1986 - _menuselect --enable res_pktccops menuselect.makeopts
1987 -
1988 - # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
1989 - _menuselect --enable pbx_dundi menuselect.makeopts
1990 - _menuselect --enable func_aes menuselect.makeopts
1991 - _menuselect --enable chan_iax2 menuselect.makeopts
1992 -
1993 - # SQlite3 is now the main database backend, enable related features
1994 - _menuselect --enable cdr_sqlite3_custom menuselect.makeopts
1995 - _menuselect --enable cel_sqlite3_custom menuselect.makeopts
1996 -
1997 - # The others are based on USE-flag settings
1998 - _use_select alsa chan_alsa
1999 - _use_select bluetooth chan_mobile
2000 - _use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar}
2001 - _use_select cluster res_corosync
2002 - _use_select codec2 codec_codec2
2003 - _use_select curl func_curl res_config_curl res_curl
2004 - _use_select dahdi app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
2005 - _use_select deprecated app_macro
2006 - _use_select freetds {cdr,cel}_tds
2007 - _use_select gtalk chan_motif
2008 - _use_select http res_http_post
2009 - _use_select iconv func_iconv
2010 - _use_select ilbc codec_ilbc format_ilbc
2011 - _use_select ldap res_config_ldap
2012 - _use_select lua pbx_lua
2013 - _use_select mysql app_mysql cdr_mysql res_config_mysql
2014 - _use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
2015 - _use_select oss chan_oss
2016 - _use_select postgres {cdr,cel}_pgsql res_config_pgsql
2017 - _use_select radius {cdr,cel}_radius
2018 - _use_select snmp res_snmp
2019 - _use_select span res_fax_spandsp
2020 - _use_select speex {codec,func}_speex
2021 - _use_select speex format_ogg_speex
2022 - _use_select srtp res_srtp
2023 - _use_select statsd res_statsd res_{endpoint,chan}_stats
2024 - _use_select syslog cdr_syslog
2025 - _use_select vorbis format_ogg_vorbis
2026 - _use_select xmpp res_xmpp
2027 -
2028 - # Voicemail storage ...
2029 - _menuselect --enable app_voicemail menuselect.makeopts
2030 - for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
2031 - if use "${vmst#+}"; then
2032 - _menuselect --enable "app_voicemail_${vmst##*_}" menuselect.makeopts
2033 - fi
2034 - done
2035 -
2036 - if use debug; then
2037 - for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG BETTER_BACKTRACES; do
2038 - _menuselect --enable "${o}" menuselect.makeopts
2039 - done
2040 - fi
2041 -
2042 - if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
2043 - for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
2044 - cstate=--enable
2045 - [[ "${copt}" == -* ]] && cstate=--disable
2046 - ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
2047 - _menuselect ${cstate} "${copt#[-+]}"
2048 - eend $?
2049 - done
2050 - fi
2051 -}
2052 -
2053 -src_compile() {
2054 - emake "${_make_args[@]}"
2055 -}
2056 -
2057 -src_install() {
2058 - local d
2059 -
2060 - dodir "/usr/$(get_libdir)/pkgconfig"
2061 -
2062 - diropts -m 0750 -o root -g asterisk
2063 - dodir /etc/asterisk
2064 -
2065 - emake "${_make_args[@]}" install install-headers install-configs
2066 -
2067 - fowners asterisk: /var/lib/asterisk/astdb
2068 -
2069 - if use radius; then
2070 - insinto /etc/radiusclient/
2071 - doins contrib/dictionary.digium
2072 - fi
2073 -
2074 - # keep directories
2075 - diropts -m 0750 -o asterisk -g root
2076 - keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording}
2077 - diropts -m 0750 -o asterisk -g asterisk
2078 - keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
2079 -
2080 - newinitd "${FILESDIR}"/initd-16.16.2-r1 asterisk
2081 - newconfd "${FILESDIR}"/confd-16.16.2-r1 asterisk
2082 -
2083 - systemd_dounit "${FILESDIR}"/asterisk.service
2084 - newtmpfiles "${FILESDIR}"/asterisk.tmpfiles3.conf asterisk.conf
2085 - systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
2086 -
2087 - # Reset diropts else dodoc uses it for doc installations.
2088 - diropts -m0755
2089 -
2090 - # install the upgrade documentation
2091 - dodoc UPGRADE* BUGS CREDITS
2092 -
2093 - # install extra documentation
2094 - use doc && dodoc doc/*.{txt,pdf}
2095 -
2096 - # install logrotate snippet; bug #329281
2097 - #
2098 - insinto /etc/logrotate.d
2099 - newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
2100 -
2101 - # Asterisk installs a few folders that's empty by design,
2102 - # but still required. This finds them, and marks them for
2103 - # portage.
2104 - while read d < <(find "${ED}"/var -type d -empty || die "Find failed."); do
2105 - keepdir "${d#${ED}}"
2106 - done
2107 -}
2108 -
2109 -pkg_postinst() {
2110 - if [ -z "${REPLACING_VERSIONS}" ]; then
2111 - elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
2112 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
2113 - elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
2114 - elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
2115 - elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
2116 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
2117 - fi
2118 -
2119 - if use deprecated; then
2120 - ewarn "You really aught to port whatever code you have that depends on this since these are going to go away."
2121 - ewarn "Refer: https://wiki.asterisk.org/wiki/display/AST/Module+Deprecation"
2122 - fi
2123 -
2124 - if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
2125 - ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this should only be used"
2126 - ewarn "for debugging, for anything else, please file a bug on https://bugs.gentoo.org"
2127 - fi
2128 -
2129 - if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
2130 - ewarn "Default astdb location has changed from /var/lib/asterisk to /var/lib/asterisk/astdb"
2131 - ewarn "You still have a /var/lib/asterisk/astdb.sqlite file. You need to either set"
2132 - ewarn "astdbdir in /etc/asterisk/asterisk.conf to /var/lib/asterisk or follow these"
2133 - ewarn "steps to migrate:"
2134 - ewarn "1. /etc/init.d/asterisk stop"
2135 - ewarn "2. mv /var/lib/asterisk/astdb.sqlite /var/lib/asterisk/astdb/"
2136 - ewarn "3. /etc/init.d/asterisk start"
2137 - ewarn "This update was done partly for security reasons so that /var/lib/asterisk can be root owned."
2138 - fi
2139 -}
2140
2141 diff --git a/net-misc/asterisk/asterisk-18.5.0-r1.ebuild b/net-misc/asterisk/asterisk-18.5.0-r1.ebuild
2142 deleted file mode 100644
2143 index 1334c613ae6..00000000000
2144 --- a/net-misc/asterisk/asterisk-18.5.0-r1.ebuild
2145 +++ /dev/null
2146 @@ -1,362 +0,0 @@
2147 -# Copyright 1999-2021 Gentoo Authors
2148 -# Distributed under the terms of the GNU General Public License v2
2149 -
2150 -EAPI=7
2151 -
2152 -LUA_COMPAT=( lua5-{1..4} )
2153 -
2154 -inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
2155 -
2156 -DESCRIPTION="Asterisk: A Modular Open Source PBX System"
2157 -HOMEPAGE="https://www.asterisk.org/"
2158 -SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz"
2159 -LICENSE="GPL-2"
2160 -SLOT="0/${PV%%.*}"
2161 -KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
2162 -
2163 -IUSE_VOICEMAIL_STORAGE=(
2164 - voicemail_storage_odbc
2165 - voicemail_storage_imap
2166 -)
2167 -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"
2168 -IUSE_EXPAND="VOICEMAIL_STORAGE"
2169 -REQUIRED_USE="gtalk? ( xmpp )
2170 - lua? ( ${LUA_REQUIRED_USE} )
2171 - voicemail_storage_odbc? ( odbc )
2172 -"
2173 -
2174 -PATCHES=(
2175 - "${FILESDIR}/${PN}-16.16.2-no-var-run-install.patch"
2176 -)
2177 -
2178 -DEPEND="acct-user/asterisk
2179 - acct-group/asterisk
2180 - dev-db/sqlite:3
2181 - dev-libs/popt
2182 - >=dev-libs/jansson-2.11
2183 - dev-libs/libedit
2184 - dev-libs/libxml2:2
2185 - dev-libs/libxslt
2186 - sys-apps/util-linux
2187 - sys-libs/zlib
2188 - virtual/libcrypt:=
2189 - alsa? ( media-libs/alsa-lib )
2190 - bluetooth? ( net-wireless/bluez:= )
2191 - calendar? (
2192 - net-libs/neon:=
2193 - dev-libs/libical:=
2194 - dev-libs/iksemel
2195 - )
2196 - caps? ( sys-libs/libcap )
2197 - blocks? ( sys-libs/blocksruntime )
2198 - cluster? ( sys-cluster/corosync )
2199 - codec2? ( media-libs/codec2:= )
2200 - curl? ( net-misc/curl )
2201 - dahdi? (
2202 - net-libs/libpri
2203 - net-misc/dahdi-tools
2204 - )
2205 - freetds? ( dev-db/freetds )
2206 - gtalk? ( dev-libs/iksemel )
2207 - http? ( dev-libs/gmime:2.6 )
2208 - iconv? ( virtual/libiconv )
2209 - ilbc? ( media-libs/libilbc )
2210 - ldap? ( net-nds/openldap )
2211 - lua? ( ${LUA_DEPS} )
2212 - mysql? ( dev-db/mysql-connector-c:= )
2213 - newt? ( dev-libs/newt )
2214 - odbc? ( dev-db/unixODBC )
2215 - pjproject? ( >=net-libs/pjproject-2.9:= )
2216 - portaudio? ( media-libs/portaudio )
2217 - postgres? ( dev-db/postgresql:* )
2218 - radius? ( net-dialup/freeradius-client )
2219 - snmp? ( net-analyzer/net-snmp:= )
2220 - span? ( media-libs/spandsp )
2221 - speex? (
2222 - media-libs/libogg
2223 - media-libs/speex
2224 - media-libs/speexdsp
2225 - )
2226 - srtp? ( net-libs/libsrtp:0 )
2227 - ssl? (
2228 - dev-libs/openssl:0=
2229 - )
2230 - systemd? ( sys-apps/systemd )
2231 - !systemd? ( !sys-apps/systemd )
2232 - unbound? ( net-dns/unbound )
2233 - vorbis? (
2234 - media-libs/libogg
2235 - media-libs/libvorbis
2236 - )
2237 - voicemail_storage_imap? ( virtual/imap-c-client )
2238 - xmpp? ( dev-libs/iksemel )
2239 -"
2240 -
2241 -RDEPEND="${DEPEND}
2242 - net-misc/asterisk-core-sounds
2243 - net-misc/asterisk-extra-sounds
2244 - net-misc/asterisk-moh-opsound
2245 - selinux? ( sec-policy/selinux-asterisk )
2246 - syslog? ( virtual/logger )"
2247 -
2248 -BDEPEND="dev-libs/libxml2:2
2249 - virtual/pkgconfig"
2250 -
2251 -QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
2252 -
2253 -_make_args=(
2254 - "NOISY_BUILD=yes"
2255 - "ASTDBDIR=\$(ASTDATADIR)/astdb"
2256 - "ASTCACHEDIR=/var/cache/asterisk"
2257 - "OPTIMIZE="
2258 - "DEBUG="
2259 - "DESTDIR=${D}"
2260 - "CONFIG_SRC=configs/samples"
2261 - "CONFIG_EXTEN=.sample"
2262 -)
2263 -
2264 -pkg_pretend() {
2265 - CONFIG_CHECK="~!NF_CONNTRACK_SIP"
2266 - local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is enabled. Some users
2267 - have reported that this module dropped critical SIP packets in their deployments. You
2268 - may want to disable it if you see such problems."
2269 - check_extra_config
2270 -
2271 - [[ "${MERGE_TYPE}" == binary ]] && return
2272 -
2273 - if tc-is-clang; then
2274 - use blocks || die "CC=clang requires USE=blocks"
2275 - else
2276 - use blocks && die "USE=blocks can only be used with CC=clang"
2277 - fi
2278 -}
2279 -
2280 -pkg_setup() {
2281 - use lua && lua-single_pkg_setup
2282 -}
2283 -
2284 -src_prepare() {
2285 - default
2286 - AT_M4DIR="autoconf third-party third-party/pjproject third-party/jansson" eautoreconf
2287 -}
2288 -
2289 -src_configure() {
2290 - local vmst
2291 - local copt cstate
2292 -
2293 - econf \
2294 - LUA_VERSION="${ELUA#lua}" \
2295 - --libdir="/usr/$(get_libdir)" \
2296 - --localstatedir="/var" \
2297 - --with-crypto \
2298 - --with-gsm=internal \
2299 - --with-popt \
2300 - --with-z \
2301 - --with-libedit \
2302 - --without-jansson-bundled \
2303 - --without-pjproject-bundled \
2304 - $(use_with caps cap) \
2305 - $(use_with codec2) \
2306 - $(use_with lua lua) \
2307 - $(use_with http gmime) \
2308 - $(use_with newt) \
2309 - $(use_with pjproject) \
2310 - $(use_with portaudio) \
2311 - $(use_with ssl) \
2312 - $(use_with unbound)
2313 -
2314 - _menuselect() {
2315 - menuselect/menuselect "$@" || die "menuselect $* failed."
2316 - }
2317 -
2318 - _use_select() {
2319 - local state=$(use "$1" && echo enable || echo disable)
2320 - shift # remove use from parameters
2321 -
2322 - while [[ -n $1 ]]; do
2323 - _menuselect --${state} "$1" menuselect.makeopts
2324 - shift
2325 - done
2326 - }
2327 -
2328 - # Blank out sounds/sounds.xml file to prevent
2329 - # asterisk from installing sounds files (we pull them in via
2330 - # asterisk-{core,extra}-sounds and asterisk-moh-opsound.
2331 - >"${S}"/sounds/sounds.xml
2332 -
2333 - # That NATIVE_ARCH chatter really is quite bothersome
2334 - sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || die "Unable to squelch noisy build system"
2335 -
2336 - # Compile menuselect binary for optional components
2337 - emake "${_make_args[@]}" menuselect.makeopts
2338 -
2339 - # Disable BUILD_NATIVE (bug #667498)
2340 - _menuselect --disable build_native menuselect.makeopts
2341 -
2342 - # Broken functionality is forcibly disabled (bug #360143)
2343 - _menuselect --disable chan_misdn menuselect.makeopts
2344 - _menuselect --disable chan_ooh323 menuselect.makeopts
2345 -
2346 - # Utility set is forcibly enabled (bug #358001)
2347 - _menuselect --enable smsq menuselect.makeopts
2348 - _menuselect --enable streamplayer menuselect.makeopts
2349 - _menuselect --enable aelparse menuselect.makeopts
2350 - _menuselect --enable astman menuselect.makeopts
2351 -
2352 - # this is connected, otherwise it would not find
2353 - # ast_pktccops_gate_alloc symbol
2354 - _menuselect --enable chan_mgcp menuselect.makeopts
2355 - _menuselect --enable res_pktccops menuselect.makeopts
2356 -
2357 - # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
2358 - _menuselect --enable pbx_dundi menuselect.makeopts
2359 - _menuselect --enable func_aes menuselect.makeopts
2360 - _menuselect --enable chan_iax2 menuselect.makeopts
2361 -
2362 - # SQlite3 is now the main database backend, enable related features
2363 - _menuselect --enable cdr_sqlite3_custom menuselect.makeopts
2364 - _menuselect --enable cel_sqlite3_custom menuselect.makeopts
2365 -
2366 - # The others are based on USE-flag settings
2367 - _use_select alsa chan_alsa
2368 - _use_select bluetooth chan_mobile
2369 - _use_select calendar res_calendar res_calendar_{caldav,ews,exchange,icalendar}
2370 - _use_select cluster res_corosync
2371 - _use_select codec2 codec_codec2
2372 - _use_select curl func_curl res_config_curl res_curl
2373 - _use_select dahdi app_dahdiras app_meetme chan_dahdi codec_dahdi res_timing_dahdi
2374 - _use_select deprecated app_macro
2375 - _use_select freetds {cdr,cel}_tds
2376 - _use_select gtalk chan_motif
2377 - _use_select http res_http_post
2378 - _use_select iconv func_iconv
2379 - _use_select ilbc codec_ilbc format_ilbc
2380 - _use_select ldap res_config_ldap
2381 - _use_select lua pbx_lua
2382 - _use_select mysql app_mysql cdr_mysql res_config_mysql
2383 - _use_select odbc cdr_adaptive_odbc res_config_odbc {cdr,cel,res,func}_odbc
2384 - _use_select oss chan_oss
2385 - _use_select postgres {cdr,cel}_pgsql res_config_pgsql
2386 - _use_select radius {cdr,cel}_radius
2387 - _use_select snmp res_snmp
2388 - _use_select span res_fax_spandsp
2389 - _use_select speex {codec,func}_speex
2390 - _use_select speex format_ogg_speex
2391 - _use_select srtp res_srtp
2392 - _use_select statsd res_statsd res_{endpoint,chan}_stats
2393 - _use_select syslog cdr_syslog
2394 - _use_select vorbis format_ogg_vorbis
2395 - _use_select xmpp res_xmpp
2396 -
2397 - # Voicemail storage ...
2398 - _menuselect --enable app_voicemail menuselect.makeopts
2399 - for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
2400 - if use "${vmst#+}"; then
2401 - _menuselect --enable "app_voicemail_${vmst##*_}" menuselect.makeopts
2402 - fi
2403 - done
2404 -
2405 - if use debug; then
2406 - for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG BETTER_BACKTRACES; do
2407 - _menuselect --enable "${o}" menuselect.makeopts
2408 - done
2409 - fi
2410 -
2411 - if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
2412 - for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
2413 - cstate=--enable
2414 - [[ "${copt}" == -* ]] && cstate=--disable
2415 - ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
2416 - _menuselect ${cstate} "${copt#[-+]}"
2417 - eend $?
2418 - done
2419 - fi
2420 -}
2421 -
2422 -src_compile() {
2423 - emake "${_make_args[@]}"
2424 -}
2425 -
2426 -src_install() {
2427 - local d
2428 -
2429 - dodir "/usr/$(get_libdir)/pkgconfig"
2430 -
2431 - diropts -m 0750 -o root -g asterisk
2432 - dodir /etc/asterisk
2433 -
2434 - emake "${_make_args[@]}" install install-headers install-configs
2435 -
2436 - fowners asterisk: /var/lib/asterisk/astdb
2437 -
2438 - if use radius; then
2439 - insinto /etc/radiusclient/
2440 - doins contrib/dictionary.digium
2441 - fi
2442 -
2443 - # keep directories
2444 - diropts -m 0750 -o asterisk -g root
2445 - keepdir /var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording,outgoing}
2446 - diropts -m 0750 -o asterisk -g asterisk
2447 - keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
2448 -
2449 - newinitd "${FILESDIR}"/initd-16.16.2-r1 asterisk
2450 - newconfd "${FILESDIR}"/confd-16.16.2-r1 asterisk
2451 -
2452 - systemd_dounit "${FILESDIR}"/asterisk.service
2453 - newtmpfiles "${FILESDIR}"/asterisk.tmpfiles3.conf asterisk.conf
2454 - systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
2455 -
2456 - # Reset diropts else dodoc uses it for doc installations.
2457 - diropts -m0755
2458 -
2459 - # install the upgrade documentation
2460 - dodoc UPGRADE* BUGS CREDITS
2461 -
2462 - # install extra documentation
2463 - use doc && dodoc doc/*.{txt,pdf}
2464 -
2465 - # install logrotate snippet; bug #329281
2466 - #
2467 - insinto /etc/logrotate.d
2468 - newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
2469 -
2470 - # Asterisk installs a few folders that's empty by design,
2471 - # but still required. This finds them, and marks them for
2472 - # portage.
2473 - while read d <&3; do
2474 - keepdir "${d#${ED}}"
2475 - done 3< <(find "${ED}"/var -type d -empty || die "Find failed.")
2476 -}
2477 -
2478 -pkg_postinst() {
2479 - if [ -z "${REPLACING_VERSIONS}" ]; then
2480 - elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/"
2481 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
2482 - elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
2483 - elog "You are updating from Asterisk $(ver_cut 1 "${REPLACING_VERSIONS}") upgrade document:"
2484 - elog "https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
2485 - elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
2486 - fi
2487 -
2488 - if use deprecated; then
2489 - ewarn "You really aught to port whatever code you have that depends on this since these are going to go away."
2490 - ewarn "Refer: https://wiki.asterisk.org/wiki/display/AST/Module+Deprecation"
2491 - fi
2492 -
2493 - if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
2494 - ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this should only be used"
2495 - ewarn "for debugging, for anything else, please file a bug on https://bugs.gentoo.org"
2496 - fi
2497 -
2498 - if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
2499 - ewarn "Default astdb location has changed from /var/lib/asterisk to /var/lib/asterisk/astdb"
2500 - ewarn "You still have a /var/lib/asterisk/astdb.sqlite file. You need to either set"
2501 - ewarn "astdbdir in /etc/asterisk/asterisk.conf to /var/lib/asterisk or follow these"
2502 - ewarn "steps to migrate:"
2503 - ewarn "1. /etc/init.d/asterisk stop"
2504 - ewarn "2. mv /var/lib/asterisk/astdb.sqlite /var/lib/asterisk/astdb/"
2505 - ewarn "3. /etc/init.d/asterisk start"
2506 - ewarn "This update was done partly for security reasons so that /var/lib/asterisk can be root owned."
2507 - fi
2508 -}
2509
2510 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
2511 deleted file mode 100644
2512 index b8b98e4929b..00000000000
2513 --- a/net-misc/asterisk/files/asterisk-13.38.1-r1-func_lock-fix-races.patch
2514 +++ /dev/null
2515 @@ -1,291 +0,0 @@
2516 -From 8ec686ebb4fa68512ca2dfe40b117523074aed0f Mon Sep 17 00:00:00 2001
2517 -From: Jaco Kroon <jaco@××××××.za>
2518 -Date: Fri, 18 Dec 2020 21:06:20 +0200
2519 -Subject: [PATCH] func_lock: fix multiple-channel-grant problems.
2520 -
2521 -Under contention it becomes possible that multiple channels will be told
2522 -they successfully obtained the lock, which is a bug. Please refer
2523 -
2524 -ASTERISK-29217
2525 -
2526 -This introduces a couple of changes.
2527 -
2528 -1. Replaces requesters ao2 container with simple counter (we don't
2529 - really care who is waiting for the lock, only how many). This is
2530 - updated undex ->mutex to prevent memory access races.
2531 -2. Correct semantics for ast_cond_timedwait() as described in
2532 - pthread_cond_broadcast(3P) is used (multiple threads can be released
2533 - on a single _signal()).
2534 -3. Module unload races are taken care of and memory properly cleaned
2535 - up.
2536 -
2537 -Change-Id: I6f68b5ec82ff25b2909daf6e4d19ca864a463e29
2538 -Signed-off-by: Jaco Kroon <jaco@××××××.za>
2539 ----
2540 - funcs/func_lock.c | 163 ++++++++++++++++------------------------------
2541 - 1 file changed, 56 insertions(+), 107 deletions(-)
2542 -
2543 -diff --git a/funcs/func_lock.c b/funcs/func_lock.c
2544 -index acb5fc935c..072640751e 100644
2545 ---- a/funcs/func_lock.c
2546 -+++ b/funcs/func_lock.c
2547 -@@ -110,7 +110,6 @@ static AST_LIST_HEAD_STATIC(locklist, lock_frame);
2548 - static void lock_free(void *data);
2549 - static void lock_fixup(void *data, struct ast_channel *oldchan, struct ast_channel *newchan);
2550 - static int unloading = 0;
2551 --static pthread_t broker_tid = AST_PTHREADT_NULL;
2552 -
2553 - static const struct ast_datastore_info lock_info = {
2554 - .type = "MUTEX",
2555 -@@ -124,8 +123,8 @@ struct lock_frame {
2556 - ast_cond_t cond;
2557 - /*! count is needed so if a recursive mutex exits early, we know how many times to unlock it. */
2558 - unsigned int count;
2559 -- /*! Container of requesters for the named lock */
2560 -- struct ao2_container *requesters;
2561 -+ /*! Count of waiting of requesters for the named lock */
2562 -+ unsigned int requesters;
2563 - /*! who owns us */
2564 - struct ast_channel *owner;
2565 - /*! name of the lock */
2566 -@@ -147,8 +146,11 @@ static void lock_free(void *data)
2567 - while ((clframe = AST_LIST_REMOVE_HEAD(oldlist, list))) {
2568 - /* Only unlock if we own the lock */
2569 - if (clframe->channel == clframe->lock_frame->owner) {
2570 -+ ast_mutex_lock(&clframe->lock_frame->mutex);
2571 - clframe->lock_frame->count = 0;
2572 - clframe->lock_frame->owner = NULL;
2573 -+ ast_cond_signal(&clframe->lock_frame->cond);
2574 -+ ast_mutex_unlock(&clframe->lock_frame->mutex);
2575 - }
2576 - ast_free(clframe);
2577 - }
2578 -@@ -173,54 +175,11 @@ static void lock_fixup(void *data, struct ast_channel *oldchan, struct ast_chann
2579 - if (clframe->lock_frame->owner == oldchan) {
2580 - clframe->lock_frame->owner = newchan;
2581 - }
2582 -- /* We don't move requesters, because the thread stack is different */
2583 - clframe->channel = newchan;
2584 - }
2585 - AST_LIST_UNLOCK(list);
2586 - }
2587 -
2588 --static void *lock_broker(void *unused)
2589 --{
2590 -- struct lock_frame *frame;
2591 -- struct timespec forever = { 1000000, 0 };
2592 -- for (;;) {
2593 -- int found_requester = 0;
2594 --
2595 -- /* Test for cancel outside of the lock */
2596 -- pthread_testcancel();
2597 -- AST_LIST_LOCK(&locklist);
2598 --
2599 -- AST_LIST_TRAVERSE(&locklist, frame, entries) {
2600 -- if (ao2_container_count(frame->requesters)) {
2601 -- found_requester++;
2602 -- ast_mutex_lock(&frame->mutex);
2603 -- if (!frame->owner) {
2604 -- ast_cond_signal(&frame->cond);
2605 -- }
2606 -- ast_mutex_unlock(&frame->mutex);
2607 -- }
2608 -- }
2609 --
2610 -- AST_LIST_UNLOCK(&locklist);
2611 -- pthread_testcancel();
2612 --
2613 -- /* If there are no requesters, then wait for a signal */
2614 -- if (!found_requester) {
2615 -- nanosleep(&forever, NULL);
2616 -- } else {
2617 -- sched_yield();
2618 -- }
2619 -- }
2620 -- /* Not reached */
2621 -- return NULL;
2622 --}
2623 --
2624 --static int ast_channel_cmp_cb(void *obj, void *arg, int flags)
2625 --{
2626 -- struct ast_channel *chan = obj, *cmp_args = arg;
2627 -- return strcasecmp(ast_channel_name(chan), ast_channel_name(cmp_args)) ? 0 : CMP_MATCH;
2628 --}
2629 --
2630 - static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
2631 - {
2632 - struct ast_datastore *lock_store = ast_channel_datastore_find(chan, &lock_info, NULL);
2633 -@@ -290,17 +249,13 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
2634 - AST_LIST_UNLOCK(&locklist);
2635 - return -1;
2636 - }
2637 -- current->requesters = ao2_container_alloc_list(AO2_ALLOC_OPT_LOCK_MUTEX, 0,
2638 -- NULL, ast_channel_cmp_cb);
2639 -- if (!current->requesters) {
2640 -- ast_mutex_destroy(&current->mutex);
2641 -- ast_cond_destroy(&current->cond);
2642 -- ast_free(current);
2643 -- AST_LIST_UNLOCK(&locklist);
2644 -- return -1;
2645 -- }
2646 -+ current->requesters = 0;
2647 - AST_LIST_INSERT_TAIL(&locklist, current, entries);
2648 - }
2649 -+ /* Add to requester list */
2650 -+ ast_mutex_lock(&current->mutex);
2651 -+ current->requesters++;
2652 -+ ast_mutex_unlock(&current->mutex);
2653 - AST_LIST_UNLOCK(&locklist);
2654 -
2655 - /* Found lock or created one - now find or create the corresponding link in the channel */
2656 -@@ -337,44 +292,42 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
2657 - * the same amount, before we'll release this one.
2658 - */
2659 - if (current->owner == chan) {
2660 -+ /* We're not a requester, we already have it */
2661 -+ ast_mutex_lock(&current->mutex);
2662 -+ current->requesters--;
2663 -+ ast_mutex_unlock(&current->mutex);
2664 - current->count++;
2665 - return 0;
2666 - }
2667 -
2668 -- /* Okay, we have both frames, so now we need to try to lock.
2669 -- *
2670 -- * Locking order: always lock locklist first. We need the
2671 -- * locklist lock because the broker thread counts whether
2672 -- * there are requesters with the locklist lock held, and we
2673 -- * need to hold it, so that when we send our signal, below,
2674 -- * to wake up the broker thread, it definitely will see that
2675 -- * a requester exists at that point in time. Otherwise, we
2676 -- * could add to the requesters after it has already seen that
2677 -- * that lock is unoccupied and wait forever for another signal.
2678 -- */
2679 -- AST_LIST_LOCK(&locklist);
2680 -- ast_mutex_lock(&current->mutex);
2681 -- /* Add to requester list */
2682 -- ao2_link(current->requesters, chan);
2683 -- pthread_kill(broker_tid, SIGURG);
2684 -- AST_LIST_UNLOCK(&locklist);
2685 --
2686 - /* Wait up to three seconds from now for LOCK. */
2687 - now = ast_tvnow();
2688 - timeout.tv_sec = now.tv_sec + 3;
2689 - timeout.tv_nsec = now.tv_usec * 1000;
2690 -
2691 -- if (!current->owner
2692 -- || (!trylock
2693 -- && !(res = ast_cond_timedwait(&current->cond, &current->mutex, &timeout)))) {
2694 -- res = 0;
2695 -+ ast_mutex_lock(&current->mutex);
2696 -+
2697 -+ res = 0;
2698 -+ while (!trylock && !res && current->owner) {
2699 -+ res = ast_cond_timedwait(&current->cond, &current->mutex, &timeout);
2700 -+ }
2701 -+ if (current->owner) {
2702 -+ /* timeout;
2703 -+ * trylock; or
2704 -+ * cond_timedwait failed.
2705 -+ *
2706 -+ * either way, we fail to obtain the lock.
2707 -+ */
2708 -+ res = -1;
2709 -+ } else {
2710 - current->owner = chan;
2711 - current->count++;
2712 -- } else {
2713 -- res = -1;
2714 -+ res = 0;
2715 - }
2716 - /* Remove from requester list */
2717 -- ao2_unlink(current->requesters, chan);
2718 -+ current->requesters--;
2719 -+ if (res && unloading)
2720 -+ ast_cond_signal(&current->cond);
2721 - ast_mutex_unlock(&current->mutex);
2722 -
2723 - return res;
2724 -@@ -422,7 +375,10 @@ static int unlock_read(struct ast_channel *chan, const char *cmd, char *data, ch
2725 - }
2726 -
2727 - if (--clframe->lock_frame->count == 0) {
2728 -+ ast_mutex_lock(&clframe->lock_frame->mutex);
2729 - clframe->lock_frame->owner = NULL;
2730 -+ ast_cond_signal(&clframe->lock_frame->cond);
2731 -+ ast_mutex_unlock(&clframe->lock_frame->mutex);
2732 - }
2733 -
2734 - ast_copy_string(buf, "1", len);
2735 -@@ -478,34 +434,34 @@ static int unload_module(void)
2736 - /* Module flag */
2737 - unloading = 1;
2738 -
2739 -+ /* Make it impossible for new requesters to be added
2740 -+ * NOTE: channels could already be in get_lock() */
2741 -+ ast_custom_function_unregister(&lock_function);
2742 -+ ast_custom_function_unregister(&trylock_function);
2743 -+
2744 - AST_LIST_LOCK(&locklist);
2745 -- while ((current = AST_LIST_REMOVE_HEAD(&locklist, entries))) {
2746 -- /* If any locks are currently in use, then we cannot unload this module */
2747 -- if (current->owner || ao2_container_count(current->requesters)) {
2748 -- /* Put it back */
2749 -- AST_LIST_INSERT_HEAD(&locklist, current, entries);
2750 -- AST_LIST_UNLOCK(&locklist);
2751 -- unloading = 0;
2752 -- return -1;
2753 -+ AST_LIST_TRAVERSE(&locklist, current, entries) {
2754 -+ ast_mutex_lock(&current->mutex);
2755 -+ while (current->owner || current->requesters) {
2756 -+ /* either the mutex is locked, or other parties are currently in get_lock,
2757 -+ * we need to wait for all of those to clear first */
2758 -+ ast_cond_wait(&current->cond, &current->mutex);
2759 - }
2760 -+ ast_mutex_unlock(&current->mutex);
2761 -+ /* At this point we know:
2762 -+ * 1. the lock has been released,
2763 -+ * 2. there are no requesters (nor should any be able to sneak in).
2764 -+ */
2765 - ast_mutex_destroy(&current->mutex);
2766 -- ao2_ref(current->requesters, -1);
2767 -+ ast_cond_destroy(&current->cond);
2768 - ast_free(current);
2769 - }
2770 -+ AST_LIST_UNLOCK(&locklist);
2771 -+ AST_LIST_HEAD_DESTROY(&locklist);
2772 -
2773 -- /* No locks left, unregister functions */
2774 -- ast_custom_function_unregister(&lock_function);
2775 -- ast_custom_function_unregister(&trylock_function);
2776 -+ /* At this point we can safely stop access to UNLOCK */
2777 - ast_custom_function_unregister(&unlock_function);
2778 -
2779 -- if (broker_tid != AST_PTHREADT_NULL) {
2780 -- pthread_cancel(broker_tid);
2781 -- pthread_kill(broker_tid, SIGURG);
2782 -- pthread_join(broker_tid, NULL);
2783 -- }
2784 --
2785 -- AST_LIST_UNLOCK(&locklist);
2786 --
2787 - return 0;
2788 - }
2789 -
2790 -@@ -515,13 +471,6 @@ static int load_module(void)
2791 - res |= ast_custom_function_register_escalating(&trylock_function, AST_CFE_READ);
2792 - res |= ast_custom_function_register_escalating(&unlock_function, AST_CFE_READ);
2793 -
2794 -- if (ast_pthread_create_background(&broker_tid, NULL, lock_broker, NULL)) {
2795 -- ast_log(LOG_ERROR, "Failed to start lock broker thread. Unloading func_lock module.\n");
2796 -- broker_tid = AST_PTHREADT_NULL;
2797 -- unload_module();
2798 -- return AST_MODULE_LOAD_DECLINE;
2799 -- }
2800 --
2801 - return res;
2802 - }
2803 -
2804 ---
2805 -2.26.2
2806 -
2807
2808 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
2809 deleted file mode 100644
2810 index a18ef34d499..00000000000
2811 --- a/net-misc/asterisk/files/asterisk-16.18.0-r1-func_lock-fix-races.patch
2812 +++ /dev/null
2813 @@ -1,177 +0,0 @@
2814 -Combined patch from upstream (All authored by myself):
2815 -
2816 -https://gerrit.asterisk.org/c/asterisk/+/15942 (CLI: locks show)
2817 -https://gerrit.asterisk.org/c/asterisk/+/15943 (unload memory corruption)
2818 -https://gerrit.asterisk.org/c/asterisk/+/15944 (error path ref counting)
2819 -https://gerrit.asterisk.org/c/asterisk/+/15945 (ast_module_ref usage)
2820 -
2821 -The cause of my nightmares was the unload memory corruption, however,
2822 -the other two whilst much less likely to occur are just as serious.
2823 -
2824 -Fixes on all has been well tested. The individual patches are quite small.
2825 -
2826 -Signed-off-by: Jaco Kroon <jaco@××××××.za>
2827 ----
2828 -diff --git a/funcs/func_lock.c b/funcs/func_lock.c
2829 -index 072640751e..31a7fcda29 100644
2830 ---- a/funcs/func_lock.c
2831 -+++ b/funcs/func_lock.c
2832 -@@ -42,6 +42,7 @@
2833 - #include "asterisk/linkedlists.h"
2834 - #include "asterisk/astobj2.h"
2835 - #include "asterisk/utils.h"
2836 -+#include "asterisk/cli.h"
2837 -
2838 - /*** DOCUMENTATION
2839 - <function name="LOCK" language="en_US">
2840 -@@ -157,6 +158,8 @@ static void lock_free(void *data)
2841 - AST_LIST_UNLOCK(oldlist);
2842 - AST_LIST_HEAD_DESTROY(oldlist);
2843 - ast_free(oldlist);
2844 -+
2845 -+ ast_module_unref(ast_module_info->self);
2846 - }
2847 -
2848 - static void lock_fixup(void *data, struct ast_channel *oldchan, struct ast_channel *newchan)
2849 -@@ -191,7 +194,12 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
2850 - struct timeval now;
2851 -
2852 - if (!lock_store) {
2853 -- ast_debug(1, "Channel %s has no lock datastore, so we're allocating one.\n", ast_channel_name(chan));
2854 -+ if (unloading) {
2855 -+ ast_log(LOG_ERROR, "%sLOCK has no datastore and func_lock is unloading, failing.\n",
2856 -+ trylock ? "TRY" : "");
2857 -+ return -1;
2858 -+ }
2859 -+
2860 - lock_store = ast_datastore_alloc(&lock_info, NULL);
2861 - if (!lock_store) {
2862 - ast_log(LOG_ERROR, "Unable to allocate new datastore. No locks will be obtained.\n");
2863 -@@ -210,6 +218,9 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
2864 - lock_store->data = list;
2865 - AST_LIST_HEAD_INIT(list);
2866 - ast_channel_datastore_add(chan, lock_store);
2867 -+
2868 -+ /* We cannot unload until this channel has released the lock_store */
2869 -+ ast_module_ref(ast_module_info->self);
2870 - } else
2871 - list = lock_store->data;
2872 -
2873 -@@ -223,6 +234,9 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
2874 -
2875 - if (!current) {
2876 - if (unloading) {
2877 -+ ast_log(LOG_ERROR,
2878 -+ "Lock doesn't exist whilst unloading. %sLOCK will fail.\n",
2879 -+ trylock ? "TRY" : "");
2880 - /* Don't bother */
2881 - AST_LIST_UNLOCK(&locklist);
2882 - return -1;
2883 -@@ -249,7 +263,6 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
2884 - AST_LIST_UNLOCK(&locklist);
2885 - return -1;
2886 - }
2887 -- current->requesters = 0;
2888 - AST_LIST_INSERT_TAIL(&locklist, current, entries);
2889 - }
2890 - /* Add to requester list */
2891 -@@ -268,7 +281,13 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
2892 -
2893 - if (!clframe) {
2894 - if (unloading) {
2895 -+ ast_log(LOG_ERROR,
2896 -+ "Busy unloading. %sLOCK will fail.\n",
2897 -+ trylock ? "TRY" : "");
2898 - /* Don't bother */
2899 -+ ast_mutex_lock(&current->mutex);
2900 -+ current->requesters--;
2901 -+ ast_mutex_unlock(&current->mutex);
2902 - AST_LIST_UNLOCK(list);
2903 - return -1;
2904 - }
2905 -@@ -277,6 +296,9 @@ static int get_lock(struct ast_channel *chan, char *lockname, int trylock)
2906 - ast_log(LOG_ERROR,
2907 - "Unable to allocate channel lock frame. %sLOCK will fail.\n",
2908 - trylock ? "TRY" : "");
2909 -+ ast_mutex_lock(&current->mutex);
2910 -+ current->requesters--;
2911 -+ ast_mutex_unlock(&current->mutex);
2912 - AST_LIST_UNLOCK(list);
2913 - return -1;
2914 - }
2915 -@@ -409,6 +431,37 @@ static int trylock_read(struct ast_channel *chan, const char *cmd, char *data, c
2916 - return 0;
2917 - }
2918 -
2919 -+static char *handle_cli_locks_show(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
2920 -+{
2921 -+ int c = 0;
2922 -+ struct lock_frame* current;
2923 -+ switch (cmd) {
2924 -+ case CLI_INIT:
2925 -+ e->command = "locks show";
2926 -+ e->usage =
2927 -+ "Usage: locks show\n"
2928 -+ " List all locks known to func_lock, along with their current status.\n";
2929 -+ return NULL;
2930 -+ case CLI_GENERATE:
2931 -+ return NULL;
2932 -+ }
2933 -+
2934 -+ ast_cli(a->fd, "func_lock locks:\n");
2935 -+ ast_cli(a->fd, "%-40s Requesters Owner\n", "Name");
2936 -+ AST_LIST_LOCK(&locklist);
2937 -+ AST_LIST_TRAVERSE(&locklist, current, entries) {
2938 -+ ast_mutex_lock(&current->mutex);
2939 -+ ast_cli(a->fd, "%-40s %-10d %s\n", current->name, current->requesters,
2940 -+ current->owner ? ast_channel_name(current->owner) : "(unlocked)");
2941 -+ ast_mutex_unlock(&current->mutex);
2942 -+ c++;
2943 -+ }
2944 -+ AST_LIST_UNLOCK(&locklist);
2945 -+ ast_cli(a->fd, "%d total locks listed.\n", c);
2946 -+
2947 -+ return 0;
2948 -+}
2949 -+
2950 - static struct ast_custom_function lock_function = {
2951 - .name = "LOCK",
2952 - .read = lock_read,
2953 -@@ -427,6 +480,8 @@ static struct ast_custom_function unlock_function = {
2954 - .read_max = 2,
2955 - };
2956 -
2957 -+static struct ast_cli_entry cli_locks_show = AST_CLI_DEFINE(handle_cli_locks_show, "List func_lock locks.");
2958 -+
2959 - static int unload_module(void)
2960 - {
2961 - struct lock_frame *current;
2962 -@@ -439,10 +494,19 @@ static int unload_module(void)
2963 - ast_custom_function_unregister(&lock_function);
2964 - ast_custom_function_unregister(&trylock_function);
2965 -
2966 -+ ast_cli_unregister(&cli_locks_show);
2967 -+
2968 - AST_LIST_LOCK(&locklist);
2969 -- AST_LIST_TRAVERSE(&locklist, current, entries) {
2970 -+ while ((current = AST_LIST_REMOVE_HEAD(&locklist, entries))) {
2971 -+ int warned = 0;
2972 - ast_mutex_lock(&current->mutex);
2973 - while (current->owner || current->requesters) {
2974 -+ if (!warned) {
2975 -+ ast_log(LOG_WARNING, "Waiting for %d requesters for %s lock %s.\n",
2976 -+ current->requesters, current->owner ? "locked" : "unlocked",
2977 -+ current->name);
2978 -+ warned = 1;
2979 -+ }
2980 - /* either the mutex is locked, or other parties are currently in get_lock,
2981 - * we need to wait for all of those to clear first */
2982 - ast_cond_wait(&current->cond, &current->mutex);
2983 -@@ -470,6 +534,7 @@ static int load_module(void)
2984 - int res = ast_custom_function_register_escalating(&lock_function, AST_CFE_READ);
2985 - res |= ast_custom_function_register_escalating(&trylock_function, AST_CFE_READ);
2986 - res |= ast_custom_function_register_escalating(&unlock_function, AST_CFE_READ);
2987 -+ res |= ast_cli_register(&cli_locks_show);
2988 -
2989 - return res;
2990 - }