File PKGBUILD of Package asterisk
# Maintainer: Oleksandr Natalenko <oleksandr@natalenko.name>
pkgname=asterisk
pkgver=23.1.0
pkgrel=2
pkgdesc="Software implementation of private branch exchange"
_pjver=2.15.1
_janssonver=2.14.1
_libjwtver=1.15.3
arch=(x86_64)
url=https://www.asterisk.org
license=(GPL-2.0-only)
depends=(codec2 gsm libasound.so libcurl.so libedit.so libodbc.so libopus.so libspeex.so libsrtp2.so libsystemd.so libvorbis.so libxml2.so libxslt.so lua popt)
makedepends=(libsqlite3.so)
backup=(etc/asterisk/acl.conf
etc/asterisk/adsi.conf
etc/asterisk/aeap.conf
etc/asterisk/agents.conf
etc/asterisk/alarmreceiver.conf
etc/asterisk/amd.conf
etc/asterisk/app_skel.conf
etc/asterisk/ari.conf
etc/asterisk/ast_debug_tools.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_beanstalkd.conf
etc/asterisk/cdr_custom.conf
etc/asterisk/cdr_manager.conf
etc/asterisk/cdr_odbc.conf
etc/asterisk/cdr_pgsql.conf
etc/asterisk/cdr_sqlite3_custom.conf
etc/asterisk/cdr_tds.conf
etc/asterisk/cel.conf
etc/asterisk/cel_beanstalkd.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/geolocation.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/minivm.conf
etc/asterisk/modules.conf
etc/asterisk/motif.conf
etc/asterisk/musiconhold.conf
etc/asterisk/ooh323.conf
etc/asterisk/phoneprov.conf
etc/asterisk/pjproject.conf
etc/asterisk/pjsip.conf
etc/asterisk/pjsip_notify.conf
etc/asterisk/pjsip_wizard.conf
etc/asterisk/prometheus.conf
etc/asterisk/queuerules.conf
etc/asterisk/queues.conf
etc/asterisk/res_config_mysql.conf
etc/asterisk/res_config_odbc.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_http_media_cache.conf
etc/asterisk/res_ldap.conf
etc/asterisk/res_odbc.conf
etc/asterisk/res_parking.conf
etc/asterisk/res_pgsql.conf
etc/asterisk/res_snmp.conf
etc/asterisk/res_stun_monitor.conf
etc/asterisk/resolver_unbound.conf
etc/asterisk/rtp.conf
etc/asterisk/say.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/stir_shaken.conf
etc/asterisk/telcordia-1.adsi
etc/asterisk/test_sorcery.conf
etc/asterisk/udptl.conf
etc/asterisk/unistim.conf
etc/asterisk/voicemail.conf
etc/asterisk/websocket_client.conf
etc/asterisk/xmpp.conf)
source=(https://downloads.asterisk.org/pub/telephony/${pkgname}/releases/${pkgname}-${pkgver}.tar.gz
https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/${_pjver}/pjproject-${_pjver}.tar.bz2
https://github.com/akheron/jansson/releases/download/v${_janssonver}/jansson-${_janssonver}.tar.bz2
https://raw.githubusercontent.com/asterisk/third-party/master/libjwt/${_libjwtver}/libjwt-${_libjwtver}.tar.gz
paths.diff
${pkgname}.service
${pkgname}.sysusers
${pkgname}.tmpfiles)
noextract=(pjproject-${_pjver}.tar.bz2
jansson-${_janssonver}.tar.bz2
libjwt-${_libjwtver}.tar.gz)
sha256sums=('04a05b555b27a7f5cc4f86d301190d7ee2cd4621490d262aed8613495b44316a'
'58bb83cec4d431f48d006e455d821668450f8cf6b6c95f090def47062fa3a60c'
'6bd82d3043dadbcd58daaf903d974891128d22aab7dada5d399cb39094af49ce'
'6775095bcd417d375faddc1f17cdd7706ad8aa9b9b02404990c4b0ee218ee379'
'4e13a0b09a5816ba77fe2de2995d67909fb2b76e91a8ad555ed6c288ba29f3dd'
'2c6267e0f7c2ea2a3e2d44c36b3a20d60041df5f0658ad68ad7b50131aabf471'
'f638d63eb822cf6792171487d2cebe99e1360f4e5ffd3e7a6790c52db02a2944'
'2c626fdd510e9d3ee395d743ccec94ab2cd9b81766b99a866a94086cd84180bb')
prepare() {
cd ${pkgname}-${pkgver}
patch -Np1 -i ../paths.diff
autoreconf -fiv
cd menuselect
autoreconf -fiv
}
build() {
cd ${pkgname}-${pkgver}
export CFLAGS=${CFLAGS//-Wp,-D_FORTIFY_SOURCE=3/}
export CXXFLAGS=${CFLAGS//-Wp,-D_FORTIFY_SOURCE=3/}
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--sbindir=/usr/bin \
--with-externals-cache="${srcdir}" \
--with-jansson-bundled
make menuselect.makeopts
./menuselect/menuselect --disable BUILD_NATIVE --enable APP_VOICEMAIL_ODBC
make
}
package(){
depends+=(mariadb-connector-odbc)
cd ${pkgname}-${pkgver}
make DESTDIR="${pkgdir}" install
make DESTDIR="${pkgdir}" install-headers
make DESTDIR="${pkgdir}" samples
install -Ddm0755 "${pkgdir}"/etc/credstore/asterisk
chmod 700 "${pkgdir}"/etc/credstore
find "${pkgdir}"/etc/asterisk -type f -exec chmod 640 {} +
find "${pkgdir}"/etc/asterisk -type d -exec chmod 750 {} +
find "${pkgdir}"/var/lib/asterisk -type f -exec chmod 640 {} +
find "${pkgdir}"/var/lib/asterisk -type d -exec chmod 750 {} +
find "${pkgdir}"/var/log/asterisk -type f -exec chmod 640 {} +
find "${pkgdir}"/var/log/asterisk -type d -exec chmod 750 {} +
find "${pkgdir}"/var/spool/asterisk -type f -exec chmod 640 {} +
find "${pkgdir}"/var/spool/asterisk -type d -exec chmod 750 {} +
rmdir "${pkgdir}"/run/asterisk
rmdir "${pkgdir}"/run
rmdir "${pkgdir}"/var/cache/asterisk
rmdir "${pkgdir}"/var/cache
install -Dm0644 -t "${pkgdir}"/usr/lib/systemd/system ../${pkgname}.service
install -Dm0644 ../${pkgname}.sysusers "${pkgdir}"/usr/lib/sysusers.d/${pkgname}.conf
install -Dm0644 ../${pkgname}.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/${pkgname}.conf
}