diff options
author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2019-01-08 16:00:50 +0100 |
---|---|---|
committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2019-01-08 22:18:22 +0100 |
commit | 29e0c54e56c8a9dd68ab6844c56fc332ac46cb15 (patch) | |
tree | ab6ac3d1d33850e63b507ee583ac74e587cea162 /pcr/asterisk | |
parent | 77b12b7a8bc5e704dacedfd0bc95a78fb7034b79 (diff) | |
download | abslibre-29e0c54e56c8a9dd68ab6844c56fc332ac46cb15.tar.gz abslibre-29e0c54e56c8a9dd68ab6844c56fc332ac46cb15.tar.bz2 abslibre-29e0c54e56c8a9dd68ab6844c56fc332ac46cb15.zip |
pcr/asterisk: update to 16.1.1 and fix most illegal instructions
This is based on the PKGBUILD available on aur here:
https://aur.archlinux.org/asterisk.git
Before this package was built with -march=native, so if you build
it on a machine with a processor that supports avx (Advanced Vector
Extensions), libpjsip.so.2 ended up with vpxor instructions that
were also executed on machines with a processor that did not have
such extension, which resulted in an illegal instruction at asterisk
startup.
Though for some reason, with this patch, building asterisk on a
machine with avx still results in res_pjsip_send_to_voicemail.so
having one vpxor instruction.
Hopefully even with that, asterisk can still start.
Changes from the aur PKGBUILD:
- Parabola's change to always depend on pjproject was kept
- Native builds were disabled by using the ChangeLog documentation:
"Those who need different -march= values, please, go for
./configure
make menuselect.makeopts or make menuselect
./menuselect/menuselect --disable BUILD_NATIVE"
Without that the build machine processor
- Parabola's minimum system requirements states that:
"Parabola GNU/Linux-libre should run on any i686 compatible machine
[...]"
- Wikipedia states that i686 has MMX and SSE[2]
The package build was tested on x86_64, i686 and armv7h.
On x86_64 I verified that most asterisk ELF files did not
have vpxor instructions anymore with:
$ pacman -Q -l asterisk | \
awk '{print $2}' | xargs file | grep ELF | \
sed 's#:.*##' | xargs objdump -D | grep vpxor
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'pcr/asterisk')
-rw-r--r-- | pcr/asterisk/PKGBUILD | 274 | ||||
-rw-r--r-- | pcr/asterisk/asterisk.install | 24 | ||||
-rw-r--r-- | pcr/asterisk/asterisk.sysusers | 2 | ||||
-rw-r--r-- | pcr/asterisk/libSRTP_2_x_x+GCM.patch | 31 |
4 files changed, 152 insertions, 179 deletions
diff --git a/pcr/asterisk/PKGBUILD b/pcr/asterisk/PKGBUILD index 52c129338..12d4a793b 100644 --- a/pcr/asterisk/PKGBUILD +++ b/pcr/asterisk/PKGBUILD @@ -1,151 +1,147 @@ -# Maintainer (AUR): Xavier Devlamynck <magicrhesus@ouranos.be> +# Maintainer (AUR): Maxim Kurnosenko <asusx2@mail.ru> +# Contributor (AUR): Caleb Maclennan <caleb@alerque.com> +# Contributor (AUR): Xavier Devlamynck <magicrhesus@ouranos.be> # Contributor (AUR): Alessio Biancalana <dottorblaster@gmail.com> # Contributor (AUR): Maik Broemme <mbroemme@libmpq.org> +# Contributor (Parabola): Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> # parabola changes and rationale: # - added pjproject as explicit dependency -# - patched https://issues.asterisk.org/jira/browse/ASTERISK-27356 pkgname=asterisk -pkgver=15.1.0 +pkgver=16.1.1 pkgrel=1 pkgdesc="A complete PBX solution" arch=('i686' 'x86_64' 'armv7h') backup=('etc/asterisk/acl.conf' - 'etc/asterisk/adsi.conf' - 'etc/asterisk/agents.conf' - 'etc/asterisk/alarmreceiver.conf' - 'etc/asterisk/alsa.conf' - 'etc/asterisk/amd.conf' - 'etc/asterisk/app_mysql.conf' - 'etc/asterisk/app_skel.conf' - 'etc/asterisk/ari.conf' - 'etc/asterisk/asterisk.adsi' - 'etc/asterisk/asterisk.conf' - 'etc/asterisk/calendar.conf' - 'etc/asterisk/ccss.conf' - 'etc/asterisk/cdr.conf' - 'etc/asterisk/cdr_adaptive_odbc.conf' - 'etc/asterisk/cdr_custom.conf' - 'etc/asterisk/cdr_manager.conf' - 'etc/asterisk/cdr_mysql.conf' - 'etc/asterisk/cdr_odbc.conf' - 'etc/asterisk/cdr_pgsql.conf' - 'etc/asterisk/cdr_sqlite3_custom.conf' - 'etc/asterisk/cdr_syslog.conf' - 'etc/asterisk/cdr_tds.conf' - 'etc/asterisk/cel.conf' - 'etc/asterisk/cel_custom.conf' - 'etc/asterisk/cel_odbc.conf' - 'etc/asterisk/cel_pgsql.conf' - 'etc/asterisk/cel_sqlite3_custom.conf' - 'etc/asterisk/cel_tds.conf' - 'etc/asterisk/chan_dahdi.conf' - 'etc/asterisk/chan_mobile.conf' - 'etc/asterisk/cli.conf' - 'etc/asterisk/cli_aliases.conf' - 'etc/asterisk/cli_permissions.conf' - 'etc/asterisk/codecs.conf' - 'etc/asterisk/confbridge.conf' - 'etc/asterisk/config_test.conf' - 'etc/asterisk/console.conf' - 'etc/asterisk/dbsep.conf' - 'etc/asterisk/dnsmgr.conf' - 'etc/asterisk/dsp.conf' - 'etc/asterisk/dundi.conf' - 'etc/asterisk/enum.conf' - 'etc/asterisk/extconfig.conf' - 'etc/asterisk/extensions.ael' - 'etc/asterisk/extensions.conf' - 'etc/asterisk/extensions.lua' - 'etc/asterisk/extensions_minivm.conf' - 'etc/asterisk/features.conf' - 'etc/asterisk/festival.conf' - 'etc/asterisk/followme.conf' - 'etc/asterisk/func_odbc.conf' - 'etc/asterisk/hep.conf' - 'etc/asterisk/http.conf' - 'etc/asterisk/iax.conf' - 'etc/asterisk/iaxprov.conf' - 'etc/asterisk/indications.conf' - 'etc/asterisk/logger.conf' - 'etc/asterisk/manager.conf' - 'etc/asterisk/meetme.conf' - 'etc/asterisk/mgcp.conf' - 'etc/asterisk/minivm.conf' - 'etc/asterisk/misdn.conf' - 'etc/asterisk/modules.conf' - 'etc/asterisk/motif.conf' - 'etc/asterisk/musiconhold.conf' - 'etc/asterisk/muted.conf' - 'etc/asterisk/ooh323.conf' - 'etc/asterisk/osp.conf' - 'etc/asterisk/oss.conf' - 'etc/asterisk/phone.conf' - 'etc/asterisk/phoneprov.conf' - 'etc/asterisk/pjsip.conf' - 'etc/asterisk/pjsip_notify.conf' - 'etc/asterisk/pjsip_wizard.conf' - 'etc/asterisk/queuerules.conf' - 'etc/asterisk/queues.conf' - 'etc/asterisk/res_config_mysql.conf' - 'etc/asterisk/res_config_sqlite.conf' - 'etc/asterisk/res_config_sqlite3.conf' - 'etc/asterisk/res_corosync.conf' - 'etc/asterisk/res_curl.conf' - 'etc/asterisk/res_fax.conf' - 'etc/asterisk/res_ldap.conf' - 'etc/asterisk/res_odbc.conf' - 'etc/asterisk/res_parking.conf' - 'etc/asterisk/res_pgsql.conf' - 'etc/asterisk/res_pktccops.conf' - 'etc/asterisk/res_snmp.conf' - 'etc/asterisk/res_stun_monitor.conf' - 'etc/asterisk/rtp.conf' - 'etc/asterisk/say.conf' - 'etc/asterisk/sip.conf' - 'etc/asterisk/sip_notify.conf' - 'etc/asterisk/skinny.conf' - 'etc/asterisk/sla.conf' - 'etc/asterisk/smdi.conf' - 'etc/asterisk/sorcery.conf' - 'etc/asterisk/ss7.timers' - 'etc/asterisk/stasis.conf' - 'etc/asterisk/statsd.conf' - 'etc/asterisk/telcordia-1.adsi' - 'etc/asterisk/test_sorcery.conf' - 'etc/asterisk/udptl.conf' - 'etc/asterisk/unistim.conf' - 'etc/asterisk/users.conf' - 'etc/asterisk/voicemail.conf' - 'etc/asterisk/vpb.conf' - 'etc/asterisk/xmpp.conf') -url="http://www.asterisk.org" + 'etc/asterisk/adsi.conf' + 'etc/asterisk/agents.conf' + 'etc/asterisk/alarmreceiver.conf' + 'etc/asterisk/alsa.conf' + 'etc/asterisk/amd.conf' + 'etc/asterisk/app_mysql.conf' + 'etc/asterisk/app_skel.conf' + 'etc/asterisk/ari.conf' + 'etc/asterisk/asterisk.adsi' + 'etc/asterisk/asterisk.conf' + 'etc/asterisk/calendar.conf' + 'etc/asterisk/ccss.conf' + 'etc/asterisk/cdr.conf' + 'etc/asterisk/cdr_adaptive_odbc.conf' + 'etc/asterisk/cdr_custom.conf' + 'etc/asterisk/cdr_manager.conf' + 'etc/asterisk/cdr_mysql.conf' + 'etc/asterisk/cdr_odbc.conf' + 'etc/asterisk/cdr_pgsql.conf' + 'etc/asterisk/cdr_sqlite3_custom.conf' + 'etc/asterisk/cdr_syslog.conf' + 'etc/asterisk/cdr_tds.conf' + 'etc/asterisk/cel.conf' + 'etc/asterisk/cel_custom.conf' + 'etc/asterisk/cel_odbc.conf' + 'etc/asterisk/cel_pgsql.conf' + 'etc/asterisk/cel_sqlite3_custom.conf' + 'etc/asterisk/cel_tds.conf' + 'etc/asterisk/chan_dahdi.conf' + 'etc/asterisk/chan_mobile.conf' + 'etc/asterisk/cli.conf' + 'etc/asterisk/cli_aliases.conf' + 'etc/asterisk/cli_permissions.conf' + 'etc/asterisk/codecs.conf' + 'etc/asterisk/confbridge.conf' + 'etc/asterisk/config_test.conf' + 'etc/asterisk/console.conf' + 'etc/asterisk/dbsep.conf' + 'etc/asterisk/dnsmgr.conf' + 'etc/asterisk/dsp.conf' + 'etc/asterisk/dundi.conf' + 'etc/asterisk/enum.conf' + 'etc/asterisk/extconfig.conf' + 'etc/asterisk/extensions.ael' + 'etc/asterisk/extensions.conf' + 'etc/asterisk/extensions.lua' + 'etc/asterisk/extensions_minivm.conf' + 'etc/asterisk/features.conf' + 'etc/asterisk/festival.conf' + 'etc/asterisk/followme.conf' + 'etc/asterisk/func_odbc.conf' + 'etc/asterisk/hep.conf' + 'etc/asterisk/http.conf' + 'etc/asterisk/iax.conf' + 'etc/asterisk/iaxprov.conf' + 'etc/asterisk/indications.conf' + 'etc/asterisk/logger.conf' + 'etc/asterisk/manager.conf' + 'etc/asterisk/meetme.conf' + 'etc/asterisk/mgcp.conf' + 'etc/asterisk/minivm.conf' + 'etc/asterisk/misdn.conf' + 'etc/asterisk/modules.conf' + 'etc/asterisk/motif.conf' + 'etc/asterisk/musiconhold.conf' + 'etc/asterisk/muted.conf' + 'etc/asterisk/ooh323.conf' + 'etc/asterisk/osp.conf' + 'etc/asterisk/oss.conf' + 'etc/asterisk/phone.conf' + 'etc/asterisk/phoneprov.conf' + 'etc/asterisk/pjsip.conf' + 'etc/asterisk/pjsip_notify.conf' + 'etc/asterisk/pjsip_wizard.conf' + 'etc/asterisk/queuerules.conf' + 'etc/asterisk/queues.conf' + 'etc/asterisk/res_config_mysql.conf' + 'etc/asterisk/res_config_sqlite.conf' + 'etc/asterisk/res_config_sqlite3.conf' + 'etc/asterisk/res_corosync.conf' + 'etc/asterisk/res_curl.conf' + 'etc/asterisk/res_fax.conf' + 'etc/asterisk/res_ldap.conf' + 'etc/asterisk/res_odbc.conf' + 'etc/asterisk/res_parking.conf' + 'etc/asterisk/res_pgsql.conf' + 'etc/asterisk/res_pktccops.conf' + 'etc/asterisk/res_snmp.conf' + 'etc/asterisk/res_stun_monitor.conf' + 'etc/asterisk/rtp.conf' + 'etc/asterisk/say.conf' + 'etc/asterisk/sip.conf' + 'etc/asterisk/sip_notify.conf' + 'etc/asterisk/skinny.conf' + 'etc/asterisk/sla.conf' + 'etc/asterisk/smdi.conf' + 'etc/asterisk/sorcery.conf' + 'etc/asterisk/ss7.timers' + 'etc/asterisk/stasis.conf' + 'etc/asterisk/statsd.conf' + 'etc/asterisk/telcordia-1.adsi' + 'etc/asterisk/test_sorcery.conf' + 'etc/asterisk/udptl.conf' + 'etc/asterisk/unistim.conf' + 'etc/asterisk/users.conf' + 'etc/asterisk/voicemail.conf' + 'etc/asterisk/vpb.conf' + 'etc/asterisk/xmpp.conf') +url='http://www.asterisk.org' license=('GPL') -depends=('alsa-lib' 'speex' 'popt' 'libvorbis' 'curl' 'libxml2' 'jansson' 'libxslt' 'opus' 'pjproject') +depends=('alsa-lib' 'speex' 'popt' 'libvorbis' 'curl' 'libxml2' 'jansson' 'libxslt' 'opus' 'libedit' 'pjproject') makedepends=('sqlite3' 'gsm') optdepends=('lua51' 'libsrtp' 'postgresql' 'unixodbc' 'libpri' 'libss7' 'openr2' 'iksemel' 'radiusclient-ng' 'dahdi') -source=(http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-${pkgver}.tar.gz \ - ${pkgname}.service \ - ${pkgname}.logrotated \ - ${pkgname}.tmpfile \ - libSRTP_2_x_x+GCM.patch) install=${pkgname}.install -sha256sums=('23a34342c410009ab35566bf85ca2a1a0573f1848dc0ac74f65f5e0bca51f898' - '94acb6e68424195a12fd9d406b3fb586f264a550e75801f6e020a86e800dd42c' +source=("https://downloads.asterisk.org/pub/telephony/asterisk/releases/${pkgname}-${pkgver}.tar.gz" + "${pkgname}.sysusers" + "${pkgname}.logrotated" + "${pkgname}.tmpfile") +sha256sums=('bbf21452dfb213ecc0f24ef05d240e72b57cbc834f9e2e113062c2db2bde6ea5' + 'fc2e42f79e1672cc25b9b8ad2ba99616fbba0047641c986d30718655d0e7d4d8' 'caa24cfec5c6b4f8cea385269e39557362acad7e2a552994c3bc24080e3bdd4e' - '673c0c55bce8068c297f9cdd389402c2d5d5a25e2cf84732cb071198bd6fa78a' - 'b26311a6cd0413d563346537db3d41277b27932d0720c2431dec0167de31954e') - -prepare(){ - cd ${srcdir}/${pkgname}-${pkgver} - patch -Np0 -i "$srcdir"/libSRTP_2_x_x+GCM.patch -} + '673c0c55bce8068c297f9cdd389402c2d5d5a25e2cf84732cb071198bd6fa78a') build() { - cd ${srcdir}/${pkgname}-${pkgver} - #./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --sbindir=/usr/bin --with-libedit=internal + cd ${pkgname}-${pkgver} ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --sbindir=/usr/bin --with-pjproject-bundled=no + make menuselect.makeopts + ./menuselect/menuselect --disable BUILD_NATIVE make } @@ -153,15 +149,23 @@ package(){ cd ${srcdir}/${pkgname}-${pkgver} make DESTDIR=${pkgdir} install make DESTDIR=${pkgdir} samples - + sed -i -e "s/\/var\/run/\/run/" ${pkgdir}/etc/asterisk/asterisk.conf mkdir -p ${pkgdir}/usr/share/doc/asterisk/examples for i in ${pkgdir}/etc/asterisk/*; do install -D -m 644 $i ${pkgdir}/usr/share/doc/asterisk/examples/; done - + mv ${pkgdir}/var/run ${pkgdir} - - install -D -m 644 ${srcdir}/asterisk.logrotated ${pkgdir}/etc/logrotate.d/asterisk - install -D -m 644 ${srcdir}/asterisk.service ${pkgdir}/usr/lib/systemd/system/asterisk.service - install -D -m 644 ${srcdir}/asterisk.tmpfile ${pkgdir}/usr/lib/tmpfiles.d/asterisk.conf + + install -D -m 644 ${srcdir}/${pkgname}.sysusers ${pkgdir}/usr/lib/sysusers.d/asterisk.conf + install -D -m 644 ${srcdir}/${pkgname}.logrotated ${pkgdir}/etc/logrotate.d/asterisk + install -D -m 644 ${srcdir}/${pkgname}.tmpfile ${pkgdir}/usr/lib/tmpfiles.d/asterisk.conf + + install -D -m 644 ${srcdir}/${pkgname}-${pkgver}/contrib/systemd/asterisk.service ${pkgdir}/usr/lib/systemd/system/asterisk.service + install -D -m 644 ${srcdir}/${pkgname}-${pkgver}/contrib/systemd/asterisk.socket ${pkgdir}/usr/lib/systemd/system/asterisk.socket + install -D -m 644 ${srcdir}/${pkgname}-${pkgver}/contrib/systemd/asterisk-ami.socket ${pkgdir}/usr/lib/systemd/system/asterisk-ami.socket + install -D -m 644 ${srcdir}/${pkgname}-${pkgver}/contrib/systemd/asterisk-amis.socket ${pkgdir}/usr/lib/systemd/system/asterisk-amis.socket + install -D -m 644 ${srcdir}/${pkgname}-${pkgver}/contrib/systemd/asterisk-cli.socket ${pkgdir}/usr/lib/systemd/system/asterisk-cli.socket + install -D -m 644 ${srcdir}/${pkgname}-${pkgver}/contrib/systemd/asterisk-http.socket ${pkgdir}/usr/lib/systemd/system/asterisk-http.socket + install -D -m 644 ${srcdir}/${pkgname}-${pkgver}/contrib/systemd/asterisk-https.socket ${pkgdir}/usr/lib/systemd/system/asterisk-https.socket } diff --git a/pcr/asterisk/asterisk.install b/pcr/asterisk/asterisk.install index 84cc01d87..4c342129e 100644 --- a/pcr/asterisk/asterisk.install +++ b/pcr/asterisk/asterisk.install @@ -1,20 +1,18 @@ post_install() { - groupadd -r asterisk - useradd -MNr -s /bin/false -d /run/asterisk -g asterisk asterisk && passwd -l asterisk &>/dev/null - - post_upgrade + post_upgrade } -post_remove() { - killall -q asterisk - userdel asterisk &>/dev/null - groupdel asterisk &>/dev/null +pre_remove() { + systemctl stop asterisk.service } + post_upgrade() { - chown -R asterisk:asterisk /etc/asterisk - chown -R asterisk:asterisk /var/lib/asterisk - chown -R asterisk:asterisk /var/log/asterisk - chown -R asterisk:asterisk /run/asterisk - chown -R asterisk:asterisk /var/spool/asterisk + systemd-sysusers + + chown -R asterisk:asterisk /etc/asterisk + chown -R asterisk:asterisk /var/lib/asterisk + chown -R asterisk:asterisk /var/log/asterisk + chown -R asterisk:asterisk /run/asterisk + chown -R asterisk:asterisk /var/spool/asterisk } diff --git a/pcr/asterisk/asterisk.sysusers b/pcr/asterisk/asterisk.sysusers new file mode 100644 index 000000000..a41884d97 --- /dev/null +++ b/pcr/asterisk/asterisk.sysusers @@ -0,0 +1,2 @@ +g asterisk /usr/bin/asterisk +u asterisk /usr/bin/asterisk "Asterisk PBX and telephony" /run/asterisk diff --git a/pcr/asterisk/libSRTP_2_x_x+GCM.patch b/pcr/asterisk/libSRTP_2_x_x+GCM.patch deleted file mode 100644 index b8f7abffc..000000000 --- a/pcr/asterisk/libSRTP_2_x_x+GCM.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- configure.ac (Asterisk 15.1.0) -+++ configure.ac (working copy) -@@ -2523,6 +2523,7 @@ - if test "x$PBX_SRTP" = x1; - then - AST_EXT_LIB_CHECK([SRTP_256], [srtp2], [srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80]) -+ AST_EXT_LIB_CHECK([SRTP_192], [srtp2], [srtp_crypto_policy_set_aes_cm_192_hmac_sha1_80]) - AST_EXT_LIB_CHECK([SRTP_GCM], [srtp2], [srtp_crypto_policy_set_aes_gcm_128_8_auth]) - AST_EXT_LIB_CHECK([SRTP_SHUTDOWN], [srtp2], [srtp_shutdown], [srtp2/srtp.h]) - ---- res/srtp/srtp_compat.h (Asterisk 15.1.0) -+++ res/srtp/srtp_compat.h (working copy) -@@ -16,6 +16,18 @@ - #define crypto_policy_set_aes_gcm_128_8_auth srtp_crypto_policy_set_aes_gcm_128_8_auth - #define crypto_policy_set_aes_gcm_256_8_auth srtp_crypto_policy_set_aes_gcm_256_8_auth - -+#if defined(SRTP_AES_GCM_128_KEY_LEN_WSALT) -+#define AES_128_GCM_KEYSIZE_WSALT SRTP_AES_GCM_128_KEY_LEN_WSALT -+#else -+#define AES_128_GCM_KEYSIZE_WSALT SRTP_AES_128_GCM_KEYSIZE_WSALT -+#endif -+ -+#if defined(SRTP_AES_GCM_256_KEY_LEN_WSALT) -+#define AES_256_GCM_KEYSIZE_WSALT SRTP_AES_GCM_256_KEY_LEN_WSALT -+#else -+#define AES_256_GCM_KEYSIZE_WSALT SRTP_AES_256_GCM_KEYSIZE_WSALT -+#endif -+ - #define err_status_t srtp_err_status_t - #define err_status_ok srtp_err_status_ok - #define err_status_fail srtp_err_status_fail |