From abc851bdbc63d9c10d995913c03bcc94b0eaf75f Mon Sep 17 00:00:00 2001 From: Andreas Grapentin Date: Sun, 21 Jan 2018 09:49:24 +0100 Subject: pcr/asterisk: updated to 15.1.0 --- pcr/asterisk/PKGBUILD | 200 ++++++++++++++++++++++++----------- pcr/asterisk/asterisk.install | 15 ++- pcr/asterisk/asterisk.service | 3 +- pcr/asterisk/libSRTP_2_x_x+GCM.patch | 31 ++++++ 4 files changed, 179 insertions(+), 70 deletions(-) create mode 100644 pcr/asterisk/libSRTP_2_x_x+GCM.patch diff --git a/pcr/asterisk/PKGBUILD b/pcr/asterisk/PKGBUILD index e67519bd5..52c129338 100644 --- a/pcr/asterisk/PKGBUILD +++ b/pcr/asterisk/PKGBUILD @@ -1,79 +1,151 @@ -# Maintainer (Arch): Xavier Devlamynck -# Contributor (Arch): Alessio Biancalana -# Contributor (Arch): Maik Broemme +# Maintainer (AUR): Xavier Devlamynck +# Contributor (AUR): Alessio Biancalana +# Contributor (AUR): Maik Broemme + +# parabola changes and rationale: +# - added pjproject as explicit dependency +# - patched https://issues.asterisk.org/jira/browse/ASTERISK-27356 pkgname=asterisk -pkgver=11.5.0 -pkgrel=2 +pkgver=15.1.0 +pkgrel=1 pkgdesc="A complete PBX solution" -arch=('i686' 'x86_64') -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/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.conf' 'etc/asterisk/extensions_minivm.conf' -'etc/asterisk/features.conf' 'etc/asterisk/festival.conf' -'etc/asterisk/followme.conf' 'etc/asterisk/func_odbc.conf' -'etc/asterisk/gtalk.conf' 'etc/asterisk/h323.conf' -'etc/asterisk/http.conf' 'etc/asterisk/iax.conf' -'etc/asterisk/iaxprov.conf' 'etc/asterisk/indications.conf' -'etc/asterisk/jabber.conf' 'etc/asterisk/jingle.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/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_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/udptl.conf' 'etc/asterisk/unistim.conf' -'etc/asterisk/users.conf' 'etc/asterisk/voicemail.conf' -'etc/asterisk/vpb.conf' 'etc/asterisk/xmpp.conf') +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" license=('GPL') -depends=('alsa-lib' 'speex' 'popt' 'libvorbis' 'curl') -makedepends=('postgresql' 'unixodbc' 'sqlite3') -optdepends=('libpri' 'libss7' 'openr2' 'iksemel' 'radiusclient-ng' 'dahdi') +depends=('alsa-lib' 'speex' 'popt' 'libvorbis' 'curl' 'libxml2' 'jansson' 'libxslt' 'opus' '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) + ${pkgname}.tmpfile \ + libSRTP_2_x_x+GCM.patch) install=${pkgname}.install -sha256sums=('a82c1ddd9fb1d98f0dab6e0255a127fb7c7eaa687b3d515182458244062b4194' - '74e0b278d553499f0c648a6e3d55c0dbb11b0c6dc93a85b020a21eafadb83783' - 'caa24cfec5c6b4f8cea385269e39557362acad7e2a552994c3bc24080e3bdd4e' - '673c0c55bce8068c297f9cdd389402c2d5d5a25e2cf84732cb071198bd6fa78a') +sha256sums=('23a34342c410009ab35566bf85ca2a1a0573f1848dc0ac74f65f5e0bca51f898' + '94acb6e68424195a12fd9d406b3fb586f264a550e75801f6e020a86e800dd42c' + 'caa24cfec5c6b4f8cea385269e39557362acad7e2a552994c3bc24080e3bdd4e' + '673c0c55bce8068c297f9cdd389402c2d5d5a25e2cf84732cb071198bd6fa78a' + 'b26311a6cd0413d563346537db3d41277b27932d0720c2431dec0167de31954e') + +prepare(){ + cd ${srcdir}/${pkgname}-${pkgver} + patch -Np0 -i "$srcdir"/libSRTP_2_x_x+GCM.patch +} build() { cd ${srcdir}/${pkgname}-${pkgver} - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --sbindir=/usr/bin + #./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --sbindir=/usr/bin --with-libedit=internal + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --sbindir=/usr/bin --with-pjproject-bundled=no make } diff --git a/pcr/asterisk/asterisk.install b/pcr/asterisk/asterisk.install index b7c1a71f7..84cc01d87 100644 --- a/pcr/asterisk/asterisk.install +++ b/pcr/asterisk/asterisk.install @@ -2,14 +2,19 @@ post_install() { groupadd -r asterisk useradd -MNr -s /bin/false -d /run/asterisk -g asterisk asterisk && passwd -l asterisk &>/dev/null - 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 + post_upgrade } post_remove() { + killall -q asterisk userdel asterisk &>/dev/null groupdel asterisk &>/dev/null } + +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 +} diff --git a/pcr/asterisk/asterisk.service b/pcr/asterisk/asterisk.service index 789a1adda..284477f2b 100644 --- a/pcr/asterisk/asterisk.service +++ b/pcr/asterisk/asterisk.service @@ -13,8 +13,9 @@ ExecStop=/usr/bin/asterisk -rx 'core stop now' ExecReload=/usr/bin/asterisk -rx 'core reload' # safe_asterisk emulation -Restart=always +Restart=on-failure RestartSec=10 +RestartPreventExitStatus=0 [Install] WantedBy=multi-user.target diff --git a/pcr/asterisk/libSRTP_2_x_x+GCM.patch b/pcr/asterisk/libSRTP_2_x_x+GCM.patch new file mode 100644 index 000000000..b8f7abffc --- /dev/null +++ b/pcr/asterisk/libSRTP_2_x_x+GCM.patch @@ -0,0 +1,31 @@ +--- 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 -- cgit v1.2.3