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