This patch bumps gpsd version to 2.92. It also adds an uci configuration
file where the user can configure the serial port and the default listening
port for gpsd. The patch also adds an init script and an hotplug script that
starts the daemon when a serial device is plugged.

Signed-off-by: Roberto Riggio <[email protected]>

--

Index: net/gpsd/files/gpsd.init
===================================================================
--- net/gpsd/files/gpsd.init    (revision 0)
+++ net/gpsd/files/gpsd.init    (revision 0)
@@ -0,0 +1,30 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2009 OpenWrt.org
+START=50
+
+NAME=gpsd
+PIDF=/var/run/$NAME.pid
+PROG=/usr/sbin/$NAME
+
+start() {
+    config_load gpsd
+    config_get device core device
+    config_get port core port
+    config_get_bool enabled core enabled
+    [ "$enabled" != "1" ] && exit
+    logger -t "$NAME" "Starting..."
+    [ ! -c "$device" ] && {
+        logger -t "$NAME" "Unable to find device $device. Exiting."
+        exit 1
+    }
+    $PROG -n -P $PIDF -S $port $device
+}
+
+stop() {
+    logger -t "$NAME" "Stopping..."
+    [ -f "$PIDF" ] && {
+        read PID < "$PIDF"
+        kill -9 $PID
+        rm $PIDF
+    }
+}
Index: net/gpsd/files/gpsd.config
===================================================================
--- net/gpsd/files/gpsd.config    (revision 0)
+++ net/gpsd/files/gpsd.config    (revision 0)
@@ -0,0 +1,4 @@
+config gpsd core
+    option device    "/dev/ttyUSB0"
+    option port    "2947"
+    option enabled    "true"
Index: net/gpsd/files/gpsd.hotplug
===================================================================
--- net/gpsd/files/gpsd.hotplug    (revision 0)
+++ net/gpsd/files/gpsd.hotplug    (revision 0)
@@ -0,0 +1,16 @@
+case "$ACTION" in
+    add)
+        # start process
+        # only pl2303 devices are handled
+ if [ "$PRODUCT" = "67b/2303/300" ] && [ "$TYPE" = "0/0/0" ] && [ "$INTERFACE" = "255/0/0" ]; then
+            sleep 3 && /etc/init.d/gpsd start
+        fi
+        ;;
+    remove)
+        # stop process
+        # only pl2303 devices are handled
+ if [ "$PRODUCT" = "67b/2303/300" ] && [ "$TYPE" = "0/0/0" ] && [ "$INTERFACE" = "255/0/0" ]; then
+            /etc/init.d/gpsd stop
+        fi
+        ;;
+esac
Index: net/gpsd/patches/001-fix-libtool-link.patch
===================================================================
--- net/gpsd/patches/001-fix-libtool-link.patch    (revision 21442)
+++ net/gpsd/patches/001-fix-libtool-link.patch    (working copy)
@@ -1,22 +1,22 @@
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -559,7 +559,7 @@
+@@ -560,7 +560,7 @@
  #
  # Build shared libraries
  #
 -libgps_la_LDFLAGS = -version-number 19:0:0
 +libgps_la_LDFLAGS = -version-number 19:0:0 $(LDFLAGS)
- lib_LTLIBRARIES = libgps.la
- libgpsd_c_sources = \
+ lib_LTLIBRARIES = libgps.la libgpsd.la
+ libgps_c_sources = \
      ais_json.c \
-@@ -616,8 +616,8 @@
- BUILT_SOURCES = packet_names.h gpsd.h revision.h ais_json.i maskdump.c
- libgps_la_SOURCES = $(libgpsd_c_sources) $(libgpsd_h_sources) \
-     driver_rtcm2.h packet_states.h $(am__append_2)
+@@ -624,8 +624,8 @@
+ libgpsd_la_SOURCES = $(libgpsd_c_sources) $(libgpsd_h_sources) \
+                 driver_rtcm2.h packet_states.h
+
-...@libgpsmm_enable_false@libgps_la_LINK = /bin/sh ./libtool --tag=CC --mode=link gcc $(libgps_la_LDFLAGS) -o $@ -...@libgpsmm_enable_true@libgps_la_LINK = /bin/sh ./libtool --tag=CXX --mode=link g++ $(libgps_la_LDFLAGS) -o $@ +...@libgpsmm_enable_false@libgps_la_LINK = /bin/sh ./libtool --tag=CC --mode=link $(CC) $(libgps_la_LDFLAGS) -o $@ +...@libgpsmm_enable_true@libgps_la_LINK = /bin/sh ./libtool --tag=CXX --mode=link $(CXX) $(libgps_la_LDFLAGS) -o $@
- nodist_libgps_la_SOURCES = packet_names.h ais_json.i
+ nodist_libgpsd_la_SOURCES = packet_names.h ais_json.i
  libgps_la_LIBADD = $(LIBM) $(LIBC) $(LIBNSL) $(LIBSOCKET) $(LIBPTHREAD)
-
+ libgpsd_la_LIBADD = $(LIBM) $(LIBC) $(LIBNSL) $(LIBSOCKET) $(LIBPTHREAD)
Index: net/gpsd/Makefile
===================================================================
--- net/gpsd/Makefile    (revision 21442)
+++ net/gpsd/Makefile    (working copy)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk

 PKG_NAME:=gpsd
-PKG_VERSION:=2.90
+PKG_VERSION:=2.94
 PKG_RELEASE:=1

 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://download.berlios.de/gpsd/
-PKG_MD5SUM:=a23c728b8734c542d559c485857238d2
+PKG_MD5SUM:=ce70bcd707ac1df861d4c72f503c09d1

 PKG_FIXUP:=libtool-ucxx
 PKG_INSTALL:=1
@@ -58,10 +58,16 @@
 endef

 define Package/gpsd/install
+    $(INSTALL_DIR) $(1)/etc/config
+    $(CP) ./files/gpsd.config $(1)/etc/config/gpsd
+    $(INSTALL_DIR) $(1)/etc/init.d
+    $(INSTALL_BIN) ./files/gpsd.init $(1)/etc/init.d/gpsd
+    $(INSTALL_DIR) $(1)/etc/hotplug.d/usb
+    $(INSTALL_DATA) ./files/gpsd.hotplug $(1)/etc/hotplug.d/usb/20-gpsd
     $(INSTALL_DIR) $(1)/usr/lib
     $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgps.so.* $(1)/usr/lib/
     $(INSTALL_DIR) $(1)/usr/sbin
-    $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/gpsd $(1)/usr/sbin/
+    $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/gpsd $(1)/usr/sbin/
 endef

 $(eval $(call BuildPackage,gpsd))
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to