After installing asterisk-13.36 asterisk could not start. /etc/init.d/asterisk start * Starting asterisk PBX ... * Max open filedescriptors : 4096 * Starting asterisk as : asterisk:asterisk (+supplementaries) * Signalling asterisk wrapper script to terminate ... [ !! ] * ERROR: asterisk failed to start as root I had to type "asterisk" I think it creates database "astdb.sqlite3" in: /var/lib/asterisk However, this database has owner root:root in other version of asterisk the owner was: -rw-r--r-- 1 asterisk asterisk 16384 Dec 23 15:02 astdb.sqlite3 But ever after changing the owner I'm getting an error when running asterisk When devices is trying to register I get errors: db.c:350 ast_db_put: Couldn't execute statement: SQL logic error db.c:350 ast_db_put: Couldn't execute statement: attempt to write a readonly database Reproducible: Always Steps to Reproduce: I've tried to follow the solution from: https://community.asterisk.org/t/asterisk-warning/78443 But it didn't help. I think the installation script has error and does not create correct file with appropriate permission ownership. Actual Results: For example old installation eg. asterisk-11.25 directory: /var/lib/asterisk # total 56 drwxr-xr-x 2 root root 4096 Jan 15 2018 agi-bin -rw-r--r-- 1 asterisk asterisk 12288 Dec 23 13:44 astdb.sqlite3 drwxr-xr-x 2 asterisk asterisk 4096 Mar 14 2018 coredump drwxr-xr-x 3 root root 4096 Jan 15 2018 documentation drwxr-xr-x 3 root root 4096 Jan 15 2018 firmware drwxr-xr-x 2 root root 4096 Jan 15 2018 images drwxr-xr-x 2 root root 4096 Jan 15 2018 keys drwxr-xr-x 2 asterisk asterisk 4096 Jan 15 2018 moh drwxr-xr-x 2 root root 4096 Jan 15 2018 phoneprov drwxr-xr-x 3 root root 4096 Apr 4 2013 sounds drwxr-xr-x 2 root root 4096 Jan 15 2018 static-http New installation, astersik-13.36 everthing is root:root /var/lib/asterisk # ll total 84 drwxr-xr-x 2 root root 4096 Dec 23 13:59 agi-bin -rw-r--r-- 1 root root 16384 Dec 23 15:02 astdb.sqlite3 drwxr-xr-x 3 root root 4096 Dec 23 13:59 documentation drwxr-xr-x 3 root root 4096 Dec 6 18:39 firmware drwxr-xr-x 2 root root 4096 Dec 23 13:59 images drwxr-xr-x 2 root root 4096 Dec 23 13:59 keys drwxr-xr-x 2 root root 4096 Dec 23 13:59 moh drwxr-xr-x 2 root root 4096 Dec 23 13:59 phoneprov drwxr-xr-x 2 root root 4096 Dec 23 13:59 rest-api drwxr-xr-x 2 root root 4096 Dec 23 13:59 scripts drwxr-xr-x 3 root root 4096 Dec 23 13:59 sounds drwxr-xr-x 2 root root 4096 Dec 23 13:59 static-http drwxr-xr-x 2 root root 4096 Dec 23 13:59 third-party emerge --info Portage 3.0.9 (python 3.8.6-final-0, default/linux/amd64/17.1/desktop, gcc-9.3.0, glibc-2.32-r3, 5.4.72-gentoo x86_64) ================================================================= System uname: Linux-5.4.72-gentoo-x86_64-AMD_Ryzen_7_3800XT_8-Core_Processor-with-glibc2.2.5 KiB Mem: 32854404 total, 11358256 free KiB Swap: 524284 total, 524284 free Timestamp of repository gentoo: Wed, 23 Dec 2020 06:30:01 +0000 Head commit of repository gentoo: 6c359a2eac57578d5b4155291a5bff607cbcdca5 sh bash 5.0_p18 ld GNU ld (Gentoo 2.34 p6) 2.34.0 app-shells/bash: 5.0_p18::gentoo dev-java/java-config: 2.3.1::gentoo dev-lang/perl: 5.30.3::gentoo dev-lang/python: 3.7.9::gentoo, 3.8.6::gentoo, 3.9.0::gentoo dev-util/cmake: 3.17.4-r1::gentoo sys-apps/baselayout: 2.7::gentoo sys-apps/openrc: 0.42.1::gentoo sys-apps/sandbox: 2.20::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r5::gentoo sys-devel/automake: 1.16.2-r1::gentoo sys-devel/binutils: 2.34-r2::gentoo sys-devel/gcc: 9.3.0-r2::gentoo sys-devel/gcc-config: 2.3.2-r1::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.4-r1::gentoo (virtual/os-headers) sys-libs/glibc: 2.32-r3::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 sync-rsync-verify-jobs: 1 sync-rsync-verify-metamanifest: yes sync-rsync-verify-max-age: 24 sync-rsync-extra-opts: brother-overlay location: /var/lib/layman/brother-overlay masters: gentoo priority: 50 Local location: /usr/local/portage masters: gentoo priority: 99999999 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA @FREE" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/fax /usr/lib64/libreoffice/program/sofficerc /usr/share/easy-rsa /usr/share/gnupg/qualified.txt /var/spool/fax/etc /var/www/localhost/htdocs/phpmyadmin" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.4/ext-active/ /etc/php/cgi-php7.4/ext-active/ /etc/php/cli-php7.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /var/spool/fax/etc/xferfaxlog" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/var/cache/distfiles" EMERGE_DEFAULT_OPTS="--autounmask-write=y --keep-going --with-bdeps=y" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" FCFLAGS="-march=native -O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-march=native -O2 -pipe" GENTOO_MIRRORS="http://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://gentoo.osuosl.org/ ftp://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ ftp://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j8 --load-average=8" PKGDIR="/var/cache/binpkgs" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="X a52 aac acpi alsa amd64 apache2 bluetooth branding bzip2 cairo cdda cdr cgi cleartype cli corefonts crypt cups dbus dri dts dvd dvdr elogind emboss encode exif fam flac foomaticdb fortran gdbm gif gimp gimpprint gpm gtk gui iconv icu ipv6 java jpeg kpathsea lcms libglvnd libnotify libtirpc lock mad mng mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds qt5 qtk readline scanner sdl seccomp session spell split-usr ssl startup-notification svg tcpd tetex thunar tiff truetype type1 udev udisks unicode upower usb vorbis wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" L10N="en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_8" PYTHON_TARGETS="python2_7 python3_8" RUBY_TARGETS="ruby25 ruby26" SANE_BACKENDS="fujitsu epson2" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
I've tried asterisk-16.13.0 same thing is happening. When user remove the file: /var/lib/asterisk/astdb.sqlite3 and start astersik this file should be created isn't it? but /etc/init.d/asterisk start fail to start and this file isn't created. This file is created when user type as root: "asterisk" but with wrong ownership. As a result one can start asterisk with: "/etc/init.d/asterisk start" but any device that is trying to register to running asterisk is getting error messages: [Dec 23 16:27:05] WARNING[5481]: db.c:350 ast_db_put: Couldn't execute statement: SQL logic error -- Registered SIP 'pstn-5665' at 10.0.0.110:5060 > Saved useragent "Audiocodes-Sip-Gateway-/v.5.80A.032.003" for peer pstn-5665 [Dec 23 16:27:05] WARNING[5481]: db.c:350 ast_db_put: Couldn't execute statement: SQL logic error -- Registered SIP 'pstn-1270' at 10.0.0.110:5060 > Saved useragent "Audiocodes-Sip-Gateway-/v.5.80A.032.003" for peer pstn-1270 [Dec 23 16:27:05] NOTICE[5481]: chan_sip.c:24776 handle_response_peerpoke: Peer 'pstn-5665' is now Reachable. (62ms / 2000ms) [Dec 23 16:27:05] WARNING[5481]: db.c:350 ast_db_put: Couldn't execute statement: attempt to write a readonly database -- Registered SIP '369' at 10.0.0.110:5060 > Saved useragent "Audiocodes-Sip-Gateway-/v.5.80A.032.003" for peer 369 [Dec 23 16:27:05] NOTICE[5481]: chan_sip.c:24776 handle_response_peerpoke: Peer 'pstn-1270' is now Reachable. (88ms / 2000ms) [Dec 23 16:27:05] WARNING[5481]: db.c:350 ast_db_put: Couldn't execute statement: attempt to write a readonly database -- Registered SIP '55' at 10.0.0.110:5060 > Saved useragent "Audiocodes-Sip-Gateway-/v.5.80A.032.003" for peer 55 [Dec 23 16:27:05] NOTICE[5481]: chan_sip.c:24776 handle_response_peerpoke: Peer '55' is now Reachable. (38ms / 2000ms) Correcting ownership of "astdb.sqlite3" file does not solve the problem, so I suspect there are other files that have wrong ownership.
I was correct, the problem is with Gentoo initialization/initialization script: /etc/init.d/asterisk start This script suppose to check and/or create the directory permission asterisk:root /var/lib/asterisk but it doesn't. Executing command as root "asterisk", creates that directory and database "astdb.sqlite3" but with wrong ownership "root:root" that is why asterisk can not write to that database The solution is to change ownership of dir from: root:root /var/lib/asterisk to: asterisk:root /var/lib/asterisk and database "astdb.sqlite3" with ownership: -rw-r--r-- 1 asterisk asterisk astdb.sqlite3 Same thing is happening with asterisk-16. Are you folks checking these ebuild before marking them "stable"???
Yes you're right. Sorry, I place the sqlite DB in /var/lib/asterisk/astdb (which is mounted on ramdisk) owned asterisk:asterisk. Other than that single file in /var/lib/asterisk nothing else needs writing for asterisk. Quick fix for you: chown asterisk: /var/lib/asterisk Alternatively, move astdb to a location (/var/spool/asterisk?) which is writeable by asterisk. Long term solutions: 1. Ebuild to set ownership of /var/lib/asterisk to asterisk:asterisk 2. Tamper with default configs such that astdb resides in /var/lib/asterisk/astdb by default, and we install that as asterisk:asterisk 755 by default. I don't like 1 for reasons of security. But do-able. If asterisk owns /var/lib/asterisk it becomes possible that a primary stage attack could result in an attacker updating stuff in /var/lib/asterisk (which includes audio played bck to callers, the static http server content, scripts potentially executed by asterisk or related processes etc ...) - so possibly not excessively serious, but still preferred to be avoided. /var/spool/asterisk on the other hand I don't like 2 for reasons of migration complexity (existing installed systems). Basically we'd need to install the additional folder. And at asterisk startup, determine if /var/lib/asterisk/astdb.sqlite3 exists, what the configured astdb dir is and then move it to the configured folder (or we can make assumptions, or simply fail startup or something). Either way, this gets really nasty very quickly. Or force the user to manually migrate first if this is an existing install in pkg_setup() ? I do like option 2 better for "new installs", but tricky to migrate existing installs. Ideas or comments?
Thank you for looking into it. I hope it will solve other some frustration. It must be a bug from the asterisk upstreem branch as I've notice a lot of similar messages on other forums. Another problem I have with asterik-13 and asterik-16 is the MWI. asterisk-13 takes over an hour to clear the MWI light In astersik-11 MWI light was cleared as soon as I checked the message. In asterink-13 it takes about 20min to set the light ON and the light takes over an hour to clear. (I've standard POTS phones) What had changed? In sip.cong [400] ... mailbox=400 voicemail.conf [default] 400 => ,user, email I've tried to enable in sip.conf "subscribemwi=yes" but it doesn't help. On Asterisk-mailing-list someone commented that they had experience the same thing after upgrading to Asterisk-13 and the problem was solved by upgrading to asterisk-16 --------quote------- I had this problem following an upgrade between releases of Asterisk 13 last year, but I upgraded to Asterisk 16 and the problem went away without any need for configuration changes. Julian ------end quote------- I just emerged astersik-16.13.0 but it didn't solve the problem. The MWI light on my phone does not light up. I know they change the way MWI works starting from asterisk-12 but. I can not find any instruction how to make it to work. Any pointers? ....{@} * {@} * {@} Merry X-mas and a Happy New Year! {@} * {@} * {@} * {@} Wish you all extra ordinary good luck! {@} * {@} * {@} \ \ \ 2021 / / /
Hi, (In reply to Joseph from comment #4) > Thank you for looking into it. I hope it will solve other some frustration. > It must be a bug from the asterisk upstreem branch as I've notice a lot of > similar messages on other forums. Interesting. And I think you may be right (from 16.15.1-r1 ebuild): 265 diropts -m 0750 -o asterisk -g root 266 keepdir /var/lib/asterisk Our init script in 11 used to perform some resets, wonder if that's not perhaps the change you're after. I suggest we keep root:root for /var/lib/asterisk - but then store asbdb elsewhere not in there (I just need to figure out migration). Even if the process ends up blocking in pkg_setup() and forcing manual migration. > Another problem I have with asterik-13 and asterik-16 is the MWI. > > asterisk-13 takes over an hour to clear the MWI light > > In astersik-11 MWI light was cleared as soon as I checked the message. > In asterink-13 it takes about 20min to set the light ON and the light > takes over an hour to clear. (I've standard POTS phones) > > What had changed? Both chan_sip? File a bug upstream please. I'm probably one of the only people still willing to touch chan_sip. Once logged upstream, you're welcome to prod me. If I recall I saw similar things off late, but haven't bothered investigating just yet. Should be a separate bug here too, but let's please first fix that upstream, not @ Gentoo. > I've tried to enable in sip.conf "subscribemwi=yes" but it doesn't help. > On Asterisk-mailing-list someone commented that they had experience the same > thing after upgrading to Asterisk-13 and the problem was solved by upgrading > to asterisk-16 If that's the case, we're too late, 13 is in security-only mode now. I'm going to be pushing for 16 stable early in 2021 (hopeful by March). Adding 18 builds as ~, and keeping 13 in case someone really needs it. Will probably hard-mask around middle of the year and give 3-6 months heads up. Kind Regards, Jaco
I would like to submit a bug report but I don't know where to. Can you provide a link? I'm not a developer just an end user.
(In reply to Joseph from comment #6) > I would like to submit a bug report but I don't know where to. > Can you provide a link? > > I'm not a developer just an end user. https://issues.asterisk.org/ Please just confirm affected versions first.
I created an upstream bug: https://issues.asterisk.org/jira/browse/ASTERISK-29224?filter=-2 Maybe somebody will look into it. As I've mentioned because of MWI light not working, I can use use ver.13 in production. This bug had not been fixed in Ver.13 which is obsolete; they no longer accept bugs issues for this version. This bug had been carry over to ver. 16 (I'm currently on 16.13.0); which is not suitable for production because of this bug. They are introducing new versions without fixing old one. What is the point of moving forward when old stuff doesn't work? Starting with Asterisk-18 channel-SIP will be obsolete, replaced by "pjsip". Introducing new can of worm. Will our equipment work with pjsip is a big question mark. In production, we need reliable technology. My asterisk-11.25 is still working in production as all seem to work.
Hi All, Just want to update. Whilst I pushed a -r2 (still WIP), this is specifically not included since it's a fairly major change. I'm assuming that existing systems will keep working, but new systems are a problem (and there is a simple workaround). Fixing this for new installs should be fairly easy, but I'm trying to figure out how to handle existing installs.
It shouldn't be difficult for an existing installations. Write some kind of a script to check for correct ownership of the file and directory asterisk:root /var/lib/asterisk and database "astdb.sqlite3" with ownership: -rw-r--r-- 1 asterisk asterisk astdb.sqlite3 If it is anything else, overwrite it.
Hi, (In reply to Joseph from comment #10) > It shouldn't be difficult for an existing installations. Write some kind of > a script to check for correct ownership of the file and directory > > asterisk:root /var/lib/asterisk existing ownership permissions aren't modified. However, the above really is the *wrong* ownership, root:root is more appropriate. The *only* reason asterisk needs write here is because of astdb ... which is why I'd prefer to put it in a folder of it's own under /var/lib/asterisk, namely /var/lib/asterisk/astdb - and update the defaults to point there too, but existing astdb files will need to be migrated. Something in the init script might be good enough to detect that /var/lib/aterisk/astdb exists, as well as /var/lib/asterisk/asterisk.sqlite3 and rather warn the user and refuse to start. coredump is already like this, so /var/lib/asterisk/coredump is asterisk:asterisk since in the case of a coredump the kernel will (if asterisk init script set it up) write, as the asterisk user, a coredump file here. If you look at everything else in /var/lib/asterisk, it's root:root and that's adequate (and in my opinion, better - there is no reason for asterisk to be able to write to ANY of that). I can check the current settings, but you need to keep things like binary packages in mind too. The one sticky issue is that I can only access the filesystem during certain phases due to more and more strict sandboxing (which is a good thing). > and database "astdb.sqlite3" with ownership: > -rw-r--r-- 1 asterisk asterisk astdb.sqlite3 This is right, but in and by itself not good enough due to: -rw-r--r-- 1 asterisk asterisk 13K Jan 9 12:54 astdb.sqlite3-journal Which only exists as long as sqlite has the database open.
Joseph, I realize it's not 16/18 yet, but would it be possible for you to test this ebuild so long as well? https://github.com/gentoo/gentoo/blob/55aab032d45d698f08ef8e81212f4e2b45c1827b/net-misc/asterisk/asterisk-13.38.2-r1.ebuild I'll be applying the same changes to the 16 ebuild and then hopefully sort out an 18 ebuild too asap. Kind Regards, Jaco
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c21e28747944f84b98359b37cfe4d2f2e0b7bb0b commit c21e28747944f84b98359b37cfe4d2f2e0b7bb0b Author: Jaco Kroon <jaco@uls.co.za> AuthorDate: 2021-03-13 19:59:24 +0000 Commit: Joonas Niilola <juippis@gentoo.org> CommitDate: 2021-03-19 08:51:49 +0000 net-misc/asterisk: rev bump for 16. Same changes as for 13, except that format_ogg_speex isn't being dropped since it it was introduced in 16. Closes: https://bugs.gentoo.org/772821 Introduce USE=deprecated to enable deprecated apps/funcs/features. For now, this is only app_macro. Closes: https://bugs.gentoo.org/775005 net-misc/asterisk: injects some CFLAGS. Thanks Sam. Closes: https://bugs.gentoo.org/767262 systemd automagic dependency. Closes: https://bugs.gentoo.org/775353 Make asterisk depend on the pjproject SUBSLOT. Ie, rebuild if pjproject gets updated. Closes: https://bugs.gentoo.org/761442 Repair "security" issue in that /var/lib/asterisk can now be root:root. The problem with having it asterisk: is that any arbitrary code vuln becomes a data modification one. So with this as root:root we can at least prevent modifications to /var/lib/asterisk whilst still allowing /var/lib/asterisk/astdb to be modified as required. Repair default voicemail selection. Thank you pkgcheck scan. Drop ASTCFLAGS= and ASTLDFLAGS since ./configure already imports these. I believe Tony added this as a hammer to deal with 775005 above since these got re-added again after the asterisk injected ones. By setting DEBUG= and OPTIMIZE= this problem should now be something of the past. Introduce GENTOO_ASTERISK_CUSTOM_MENUSELECT= environment variable that can be set from make.conf and takes a string similar to USE flags, except that these gets passed to menuselect one by one, if -option as --disable option, else --enable option. Prefixes + and - is supported, and will be stripped before passing to menuselect. menuselect has been patched to exit non-zero in case of invalid option passed to --enable or --disable, resulting in above being reliable (if you have something invalid in there, it will die). Accordingly drop format_ogg_speex which doesn't exist in asterisk 13. Drop no longer required ncurses dependencies (system libedit). Explicitly pass ASTCACHEDIR=/var/cache/asterisk, and update install patch to not install this path, handle in tmpfiles and initd since we're not supposed to install into /var/cache either ... Package-Manager: Portage-3.0.13, Repoman-3.0.2 Signed-off-by: Jaco Kroon <jaco@uls.co.za> Signed-off-by: Joonas Niilola <juippis@gentoo.org> net-misc/asterisk/asterisk-16.16.2-r1.ebuild | 365 +++++++++++++++++++++ .../asterisk-16.16.2-no-var-run-install.patch | 2 +- net-misc/asterisk/files/asterisk.tmpfiles3.conf | 2 + net-misc/asterisk/files/confd-16.16.2-r1 | 171 ++++++++++ net-misc/asterisk/files/initd-16.16.2-r1 | 363 ++++++++++++++++++++ net-misc/asterisk/metadata.xml | 3 +- 6 files changed, 904 insertions(+), 2 deletions(-) Additionally, it has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2c7d0aa6515bffacdaed2237cd28231100465422 commit 2c7d0aa6515bffacdaed2237cd28231100465422 Author: Jaco Kroon <jaco@uls.co.za> AuthorDate: 2021-03-13 12:13:02 +0000 Commit: Joonas Niilola <juippis@gentoo.org> CommitDate: 2021-03-19 08:51:49 +0000 net-misc/asterisk: version bump for 13. This is primarily aimed to fixing bugs, asterisk 13 is sec-only upstream, so no further fixes will be made except to address bugs reported to bus.gentoo.org. Note that bugs aren't being closed since 16* is still affected (will be fixed on next bump, just waiting for 16.17.0 to be cut). Bug: https://bugs.gentoo.org/775005 net-misc/asterisk: injects some CFLAGS. Thanks Sam. Bug: https://bugs.gentoo.org/767262 systemd automagic dependency. Bug: https://bugs.gentoo.org/775353 Make asterisk depend on the pjproject SUBSLOT. Ie, rebuild if pjproject gets updated. Bug: https://bugs.gentoo.org/761442 Repair "security" issue in that /var/lib/asterisk can now be root:root. The problem with having it asterisk: is that any arbitrary code vuln becomes a data modification one. So with this as root:root we can at least prevent modifications to /var/lib/asterisk whilst still allowing /var/lib/asterisk/astdb to be modified as required. Repair default voicemail selection. Thank you pkgcheck scan. Drop ASTCFLAGS= and ASTLDFLAGS since ./configure already imports these. I believe Tony added this as a hammer to deal with 775005 above since these got re-added again after the asterisk injected ones. By setting DEBUG= and OPTIMIZE= this problem should now be something of the past. Introduce GENTOO_ASTERISK_CUSTOM_MENUSELECT= environment variable that can be set from make.conf and takes a string similar to USE flags, except that these gets passed to menuselect one by one, if -option as --disable option, else --enable option. Prefixes + and - is supported, and will be stripped before passing to menuselect. menuselect has been patched to exit non-zero in case of invalid option passed to --enable or --disable, resulting in above being reliable (if you have something invalid in there, it will die). Accordingly drop format_ogg_speex which doesn't exist in asterisk 13. Drop no longer required ncurses dependencies (system libedit). Signed-off-by: Jaco Kroon <jaco@uls.co.za> Signed-off-by: Joonas Niilola <juippis@gentoo.org> net-misc/asterisk/asterisk-13.38.2-r1.ebuild | 348 +++++++++++++++++++++ .../asterisk-13.38.2-r1-menuselect-exitcodes.patch | 67 ++++ 2 files changed, 415 insertions(+)