]> git.pld-linux.org Git - packages/asterisk.git/blobdiff - asterisk.spec
- build with libsrtp2
[packages/asterisk.git] / asterisk.spec
index e165ec5e907f3d90eeb8f1b1e4f2355a9ab3ade3..785ce0ba17ef8c3909e11ff7566624a3ebd464bf 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 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.2
+
 %define        opus_commit     a6b9521f10817c1f39f21f90fecd3f00bbb164d0
 
 Summary:       Asterisk PBX
 Summary(pl.UTF-8):     Centralka (PBX) Asterisk
 Name:          asterisk
-Version:       13.15.0
-Release:       2
+Version:       15.6.0
+Release:       4
 License:       GPL v2
 Group:         Applications/System
 Source0:       http://downloads.digium.com/pub/asterisk/releases/%{name}-%{version}.tar.gz
-# Source0-md5: 9f72e200b01e7ccc7e8d44bb5d9ff3c7
+# Source0-md5: 195f02b0c6118852525e027a1a610ea5
 Source1:       %{name}.init
 Source2:       %{name}.sysconfig
 Source3:       %{name}.tmpfiles
@@ -55,15 +68,16 @@ 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
-Patch0:                lua51-path.patch
+Source9:       https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/%{pjproject_version}/pjproject-%{pjproject_version}.tar.bz2
+# Source9-md5: fa3f0bc098c4bff48ddd92db1c016a7a
+Patch0:                lua_versions.patch
 Patch1:                %{name}-ppc.patch
 Patch2:                FHS-paths.patch
 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}
@@ -87,9 +101,10 @@ BuildRequires:      gcc >= 5:3.4
 # TODO: switch to 2.6
 BuildRequires: gmime22-devel
 BuildRequires: iksemel-devel
-BuildRequires: imap-devel
+BuildRequires: imap-devel >= 1:2007f-5
 %{?with_jack:BuildRequires:    jack-audio-connection-kit-devel}
-BuildRequires: jansson-devel
+BuildRequires: jansson-devel >= 2.11-2
+BuildRequires: libatomic-devel
 BuildRequires: libcap-devel
 BuildRequires: libedit-devel
 BuildRequires: libgsm-devel
@@ -103,7 +118,7 @@ BuildRequires:      libvorbis-devel
 BuildRequires: libxml2-devel >= 2.0
 BuildRequires: libxslt-devel
 BuildRequires: lpc10-devel
-BuildRequires: lua51-devel >= 5.1
+BuildRequires: lua53-devel >= 5.3
 #BuildRequires:        mISDNuser-devel < 2
 %{?with_mysql:BuildRequires:   mysql-devel}
 BuildRequires: ncurses-devel
@@ -115,7 +130,9 @@ 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}
+%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,14 +145,15 @@ BuildRequires:    speex-devel
 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: libsrtp2-devel
+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
@@ -146,13 +164,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
@@ -499,6 +522,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
@@ -768,10 +792,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
@@ -779,6 +801,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
@@ -795,6 +823,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
@@ -809,6 +842,9 @@ cd menuselect
 cd ..
 
 %configure \
+       %{__without_if system_pjproject pjproject-bundled} \
+       --without-jansson-bundled \
+       --with-unbound \
        %{__without oss SDL_image} \
        %{__without bluetooth bluetooth} \
        --without-gtk2 \
@@ -1098,7 +1134,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
@@ -1163,6 +1199,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
@@ -1180,7 +1217,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
@@ -1190,6 +1230,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
@@ -1236,6 +1277,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
@@ -1263,8 +1306,7 @@ 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_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
@@ -1373,6 +1415,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
@@ -1386,9 +1429,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
@@ -1453,6 +1498,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
@@ -1554,6 +1602,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
@@ -1702,7 +1751,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
@@ -1752,6 +1800,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}
This page took 0.07464 seconds and 4 git commands to generate.