mirror of
https://github.com/openwrt/packages.git
synced 2026-04-15 10:51:55 +00:00
Gpsd needs some time to create its Unix socket after the process starts. The hotplug call in service_started() is triggered too early, before the socket is ready, causing failures in scripts that depend on it. Additionally, when gpsd crashes and procd respawns it, service_started() is not called again, so no hotplug event is emitted on respawn. Therefore scripts listening for gpsd availability miss the STARTED event. This commit ensures the hotplug call waits for the socket to appear, so dependent scripts reliably see the STARTED event, even after respawns. Signed-off-by: Oliver Sedlbauer <os@dev.tdt.de>
177 lines
4.7 KiB
Makefile
177 lines
4.7 KiB
Makefile
#
|
|
# Copyright (C) 2006-2015 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:=gpsd
|
|
PKG_VERSION:=3.26.1
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
|
PKG_SOURCE_URL:=@SAVANNAH/$(PKG_NAME)
|
|
PKG_HASH:=45c0d4779324bd59a47cfcb7ac57180d2dbdf418603d398a079392dabf1f740c
|
|
|
|
PKG_MAINTAINER:=Pushpal Sidhu <psidhu.devel@gmail.com>
|
|
PKG_LICENSE:=BSD-3-Clause
|
|
PKG_LICENSE_FILES:=COPYING
|
|
PKG_CPE_ID:=cpe:/a:gpsd_project:gpsd
|
|
|
|
PKG_BUILD_DEPENDS:=scons/host
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include ../../devel/scons/scons.mk
|
|
|
|
define Package/gpsd/Default
|
|
DEPENDS+= +libusb-1.0
|
|
URL:=https://gpsd.gitlab.io/gpsd/
|
|
endef
|
|
|
|
define Package/gpsd/Default/description
|
|
gpsd is a userland daemon acting as a translator between GPS and AIS receivers
|
|
and their clients. gpsd listens on port 2947 for clients requesting
|
|
position/time/velocity information. The receivers are expected to generate
|
|
position information in a well-known format -- as NMEA-0183 sentences, SiRF
|
|
binary, Rockwell binary, Garmin binary format, or other vendor binary
|
|
protocols. gpsd takes this information from the GPS and translates it into
|
|
something uniform and easier to understand for clients.
|
|
endef
|
|
|
|
define Package/gpsd
|
|
$(call Package/gpsd/Default)
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
TITLE:=An interface daemon for GPS receivers
|
|
DEPENDS+= +gpsd-utils
|
|
endef
|
|
|
|
define Package/gpsd/conffiles
|
|
/etc/config/gpsd
|
|
endef
|
|
|
|
define Package/gpsd/description
|
|
$(call Package/gpsd/Default/description)
|
|
This package contains the GPS daemon.
|
|
endef
|
|
|
|
define Package/gpsd-clients
|
|
$(call Package/gpsd/Default)
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
DEPENDS+= +libncurses
|
|
TITLE:=GPS tools and clients
|
|
endef
|
|
|
|
define Package/gpsd-clients/description
|
|
$(call Package/gpsd/Default/description)
|
|
This package contains auxiliary tools and example clients for monitoring and
|
|
testing the GPS daemon.
|
|
endef
|
|
|
|
define Package/gpsd-utils
|
|
$(call Package/gpsd/Default)
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
TITLE:=GPS daemon utils
|
|
endef
|
|
|
|
define Package/gpsd-utils/description
|
|
$(call Package/gpsd/Default/description)
|
|
This package contains utilities for interacting with GPS daemon.
|
|
endef
|
|
|
|
define Package/libgps
|
|
$(call Package/gpsd/Default)
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=C service library for communicating with the GPS daemon
|
|
ABI_VERSION:=31
|
|
endef
|
|
|
|
define Package/libgps/description
|
|
$(call Package/gpsd/Default/description)
|
|
This package contains the libgps library.
|
|
endef
|
|
|
|
SCONS_VARS += \
|
|
CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) -L$(STAGING_DIR)/usr/lib" \
|
|
LINKFLAGS="$(TARGET_LDFLAGS)"
|
|
|
|
SCONS_OPTIONS += \
|
|
target_platform=linux \
|
|
dbus_export=no \
|
|
tsip=no \
|
|
fv18=no \
|
|
tripmate=no \
|
|
earthmate=no \
|
|
itrax=no \
|
|
navcom=no \
|
|
ubx=no \
|
|
evermore=no \
|
|
ntrip=no \
|
|
libgpsmm=no \
|
|
libQgpsmm=no \
|
|
bluez=no \
|
|
nostrip=yes \
|
|
python=no \
|
|
implicit_link=no \
|
|
chrpath=no \
|
|
manbuild=no \
|
|
sysroot="$(TOOLCHAIN_ROOT_DIR)" \
|
|
target="$(TARGET_CROSS:-=)"
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/gps.h $(1)/usr/include/
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgps*.so* $(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libgps.pc $(1)/usr/lib/pkgconfig
|
|
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libgps.pc
|
|
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libgps.pc
|
|
endef
|
|
|
|
define Package/gpsd/install
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(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)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/gpsd $(1)/usr/sbin/
|
|
$(INSTALL_BIN) ./files/usr/sbin/gpsd-wrapper $(1)/usr/sbin/
|
|
|
|
$(INSTALL_DIR) $(1)/etc/gpsd
|
|
$(INSTALL_BIN) ./files/etc/gpsd/device-hook $(1)/etc/gpsd/
|
|
|
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
$(INSTALL_DATA) ./files/etc/uci-defaults/* $(1)/etc/uci-defaults/
|
|
endef
|
|
|
|
define Package/gpsd-clients/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) \
|
|
$(PKG_INSTALL_DIR)/usr/bin/cgps \
|
|
$(PKG_INSTALL_DIR)/usr/bin/gps{ctl,decode,mon,pipe} \
|
|
$(PKG_INSTALL_DIR)/usr/bin/gpxlogger \
|
|
$(PKG_INSTALL_DIR)/usr/bin/lcdgps \
|
|
$(1)/usr/bin/
|
|
endef
|
|
|
|
define Package/gpsd-utils/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/gpsdctl $(1)/usr/sbin/
|
|
endef
|
|
|
|
define Package/libgps/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgps.so.$(ABI_VERSION)* $(1)/usr/lib/
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,gpsd))
|
|
$(eval $(call BuildPackage,gpsd-clients))
|
|
$(eval $(call BuildPackage,gpsd-utils))
|
|
$(eval $(call BuildPackage,libgps))
|