# Conditional build:
%bcond_without mysql # mysql support
%bcond_without pgsql # PostgreSQL support
+%bcond_without sqlite # Sqlite3 support
%bcond_without odbc # ODBC support
%bcond_without radius # radius support
%bcond_without carrierroute # carrierroute support
%bcond_without memcached # memcached support
%bcond_without microhttpd # httpd support
%bcond_without redis # Redis support
-%bcond_without couchbase # couchbase support
-%bcond_without mongodb # mongodb support
+%bcond_with couchbase # couchbase support
+%bcond_with mongodb # mongodb support
%bcond_with sngtc # Sangoma transcoding module support
+%bcond_without rabbitmq # Rabbit MQ support
Summary: SIP proxy, redirect and registrar server
-Summary(pl.UTF-8): Serwer SIP rejestrujący, przekierowujący i robiący proxy
+Summary(pl.UTF-8): Serwer SIP przekazujący (proxy), przekierowujący i rejestrujący
Name: opensips
-Version: 2.1.0
-Release: 0.3
+Version: 2.4.0
+Release: 2
License: GPL v2
Group: Networking/Daemons
-Source0: http://opensips.org/pub/opensips/%{version}/src/%{name}-%{version}.tar.gz
-# Source0-md5: 68375c1b6cb546ad2c036b5a1c5b31b9
+Source0: http://opensips.org/pub/opensips/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 0aafe11a30d9724784922667fb98b303
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.service
+Patch0: x32.patch
+Patch1: make.patch
URL: http://www.opensips.org/
-%{?with_sngtc:BuildRequires: TODO-SNGTC-BRs}
%{?with_geoip:BuildRequires: GeoIP-devel}
%{?with_osp:BuildRequires: OSPToolkit}
+%{?with_sngtc:BuildRequires: TODO-SNGTC-BRs}
BuildRequires: bison
BuildRequires: curl-devel
BuildRequires: expat-devel
BuildRequires: flex
%{?with_redis:BuildRequires: hiredis-devel}
%{?with_json:BuildRequires: json-c-devel}
-%{?with_couchbase:BuildRequires: libcouchbase-devel}
%{?with_carrierroute:BuildRequires: libconfuse-devel}
+%{?with_couchbase:BuildRequires: libcouchbase-devel}
%{?with_memcached:BuildRequires: libmemcached-devel}
%{?with_microhttpd:BuildRequires: libmicrohttpd-devel}
%{?with_mongodb:BuildRequires: libmongo-client-devel}
%{?with_pgsql:BuildRequires: libpqxx-devel}
BuildRequires: libsctp-devel
+BuildRequires: libuuid-devel
BuildRequires: libxml2-devel
BuildRequires: libxslt-progs
#BuildRequires: lynx
BuildRequires: pcre-devel
BuildRequires: perl-devel
BuildRequires: perl-tools-devel
+%{?with_rabbitmq:BuildRequires: rabbitmq-c-devel}
%{?with_radius:BuildRequires: radiusclient-ng-devel}
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.671
+%{?with_sqlite:BuildRequires: sqlite3-devel}
#BuildRequires: subversion
%{?with_odbc:BuildRequires: unixODBC-devel}
BuildRequires: which
Suggests: python-modules
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-# -fPIC, included in default x32 cflags, crashes our GCC (4.9.2) on
-# one of opensips source files
-%define filterout_c -fPIC
-
# mi_xmlrpc requires xmlrpc-c-devel in version 1.9 only
-# event_rabbitmq requires 'amqp.h'
# cachedb_cassandra requires 'protocol/TBinaryProtocol.h'
# lua: lua.h
-%define exclude_modules mi_xmlrpc db_oracle event_rabbitmq cachedb_cassandra lua
+%define exclude_modules mi_xmlrpc db_oracle cachedb_cassandra lua
%description
OpenSIPS (Open SIP Server) is a mature Open Source implementation of a
and presence services in a highly efficient way, thanks to its
scalable (modular) design.
+%description -l pl.UTF-8
+OpenSIPS (Open SIP Server) to dojrzała, mająca otwarte źródła
+implementacja serwera SIP. OpenSIPS to więcej niż proxy/router SIP,
+jako że zawiera funkcje na poziomie aplikacji. OpenSIPS, jako serwer
+SIP, jest głównym składnikiem dowolnego rozwiązania VoIP opartego na
+SIP. Z bardzo elastycznym i konfigurowalnym silnikiem trasującym,
+łączy usługi głosowe, wideo, komunikatorów oraz obecności w bardzo
+wydajny sposób, dzięki skalowalnej, modularnej budowie.
+
%package mysql
Summary: openSIPS MySQL module
Summary(pl.UTF-8): Moduł MySQL do openSIPS
%description postgres -l pl.UTF-8
Moduł PostgreSQL do openSIPS.
+%package sqlite3
+Summary: openSIPS Sqlite3 module
+Summary(pl.UTF-8): Moduł Sqlite3 do openSIPS
+Group: Networking/Daemons
+Requires: %{name} = %{version}-%{release}
+
+%description sqlite3
+Sqlite3 module for openSIPS.
+
+%description sqlite3 -l pl.UTF-8
+Moduł Sqlite3 do openSIPS.
+
%package json
Summary: openSIPS JSON module
Summary(pl.UTF-8): Moduł JSON do openSIPS
%description json -l pl.UTF-8
Moduł JSON do openSIPS.
+%package cgrates
+Summary: openSIPS CGRateS module
+Summary(pl.UTF-8): Moduł CGRateS do openSIPS
+Group: Networking/Daemons
+Requires: %{name} = %{version}-%{release}
+
+%description cgrates
+CGRateS module for openSIPS.
+
+%description cgrates -l pl.UTF-8
+Moduł CGRateS do openSIPS.
+
%package memcached
Summary: openSIPS memcached module
Summary(pl.UTF-8): Moduł memcached do openSIPS
%description httpd -l pl.UTF-8
Interfejs HTTP do openSIPS.
+%package rabbitmq
+Summary: RabbitMQ interface to openSIPS
+Summary(pl.UTF-8): Interfejs RabbitMQ do openSIPS
+Group: Networking/Daemons
+Requires: %{name} = %{version}-%{release}
+
+%description rabbitmq
+RabbitMQ interface to openSIPS.
+
+%description rabbitmq -l pl.UTF-8
+Interfejs RabbitMQ do openSIPS.
+
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
%build
exclude_modules="%{exclude_modules}"
%if %{without pgsql}
exclude_modules="$exclude_modules db_postgres"
%endif
+%if %{without sqlite}
+exclude_modules="$exclude_modules db_sqlite"
+%endif
%if %{without odbc}
exclude_modules="$exclude_modules db_unixodbc"
%endif
%endif
%if %{without json}
exclude_modules="$exclude_modules json"
+exclude_modules="$exclude_modules cgrates"
%endif
%if %{without memcached}
exclude_modules="$exclude_modules cachedb_memcached"
%if %{without sngtc}
exclude_modules="$exclude_modules sngtc"
%endif
+%if %{without rabbitmq}
+exclude_modules="$exclude_modules rabbitmq"
+%endif
echo "$exclude_modules" > exclude_modules
+LDFLAGS="%{rpmldflags}" \
%{__make} all \
Q= \
exclude_modules="$exclude_modules" \
- prefix="%{_prefix}" \
- cfg-prefix=$RPM_BUILD_ROOT \
- cfg-target=/etc/opensips/ \
+ prefix=%{_prefix} \
+ PREFIX=%{_prefix} \
+ LIBDIR=%{_lib} \
+ cfg_prefix=$RPM_BUILD_ROOT \
+ cfg_target=%{_sysconfdir}/opensips/ \
+ RADIUSCLIENT=RADIUSCLIENT \
CC="%{__cc}" \
CC_EXTRA_OPTS="-I/usr/include/ncurses" \
- PREFIX="%{_prefix}" \
CFLAGS="%{rpmcflags} -Wcast-align"
%install
%{__make} install -j1 \
Q= \
exclude_modules="$exclude_modules" \
- prefix="%{_prefix}" \
- basedir=$RPM_BUILD_ROOT \
- cfg-prefix=$RPM_BUILD_ROOT \
- cfg-target=/etc/opensips/ \
+ prefix=%{_prefix} \
+ PREFIX=%{_prefix} \
+ LIBDIR=%{_lib} \
+ BASEDIR=$RPM_BUILD_ROOT \
+ cfg_prefix=$RPM_BUILD_ROOT \
+cfg_target=%{_sysconfdir}/opensips/ \
INSTALLMIBDIR=$RPM_BUILD_ROOT%{_datadir}/mibs
for i in modules/*; do \
#rm -f seruser.sgml
#cd ../..
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/opensips
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/opensips
-install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/opensips.service
+cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/opensips
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/opensips
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/opensips.service
%clean
rm -rf $RPM_BUILD_ROOT
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/opensips.cfg
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/opensipsctlrc
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/osipsconsolerc
+%dir %attr(700,root,root) %{_sysconfdir}/opensips/tls
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/README
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/ca.conf
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/request.conf
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/user.conf
+%dir %attr(700,root,root) %{_sysconfdir}/opensips/tls/rootCA
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/rootCA/cacert.pem
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/rootCA/index.txt
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/rootCA/serial
+%dir %attr(700,root,root) %{_sysconfdir}/opensips/tls/rootCA/certs
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/rootCA/certs/01.pem
+%dir %attr(700,root,root) %{_sysconfdir}/opensips/tls/rootCA/private
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/rootCA/private/cakey.pem
+%dir %attr(700,root,root) %{_sysconfdir}/opensips/tls/user
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/user/user-calist.pem
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/user/user-cert.pem
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/user/user-cert_req.pem
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opensips/tls/user/user-privkey.pem
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/opensips
%attr(754,root,root) /etc/rc.d/init.d/opensips
%{systemdunitdir}/opensips.service
# explict list here, no globs please (to avoid mistakes)
%attr(755,root,root) %{_libdir}/opensips/modules/acc.so
%attr(755,root,root) %{_libdir}/opensips/modules/alias_db.so
-%attr(755,root,root) %{_libdir}/opensips/modules/auth.so
%attr(755,root,root) %{_libdir}/opensips/modules/auth_aaa.so
%attr(755,root,root) %{_libdir}/opensips/modules/auth_db.so
+%attr(755,root,root) %{_libdir}/opensips/modules/auth.so
%attr(755,root,root) %{_libdir}/opensips/modules/avpops.so
%attr(755,root,root) %{_libdir}/opensips/modules/b2b_entities.so
%attr(755,root,root) %{_libdir}/opensips/modules/b2b_logic.so
%attr(755,root,root) %{_libdir}/opensips/modules/cachedb_sql.so
%attr(755,root,root) %{_libdir}/opensips/modules/call_center.so
%attr(755,root,root) %{_libdir}/opensips/modules/call_control.so
-%attr(755,root,root) %{_libdir}/opensips/modules/compression.so
%attr(755,root,root) %{_libdir}/opensips/modules/cfgutils.so
-%attr(755,root,root) %{_libdir}/opensips/modules/cpl-c.so
+%attr(755,root,root) %{_libdir}/opensips/modules/clusterer.so
+%attr(755,root,root) %{_libdir}/opensips/modules/compression.so
+%attr(755,root,root) %{_libdir}/opensips/modules/cpl_c.so
%attr(755,root,root) %{_libdir}/opensips/modules/db_berkeley.so
%attr(755,root,root) %{_libdir}/opensips/modules/db_cachedb.so
%attr(755,root,root) %{_libdir}/opensips/modules/db_flatstore.so
%attr(755,root,root) %{_libdir}/opensips/modules/dispatcher.so
%attr(755,root,root) %{_libdir}/opensips/modules/diversion.so
%attr(755,root,root) %{_libdir}/opensips/modules/dns_cache.so
-%attr(755,root,root) %{_libdir}/opensips/modules/domain.so
%attr(755,root,root) %{_libdir}/opensips/modules/domainpolicy.so
+%attr(755,root,root) %{_libdir}/opensips/modules/domain.so
%attr(755,root,root) %{_libdir}/opensips/modules/drouting.so
%attr(755,root,root) %{_libdir}/opensips/modules/emergency.so
%attr(755,root,root) %{_libdir}/opensips/modules/enum.so
%attr(755,root,root) %{_libdir}/opensips/modules/event_datagram.so
+%attr(755,root,root) %{_libdir}/opensips/modules/event_flatstore.so
+%attr(755,root,root) %{_libdir}/opensips/modules/event_jsonrpc.so
%attr(755,root,root) %{_libdir}/opensips/modules/event_route.so
+%attr(755,root,root) %{_libdir}/opensips/modules/event_routing.so
+%attr(755,root,root) %{_libdir}/opensips/modules/event_virtual.so
%attr(755,root,root) %{_libdir}/opensips/modules/event_xmlrpc.so
%attr(755,root,root) %{_libdir}/opensips/modules/exec.so
+%attr(755,root,root) %{_libdir}/opensips/modules/fraud_detection.so
+%attr(755,root,root) %{_libdir}/opensips/modules/freeswitch_scripting.so
+%attr(755,root,root) %{_libdir}/opensips/modules/freeswitch.so
%attr(755,root,root) %{_libdir}/opensips/modules/gflags.so
%attr(755,root,root) %{_libdir}/opensips/modules/group.so
-%attr(755,root,root) %{_libdir}/opensips/modules/fraud_detection.so
%attr(755,root,root) %{_libdir}/opensips/modules/identity.so
%attr(755,root,root) %{_libdir}/opensips/modules/imc.so
+%attr(755,root,root) %{_libdir}/opensips/modules/jsonrpc.so
%attr(755,root,root) %{_libdir}/opensips/modules/load_balancer.so
%attr(755,root,root) %{_libdir}/opensips/modules/mangler.so
%attr(755,root,root) %{_libdir}/opensips/modules/mathops.so
%attr(755,root,root) %{_libdir}/opensips/modules/maxfwd.so
%attr(755,root,root) %{_libdir}/opensips/modules/mediaproxy.so
%attr(755,root,root) %{_libdir}/opensips/modules/mi_datagram.so
+%attr(755,root,root) %{_libdir}/opensips/modules/mid_registrar.so
%attr(755,root,root) %{_libdir}/opensips/modules/mi_fifo.so
%attr(755,root,root) %{_libdir}/opensips/modules/mi_json.so
%attr(755,root,root) %{_libdir}/opensips/modules/mi_xmlrpc_ng.so
%attr(755,root,root) %{_libdir}/opensips/modules/msilo.so
-%attr(755,root,root) %{_libdir}/opensips/modules/nat_traversal.so
%attr(755,root,root) %{_libdir}/opensips/modules/nathelper.so
+%attr(755,root,root) %{_libdir}/opensips/modules/nat_traversal.so
%attr(755,root,root) %{_libdir}/opensips/modules/options.so
%attr(755,root,root) %{_libdir}/opensips/modules/path.so
-%attr(755,root,root) %{_libdir}/opensips/modules/pdt.so
%attr(755,root,root) %{_libdir}/opensips/modules/peering.so
%attr(755,root,root) %{_libdir}/opensips/modules/permissions.so
-%attr(755,root,root) %{_libdir}/opensips/modules/pike.so
%attr(755,root,root) %{_libdir}/opensips/modules/pi_http.so
-%attr(755,root,root) %{_libdir}/opensips/modules/presence.so
+%attr(755,root,root) %{_libdir}/opensips/modules/pike.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence_callinfo.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence_dialoginfo.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence_mwi.so
+%attr(755,root,root) %{_libdir}/opensips/modules/presence.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence_xcapdiff.so
%attr(755,root,root) %{_libdir}/opensips/modules/presence_xml.so
+%attr(755,root,root) %{_libdir}/opensips/modules/proto_bin.so
+%attr(755,root,root) %{_libdir}/opensips/modules/proto_hep.so
%attr(755,root,root) %{_libdir}/opensips/modules/proto_sctp.so
%attr(755,root,root) %{_libdir}/opensips/modules/proto_tls.so
%attr(755,root,root) %{_libdir}/opensips/modules/proto_ws.so
-%attr(755,root,root) %{_libdir}/opensips/modules/pua.so
+%attr(755,root,root) %{_libdir}/opensips/modules/proto_wss.so
%attr(755,root,root) %{_libdir}/opensips/modules/pua_bla.so
%attr(755,root,root) %{_libdir}/opensips/modules/pua_dialoginfo.so
%attr(755,root,root) %{_libdir}/opensips/modules/pua_mi.so
+%attr(755,root,root) %{_libdir}/opensips/modules/pua.so
%attr(755,root,root) %{_libdir}/opensips/modules/pua_usrloc.so
%attr(755,root,root) %{_libdir}/opensips/modules/python.so
%attr(755,root,root) %{_libdir}/opensips/modules/qos.so
%attr(755,root,root) %{_libdir}/opensips/modules/rr.so
%attr(755,root,root) %{_libdir}/opensips/modules/rtpengine.so
%attr(755,root,root) %{_libdir}/opensips/modules/rtpproxy.so
-%attr(755,root,root) %{_libdir}/opensips/modules/seas.so
%attr(755,root,root) %{_libdir}/opensips/modules/script_helper.so
+%attr(755,root,root) %{_libdir}/opensips/modules/seas.so
%attr(755,root,root) %{_libdir}/opensips/modules/signaling.so
%attr(755,root,root) %{_libdir}/opensips/modules/sipcapture.so
+%attr(755,root,root) %{_libdir}/opensips/modules/sip_i.so
%attr(755,root,root) %{_libdir}/opensips/modules/sipmsgops.so
+%attr(755,root,root) %{_libdir}/opensips/modules/siprec.so
%attr(755,root,root) %{_libdir}/opensips/modules/siptrace.so
%attr(755,root,root) %{_libdir}/opensips/modules/sl.so
%attr(755,root,root) %{_libdir}/opensips/modules/sms.so
%attr(755,root,root) %{_libdir}/opensips/modules/speeddial.so
+%attr(755,root,root) %{_libdir}/opensips/modules/sql_cacher.so
%attr(755,root,root) %{_libdir}/opensips/modules/sst.so
%attr(755,root,root) %{_libdir}/opensips/modules/statistics.so
%attr(755,root,root) %{_libdir}/opensips/modules/stun.so
%attr(755,root,root) %{_libdir}/opensips/modules/textops.so
+%attr(755,root,root) %{_libdir}/opensips/modules/tls_mgm.so
%attr(755,root,root) %{_libdir}/opensips/modules/tm.so
%attr(755,root,root) %{_libdir}/opensips/modules/topology_hiding.so
-%attr(755,root,root) %{_libdir}/opensips/modules/uac.so
%attr(755,root,root) %{_libdir}/opensips/modules/uac_auth.so
%attr(755,root,root) %{_libdir}/opensips/modules/uac_redirect.so
%attr(755,root,root) %{_libdir}/opensips/modules/uac_registrant.so
+%attr(755,root,root) %{_libdir}/opensips/modules/uac.so
%attr(755,root,root) %{_libdir}/opensips/modules/uri.so
%attr(755,root,root) %{_libdir}/opensips/modules/userblacklist.so
%attr(755,root,root) %{_libdir}/opensips/modules/usrloc.so
-%attr(755,root,root) %{_libdir}/opensips/modules/xcap.so
%attr(755,root,root) %{_libdir}/opensips/modules/xcap_client.so
+%attr(755,root,root) %{_libdir}/opensips/modules/xcap.so
+%attr(755,root,root) %{_libdir}/opensips/modules/xml.so
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/db_berkeley
%{_datadir}/%{name}/dbtext
%{_datadir}/%{name}/menuconfig_templates
+%{_datadir}/%{name}/pi_http
%{_mandir}/man*/*
%files xmpp
%{_datadir}/%{name}/postgres
%endif
+%if %{with sqlite}
+%files sqlite3
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/opensips/modules/db_sqlite.so
+%{_datadir}/opensips/sqlite
+%endif
+
%if %{with json}
%files json
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/opensips/modules/json.so
%endif
+%if %{with json}
+%files cgrates
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/opensips/modules/cgrates.so
+%endif
+
%if %{with memcached}
%files memcached
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/opensips/modules/db_perlvdb.so
%attr(755,root,root) %{_libdir}/opensips/modules/perl.so
+%{_libdir}/opensips/perl
%files -n mibs-%{name}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/opensips/modules/httpd.so
%attr(755,root,root) %{_libdir}/opensips/modules/mi_http.so
%endif
+
+%if %{with rabbitmq}
+%files rabbitmq
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/opensips/modules/event_rabbitmq.so
+%attr(755,root,root) %{_libdir}/opensips/modules/rabbitmq.so
+%endif