* Re: [meta-oe][PATCH 1/2] * Support gpsd version 3.10 * Refactor recipe into version-specific file and version-independent include file * Add explicit list of supported devices/chipsets. By default gpsd compiles in support for all known devices. By overriding this list, support for unwanted devices/chipsets can be dropped. * Make version-specific patch directories and test 3.7 patches against 3.10; remove patch present in 3.7 that disabled build of gpsd-doc because manfile generation now runs without error. Other patches appear to still be necessary * Fixup patch files so that they apply cleanly to gpsd 3.10 source, which has changed * refactor gpsd 3.7 recipe so that it refers to include file. * bump 3.7 $PR to r15 to show 3.7 recipe has changed substantially * set 3.10 $PR to r1 because this is a new version
[not found] ` <09265e0a9963f2b03e5d91aa7baa4dbf941c93c8.1400614758.git.rcalhoun@shotspotter.com>
@ 2014-05-20 21:15 ` Martin Jansa
0 siblings, 0 replies; only message in thread
From: Martin Jansa @ 2014-05-20 21:15 UTC (permalink / raw)
To: Rob Calhoun; +Cc: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 25347 bytes --]
Missing subject line and please squash 2/2 into this. Please reply when
you were able to test it (build-time and run-time).
On Tue, May 20, 2014 at 12:54:47PM -0700, Rob Calhoun wrote:
> 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-also-in-SPLINTOPTS.patch
> create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-remove-rpath.patch
> 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-includepy-with-sysroot-and-drop-sy.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-prefix-includepy-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-includepy-with-sysroot-and-drop-sy.patch
> @@ -0,0 +1,71 @@
> +From dd3ca38b27cce93f7e932abaa27b41371234fa90 Mon Sep 17 00:00:00 2001
> +From: Martin Jansa <Martin.Jansa@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@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@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@gmail.com>
> +Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@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.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-remove-rpath.patch
> new file mode 100644
> index 0000000..83b98bb
> --- /dev/null
> +++ b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-remove-rpath.patch
> @@ -0,0 +1,42 @@
> +From 7d736bbd517c12d19d7b85a5b0db84732b2f86da Mon Sep 17 00:00:00 2001
> +From: Martin Jansa <Martin.Jansa@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/lib/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/packages-split/libgps/usr/lib/libgps.so.20.0
> +
> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> +Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@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"
> +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 \
> + file://60-gpsd.rules \
> + 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://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.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"
> -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-prefix-includepy-with-sysroot-and-drop-sy.patch \
> file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
> file://0004-SConstruct-remove-rpath.patch \
> - file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
> - file://0001-SConstruct-disable-html-and-man-docs-building-becaus.patch \
> - file://gpsd-default \
> - file://gpsd \
> - file://60-gpsd.rules \
> - 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
>
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2014-05-20 21:15 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <cover.1400614758.git.rcalhoun@shotspotter.com>
[not found] ` <09265e0a9963f2b03e5d91aa7baa4dbf941c93c8.1400614758.git.rcalhoun@shotspotter.com>
2014-05-20 21:15 ` [meta-oe][PATCH 1/2] * Support gpsd version 3.10 * Refactor recipe into version-specific file and version-independent include file * Add explicit list of supported devices/chipsets. By default gpsd compiles in support for all known devices. By overriding this list, support for unwanted devices/chipsets can be dropped. * Make version-specific patch directories and test 3.7 patches against 3.10; remove patch present in 3.7 that disabled build of gpsd-doc because manfile generation now runs without error. Other patches appear to still be necessary * Fixup patch files so that they apply cleanly to gpsd 3.10 source, which has changed * refactor gpsd 3.7 recipe so that it refers to include file. * bump 3.7 $PR to r15 to show 3.7 recipe has changed substantially * set 3.10 $PR to r1 because this is a new version Martin Jansa
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.