diff options
author | Matthias Hentges <oe@hentges.net> | 2008-01-04 12:56:35 +0000 |
---|---|---|
committer | Matthias Hentges <oe@hentges.net> | 2008-01-04 12:56:35 +0000 |
commit | aa96561f14f0193cce46eb5691880fb2905f6593 (patch) | |
tree | 222ef375093d3acc93497a2f8d7abff1f171eee9 /packages/gpsd | |
parent | 5ef71fe525b1dfe5b307a62dd5fef10a16c854c7 (diff) |
gpsd: As discssed on the ML:
- Add a gpsd-conf package
- gpe-conf installs /etc/defaults/gpsd and /etc/init.d/gps-hardware
via update-alternatives
- A sample machine-specific -conf package for fix-gta01 is provided.
- Constructive comments welcome
Diffstat (limited to 'packages/gpsd')
-rw-r--r-- | packages/gpsd/files/fic-gta01/gps-hardware | 41 | ||||
-rwxr-xr-x | packages/gpsd/files/fic-gta01/gpsd | 105 | ||||
-rw-r--r-- | packages/gpsd/files/gps-hardware | 2 | ||||
-rwxr-xr-x | packages/gpsd/files/gpsd | 11 | ||||
-rw-r--r-- | packages/gpsd/gpsd.inc | 24 | ||||
-rw-r--r-- | packages/gpsd/gpsd_2.28.bb | 2 | ||||
-rw-r--r-- | packages/gpsd/gpsd_2.34.bb | 2 | ||||
-rw-r--r-- | packages/gpsd/gpsd_2.36.bb | 2 |
8 files changed, 76 insertions, 113 deletions
diff --git a/packages/gpsd/files/fic-gta01/gps-hardware b/packages/gpsd/files/fic-gta01/gps-hardware new file mode 100644 index 0000000000..6490f52c27 --- /dev/null +++ b/packages/gpsd/files/fic-gta01/gps-hardware @@ -0,0 +1,41 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2008 +# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) +# +# Filename: gps-hardware +# Date: 20080103 (YMD) +# +################################################################################# +# +# 20080103 - v0.0.1 - Initial release + +if ! test -e /home/root/gllin/gllin +then + echo -e "\n\ngllin GPS driver for Neo1973 not found," + echo "please install the gllin package from" + echo "http://3rdparty.downloads.openmoko.org/gllin/" + echo "" + exit 1 +fi + + +do_start() { + /home/root/gllin/gllin >/var/log/gllin.log 2>&1 & + sleep 1 +} + +do_stop() { + gllin_PIDs="`ps ax | grep "/home/root/gllin" | grep -v grep | awk '{print $1}'`" + test -n "$gllin_PIDs" && kill $gllin_PIDs +} + +do_status() { + ps ax | grep -v grep | grep -q gllin && echo "ready" || echo "unknown" +} + +case "$1" in + start) do_start ;; + stop) do_stop ;; + status) do_status ;; +esac diff --git a/packages/gpsd/files/fic-gta01/gpsd b/packages/gpsd/files/fic-gta01/gpsd deleted file mode 100755 index 113f43dd20..0000000000 --- a/packages/gpsd/files/fic-gta01/gpsd +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/sh -# -# gpsd This shell script starts and stops gpsd. -# -# chkconfig: 345 90 40 -# description: Gpsd manages access to a serial- or USB-connected GPS -# processname: gpsd - -# Source function library. -#. /etc/rc.d/init.d/functions - -RETVAL=0 -prog="gpsd" - -test -f /etc/default/$prog && . /etc/default/$prog - -start() { - # 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. gpsd 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 -- gpsd does its own syslog calls. - # - - if test -e /home/root/gllin/gllin - then - /home/root/gllin/gllin >/var/log/gllin.log 2>&1 & - else - echo -e "\n\ngllin GPS driver for Neo1973 not found," - echo "please install the gllin package from" - echo "http://3rdparty.downloads.openmoko.org/gllin/" - echo "" - exit 1 - fi - - if [ -e "${GPS_DEV}" ] - then - gpsd ${GPSD_OPTS} -p ${GPS_DEV} - echo "success" - else - # User needs to symlink ${GPS_DEV} to the right thing - echo "No ${GPS_DEV} GPS device, aborting gpsd startup. Check /etc/default/$prog" - fi - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gpsd - return $RETVAL -} - -stop() { - # Stop daemons. - echo -n "Shutting down $prog: " - - gllin_PIDs="`ps ax | grep "/home/root/gllin" | grep -v grep | awk '{print $1}'`" - test -n "$gllin_PIDs" && kill $gllin_PIDs - - killall gpsd - killproc gpsd - RETVAL=$? - echo - if [ $RETVAL -eq 0 ] - then - rm -f /var/lock/subsys/gpsd; - 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/gpsd ]; then - stop - start - RETVAL=$? - fi - ;; - status) -# status gpsd -# RETVAL=$? - ;; - *) - echo "Usage: $0 {start|stop|restart|condrestart|status}" - exit 1 -esac - -exit $RETVAL diff --git a/packages/gpsd/files/gps-hardware b/packages/gpsd/files/gps-hardware new file mode 100644 index 0000000000..ff2ddb3650 --- /dev/null +++ b/packages/gpsd/files/gps-hardware @@ -0,0 +1,2 @@ +# This is a dummy file. Some machines use it to bring up integrated GPS +# devices on demand. diff --git a/packages/gpsd/files/gpsd b/packages/gpsd/files/gpsd index 3a14867f8a..e536837e1c 100755 --- a/packages/gpsd/files/gpsd +++ b/packages/gpsd/files/gpsd @@ -29,9 +29,18 @@ start() { # 2. We don't need all the logging crud that daemon/initlog sets # up -- gpsd does its own syslog calls. # + + if test -x /etc/init.d/gps-hardware + then + if ! ( /etc/init.d/gps-hardware status | grep -q "ready" ) + then + /etc/init.d/gps-hardware start + fi + fi + if [ -e "${GPS_DEV}" ] then - gpsd ${GPSD_OPTS} -p ${GPS_DEV} + gpsd ${GPSD_OPTS} ${GPS_DEV} echo "success" else # User needs to symlink ${GPS_DEV} to the right thing diff --git a/packages/gpsd/gpsd.inc b/packages/gpsd/gpsd.inc index be593e0744..dac62ec76c 100644 --- a/packages/gpsd/gpsd.inc +++ b/packages/gpsd/gpsd.inc @@ -3,6 +3,7 @@ SECTION = "console/network" PRIORITY = "optional" LICENSE = "GPL" DEPENDS = "dbus-glib ncurses python" +RDEPENDS = "gpsd-conf" EXTRA_OECONF = "--x-includes=${STAGING_INCDIR}/X11 \ --x-libraries=${STAGING_LIBDIR} \ @@ -11,6 +12,7 @@ EXTRA_OECONF = "--x-includes=${STAGING_INCDIR}/X11 \ SRC_URI = "http://download.berlios.de/gpsd/gpsd-${PV}.tar.gz \ file://gpsd-default \ + file://gps-hardware \ file://gpsd" inherit autotools update-rc.d @@ -41,15 +43,29 @@ do_install_append() { install -d ${D}/${sysconfdir}/init.d install -d ${D}/dev install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/gps-hardware ${D}/${sysconfdir}/init.d/gps-hardware.default install -d ${D}/${sysconfdir}/default - install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd + install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd.default } -PACKAGES =+ "libgps python-pygps" +pkg_postinst_${PN}-conf() { + update-alternatives --install ${sysconfdir}/default/gpsd gpsd-defaults ${sysconfdir}/default/gpsd.default 10 + update-alternatives --install ${sysconfdir}/init.d/gps-hardware gps-hardware ${sysconfdir}/init.d/gps-hardware.default 10 +} + +pkg_postrm_${PN}-conf() { + update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default + update-alternatives --remove gps-hardware ${sysconfdir}/init.d/gps-hardware.default +} + +SRC_URI_OVERRIDES_PACKAGE_ARCH = "0" + +PACKAGES =+ "libgps python-pygps gpsd-conf" + +PACKAGE_ARCH_gpsd-conf = "${MACHINE_ARCH}" -FILES_${PN} += "${sysconfdir}" FILES_libgps = "${libdir}/*.so.*" -CONFFILES_${PN} = "${sysconfdir}/default/gpsd" +FILES_gpsd-conf = "${sysconfdir}" DESCRIPTION_python-pygps = "Python bindings to gpsd" FILES_python-pygps = "${libdir}/*/site-packages/*" diff --git a/packages/gpsd/gpsd_2.28.bb b/packages/gpsd/gpsd_2.28.bb index c16de2e951..ffd7322bf1 100644 --- a/packages/gpsd/gpsd_2.28.bb +++ b/packages/gpsd/gpsd_2.28.bb @@ -1,2 +1,2 @@ require gpsd.inc -PR = "r4" +PR = "r5" diff --git a/packages/gpsd/gpsd_2.34.bb b/packages/gpsd/gpsd_2.34.bb index 8472eb1c15..969ef1b803 100644 --- a/packages/gpsd/gpsd_2.34.bb +++ b/packages/gpsd/gpsd_2.34.bb @@ -1,4 +1,4 @@ require gpsd.inc -PR = "r6" +PR = "r7" diff --git a/packages/gpsd/gpsd_2.36.bb b/packages/gpsd/gpsd_2.36.bb index 58e9ebeee2..885a41dbda 100644 --- a/packages/gpsd/gpsd_2.36.bb +++ b/packages/gpsd/gpsd_2.36.bb @@ -1,3 +1,3 @@ require gpsd.inc -PR = "r0" +PR = "r1" |