libgsmd: merge with openmoko svn, but put the device-specific initscript in a device...
authorKoen Kooi <koen@openembedded.org>
Sun, 18 Mar 2007 08:28:38 +0000 (08:28 +0000)
committerKoen Kooi <koen@openembedded.org>
Sun, 18 Mar 2007 08:28:38 +0000 (08:28 +0000)
packages/gsm/files/.mtn2git_empty [new file with mode: 0644]
packages/gsm/files/fic-gta01/.mtn2git_empty [new file with mode: 0644]
packages/gsm/files/fic-gta01/gsmd [new file with mode: 0644]
packages/gsm/libgsmd_svn.bb

diff --git a/packages/gsm/files/.mtn2git_empty b/packages/gsm/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/gsm/files/fic-gta01/.mtn2git_empty b/packages/gsm/files/fic-gta01/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/gsm/files/fic-gta01/gsmd b/packages/gsm/files/fic-gta01/gsmd
new file mode 100644 (file)
index 0000000..f5e54dc
--- /dev/null
@@ -0,0 +1,109 @@
+#!/bin/sh
+#
+# 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
+
+# If you must specify special options, uncomment and modify the next line
+GSMD_OPTS="-s 115200 -F"
+# If your GSM device needs to be powered up, uncommend and modify the next line
+GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on"
+GSM_DEV="/dev/ttySAC0"
+
+# Source function library.
+#. /etc/rc.d/init.d/functions
+
+RETVAL=0
+prog="gsmd"
+
+start() {
+       # FIXME add check whether GSM_POW is set at all, otherwise don't try to power on
+       # Power on GSM device
+       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
+       # 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 "${GPS_DEV}" ]
+       then
+               chown uucp.uucp ${GSM_DEV}
+               mkdir -fp /usr/spool/uucp
+               chown uucp.uucp /usr/spool/uucp
+               stty -F /dev/ttySAC0 crtscts
+               gsmd -p ${GPS_DEV} ${GPSD_OPTS}
+               echo "success"
+       else
+           # User needs to symlink ${GPS_DEV} to the right thing
+           echo "No ${GPS_DEV} device, aborting gsmd startup."
+       fi
+       RETVAL=$?
+       echo
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gsmd
+       return $RETVAL
+}
+
+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
+esac
+
+exit $RETVAL
index 860adf3..99a0843 100644 (file)
@@ -4,21 +4,30 @@ LICENSE = "GPL"
 SECTION = "libs/gsm"
 PROVIDES += "gsmd"
 PV = "0.0+svn${SRCDATE}"
-PR = "r2"
+PR = "r3"
 
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http"
+SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \
+           file://gsmd"
 S = "${WORKDIR}/gsm"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig update-rc.d
+
+INITSCRIPT_NAME = "gsmd"
+INITSCRIPT_PARAMS = "defaults 35"
 
 do_stage() {
     autotools_stage_all
 }
 
+do_install_append() {
+       install -d ${D}/${sysconfdir}/init.d
+       install -m 0755 ${WORKDIR}/gsmd ${D}/${sysconfdir}/init.d/
+}
+
 PACKAGES =+ "${PN}-tools gsmd"
 RDEPENDS_${PN} = "gsmd"
 FILES_${PN}-tools = "${bindir}/*"
-FILES_gsmd = "${sbindir}/gsmd"
+FILES_gsmd = "${sbindir}/gsmd ${sysconfdir}"
 
 PACKAGES_DYNAMIC = "libgsmd* gsmd"