[oe] [meta-oe][PATCH 1/2] Support gpsd version 3.10 (fixup patches, refactor to use include file for both 3.7 + 3.10, fix gpsd-doc )

Robert Calhoun rcalhoun at shotspotter.com
Tue May 20 20:16:18 UTC 2014


TODO: identify when udev is in use and add support for it automatically
---
...prefix-includepy-with-sysroot-and-drop-sy.patch |  71 ++++++++
...struct-respect-sysroot-also-in-SPLINTOPTS.patch |  30 ++++
.../gpsd-3.10/0004-SConstruct-remove-rpath.patch   |  42 +++++
meta-oe/recipes-navigation/gpsd/gpsd.inc           | 179
+++++++++++++++++++++
meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb       |  15 ++
meta-oe/recipes-navigation/gpsd/gpsd_3.7.bb        | 140 +---------------
.../recipes-navigation/gpsd/supported-chipsets.inc |  28 ++++
7 files changed, 372 insertions(+), 133 deletions(-)
create mode 100644 
meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-prefix-includepy-
with-sysroot-and-drop-sy.patch
create mode 100644 
meta-oe/recipes-navigation/gpsd/gpsd-3.10/0002-SConstruct-respect-sysroot-a
lso-in-SPLINTOPTS.patch
create mode 100644 
meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-remove-rpath.patc
h
create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd.inc
create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
create mode 100644 meta-oe/recipes-navigation/gpsd/supported-chipsets.inc

diff --git 
a/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-prefix-includep
y-with-sysroot-and-drop-sy.patch
b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-prefix-includep
y-with-sysroot-and-drop-sy.patch
new file mode 100644
index 0000000..e557703
--- /dev/null
+++ 
b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-prefix-includep
y-with-sysroot-and-drop-sy.patch
@@ -0,0 +1,71 @@
+From dd3ca38b27cce93f7e932abaa27b41371234fa90 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa at gmail.com>
+Date: Tue, 24 Apr 2012 18:45:14 +0200
+Subject: [PATCH] SConstruct: prefix includepy with sysroot and drop
sysroot
+ from python_lib_dir
+
+* without PYTHONPATH, distutil's sysconfig returns INCLUDEPY without
sysroot prefix
+  and with PYTHONPATH from OE it's pointing to native python dir
+
+    $ export 
PYTHONPATH=/OE/shr-core/tmp-eglibc/sysroots/om-gta02/usr/lib/python2.7/
+    $ python
+    Python 2.7.2 (default, Apr 18 2012, 09:19:59)
+    [GCC 4.6.2] on linux2
+    Type "help", "copyright", "credits" or "license" for more information.
+    >>> from distutils import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    
['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
+    >>>
+    $ unset PYTHONPATH
+    $ python
+    Python 2.7.2 (default, Apr 18 2012, 09:19:59)
+    [GCC 4.6.2] on linux2
+    Type "help", "copyright", "credits" or "license" for more information.
+    >>> from distutils import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    ['/python2.7']
+    >>> import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    
['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
+* python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
+  returns path to target sysroot
+
+Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
+---
+ SConstruct |    9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 14e2f59..47c5753 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1084,6 +1084,10 @@ else:
+         if vars[i] is None:
+             vars[i] = []
+     (cc, cxx, opt, basecflags, ccshared, ldshared, so_ext, includepy,
ldflags) = vars
++    if env['sysroot']:
++         print "Prefixing includepy '%s' with sysroot prefix" % includepy
++         includepy = os.path.normpath("%s/%s/%s/%s" % (env['sysroot'],
env['prefix'], env['includedir'], includepy))
++         print "'%s'" % includepy
+     # FIXME: build of python wrappers doesn't pickup flags set for
coveraging, manually add them here
+     if env['coveraging']:
+         basecflags += ' -coverage'
+@@ -1350,11 +1358,14 @@ if not env['python']:
+     python_install = []
+ else:
+     python_lib_dir = sysconfig.get_python_lib(plat_specific=1)
++    python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
+     python_module_dir = python_lib_dir + os.sep + 'gps'
+     python_extensions_install = python_env.Install( DESTDIR +
python_module_dir,
+                  
python_built_extensions)
+     if not env['debug'] and not env['profiling'] and env['strip']:
+         python_env.AddPostAction(python_extensions_install, '$STRIP
$TARGET')
++    env.AddPostAction(python_extensions_install, '$CHRPATH -r "%s"
"$TARGET"' \
++                     % (python_lib_dir, ))
+ 
+     python_modules_install = python_env.Install( DESTDIR +
python_module_dir,
+                                                 python_modules)
+
+-- 
+1.7.8.5
+
diff --git 
a/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0002-SConstruct-respect-sysroot
-also-in-SPLINTOPTS.patch
b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0002-SConstruct-respect-sysroot
-also-in-SPLINTOPTS.patch
new file mode 100644
index 0000000..06dd6e7
--- /dev/null
+++ 
b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0002-SConstruct-respect-sysroot
-also-in-SPLINTOPTS.patch
@@ -0,0 +1,30 @@
+From f5f262be8ae54bd0c0f52802f2007ec89163756f Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa at gmail.com>
+Date: Tue, 24 Apr 2012 11:52:35 +0200
+Subject: [PATCH 1/2] SConstruct: respect sysroot also in SPLINTOPTS
+
+Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
+Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo at no-log.org>
+---
+ SConstruct |    5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 14e2f59..47c5753 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1414,7 +1425,10 @@ def Utility(target, source, action):
+ # Report splint warnings
+ # Note: test_bits.c is unsplintable because of the PRI64 macros.
+ # If you get preprocessor or fatal errors, add +showscan.
+-splintopts = "-I/usr/include/libusb-1.0 +quiet"
++if not env['sysroot']:
++    splintopts = "-I/usr/include/libusb-1.0 +quiet"
++else:
++    splintopts = "-I%s/usr/include/libusb-1.0 +quiet" % env['sysroot']
+ # splint does not know about multi-arch, work around that
+ ma_status, ma = _getstatusoutput('dpkg-architecture
-qDEB_HOST_MULTIARCH')
+ if ma_status == 0:
+-- 
+1.7.5.4
+
diff --git 
a/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-remove-rpath.pa
tch 
b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-remove-rpath.pa
tch
new file mode 100644
index 0000000..83b98bb
--- /dev/null
+++ 
b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-remove-rpath.pa
tch
@@ -0,0 +1,42 @@
+From 7d736bbd517c12d19d7b85a5b0db84732b2f86da Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa at gmail.com>
+Date: Tue, 24 Apr 2012 16:24:35 +0200
+Subject: [PATCH 2/2] SConstruct: remove rpath
+
+* even with correct prefix (without DESTDIR) included it's redundant
+  WARNING: QA Issue: libgps:
+  
/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packages-split/libgps/usr/li
b/libgps.so.20.0
+  contains probably-redundant RPATH /usr/lib
+* and with prefix from scons.bbclass it's invalid
+  WARNING: QA Issue: package libgps contains bad RPATH
+  
/OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/image
/usr/lib
+  in file
+  
/OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packa
ges-split/libgps/usr/lib/libgps.so.20.0
+
+Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
+Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo at no-log.org>
+---
+ SConstruct |    7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index a1bddb9..3e7c607 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1205,8 +1205,11 @@ if qt_env:
+ 
+ # We don't use installdir here in order to avoid having DESTDIR affect
the rpath
+ if env["shared"] and env["chrpath"]:
+-    env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
+-                      % (installdir('libdir', False), ))
++    if not env['sysroot']:
++        env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
++                          % (installdir('libdir', False), ))
++    else:
++        env.AddPostAction(binaryinstall, '$CHRPATH -d "$TARGET"')
+ 
+ if not env['debug'] and not env['profiling'] and env['strip']:
+     env.AddPostAction(binaryinstall, '$STRIP $TARGET')
+-- 
+1.7.5.4
+
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd.inc
b/meta-oe/recipes-navigation/gpsd/gpsd.inc
new file mode 100644
index 0000000..ecff14c
--- /dev/null
+++ b/meta-oe/recipes-navigation/gpsd/gpsd.inc
@@ -0,0 +1,179 @@
+SUMMARY = "Daemon that parses and shares GPS devices"
+DESCRIPTION = "gpsd is a service daemon that monitors one or more GPSes
or AIS receivers attached to a host computer \
+through serial or USB ports, making all data on the
location/course/velocity of the sensors available to be queried \
+via TCP, messagebus, or shared memory"
+AUTHOR = "Authors: Eric S. Raymond, Chris Kuethe, Gary Miller. Former
authors whose bits have been plowed under by \
+code turnover: Remco Treffcorn, Derrick Brashear, Russ Nelson."
+HOMEPAGE = "http://www.catb.org/gpsd/"
+SECTION = "console/network"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800
<file:///COPYING;md5=d217a23f408e91c94359447735bc1800>"
+DEPENDS = "dbus dbus-glib ncurses python libusb1
chrpath-replacement-native"
+PROVIDES = "virtual/gpsd"
+
+EXTRANATIVEPATH += "chrpath-native"
+
+# override gpsd-default to select device other than /dev/ttyS0
+
+SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
+    file://gpsd-default <file:///gpsd-default> \
+    file://gpsd <file:///gpsd> \
+    file://60-gpsd.rules <file:///60-gpsd.rules> \
+    file://gpsd.service <file:///gpsd.service> \
+"
+
+inherit scons update-rc.d python-dir pythonnative systemd
+
+INITSCRIPT_NAME = "gpsd"
+INITSCRIPT_PARAMS = "defaults 35"
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+
+SYSTEMD_OESCONS = "${@base_contains('DISTRO_FEATURES', 'systemd', 'true',
'false',d)}"
+
+PACKAGECONFIG += "${@base_contains('DISTRO_FEATURES', 'bluetooth',
'bluez', '', d)}"
+PACKAGECONFIG += "${@base_contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '',
d)}"
+PACKAGECONFIG += "${@base_contains('DISTRO_FEATURES', 'usbhost', 'usb',
'', d)}"
+# TODO: handle udev support automatically
+
+include supported-chipsets.inc
+
+# CONNECTIVITY
+PACKAGECONFIG[bluez] = "bluez='true',bluez='false',bluez4"
+PACKAGECONFIG[ipv6] = "ipv6='true',ipv6='false',"
+PACKAGECONFIG[usb] = "usb='true',usb='false',udev libusb"
+
+# RECEIVERS
+PACKAGECONFIG[ashtech] = "ashtech='true',ashtech='false'"
+PACKAGECONFIG[earthmate] = "earthmate='true',earthmate='false'"
+PACKAGECONFIG[evermore] = "evermore='true',evermore='false'"
+PACKAGECONFIG[fury] = "fury='true',fury='false'"
+PACKAGECONFIG[fv18] = "fv18='true',fv18='false'"
+PACKAGECONFIG[garmin] = "garmin='true',garmin='false'"
+PACKAGECONFIG[garmintxt] = "garmintxt='true',garmintxt='false'"
+PACKAGECONFIG[geostar] = "geostar='true',geostar='false'"
+PACKAGECONFIG[itrax] = "itrax='true',itrax='false'"
+PACKAGECONFIG[mtk3301] = "mtk3301='true',mtk3301='false'"
+PACKAGECONFIG[navcom] = "navcom='true',navcom='false'"
+PACKAGECONFIG[ntrip] = "ntrip='true',ntrip='false'"
+PACKAGECONFIG[oceanserver] = "oceanserver='true',oceanserver='false'"
+PACKAGECONFIG[oncore] = "oncore='true',oncore='false'"
+PACKAGECONFIG[rtcm104v2] = "rtcm104v2='true',rtcm104v2='false'"
+PACKAGECONFIG[rtcm104v3] = "rtcm104v3='true',rtcm104v3='false'"
+PACKAGECONFIG[sirf] = "sirf='true',sirf='false'"
+PACKAGECONFIG[superstar2] = "superstar2='true',superstar2='false'"
+PACKAGECONFIG[tnt] = "tnt='true',tnt='false'"
+PACKAGECONFIG[tripmate] = "tripmate='true',tripmate='false'"
+PACKAGECONFIG[tsip] = "tsip='true',tsip='false'"
+PACKAGECONFIG[ublox] = "ublox='true',ublox='false'"
+
+
+EXTRA_OESCONS = " \
+    sysroot=${STAGING_DIR_TARGET} \
+    libQgpsmm='false' \
+    debug='true' \
+    strip='false' \
+    systemd='${SYSTEMD_OESCONS}' \
+    ${EXTRA_OECONF} \
+"
+# this cannot be used, because then chrpath is not found and only static
lib is built
+# target=${HOST_SYS}
+
+do_compile_prepend() {
+    export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+    export 
PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\"
pkg-config"
+    export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+
+    export BUILD_SYS="${BUILD_SYS}"
+    export HOST_SYS="${HOST_SYS}"
+}
+
+do_install() {
+    export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+    export 
PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\"
pkg-config"
+    export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+
+    export BUILD_SYS="${BUILD_SYS}"
+    export HOST_SYS="${HOST_SYS}"
+
+    export DESTDIR="${D}"
+    # prefix is used for RPATH and DESTDIR/prefix for instalation
+    ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} install
${EXTRA_OESCONS}|| \
+      bbfatal "scons install execution failed."
+}
+
+do_install_append() {
+    install -d ${D}/${sysconfdir}/init.d
+    install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/
+    install -d ${D}/${sysconfdir}/default
+    install -m 0644 ${WORKDIR}/gpsd-default
${D}/${sysconfdir}/default/gpsd.default
+
+    #support for udev
+    install -d ${D}/${sysconfdir}/udev/rules.d
+    install -m 0644 ${WORKDIR}/60-gpsd.rules
${D}/${sysconfdir}/udev/rules.d
+    install -d ${D}${base_libdir}/udev/
+    install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/
+
+    #support for python
+    install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
+    install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
+
+    #support for systemd
+    install -d ${D}${systemd_unitdir}/system/
+    install -m 0644 ${WORKDIR}/${PN}.service
${D}${systemd_unitdir}/system/${PN}.service
+    install -m 0644 ${S}/systemd/${PN}.socket
${D}${systemd_unitdir}/system/${PN}.socket
+}
+
+pkg_postinst_${PN}-conf() {
+    update-alternatives --install ${sysconfdir}/default/gpsd
gpsd-defaults ${sysconfdir}/default/gpsd.default 10
+}
+
+pkg_postrm_${PN}-conf() {
+    update-alternatives --remove gpsd-defaults
${sysconfdir}/default/gpsd.default
+}
+
+# Note: you probably want executables "gpsd", "gpsctl", "gpsmon" and
library "libgps".
+# Select package "gpsd" for the former; add "libgps" for library support.
"libgpsd" is generally not needed.
+# Add "gpsd-udev" for hot-plug support. TODO: automatically add udev
support when udev is a DISTRO_FEATURE.
+
+PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev
gpsd-conf gpsd-gpsctl gps-utils"
+
+FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc
${libdir}/pkgconfdir/libgps.pc"
+
+FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug"
+
+RDEPENDS_${PN} = "gpsd-gpsctl"
+RRECOMMENDS_${PN} = "gpsd-conf"
+
+SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging"
+FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*"
+RDEPENDS_gpsd-udev += "udev gpsd-conf"
+
+SUMMARY_libgpsd = "C service library which supports querying GPS devices
directly; used by gpsd."
+FILES_libgpsd = "${libdir}/libgpsd.so.*"
+
+SUMMARY_libgps = "C service library which supports communicating with an
instance of the gpsd; almost certainly what you want."
+FILES_libgps = "${libdir}/libgps.so.*"
+
+SUMMARY_gpsd-conf = "gpsd configuration files and init scripts"
+FILES_gpsd-conf = "${sysconfdir}"
+CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default"
+
+SUMMARY_gpsd-gpsctl = "Tools for controlling GPS via gpsd or directly and
monitoring PPS status"
+FILES_gpsd-gpsctl = "${bindir}/gpsctl ${bindir}/gpsmon"
+
+SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS
(requires python)"
+FILES_gps-utils = "${bindir}/*"
+RDEPENDS_gps-utils = "python-pygps"
+
+SUMMARY_python-pygps = "Python bindings to gpsd"
+FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS_python-pygps = "python-core python-curses gpsd python-json"
+
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "${PN}.socket"
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
new file mode 100644
index 0000000..715b5a7
--- /dev/null
+++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb
@@ -0,0 +1,15 @@
+include gpsd.inc
+
+# patches are version-specific, although currently these are the same as
those in 3.7
+SRC_URI_append = "\
+    
file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
<file:///0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch> \
+    file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
<file:///0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch> \
+    file://0004-SConstruct-remove-rpath.patch
<file:///0004-SConstruct-remove-rpath.patch> \
+"
+
+PR = "r1"
+
+SRC_URI[md5sum] = "fc5b03aae38b9b5b6880b31924d0ace3"
+SRC_URI[sha256sum] =
"706fc2c1cf3dfbf87c941f543381bccc9c4dc9f8240eec407dcbf2f70b854320"
+
+
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.7.bb
b/meta-oe/recipes-navigation/gpsd/gpsd_3.7.bb
index 97f3354..6b5e456 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd_3.7.bb
+++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.7.bb
@@ -1,139 +1,13 @@
-SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
-SECTION = "console/network"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800
<file:///COPYING;md5=d217a23f408e91c94359447735bc1800>"
-DEPENDS = "dbus dbus-glib ncurses python libusb1
chrpath-replacement-native"
-PROVIDES = "virtual/gpsd"
+include gpsd.inc

-EXTRANATIVEPATH += "chrpath-native"
-
-PR = "r14"
-
-SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
+# assume patches are version-specific
+SRC_URI_append = "\
+    
file://0001-SConstruct-disable-html-and-man-docs-building-becaus.patch
<file:///0001-SConstruct-disable-html-and-man-docs-building-becaus.patch> \
+    
file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
<file:///0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch> \
    file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
<file:///0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch> \
    file://0004-SConstruct-remove-rpath.patch
<file:///0004-SConstruct-remove-rpath.patch> \
-    
file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
<file:///0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch> \
-    
file://0001-SConstruct-disable-html-and-man-docs-building-becaus.patch
<file:///0001-SConstruct-disable-html-and-man-docs-building-becaus.patch> \
-    file://gpsd-default <file:///gpsd-default> \
-    file://gpsd <file:///gpsd> \
-    file://60-gpsd.rules <file:///60-gpsd.rules> \
-    file://gpsd.service <file:///gpsd.service> \
"
+PR = "r15"
+
SRC_URI[md5sum] = "52d9785eaf1a51298bb8900dbde88f98"
SRC_URI[sha256sum] =
"7800c478ee9d7ca7a502b0f892828561b1fbf7bc69d9d38c447c82c3628302ac"
-
-inherit scons update-rc.d python-dir pythonnative systemd
-
-INITSCRIPT_NAME = "gpsd"
-INITSCRIPT_PARAMS = "defaults 35"
-
-SYSTEMD_OESCONS = "${@base_contains('DISTRO_FEATURES', 'systemd', 'true',
'false',d)}"
-
-export STAGING_INCDIR
-export STAGING_LIBDIR
-
-PACKAGECONFIG ??= "bluez"
-PACKAGECONFIG[bluez] = "bluez='true',bluez='false',bluez4"
-
-EXTRA_OESCONS = " \
-    sysroot=${STAGING_DIR_TARGET} \
-    libQgpsmm='false' \
-    debug='true' \
-    strip='false' \
-    systemd='${SYSTEMD_OESCONS}' \
-    ${EXTRA_OECONF} \
-"
-# this cannot be used, because then chrpath is not found and only static
lib is built
-# target=${HOST_SYS}
-
-do_compile_prepend() {
-    export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
-    export 
PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\"
pkg-config"
-    export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
-
-    export BUILD_SYS="${BUILD_SYS}"
-    export HOST_SYS="${HOST_SYS}"
-}
-
-do_install() {
-    export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
-    export 
PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\"
pkg-config"
-    export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
-
-    export BUILD_SYS="${BUILD_SYS}"
-    export HOST_SYS="${HOST_SYS}"
-
-    export DESTDIR="${D}"
-    # prefix is used for RPATH and DESTDIR/prefix for instalation
-    ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} install
${EXTRA_OESCONS}|| \
-      bbfatal "scons install execution failed."
-}
-
-do_install_append() {
-    install -d ${D}/${sysconfdir}/init.d
-    install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/
-    install -d ${D}/${sysconfdir}/default
-    install -m 0644 ${WORKDIR}/gpsd-default
${D}/${sysconfdir}/default/gpsd.default
-
-    #support for udev
-    install -d ${D}/${sysconfdir}/udev/rules.d
-    install -m 0644 ${WORKDIR}/60-gpsd.rules
${D}/${sysconfdir}/udev/rules.d
-    install -d ${D}${base_libdir}/udev/
-    install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/
-
-    #support for python
-    install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
-    install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
-
-    #support for systemd
-    install -d ${D}${systemd_unitdir}/system/
-    install -m 0644 ${WORKDIR}/${PN}.service
${D}${systemd_unitdir}/system/${PN}.service
-    install -m 0644 ${S}/systemd/${PN}.socket
${D}${systemd_unitdir}/system/${PN}.socket
-}
-
-pkg_postinst_${PN}-conf() {
-    update-alternatives --install ${sysconfdir}/default/gpsd
gpsd-defaults ${sysconfdir}/default/gpsd.default 10
-}
-
-pkg_postrm_${PN}-conf() {
-    update-alternatives --remove gpsd-defaults
${sysconfdir}/default/gpsd.default
-}
-
-PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev
gpsd-conf gpsd-gpsctl gps-utils"
-
-FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc
${libdir}/pkgconfdir/libgps.pc"
-
-FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug"
-
-RDEPENDS_${PN} = "gpsd-gpsctl"
-RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf"
-
-SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging"
-FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*"
-RDEPENDS_gpsd-udev += "udev gpsd-conf"
-
-SUMMARY_libgpsd = "C service library used for communicating with gpsd"
-FILES_libgpsd = "${libdir}/libgpsd.so.*"
-
-SUMMARY_libgps = "C service library used for communicating with gpsd"
-FILES_libgps = "${libdir}/libgps.so.*"
-
-SUMMARY_gpsd-conf = "gpsd configuration files and init scripts"
-FILES_gpsd-conf = "${sysconfdir}"
-CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default"
-
-SUMMARY_gpsd-gpsctl = "Tool for tweaking GPS modes"
-FILES_gpsd-gpsctl = "${bindir}/gpsctl"
-
-SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS"
-FILES_gps-utils = "${bindir}/*"
-RDEPENDS_gps-utils = "python-pygps"
-
-SUMMARY_python-pygps = "Python bindings to gpsd"
-FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS_python-pygps = "python-core python-curses gpsd python-json"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "${PN}.socket"
diff --git a/meta-oe/recipes-navigation/gpsd/supported-chipsets.inc
b/meta-oe/recipes-navigation/gpsd/supported-chipsets.inc
new file mode 100644
index 0000000..dee898b
--- /dev/null
+++ b/meta-oe/recipes-navigation/gpsd/supported-chipsets.inc
@@ -0,0 +1,28 @@
+# gpsd probes for various binary chipsets in a predefined search order.
To minimize build size
+# and protocol probe time, override this file using .bbappend and remove
any unwanted chipsets
+# For a list of all features run "scons -h"
+# "nmea", "nmea2000" and "aivdm" (required for nmea2000) are always
included
+
+PACKAGECONFIG += "ashtech"
+PACKAGECONFIG += "earthmate"
+PACKAGECONFIG += "evermore"
+PACKAGECONFIG += "fury"
+PACKAGECONFIG += "fv18"
+PACKAGECONFIG += "garmin"
+PACKAGECONFIG += "garmintxt"
+PACKAGECONFIG += "geostar"
+PACKAGECONFIG += "itrax"
+PACKAGECONFIG += "mtk3301"
+PACKAGECONFIG += "navcom"
+PACKAGECONFIG += "ntrip"
+PACKAGECONFIG += "oceanserver"
+PACKAGECONFIG += "oncore"
+PACKAGECONFIG += "rtcm104v2"
+PACKAGECONFIG += "rtcm104v3"
+PACKAGECONFIG += "sirf"
+PACKAGECONFIG += "superstar2"
+PACKAGECONFIG += "tnt"
+PACKAGECONFIG += "tripmate"
+PACKAGECONFIG += "tsip"
+PACKAGECONFIG += "ublox"
+
-- 
1.9.1






More information about the Openembedded-devel mailing list