%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
Summary: Asterisk PBX
Summary(pl.UTF-8): Centralka (PBX) Asterisk
Name: asterisk
-Version: 13.12.0
-Release: 1
+Version: 14.6.2
+Release: 2
License: GPL v2
Group: Applications/System
Source0: http://downloads.digium.com/pub/asterisk/releases/%{name}-%{version}.tar.gz
-# Source0-md5: b4083016753c26a7440bdca5351ab9fe
+# Source0-md5: e501319f287715a68848c16a753f6ad4
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.tmpfiles
%{?with_ldap:BuildRequires: openldap-devel}
BuildRequires: openssl-devel >= 0.9.7d
BuildRequires: opus-devel
-%{?with_opus:BuildRequires: opusfile-devel}
+%{?with_opus_vp8:BuildRequires: opusfile-devel}
BuildRequires: pam-devel
-%{?with_pjsip:BuildRequires: pjproject-devel >= 2.3}
+%{?with_pjsip:BuildRequires: pjproject-devel >= 2.6-2}
BuildRequires: pkgconfig
BuildRequires: popt-devel
%{?with_portaudio:BuildRequires: portaudio-devel >= 19}
%{?with_sqlite2:BuildRequires: sqlite-devel >= 2}
BuildRequires: sqlite3-devel
BuildRequires: srtp-devel
-Requires(post,preun,postun): systemd-units >= 38
-Requires: systemd-units >= 0.38
+BuildRequires: unbound-devel
%{?with_odbc:BuildRequires: unixODBC-devel}
BuildRequires: uriparser-devel
%{?with_ilbc:BuildRequires: webrtc-libilbc-devel >= 2}
BuildRequires: xorg-lib-libX11-devel
BuildRequires: zlib-devel
+Requires(post,preun,postun): systemd-units >= 38
+Requires: systemd-units >= 0.38
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
Requires(postun): /usr/sbin/userdel
Requires: rc-scripts
Provides: group(asterisk)
Provides: user(asterisk)
+#Obsoletes: asterisk-ais # should be in -corosync package (when built)?
+Obsoletes: asterisk-examples
+Obsoletes: asterisk-h323 < 13
+#Obsoletes: asterisk-misdn # what is the status of this plugin?
+Obsoletes: asterisk-usbradio < 10.4.0
Conflicts: logrotate < 3.8.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# references symbols in the asterisk binary
%define skip_post_check_so libasteriskssl.so.*
-%define _noautoprovfiles %{_libdir}/asterisk/modules/.*
+%define _noautoprovfiles %{_libdir}/asterisk/modules/.*
%description
Asterisk is an Open Source PBX and telephony development platform that
%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
cd ..
%configure \
+ --with-unbound \
%{__without oss SDL_image} \
%{__without bluetooth bluetooth} \
--without-gtk2 \
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/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(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/phoneprov.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/queuerules.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/queues.conf
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/resolver_unbound.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/res_parking.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/res_pktccops.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/res_stun_monitor.conf
%attr(755,root,root) %{_libdir}/asterisk/modules/app_alarmreceiver.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_amd.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_authenticate.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/app_bridgeaddchan.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_bridgewait.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_cdr.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_celgenuserevent.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_speech_utils.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_stack.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_stasis.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/app_statsd.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_system.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_talkdetect.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_test.so
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_bridge_media.so
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_iax2.so
%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
%if %{with opus_vp8}
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_vp8.so
%endif
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_http_media_cache.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_http_websocket.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_limit.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_manager_devicestate.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_phoneprov.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pktccops.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_realtime.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_resolver_unbound.so
# res_rtp_asterisk.so pulls some pjproject libs, but it still looks like a core module
%attr(755,root,root) %{_libdir}/asterisk/modules/res_rtp_asterisk.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_rtp_multicast.so
%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
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_ilbc.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_ilbc.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_ilbc.so
%endif
%files jabber
%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 speex
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_speex.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/format_ogg_speex.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_speex.so
%if %{with sqlite2}
%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