aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-openmoko/openmoko-gsmd
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@freyther.de>2012-06-13 16:47:51 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2012-07-09 10:07:46 +0200
commitc1625ee2848ee500d0fa2655876fdb16ddaf5dd3 (patch)
tree5d6d82a5fb796817af4ef6708163bd0615375b55 /recipes-openmoko/openmoko-gsmd
parent4fed144378a38115805f986c56d883763f6dab79 (diff)
openmoko-gsmd: Package the cell_log separately and respawn
Diffstat (limited to 'recipes-openmoko/openmoko-gsmd')
-rw-r--r--recipes-openmoko/openmoko-gsmd/files/cell-log37
-rw-r--r--recipes-openmoko/openmoko-gsmd/files/gsmd2
-rw-r--r--recipes-openmoko/openmoko-gsmd/files/gsmd-respawn.sh9
-rw-r--r--recipes-openmoko/openmoko-gsmd/openmoko-gsmd_git.bb17
4 files changed, 61 insertions, 4 deletions
diff --git a/recipes-openmoko/openmoko-gsmd/files/cell-log b/recipes-openmoko/openmoko-gsmd/files/cell-log
new file mode 100644
index 0000000..0da23a6
--- /dev/null
+++ b/recipes-openmoko/openmoko-gsmd/files/cell-log
@@ -0,0 +1,37 @@
+#! /bin/sh
+#
+# cell-log This shell script starts and stops cell-log.
+#
+# chkconfig: 345 90 40
+# description: Cell-log monitors cell in the neighborhood.
+# processname: cell_log
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+case "$1" in
+ start)
+ echo -n "Starting cell-log: "
+ start-stop-daemon -S -b -x /etc/gsmd-respawn.sh /usr/bin/cell_log
+
+ if [ $? = 0 ]; then
+ echo "cell-log"
+ else
+ echo "(failed.)"
+ fi
+ ;;
+ stop)
+ echo -n "Stopping GSM daemon: "
+ start-stop-daemon -K -x /usr/bin/cell_log
+ echo "cell-log."
+ ;;
+ restart|force-reload)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: /etc/init.d/cell-log {start|stop|restart|force-reload}"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/recipes-openmoko/openmoko-gsmd/files/gsmd b/recipes-openmoko/openmoko-gsmd/files/gsmd
index dc10e63..c135e1f 100644
--- a/recipes-openmoko/openmoko-gsmd/files/gsmd
+++ b/recipes-openmoko/openmoko-gsmd/files/gsmd
@@ -19,7 +19,7 @@ case "$1" in
[ -n "$GSM_RES" ] && ( echo "0" >$GSM_RES; sleep 2 )
echo -n "Starting GSM daemon: "
- start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS -d -l syslog
+ start-stop-daemon -S -b -x /etc/gsmd-respawn.sh /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS -l syslog
if [ $? = 0 ]; then
echo "gsmd."
diff --git a/recipes-openmoko/openmoko-gsmd/files/gsmd-respawn.sh b/recipes-openmoko/openmoko-gsmd/files/gsmd-respawn.sh
new file mode 100644
index 0000000..d85dbb2
--- /dev/null
+++ b/recipes-openmoko/openmoko-gsmd/files/gsmd-respawn.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+while true;
+do
+ echo "Restarting not dealing well with spaces.."
+ (exec $*) || true
+ sleep 10s
+done
+
diff --git a/recipes-openmoko/openmoko-gsmd/openmoko-gsmd_git.bb b/recipes-openmoko/openmoko-gsmd/openmoko-gsmd_git.bb
index 68477bc..a2479cb 100644
--- a/recipes-openmoko/openmoko-gsmd/openmoko-gsmd_git.bb
+++ b/recipes-openmoko/openmoko-gsmd/openmoko-gsmd_git.bb
@@ -9,11 +9,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
# Fork with wavecom support
SRC_URI = "git://git.gnumonks.org/openmoko-gsmd.git;branch=master \
file://gsmd \
+ file://cell-log \
+ file://gsmd-respawn.sh \
file://default"
SRCREV = "28e25ae42da7d65face9ad2472075f7c4fc87e92"
S = "${WORKDIR}/git"
-PR = "r8"
+PR = "r11.2"
inherit autotools pkgconfig update-rc.d
@@ -21,17 +23,24 @@ inherit autotools pkgconfig update-rc.d
# handle update-rc.d RDEPENDS_${PN} manually, we don't need it on
# anything but gsmd
-INITSCRIPT_NAME = "gsmd"
-INITSCRIPT_PARAMS = "defaults 35"
+INITSCRIPT_PACKAGES = "${PN} ${PN}-tools-cell-log"
+INITSCRIPT_NAME_${PN} = "gsmd"
+INITSCRIPT_PARAMS_${PN} = "defaults 35"
+
+INITSCRIPT_NAME_${PN}-tools-cell-log = "cell-log"
+INITSCRIPT_PARAMS_${PN}-tools-cell-log = "defaults 40"
do_install_append() {
install -d ${D}/${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/gsmd ${D}/${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/cell-log ${D}/${sysconfdir}/init.d/
install -d ${D}/${sysconfdir}/default
install ${WORKDIR}/default ${D}/${sysconfdir}/default/gsmd
+ install -m 0755 ${WORKDIR}/gsmd-respawn.sh ${D}/${sysconfdir}/
}
PACKAGES =+ "\
+ ${PN}-tools-cell-log \
${PN}-tools \
${PN}-plugins \
${PN}-plugin-machine-generic \
@@ -60,8 +69,10 @@ RDEPENDS_${PN}-plugins = "\
"
RDEPENDS_${PN} += "update-rc.d"
+RDEPENDS_${PN}-tools-cell-log += "update-rc.d ${PN}"
FILES_${PN}-dbg += "${libdir}/gsmd/.debug/*"
+FILES_${PN}-tools-cell-log = "${bindir}/cell_log ${sysconfdir}/cell-log"
FILES_${PN}-tools = "${bindir}/*"
FILES_${PN}-plugins = ""
FILES_${PN}-dev += " ${libdir}/gsmd/*.la "