summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2019-01-08 16:00:50 +0100
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2019-01-08 22:18:22 +0100
commit29e0c54e56c8a9dd68ab6844c56fc332ac46cb15 (patch)
treeab6ac3d1d33850e63b507ee583ac74e587cea162
parent77b12b7a8bc5e704dacedfd0bc95a78fb7034b79 (diff)
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>
-rw-r--r--pcr/asterisk/PKGBUILD274
-rw-r--r--pcr/asterisk/asterisk.install24
-rw-r--r--pcr/asterisk/asterisk.sysusers2
-rw-r--r--pcr/asterisk/libSRTP_2_x_x+GCM.patch31
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