Merge pull request #3630 from p-wassi/gpsd

utils/gpsd: update, procd, cosmetic, dependencies
This commit is contained in:
Hannu Nyman 2017-01-23 08:45:15 +02:00 committed by GitHub
commit d37694d7a5
5 changed files with 50 additions and 100 deletions

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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'
}
stop() {
logger -t "$NAME" "Stopping..."
[ -f "$PIDF" ] && {
read PID < "$PIDF"
kill -9 $PID
rm $PIDF
}
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
}
start_service()
{
config_load "${NAME}"
config_foreach gpsd_instance gpsd
}

View File

@ -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