summaryrefslogblamecommitdiff
path: root/coturn.spec
blob: a9879302eb52d17c35e92f2f2e1fb69246a7abc5 (plain) (tree)
1
2
3
4
5
6
7
8






                      
                      






















































































































































                                                                                                                                                                                                  
%bcond_without sqlite
%bcond_with postgresql
%bcond_with mysql
%bcond_with mongodb
%bcond_with redis

Name:          coturn
Version:       4.5.1.1
Release:       1%{?dist}
Summary:       TURN server

License:       BSD
URL:           https://github.com/coturn/coturn
Source0:       https://github.com/coturn/coturn/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source10:      turnserver.sysconfig
Source11:      turnserver.service
Source12:      turnserver-tmpfiles.conf
Patch0:        0000-pkg-config.patch

BuildRequires: gcc
BuildRequires: libevent-devel >= 2.0
BuildRequires: openssl-devel
BuildRequires: systemd-devel
%if %{with sqlite}
BuildRequires: sqlite-devel
%endif
%if %{with postgresql}
BuildRequires: postgresql-devel
%endif
%if %{with mysql}
BuildRequires: mariadb-devel
%endif
%if %{with mongodb}
BuildRequires: mongo-c-driver-devel
%endif
%if %{with redis}
BuildRequires: hiredis-devel
%endif

%description
The TURN Server is a VoIP media traffic NAT traversal server and gateway. It can be used as a general-purpose network traffic TURN server and gateway, too.

%package static
Summary:       ...
%description static
...

%package utils
Summary:       ...
%description utils
...

%package server
Requires(pre): shadow-utils
Summary:       ...
%description server
...

%package examples
Summary:       ...
%description examples
...

%prep
%setup -q
%patch0 -p1

%build
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
TURN_NO_SQLITE=%{!?with_sqlite:1} \
TURN_NO_PQ=%{!?with_postgresql:1} \
TURN_NO_MYSQL=%{!?with_mysql:1} \
TURN_NO_MONGO=%{!?with_mongodb:1} \
TURN_NO_HIREDIS=%{!?with_redis:1} \
./configure \
	--prefix=%{_prefix} \
	--bindir=%{_bindir} \
	--sysconfdir=%{_sysconfdir} \
	--docdir=%{_docdir}/turnserver \
	--datadir=%{_datadir}/turnserver \
	--examplesdir=%{_docdir}/turnserver/examples \
	--includedir=%{_includedir} \
	--libdir=%{_libdir} \
	--libexecdir=%{_libexecdir} \
	--localstatedir=%{_localstatedir} \
	--mandir=%{_datadir} \
	--turndbdir=%{_localstatedir}/lib/turnserver \
	--disable-rpath

make %{?_smp_mflags}


%install
%make_install
rm %{buildroot}%{_docdir}/turnserver/{schema.mongo.sh,schema.sql,schema.stats.redis,schema.userdb.redis}
mv %{buildroot}%{_sysconfdir}/turnserver.conf{.default,}
diff -q %{buildroot}%{_bindir}/{turnserver,turnadmin}
ln -f %{buildroot}%{_bindir}/{turnserver,turnadmin}
%if %{with sqlite}
rm %{buildroot}%{_localstatedir}/lib/turnserver/turndb
%endif

install -Dm0644 %SOURCE10 %{buildroot}%{_sysconfdir}/sysconfig/turnserver 
install -Dm0644 %SOURCE11 %{buildroot}%{_unitdir}/turnserver.service
install -Dm0644 %SOURCE12 %{buildroot}%{_tmpfilesdir}/turnserver.conf

chmod a-x %{buildroot}%{_mandir}/*/*
chmod a-x %{buildroot}%{_libdir}/*.a

%pre server
getent group turnserver >/dev/null 2>&1 || groupadd -r turnserver 2>&1 || :
getent passwd turnserver >/dev/null 2>&1 || useradd -r -l -g turnserver -G turnserver -d %{_localstatedir}/lib/turnserver -s /sbin/nologin -c "coturn TURN server" turnserver >/dev/null 2>&1 || :

%post server
systemd-tmpfiles --create >/dev/null 2>&1 || :
%systemd_post turnserver.service

%preun server
%systemd_preun turnserver.service

%postun server
%systemd_postun turnserver.service

%files static
%{_includedir}/turn
%{_libdir}/libturnclient.a

%files utils
%{_bindir}/turnutils_natdiscovery
%{_bindir}/turnutils_oauth
%{_bindir}/turnutils_peer
%{_bindir}/turnutils_stunclient
%{_bindir}/turnutils_uclient
%{_mandir}/man1/turnutils.1.gz
%{_mandir}/man1/turnutils_natdiscovery.1.gz
%{_mandir}/man1/turnutils_oauth.1.gz
%{_mandir}/man1/turnutils_peer.1.gz
%{_mandir}/man1/turnutils_stunclient.1.gz
%{_mandir}/man1/turnutils_uclient.1.gz

%files server
%attr (0644, root, root) %config(noreplace) %{_sysconfdir}/turnserver.conf
%{_bindir}/turnadmin
%{_bindir}/turnserver
%{_datadir}/turnserver
%{_docdir}/turnserver
%exclude %{_docdir}/turnserver/examples
%{_mandir}/man1/coturn.1.gz
%{_mandir}/man1/turnadmin.1.gz
%{_mandir}/man1/turnserver.1.gz
%attr (0750, turnserver, turnserver) %dir /var/lib/turnserver
%config(noreplace) %{_sysconfdir}/sysconfig/turnserver
%{_unitdir}/turnserver.service
%{_tmpfilesdir}/turnserver.conf

%files examples
%{_docdir}/turnserver/examples