[oe-commits] org.oe.dev gsmd: rewrite start script, use start-stop-daemon. fixes OM bugs #704, #751

openmoko commit openembedded-commits at lists.openembedded.org
Thu Aug 30 07:00:15 UTC 2007


gsmd: rewrite start script, use start-stop-daemon. fixes OM bugs #704, #751

Author: openmoko at openembedded.org
Branch: org.openembedded.dev
Revision: fa056f4e1e3e3e49a96459c011ccfcb235a4f695
ViewMTN: http://monotone.openembedded.org/revision.psp?id=fa056f4e1e3e3e49a96459c011ccfcb235a4f695
Files:
1
packages/gsm/files/gsmd
packages/gsm/libgsmd_svn.bb
Diffs:

#
# mt diff -r7d0e0dda1833d41fc45440f5824943ab387d0698 -rfa056f4e1e3e3e49a96459c011ccfcb235a4f695
#
# 
# 
# patch "packages/gsm/files/gsmd"
#  from [b9a426f81bcbcf52b88fe0e13f66505d4a8ca216]
#    to [a0900c11652d1a1755019fc170dcdf36658ef086]
# 
# patch "packages/gsm/libgsmd_svn.bb"
#  from [9756c419c7d89327186ad79d5a2bdabac11695b0]
#    to [e45be6172fbb275631f81e60264fcdf723f81df1]
# 
============================================================
--- packages/gsm/files/gsmd	b9a426f81bcbcf52b88fe0e13f66505d4a8ca216
+++ packages/gsm/files/gsmd	a0900c11652d1a1755019fc170dcdf36658ef086
@@ -1,106 +1,49 @@
-#!/bin/sh
+##!/bin/sh
 #
-# gsmd	This shell script starts and stops gsmd.
+# gsmd  This shell script starts and stops gsmd.
 #
 # chkconfig: 345 90 40
 # description: Gsmd manages access to a serial- or USB-connected GSM
 # processname: gsmd
 
-# Source configuration
-. /etc/default/gsmd
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
 
-# Source function library.
-#. /etc/rc.d/init.d/functions
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+[ -f /etc/default/gsmd ] && . /etc/default/gsmd
 
-RETVAL=0
-prog="gsmd"
+case "$1" in
+    start)
+        [ -n $GSM_POW ] && ( echo "0" >$GSM_POW; sleep 1 )
+        [ -n $GSM_POW ] && ( echo "1" >$GSM_POW; sleep 1 )
+        [ -n $GSM_RES ] && ( echo "1" >$GSM_RES; sleep 1 )
+        [ -n $GSM_RES ] && ( echo "0" >$GSM_RES; sleep 2 )
 
-start() {
-	# Hack for broken uboot and/or kernel on the neo1973
-	dmesg -n1
+        echo -n "Starting GSM daemon: "
+        start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS >/tmp/gsm.log 2>&1 &
 
-	if [ -n "${GSM_POW}" ]
-	then
-		if [ -e "${GSM_POW}" ]
-		then
-			echo -n "Powering up GSM device..."
-			echo "1" > ${GSM_POW}
-			sleep 1
-			echo "done"
-		else
-			echo "GSM device not found. Aborting startup"
-			return false
-		fi
-	fi
-	# Start daemons.
-	echo -n "Starting $prog: "
-	# We don't use the daemon function here because of a known bug
-	# in initlog -- it spuriously returns a nonzero status when 
-	# starting daemons that fork themselves.  See
-	# http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=130629
-	# for discussion.  Fortunately:
-	#
-	# 1. gsmd startup can't fail, or at least not in the absence of
-	# much larger resource-exhaustion problems that would be very obvious.
-	#
-	# 2. We don't need all the logging crud that daemon/initlog sets
-	# up -- gsmd does its own syslog calls.
-	#
-	if [ -e "${GSM_DEV}" ]
-	then
-		gsmd -p ${GSM_DEV} ${GSMD_OPTS} >/tmp/gsm.log 2>&1 &
-		echo "success"
-	else
-	    # User needs to symlink ${GPS_DEV} to the right thing
-	    echo "No ${GSM_DEV} device, aborting gsmd startup."
-	fi
-	RETVAL=$?
-	echo
-	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/gsmd
-	return $RETVAL
-}
+        if [ $? = 0 ]; then
+            echo "gsmd."
+        else
+            echo "(failed.)"
+        fi
+        ;;
+    stop)
+        [ -n $GSM_POW ] && echo "0" >$GSM_POW
 
-stop() {
-	# Stop daemons.
-	echo -n "Shutting down $prog: "
-        killall gsmd
-#        killproc gsmd
-	RETVAL=$?
-	echo
-	if [ $RETVAL -eq 0 ]
-	then
-	    rm -f /var/lock/subsys/gsmd;
-	fi
-	return $RETVAL
-}
-
-# See how we were called.
-case "$1" in
-  start)
-	start
-	;;
-  stop)
-	stop
-	;;
-  restart|reload)
-	stop
-	start
-	RETVAL=$?
-	;;
-  condrestart)
-	if [ -f /var/lock/subsys/gsmd ]; then
-	    stop
-	    start
-	    RETVAL=$?
-	fi
-	;;
-  status)
-#	status gsmd
-#	RETVAL=$?
-	;;
-  *)
-	echo "Usage: $0 {start|stop|restart|condrestart|status}"
-	exit 1
+        echo -n "Stopping GSM daemon: "
+        start-stop-daemon -K -x /usr/sbin/gsmd
+        echo "gsmd."
+        ;;
+    restart|force-reload)
+        $0 stop
+        $0 start
+        exit
+        ;;
+    *)
+        echo "Usage: /etc/init.d/apmd {start|stop|restart|force-reload}"
+        exit 1
+        ;;
 esac
 
+exit 0
+
-exit $RETVAL
============================================================
--- packages/gsm/libgsmd_svn.bb	9756c419c7d89327186ad79d5a2bdabac11695b0
+++ packages/gsm/libgsmd_svn.bb	e45be6172fbb275631f81e60264fcdf723f81df1
@@ -1,10 +1,10 @@ PV = "0.1+svn${SRCDATE}"
 DESCRIPTION = "GSM libraries and daemons implementing the 07.10 specification"
 HOMEPAGE = "http://www.openmoko.org"
 LICENSE = "GPL LGPL"
 SECTION = "libs/gsm"
 PROVIDES += "gsmd"
 PV = "0.1+svn${SRCDATE}"
-PR = "r21"
+PR = "r22"
 
 SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \
            file://gsmd \
@@ -46,6 +46,7 @@ RRECOMMENDS_gsmd = "gsmd-plugins"
 
 RDEPENDS_gsmd = "initscripts"
 RRECOMMENDS_gsmd = "gsmd-plugins"
+
 FILES_${PN}-dbg += "${libdir}/gsmd/.debug/*"
 FILES_${PN}-tools = "${bindir}/*"
 FILES_gsmd = "${sbindir}/gsmd ${sysconfdir}"






More information about the Openembedded-commits mailing list