%bcond_without radius # build without Radius support
%bcond_without pjsip # build without PJSIP stack
%bcond_without opus_vp8 # build without Opus codec and VP8 passthrough
+%bcond_with malloc_debug # build with MALLOC_DEBUG
%bcond_without apidocs # disable apidocs building
%bcond_without verbose # verbose build
-%define opus_commit 058319d6ad464c79bbea71cf589883af62a18548
+%define opus_commit a6b9521f10817c1f39f21f90fecd3f00bbb164d0
Summary: Asterisk PBX
Summary(pl.UTF-8): Centralka (PBX) Asterisk
Name: asterisk
-Version: 13.9.1
-Release: 3
+Version: 13.15.0
+Release: 2
License: GPL v2
Group: Applications/System
Source0: http://downloads.digium.com/pub/asterisk/releases/%{name}-%{version}.tar.gz
-# Source0-md5: 76c42992a79f41ec467ed20500e8b249
+# Source0-md5: 9f72e200b01e7ccc7e8d44bb5d9ff3c7
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.tmpfiles
# menuselect.* -> make menuconfig; choose options; copy resulting files here
Source6: menuselect.makedeps
Source7: menuselect.makeopts
-# https://github.com/seanbright/asterisk-opus/
+# https://github.com/traud/asterisk-opus
Source8: https://github.com/seanbright/asterisk-opus/archive/%{opus_commit}/asterisk-opus-%{opus_commit}.tar.gz
-# Source8-md5: 2cc55d2036ee4b7e5a44ea5e2d7280f3
+# Source8-md5: d2deae1095b6b42331d3060700c25493
Patch0: lua51-path.patch
Patch1: %{name}-ppc.patch
Patch2: FHS-paths.patch
%{?with_ldap:BuildRequires: openldap-devel}
BuildRequires: openssl-devel >= 0.9.7d
BuildRequires: opus-devel
+%{?with_opus_vp8:BuildRequires: opusfile-devel}
BuildRequires: pam-devel
%{?with_pjsip:BuildRequires: pjproject-devel >= 2.3}
BuildRequires: pkgconfig
%description vorbis -l pl.UTF-8
Obsługa formatu Ogg Vorbis.
+%package opus
+Summary: Opus codec and file format support
+Summary(pl.UTF-8): Obsługa kodeka i formatu plików Opus
+Group: Applications/Networking
+Requires: %{name} = %{version}-%{release}
+
+%description opus
+Opus codec and file format support.
+
+%description opus -l pl.UTF-8
+Obsługa kodeka i formatu plików Opus.
+
+%package debug-tools
+Summary: Debugging scripts for Asterisk
+Summary(pl.UTF-8): Skrypty diagnostyczne dla Asteriska
+Group: Applications/Networking
+Requires: %{name} = %{version}-%{release}
+
+%description debug-tools
+Debugging scripts for Asterisk.
+
+%description debug-tools -l pl.UTF-8
+Skrypty diagnostyczne dla Asteriska.
+
# define apidocs as last package, as it is the biggest one
%package apidocs
Summary: API documentation for Asterisk
cp -a asterisk-opus-%{opus_commit}/codecs/* codecs
cp -a asterisk-opus-%{opus_commit}/formats/* formats
+cp -a asterisk-opus-%{opus_commit}/res/* rest
+cp -a asterisk-opus-%{opus_commit}/include/asterisk/* include/asterisk
%endif
# Fixup makefile so sound archives aren't downloaded/installed
%if %{without pjsip}
menuselect/menuselect --disable res_pjsip --disable chan_pjsip menuselect.makeopts
%endif
+%if %{without opus_vp8}
+menuselect/menuselect --disable codec_opus_open_source --disable format_ogg_opus_open_source menuselect.makeopts
+%endif
+
+%if %{with malloc_debug}
+menuselect/menuselect --enable MALLOC_DEBUG menuselect.makeopts
+%else
+menuselect/menuselect --disable MALLOC_DEBUG menuselect.makeopts
+%endif
%{__sed} -i -e 's/^MENUSELECT_OPTS_app_voicemail=.*$/MENUSELECT_OPTS_app_voicemail=FILE_STORAGE/' menuselect.makeopts
menuselect/menuselect --enable app_voicemail menuselect.makeopts
+menuselect/menuselect --check-deps menuselect.makeopts
+
# workaround for build failing with asterisk-devel not installed
ln -s libasteriskssl.so.1 ./main/libasteriskssl.so
%{__rm} -r $RPM_BUILD_ROOT/usr/include/asterisk/doxygen
+# fix script interpreters
+%{__sed} -i -e '1s,^#!.*python,#!%{__python},' $RPM_BUILD_ROOT%{_datadir}/asterisk/scripts/*
+%{__sed} -i -e '1s,^#!.*bash,#!/bin/bash,' $RPM_BUILD_ROOT%{_datadir}/asterisk/scripts/*
+
%clean
rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_mgcp.so
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_multicast_rtp.so
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_phone.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/chan_rtp.so
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_sip.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_a_mu.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_adpcm.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_alaw.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_g722.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_g726.so
-%if %{with opus_vp8}
-%attr(755,root,root) %{_libdir}/asterisk/modules/codec_opus.so
-%endif
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_ulaw.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_g719.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_g723.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_crypto.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_endpoint_stats.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_celt.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_g729.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_h263.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_h264.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_opus.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_silk.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_siren14.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_siren7.so
%if %{with opus_vp8}
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_vp8.so
%endif
%dir %{_datadir}/asterisk/rest-api
%{_datadir}/asterisk/rest-api/*.json
+%dir %{_datadir}/asterisk/scripts
+
%attr(770,root,asterisk) %dir %{_localstatedir}/lib/asterisk
%dir %attr(750,root,asterisk) %{_localstatedir}/lib/asterisk/licenses
%attr(755,root,root) %{_libdir}/asterisk/modules/res_odbc_transaction.so
%endif
+%if %{with opus_vp8}
+%files opus
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/asterisk/modules/format_ogg_opus_open_source.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/codec_opus_open_source.so
+%endif
+
%files osp
%defattr(644,root,root,755)
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/osp.conf
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_diversion.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_dlg_options.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_dtmf_info.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_empty_info.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_endpoint_identifier_anonymous.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_endpoint_identifier_ip.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_endpoint_identifier_user.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_history.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_logger.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_messaging.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_multihomed.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_mwi_body_generator.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_mwi.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_nat.so
%files vorbis
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/asterisk/modules/format_ogg_vorbis.so
+
+%files debug-tools
+%defattr(644,root,root,755)
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/ast_debug_tools.conf
+%attr(755,root,root) %{_datadir}/asterisk/scripts/ast_coredumper
+%attr(755,root,root) %{_datadir}/asterisk/scripts/ast_logescalator
+%attr(755,root,root) %{_datadir}/asterisk/scripts/ast_loggrabber
+%attr(755,root,root) %{_datadir}/asterisk/scripts/refcounter.py