summaryrefslogtreecommitdiff
path: root/coturn.spec
diff options
context:
space:
mode:
Diffstat (limited to 'coturn.spec')
-rw-r--r--coturn.spec159
1 files changed, 159 insertions, 0 deletions
diff --git a/coturn.spec b/coturn.spec
new file mode 100644
index 0000000..f4b296b
--- /dev/null
+++ b/coturn.spec
@@ -0,0 +1,159 @@
+%bcond_without sqlite
+%bcond_with postgresql
+%bcond_with mysql
+%bcond_with mongodb
+%bcond_with redis
+
+Name: coturn
+Version: 4.5.0.8
+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