packages: jstun/jstun.spec, jstun/jstun.init (NEW), jstun/jstun.sh (NEW), j...
pawelz
pawelz at pld-linux.org
Fri Feb 25 23:27:51 CET 2011
Author: pawelz Date: Fri Feb 25 22:27:51 2011 GMT
Module: packages Tag: HEAD
---- Log message:
- init script
- better shell wrapper
- rel 1
---- Files affected:
packages/jstun:
jstun.spec (1.2 -> 1.3) , jstun.init (NONE -> 1.1) (NEW), jstun.sh (NONE -> 1.1) (NEW), jstun.sysconfig (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/jstun/jstun.spec
diff -u packages/jstun/jstun.spec:1.2 packages/jstun/jstun.spec:1.3
--- packages/jstun/jstun.spec:1.2 Thu Feb 24 21:02:04 2011
+++ packages/jstun/jstun.spec Fri Feb 25 23:27:46 2011
@@ -1,7 +1,4 @@
# $Revision$, $Date$
-# TODO:
-# - init scripts
-#
# Conditional build:
%bcond_without source # don't build source jar
@@ -11,11 +8,14 @@
Summary(pl.UTF-8): Serwer STUN napisany w języku Java.
Name: jstun
Version: 0.7.3
-Release: 0.1
+Release: 1
License: GPL v2 or Apache v2
Group: Development/Languages/Java
Source0: http://jstun.javawi.de/%{name}-%{version}.src.tar.gz
# Source0-md5: 0e2e0c5d52ba339a33472fc3a492e96d
+Source1: %{name}.sysconfig
+Source2: %{name}.init
+Source3: %{name}.sh
URL: http://jstun.javawi.de
BuildRequires: ant
BuildRequires: jar
@@ -25,9 +25,12 @@
%if %{with source}
BuildRequires: rpmbuild(macros) >= 1.555
%endif
+BuildRequires: rpmbuild(macros) >= 1.228
BuildRequires: sed >= 4.0
+Requires(post,preun): /sbin/chkconfig
Requires: java-slf4j
Requires: jpackage-utils
+Requires: rc-scripts
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -58,16 +61,6 @@
%prep
%setup -q -n STUN
-cat > jstun.sh << '__EOF__'
-#!/bin/sh
-
-. %{_datadir}/java-utils/java-functions
-
-CLASSPATH=$(build-classpath jstun slf4j-api slf4j-jdk14)
-MAIN_CLASS=de.javawi.jstun.test.demo.StunServer
-run ${1:+"$@"}
-__EOF__
-
%build
export JAVA_HOME="%{java_home}"
@@ -88,6 +81,9 @@
install -d $RPM_BUILD_ROOT%{_javadir}
install -d $RPM_BUILD_ROOT%{_sbindir}
+install -d $RPM_BUILD_ROOT/etc/sysconfig
+install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
+
# jars
cp -a target/%{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
@@ -96,15 +92,31 @@
install -d $RPM_BUILD_ROOT%{_javasrcdir}
cp -a %{name}.src.jar $RPM_BUILD_ROOT%{_javasrcdir}/%{name}.src.jar
-install jstun.sh $RPM_BUILD_ROOT%{_sbindir}/jstun
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+install %{SOURCE3} $RPM_BUILD_ROOT%{_sbindir}/jstun
+
%clean
rm -rf $RPM_BUILD_ROOT
+%post
+/sbin/chkconfig --add %{name}
+%service %{name} restart
+
+%preun
+if [ "$1" = "0" ]; then
+ %service -q %{name} stop
+ /sbin/chkconfig --del %{name}
+fi
+
+
%files
%defattr(644,root,root,755)
%{_javadir}/%{name}.jar
%{_javadir}/%{name}-%{version}.jar
%attr(755,root,root) %{_sbindir}/jstun
+%attr(754,root,root) /etc/rc.d/init.d/%{name}
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
%if %{with source}
%files source
@@ -118,6 +130,11 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.3 2011/02/25 22:27:46 pawelz
+- init script
+- better shell wrapper
+- rel 1
+
Revision 1.2 2011/02/24 20:02:04 pawelz
- shell wrapper
================================================================
Index: packages/jstun/jstun.init
diff -u /dev/null packages/jstun/jstun.init:1.1
--- /dev/null Fri Feb 25 23:27:51 2011
+++ packages/jstun/jstun.init Fri Feb 25 23:27:46 2011
@@ -0,0 +1,110 @@
+#!/bin/sh
+#
+# jstun Java based STUN server.
+#
+# chkconfig: 345 89 11
+#
+# description: jstun Java based STUN server.
+#
+# processname: jstun
+# config:
+# pidfile: /var/run/jstun.pid
+#
+# $Id$
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+ msg_network_down "jstun"
+ exit 1
+ fi
+else
+ exit 0
+fi
+
+STUN_PORT1=3478
+STUN_PORT2=3479
+
+# Get service config - may override defaults
+[ -f /etc/sysconfig/jstun ] && . /etc/sysconfig/jstun
+
+ARGS="$STUN_PORT1 $STUN_IPADDRESS1 $STUN_PORT2 $STUN_IPADDRESS2"
+
+start() {
+ # Check if the service is already running?
+ if [ -f /var/lock/subsys/jstun ]; then
+ msg_already_running "jstun"
+ return
+ fi
+
+ msg_starting "jstun"
+ daemon /usr/sbin/jstun --daemon --pidfile=/var/run/jstun.pid $ARGS
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/jstun
+}
+
+stop() {
+ if [ ! -f /var/lock/subsys/jstun ]; then
+ msg_not_running "jstun"
+ return
+ fi
+
+ # Stop daemons.
+ msg_stopping "jstun"
+ PID=/var/run/jstun.pid
+ killproc --pidfile /var/run/jstun.pid jstun -TERM
+ wait $(cat /var/run/jstun.pid)
+ rm -f /var/lock/subsys/jstun
+}
+
+condrestart() {
+ if [ ! -f /var/lock/subsys/jstun ]; then
+ msg_not_running "jstun"
+ RETVAL=$1
+ return
+ fi
+
+ stop
+ sleep 1
+ start
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ sleep 1
+ start
+ ;;
+ try-restart)
+ condrestart 0
+ ;;
+ reload)
+ reload
+ ;;
+ force-reload)
+ condrestart 7
+ ;;
+ status)
+ status jstun
+ RETVAL=$?
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}"
+ exit 3
+esac
+
+exit $RETVAL
================================================================
Index: packages/jstun/jstun.sh
diff -u /dev/null packages/jstun/jstun.sh:1.1
--- /dev/null Fri Feb 25 23:27:51 2011
+++ packages/jstun/jstun.sh Fri Feb 25 23:27:46 2011
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+help() {
+cat << __EOT__
+Usage: jstun [--daemon] [--pidfile=FILE] PORT1 IP1 PORT2 IP2
+__EOT__
+}
+
+while [ "$1" ]; do
+ case "$1" in
+ --daemon)
+ DAEMONIZE="Yes, please do."
+ ;;
+ --help)
+ help
+ exit
+ ;;
+ --pidfile=*)
+ PIDFILE=${1#--pidfile=}
+ ;;
+ --*)
+ echo "jstun: invalid option '$1'." >&2
+ help
+ exit 1
+ ;;
+ *)
+ ARGV="$ARGV $1"
+ ;;
+ esac
+ shift
+done
+
+. /usr/share/java-utils/java-functions
+
+CLASSPATH=$(build-classpath jstun slf4j-api slf4j-jdk14)
+MAIN_CLASS=de.javawi.jstun.test.demo.StunServer
+
+if [ "$DAEMONIZE" ]; then
+ PIDFILE=${PIDFILE:-"$(mktemp)"}
+ (
+ trap 'pid=$(cat '$PIDFILE' 2>/dev/null); [ "$pid" ] && kill $pid' TERM INT EXIT
+ [ "$PIDFILE" ] && echo '$$' > $PIDFILE
+ set_javacmd
+ $JAVACMD -classpath $CLASSPATH $MAIN_CLASS $ARGV &
+ PID=$!
+ echo $PID > $PIDFILE
+ wait $PID
+ rm $PIDFILE
+ ) &
+else
+ run ${1:+"$@"}
+fi
================================================================
Index: packages/jstun/jstun.sysconfig
diff -u /dev/null packages/jstun/jstun.sysconfig:1.1
--- /dev/null Fri Feb 25 23:27:52 2011
+++ packages/jstun/jstun.sysconfig Fri Feb 25 23:27:46 2011
@@ -0,0 +1,6 @@
+# You need to public IP addresses
+STUN_IPADDRESS1=x.x.x.x
+STUN_IPADDRESS2=y.y.y.y
+
+# STUN_PORT1=3478
+# STUN_PORT2=3479
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/jstun/jstun.spec?r1=1.2&r2=1.3&f=u
More information about the pld-cvs-commit
mailing list