Browse Source

new package

master
parent
commit
28ebef254f
  1. 78
      coturn/coturn.patch
  2. 141
      coturn/coturn.spec
  3. 57
      coturn/rc.coturn
  4. 30
      coturn/turnserver.conf

78
coturn/coturn.patch

@ -0,0 +1,78 @@
Index: configure
--- configure.orig 2019-03-02 22:06:19.000000000 +0100
+++ configure 2020-01-06 10:31:05.733453000 +0100
@@ -817,7 +817,7 @@
###########################
GNUOSCFLAGS="-g ${GNUOSCFLAGS}"
-GNUOSCFLAGS="${GNUOSCFLAGS} -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual"
+GNUOSCFLAGS="${GNUOSCFLAGS} -Wno-deprecated-declarations"
GNUOSCFLAGS="${GNUOSCFLAGS}"
${CC} -Werror ${GNUOSCFLAGS} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
@@ -966,6 +966,31 @@
exit
fi
+if [ -z "${TURN_NO_TLS}" ] ; then
+
+ testlib event_openssl
+ ER=$?
+ if ! [ ${ER} -eq 0 ] ; then
+ ${ECHO_CMD} "Libevent2 openssl found."
+ else
+ ${ECHO_CMD} "ERROR: Libevent2 development libraries are not compiled with OpenSSL support."
+ ${ECHO_CMD} "TLS will be disabled."
+ TURN_NO_TLS="-DTURN_NO_TLS"
+ fi
+
+else
+ TURN_NO_TLS="-DTURN_NO_TLS"
+fi
+
+testlib event_pthreads
+ER=$?
+if ! [ ${ER} -eq 0 ] ; then
+ ${ECHO_CMD} "Libevent2 pthreads found."
+else
+ ${ECHO_CMD} "ERROR: Libevent2 development libraries are not compiled with threads support."
+ exit
+fi
+
testlib event_core
ER=$?
if ! [ ${ER} -eq 0 ] ; then
@@ -994,31 +1019,8 @@
exit
fi
fi
-
-if [ -z "${TURN_NO_TLS}" ] ; then
-
- testlib event_openssl
- ER=$?
- if ! [ ${ER} -eq 0 ] ; then
- ${ECHO_CMD} "Libevent2 openssl found."
- else
- ${ECHO_CMD} "ERROR: Libevent2 development libraries are not compiled with OpenSSL support."
- ${ECHO_CMD} "TLS will be disabled."
- TURN_NO_TLS="-DTURN_NO_TLS"
- fi
-
-else
- TURN_NO_TLS="-DTURN_NO_TLS"
-fi
-
-testlib event_pthreads
-ER=$?
-if ! [ ${ER} -eq 0 ] ; then
- ${ECHO_CMD} "Libevent2 pthreads found."
-else
- ${ECHO_CMD} "ERROR: Libevent2 development libraries are not compiled with threads support."
- exit
-fi
+testlib event_core
+testlib event
###########################
# Test SQLite setup

141
coturn/coturn.spec

@ -0,0 +1,141 @@
##
## coturn.spec -- OpenPKG RPM Package Specification
## Copyright (c) 2000-2020 OpenPKG Project <http://openpkg.org/>
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package information
Name: coturn
Summary: TURN/STUN Server
URL: https://github.com/coturn/coturn/
Vendor: Oleg Moskalenko
Packager: OpenPKG Project
Distribution: OpenPKG Community
Class: EVAL
Group: Networking
License: BSD
Version: 4.5.1.1
Release: 20200106
# list of sources
Source0: https://github.com/coturn/coturn/archive/%{version}.tar.gz
Source1: turnserver.conf
Source2: rc.coturn
Patch0: coturn.patch
# build information
BuildPreReq: OpenPKG, openpkg >= 20140101, gcc, make
PreReq: OpenPKG, openpkg >= 20140101, x509
BuildPreReq: openssl, sqlite, libevent
PreReq: openssl, sqlite, libevent
%description
CoTURN is a combined TURN, STUN and ICE server providing a network
traffic NAT traversal server and gateway.
%track
prog coturn = {
version = %{version}
url = https://github.com/coturn/coturn/releases
regex = (\d+\.\d+\.\d+\.\d+)\.tar\.gz
}
%prep
%setup -q
%patch -p0
%build
# configure program
CC="%{l_cc}" \
CFLAGS="%{l_cflags -O}" \
CPPFLAGS="%{l_cppflags}" \
LDFLAGS="%{l_ldflags} -lssl -lcrypto" \
./configure \
--prefix=%{l_prefix} \
--disable-shared \
--disable-nls
# build program
%{l_make} %{l_mflags -O}
%install
# install program
%{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{l_prefix}
# strip down installation
strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/turnserver.conf.default
rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir
rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/doc
rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/examples
rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/db
# install default configuration
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/coturn
%{l_shtool} install -c -m 644 %{l_value -s -a} \
%{SOURCE turnserver.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/coturn/
# install run-command script
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
%{l_shtool} install -c -m 644 %{l_value -s -a} \
%{SOURCE rc.coturn} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# create run-time directories
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/var/coturn/log \
$RPM_BUILD_ROOT%{l_prefix}/var/coturn/run \
$RPM_BUILD_ROOT%{l_prefix}/var/coturn/db
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%config %{l_prefix}/etc/coturn/*' \
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/coturn/*'
%files -f files
%clean
%post
if [ $1 -eq 1 ]; then
# after initial installation, create database
$RPM_INSTALL_PREFIX/bin/sqlite $RPM_INSTALL_PREFIX/var/coturn/db/turnserver.db \
<$RPM_INSTALL_PREFIX/share/turnserver/schema.sql
chmod 600 $RPM_INSTALL_PREFIX/var/coturn/db/turnserver.db
chown %{l_rusr}:%{l_rgrp} $RPM_INSTALL_PREFIX/var/coturn/db/turnserver.db
elif [ $1 -eq 2 ]; then
# after upgrade, restart service
eval `%{l_rc} coturn status 2>/dev/null`
[ ".$coturn_active" = .yes ] && %{l_rc} coturn restart
fi
exit 0
%preun
if [ $1 -eq 0 ]; then
# before erase, stop service and remove log files
%{l_rc} coturn stop 2>/dev/null
rm -rf $RPM_INSTALL_PREFIX/var/coturn/log/* >/dev/null 2>&1 || true
rm -rf $RPM_INSTALL_PREFIX/var/coturn/run/* >/dev/null 2>&1 || true
rm -rf $RPM_INSTALL_PREFIX/var/coturn/db/* >/dev/null 2>&1 || true
fi
exit 0

57
coturn/rc.coturn

@ -0,0 +1,57 @@
#!@l_prefix@/bin/openpkg rc
##
## rc.coturn -- Run-Commands
##
%config
coturn_enable="$openpkg_rc_def"
coturn_flags="--prod"
coturn_log_prolog="true"
coturn_log_epilog="true"
coturn_log_numfiles="10"
coturn_log_minsize="1M"
coturn_log_complevel="9"
%common
coturn_cfgfile="@l_prefix@/etc/coturn/turnserver.conf"
coturn_pidfile="@l_prefix@/var/coturn/run/turnserver.pid"
coturn_logfile="@l_prefix@/var/coturn/log/turnserver.log"
coturn_signal () {
[ -f $coturn_pidfile ] && kill -$1 `cat $coturn_pidfile`
}
%status -u @l_rusr@ -o
coturn_usable="unknown"
coturn_active="no"
rcService coturn enable yes && \
coturn_signal 0 && coturn_active="yes"
echo "coturn_enable=\"$coturn_enable\""
echo "coturn_usable=\"$coturn_usable\""
echo "coturn_active=\"$coturn_active\""
%start -u @l_rusr@
rcService coturn enable yes || exit 0
rcService coturn active yes && exit 0
@l_prefix@/bin/turnserver -c $coturn_cfgfile --daemon
%stop -u @l_rusr@
rcService coturn enable yes || exit 0
rcService coturn active no && exit 0
coturn_signal TERM
sleep 2
rm -f $coturn_pidfile >/dev/null 2>&1 || true
%restart -u @l_rusr@
rcService coturn enable yes || exit 0
rcService coturn active no && exit 0
rc coturn stop start
%daily -u @l_susr@
rcService coturn enable yes || exit 0
shtool rotate -f \
-n ${coturn_log_numfiles} -s ${coturn_log_minsize} -d \
-z ${coturn_log_complevel} -m 664 -o @l_rusr@ -g @l_rgrp@ \
-P "${coturn_log_prolog}" \
-E "${coturn_log_epilog}; rc coturn restart" \
$coturn_logfile

30
coturn/turnserver.conf

@ -0,0 +1,30 @@
##
## turnserver.conf -- CoTURN Server Configuration
##
proc-user=@l_rusr@
proc-group=@l_rgrp@
listening-ip=127.0.0.1
listening-port=3478
cli-ip=127.0.0.1
cli-port=5766
no-multicast-peers
cert=@l_prefix@/etc/x509/example-server.crt
pkey=@l_prefix@/etc/x509/example-server.key
no-auth
userdb=@l_prefix@/var/coturn/db/turnserver.db
realm=example.com
pidfile=@l_prefix@/var/coturn/run/turnserver.pid
log-file=@l_prefix@/var/coturn/log/turnserver.log
no-stdout-log
simple-log
verbose
#Verbose
Loading…
Cancel
Save