From 08a03debd96f1c2a0b02d5ef655dbc3aff829382 Mon Sep 17 00:00:00 2001
From: John Crispin <john@openwrt.org>
Date: Fri, 1 Aug 2014 09:37:49 +0000
Subject: [PATCH] ugps: add a minimal gps daemon

* set the system time/data
* "ubus call gps info" will tell you lattitude, longitude, elevation, speed and bearing

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 41929
---
 package/utils/ugps/Makefile         | 41 +++++++++++++++++++++++++++++
 package/utils/ugps/files/gps.config |  2 ++
 package/utils/ugps/files/ugps.init  | 22 ++++++++++++++++
 3 files changed, 65 insertions(+)
 create mode 100644 package/utils/ugps/Makefile
 create mode 100644 package/utils/ugps/files/gps.config
 create mode 100644 package/utils/ugps/files/ugps.init

diff --git a/package/utils/ugps/Makefile b/package/utils/ugps/Makefile
new file mode 100644
index 0000000000..44dbb59fec
--- /dev/null
+++ b/package/utils/ugps/Makefile
@@ -0,0 +1,41 @@
+#
+# Copyright (C) 2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ugps
+PKG_VERSION:=2014-08-01
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=git://git.openwrt.org/project/ugps.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=1c31c99edd9de9dcb403750b04041eccc751ac5e
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/ugps
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=OpenWrt GPS Daemon
+  DEPENDS:=+libubox +libubus
+endef
+
+TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
+
+define Package/ugps/install
+	$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ugps $(1)/usr/sbin/
+	$(INSTALL_BIN) ./files/ugps.init $(1)/etc/init.d/ugps
+	$(INSTALL_BIN) ./files/gps.config $(1)/etc/config/gps
+endef
+
+$(eval $(call BuildPackage,ugps))
diff --git a/package/utils/ugps/files/gps.config b/package/utils/ugps/files/gps.config
new file mode 100644
index 0000000000..d997a590ce
--- /dev/null
+++ b/package/utils/ugps/files/gps.config
@@ -0,0 +1,2 @@
+config gps
+	option	'tty'	'ttyACM0'
diff --git a/package/utils/ugps/files/ugps.init b/package/utils/ugps/files/ugps.init
new file mode 100644
index 0000000000..621d017869
--- /dev/null
+++ b/package/utils/ugps/files/ugps.init
@@ -0,0 +1,22 @@
+#!/bin/sh /etc/rc.common
+# Copyright (c) 2014 OpenWrt.org
+
+START=80
+
+USE_PROCD=1
+PROG=/usr/sbin/ugps
+
+service_triggers() {
+	procd_add_reload_trigger gps
+}
+
+start_service() {
+	local tty="$(uci get gps.@gps[-1].tty)"
+
+	[ -d "/sys/class/tty/$tty/" ] || return
+
+	procd_open_instance
+	procd_set_param command "$PROG" "/dev/$tty"
+	procd_set_param respawn
+	procd_close_instance
+}
-- 
GitLab