]> git.pld-linux.org Git - packages/asterisk.git/blobdiff - asterisk.spec
Up to 15.3.0
[packages/asterisk.git] / asterisk.spec
index 443b81164ad3320247a0407423761128ad19e7de..78e0d7570cdff954d8274a863679cc67c0ad3f4a 100644 (file)
@@ -9,8 +9,6 @@
 # - vpb (libvpb, vpbapi.h)
 # - make package for moh sound files
 # - build res_ari_mailboxes as an alternative for voicemail subpackages
-# - +x missing:
-#   ldd: warning: you do not have execution permission for `/usr/lib/libasteriskssl.so.1'
 #
 # Conditional build:
 %bcond_with    corosync        # res_corosync module (broken in 12.0.0)
 %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_with    system_pjproject # build with system pjproject (see below)
 
 %bcond_without apidocs         # disable apidocs building
 %bcond_without verbose         # verbose build
 
+# NOTE:
+#   Building with system pjproject may be not a good idea. pjproject comes
+#   optimized for client usage and asterisk is a SIP server. Asterisk requries
+#   pjproject properly patched and configured and keeping our pjproject in sync
+#   with Asterisk requirements may be tricky. Also, Asterisk is the only
+#   package using pjproject in PLD, so there is little gain with using system
+#   one.
+#
+#   Before switching the 'system_pjproject' bcond make sure the pjproject
+#   package is updated to the version used by Asterisk, with all Asterisk
+#   patches applied and with configuration synced.
+
+%define pjproject_version      2.7.1
+
 %define        opus_commit     a6b9521f10817c1f39f21f90fecd3f00bbb164d0
 
 Summary:       Asterisk PBX
 Summary(pl.UTF-8):     Centralka (PBX) Asterisk
 Name:          asterisk
-Version:       13.12.0
+Version:       15.3.0
 Release:       1
 License:       GPL v2
 Group:         Applications/System
 Source0:       http://downloads.digium.com/pub/asterisk/releases/%{name}-%{version}.tar.gz
-# Source0-md5: b4083016753c26a7440bdca5351ab9fe
+# Source0-md5: 18c9d26355225c0499a499ef5869156a
 Source1:       %{name}.init
 Source2:       %{name}.sysconfig
 Source3:       %{name}.tmpfiles
@@ -54,6 +68,8 @@ Source7:      menuselect.makeopts
 # https://github.com/traud/asterisk-opus
 Source8:       https://github.com/seanbright/asterisk-opus/archive/%{opus_commit}/asterisk-opus-%{opus_commit}.tar.gz
 # Source8-md5: d2deae1095b6b42331d3060700c25493
+Source9:       https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/%{pjproject_version}/pjproject-%{pjproject_version}.tar.bz2
+# Source9-md5: 99a64110fa5c2debff40e0e8d4676380
 Patch0:                lua51-path.patch
 Patch1:                %{name}-ppc.patch
 Patch2:                FHS-paths.patch
@@ -61,8 +77,7 @@ Patch3:               pld-banner.patch
 Patch4:                lpc10-system.patch
 Patch5:                %{name}-histedit.patch
 Patch6:                x32.patch
-Patch7:                %{name}-ilbc.patch
-Patch8:                asterisk-opus.patch
+#Patch7:               %{name}-ilbc.patch
 URL:           http://www.asterisk.org/
 BuildRequires: OSPToolkit-devel >= 4.0.0
 %{?with_oss:BuildRequires:     SDL-devel}
@@ -112,9 +127,11 @@ BuildRequires:     newt-devel
 %{?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}
+%if %{with system_pjproject} && %{with pjsip}
+BuildRequires: pjproject-devel >= 2.6-4
+%endif
 BuildRequires: pkgconfig
 BuildRequires: popt-devel
 %{?with_portaudio:BuildRequires:       portaudio-devel >= 19}
@@ -128,13 +145,14 @@ BuildRequires:    speexdsp-devel
 %{?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
@@ -145,13 +163,18 @@ Requires(pre):    /usr/sbin/useradd
 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                skip_post_check_so      libasteriskssl.so.* libasteriskpj.so.*
 
-%define _noautoprovfiles %{_libdir}/asterisk/modules/.*
+%define                _noautoprovfiles        %{_libdir}/asterisk/modules/.*
 
 %description
 Asterisk is an Open Source PBX and telephony development platform that
@@ -498,6 +521,7 @@ Moduł Asteriska wykorzystujący sterowniki dźwięku OSS.
 Summary:       PJSIP Asterisk modules
 Summary(pl.UTF-8):     Moduły Asteriska PJSIP
 Group:         Applications/Networking
+Requires:      pjproject >= 2.6-4
 Requires:      %{name} = %{version}-%{release}
 
 %description pjsip
@@ -731,6 +755,18 @@ 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
@@ -755,10 +791,8 @@ Dokumentacja API Asteriska.
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
-%patch7 -p1
 
 %if %{with opus_vp8}
-%patch8 -p1
 
 cp -a asterisk-opus-%{opus_commit}/codecs/* codecs
 cp -a asterisk-opus-%{opus_commit}/formats/* formats
@@ -766,6 +800,12 @@ cp -a asterisk-opus-%{opus_commit}/res/* rest
 cp -a asterisk-opus-%{opus_commit}/include/asterisk/* include/asterisk
 %endif
 
+%if %{without system_pjproject} && %{with pjsip}
+mkdir externals
+ln -s %{SOURCE9} externals
+md5sum %{SOURCE9} > externals/pjproject-%{pjproject_version}.md5
+%endif
+
 # Fixup makefile so sound archives aren't downloaded/installed
 %{__sed} -i -e 's/^all:.*$/all:/' sounds/Makefile
 %{__sed} -i -e 's/^install:.*$/install:/' sounds/Makefile
@@ -782,6 +822,11 @@ export ASTCFLAGS="%{rpmcflags}"
 export ASTLDFLAGS="%{rpmldflags}"
 export WGET="/bin/true"
 
+%if %{without system_pjproject} && %{with pjsip}
+export EXTERNALS_CACHE_DIR="$PWD/externals"
+export PJPROJECT_CONFIGURE_OPTS="--disable-bcg729"
+%endif
+
 # be sure to invoke ./configure with our flags
 cd menuselect
 %{__aclocal} -I ../autoconf
@@ -796,6 +841,8 @@ cd menuselect
 cd ..
 
 %configure \
+       %{__without_if system_pjproject pjproject-bundled} \
+       --with-unbound \
        %{__without oss SDL_image} \
        %{__without bluetooth bluetooth} \
        --without-gtk2 \
@@ -864,13 +911,21 @@ menuselect/menuselect --disable cdr_radius --disable cel_radius menuselect.makeo
 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
 
@@ -1033,6 +1088,10 @@ find doc/api -name '*.map' -size 0 -delete
 
 %{__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
 
@@ -1073,7 +1132,7 @@ chown -R asterisk:asterisk /var/lib/asterisk
 
 %files
 %defattr(644,root,root,755)
-%doc README *.txt ChangeLog BUGS CREDITS configs
+%doc README*.md *.txt ChangeLog CHANGES BUGS CREDITS configs LICENSE
 %doc doc/asterisk.sgml
 
 %attr(755,root,root) %{_sbindir}/astcanary
@@ -1138,6 +1197,7 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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
@@ -1155,7 +1215,10 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/users.conf
 %attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/vpb.conf
 
-%{_libdir}/libasteriskssl.so.1
+%attr(755,root,root) %{_libdir}/libasteriskssl.so.1
+%if %{without system_pjproject} && %{with pjsip}
+%attr(755,root,root) %{_libdir}/libasteriskpj.so.2
+%endif
 
 %dir %{_libdir}/asterisk
 %dir %{_libdir}/asterisk/modules
@@ -1165,6 +1228,7 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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
@@ -1211,6 +1275,8 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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_stream_echo.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
@@ -1238,7 +1304,6 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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
@@ -1348,6 +1413,7 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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
@@ -1361,9 +1427,11 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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
+#%attr(755,root,root) %{_libdir}/asterisk/modules/res_sdp_translator_pjmedia.so
 %attr(755,root,root) %{_libdir}/asterisk/modules/res_security_log.so
 %attr(755,root,root) %{_libdir}/asterisk/modules/res_smdi.so
 %attr(755,root,root) %{_libdir}/asterisk/modules/res_sorcery_astdb.so
@@ -1407,6 +1475,8 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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
 
@@ -1426,6 +1496,9 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %files devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libasteriskssl.so
+%if %{without system_pjproject} && %{with pjsip}
+%attr(755,root,root) %{_libdir}/libasteriskpj.so
+%endif
 %dir %{_includedir}/asterisk
 %{_includedir}/asterisk/*.h
 %{_includedir}/asterisk.h
@@ -1527,6 +1600,7 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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
@@ -1650,7 +1724,6 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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
@@ -1676,7 +1749,6 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_sips_contact.so
 %attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip.so
 %attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_t38.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_transport_management.so
 %attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_transport_websocket.so
 %attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_xpidf_body_generator.so
 %endif
@@ -1726,6 +1798,7 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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}
@@ -1781,3 +1854,11 @@ chown -R asterisk:asterisk /var/lib/asterisk
 %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
This page took 0.103893 seconds and 4 git commands to generate.