[oe] [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 martin.jansa at gmail.com
Tue May 20 21:15:41 UTC 2014


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 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.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 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/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 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"
> +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 at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20140520/ac22dead/attachment-0002.sig>


More information about the Openembedded-devel mailing list