commit d37694d7a52b00af239de0d0970754c65b280fcc
parent 05d25619945dea146bfa29266c2bba5cda5d3117
Author: Hannu Nyman <hannu.nyman@iki.fi>
Date: Mon, 23 Jan 2017 08:45:15 +0200
Merge pull request #3630 from p-wassi/gpsd
utils/gpsd: update, procd, cosmetic, dependencies
Diffstat:
5 files changed, 51 insertions(+), 101 deletions(-)
diff --git a/utils/gpsd/Makefile b/utils/gpsd/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gpsd
-PKG_VERSION:=3.15
-PKG_RELEASE:=2
+PKG_VERSION:=3.16
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://download-mirror.savannah.gnu.org/releases/gpsd/
-PKG_MD5SUM:=afd79b87337fadf38ee2a7c4314dac79
+PKG_SOURCE_URL:=@SAVANNAH/$(PKG_NAME)
+PKG_MD5SUM:=68691b5de4c94f82ec4062b042b5eb63
PKG_MAINTAINER:=Pushpal Sidhu <psidhu.devel@gmail.com>
PKG_LICENSE:=BSD-3-Clause
@@ -25,7 +25,7 @@ include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/scons.mk
define Package/gpsd/Default
- DEPENDS:=+librt +libncurses
+ DEPENDS+= +libusb-1.0
URL:=http://catb.org/gpsd/
endef
@@ -41,9 +41,8 @@ endef
define Package/gpsd
$(call Package/gpsd/Default)
- SECTION:=net
- CATEGORY:=Network
- DEPENDS+= +libgps +libusb-1.0
+ SECTION:=utils
+ CATEGORY:=Utilities
TITLE:=An interface daemon for GPS receivers
endef
@@ -58,9 +57,9 @@ endef
define Package/gpsd-clients
$(call Package/gpsd/Default)
- SECTION:=net
- CATEGORY:=Network
- DEPENDS+= +libgps +libncurses +libusb-1.0
+ SECTION:=utils
+ CATEGORY:=Utilities
+ DEPENDS+= +libncurses
TITLE:=GPS tools and clients
endef
@@ -74,7 +73,6 @@ define Package/libgps
$(call Package/gpsd/Default)
SECTION:=libs
CATEGORY:=Libraries
- DEPENDS+= +libcap
TITLE:=C service library for communicating with the GPS daemon
endef
@@ -122,8 +120,6 @@ define Package/gpsd/install
$(INSTALL_CONF) ./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/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/gpsd $(1)/usr/sbin/
endef
diff --git a/utils/gpsd/files/gpsd.config b/utils/gpsd/files/gpsd.config
@@ -1,5 +1,5 @@
-config gpsd core
- option device "/dev/ttyUSB0"
- option port "2947"
- option listen_globally "false"
- option enabled "false"
+config gpsd 'core'
+ option enabled '0'
+ option device '/dev/ttyUSB0'
+ option port '2947'
+ option listen_globally '0'
diff --git a/utils/gpsd/files/gpsd.hotplug b/utils/gpsd/files/gpsd.hotplug
@@ -1,16 +0,0 @@
-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
diff --git a/utils/gpsd/files/gpsd.init b/utils/gpsd/files/gpsd.init
@@ -2,31 +2,43 @@
# Copyright (C) 2009-2011 OpenWrt.org
START=50
+USE_PROCD=1
+PROG=/usr/sbin/gpsd
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 listen_globally core listen_globally
- 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
- }
- [ "$listen_globally" != "0" ] && append args "-G"
- $PROG -n -P $PIDF -S $port $args $device
+
+validate_section_gpsd()
+{
+ uci_validate_section gpsd gpsd "${1}" \
+ 'enable:bool:1' \
+ 'device:string' \
+ 'listen_globally:bool:0' \
+ 'port:port:2947'
+}
+
+gpsd_instance()
+{
+ local device enable listen_globally port
+
+ validate_section_gpsd "${1}" || {
+ echo "validation failed"
+ return 1
+ }
+
+ [ "${enable}" = "0" ] && return 1
+
+ procd_open_instance
+ procd_set_param command "$PROG" -N -n
+
+ [ "${listen_globally}" -ne 0 ] && procd_append_param command -G
+ procd_append_param command -S "${port}"
+ procd_append_param command "${device}"
+ procd_set_param respawn
+
+ procd_close_instance
}
-stop() {
- logger -t "$NAME" "Stopping..."
- [ -f "$PIDF" ] && {
- read PID < "$PIDF"
- kill -9 $PID
- rm $PIDF
- }
+start_service()
+{
+ config_load "${NAME}"
+ config_foreach gpsd_instance gpsd
}
diff --git a/utils/gpsd/patches/0001-Remove-a-BSD-ism.patch b/utils/gpsd/patches/0001-Remove-a-BSD-ism.patch
@@ -1,42 +0,0 @@
-From 95c99f69e026e8c57aecba545e51c97f3b284e75 Mon Sep 17 00:00:00 2001
-From: "Gary E. Miller" <gem@rellim.com>
-Date: Tue, 23 Jun 2015 14:36:26 -0700
-Subject: [PATCH] Remove a BSD-ism.
-
-CTRL('L') is a BSD-ism. CTRL() is defined in sys/ttydefaults.h
-which does not always exist. Instead of adding scons tests for
-needing CTRL() and its include files just replace with a simple
-constant.
-
-Needed for musl and found by Baruch Siach <baruch@tkos.co.il>
----
- gpsmon.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/gpsmon.c b/gpsmon.c
-index c3001c8..58c8300 100644
---- a/gpsmon.c
-+++ b/gpsmon.c
-@@ -583,6 +583,9 @@ static void select_packet_monitor(struct gps_device_t *device)
- (void)wnoutrefresh(devicewin);
- }
-
-+/* Control-L character */
-+#define CTRL_L 0x0C
-+
- static char *curses_get_command(void)
- /* char-by-char nonblocking input, return accumulated command line on \n */
- {
-@@ -591,7 +594,8 @@ static char *curses_get_command(void)
- int c;
-
- c = wgetch(cmdwin);
-- if (c == CTRL('L')) {
-+ if (CTRL_L == c) {
-+ /* ^L is to repaint the screen */
- (void)clearok(stdscr, true);
- if (active != NULL && (*active)->initialize != NULL)
- (void)(*active)->initialize();
---
-2.6.0
-