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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to