gpsd.bb: Fork: Update of gpsd to 3.19
ubxtool is required for gnss receiver configuration fork gpsd recipe from openembedded: ubxtool was introduced in version 3.18 BugzID: 60545 Signed-off-by: Tobias Jäggi <tobias.jaeggi@netmodule.com> Signed-off-by: Ramon Moesching <ramon.moesching@netmodule.com>
This commit is contained in:
parent
5dc6f2ce8d
commit
3ca58174f3
|
|
@ -0,0 +1,7 @@
|
|||
SUMMARY = "Machine specific gpsd config"
|
||||
LICENSE = "BSD"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD;md5=3775480a712fc46a69647678acb234cb"
|
||||
|
||||
# empty by default
|
||||
# BSP layers can add stuff like meta-openmoko example:
|
||||
#
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
From 5464d9e1bfd1a1c54338ec7c4148cad1b222ef93 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
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
|
||||
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
|
||||
|
||||
---
|
||||
SConstruct | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/SConstruct b/SConstruct
|
||||
index b8f3fb1..883e06d 100644
|
||||
--- a/SConstruct
|
||||
+++ b/SConstruct
|
||||
@@ -980,7 +980,7 @@ else:
|
||||
|
||||
# Set up configuration for target Python
|
||||
|
||||
-PYTHON_LIBDIR_CALL = 'sysconfig.get_python_lib()'
|
||||
+PYTHON_LIBDIR_CALL = 'sysconfig.get_python_lib(plat_specific=1)'
|
||||
|
||||
PYTHON_CONFIG_NAMES = ['CC', 'CXX', 'OPT', 'BASECFLAGS',
|
||||
'CCSHARED', 'LDSHARED', 'SO', 'INCLUDEPY', 'LDFLAGS']
|
||||
@@ -1506,7 +1506,7 @@ else:
|
||||
LINK=ldshared,
|
||||
SHLIBPREFIX="",
|
||||
SHLIBSUFFIX=python_config['SO'],
|
||||
- CPPPATH=[python_config['INCLUDEPY']],
|
||||
+ CPPPATH=[os.path.normpath("%s/%s/%s/%s" % (env['sysroot'], env['prefix'], env['includedir'], python_config['INCLUDEPY']))] if env['sysroot'] else [python_config['INCLUDEPY']],
|
||||
CPPFLAGS=python_config['OPT'],
|
||||
CFLAGS=python_config['BASECFLAGS'],
|
||||
CXXFLAGS=python_config['BASECFLAGS'])
|
||||
@@ -1808,12 +1808,14 @@ if ((not env['debug'] and not env['profiling'] and not env['nostrip'] and
|
||||
env.AddPostAction(binaryinstall, '$STRIP $TARGET')
|
||||
|
||||
if env['python']:
|
||||
- python_module_dir = str(python_libdir) + os.sep + 'gps'
|
||||
+ python_module_dir = python_libdir.replace(env['sysroot'], '') + 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
|
||||
not env['nostrip'] and not sys.platform.startswith('darwin'))):
|
||||
python_env.AddPostAction(python_extensions_install, '$STRIP $TARGET')
|
||||
+ env.AddPostAction(python_extensions_install, '$CHRPATH -r "%s" "$TARGET"' \
|
||||
+ % (python_libdir, ))
|
||||
|
||||
python_modules_install = python_env.Install(DESTDIR + python_module_dir,
|
||||
python_modules)
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
From 2a4b3bcde0d73a3a4a6644d5f944ac9d16023ba9 Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Bunk <bunk@stusta.de>
|
||||
Date: Mon, 21 Oct 2019 13:53:25 +0300
|
||||
Subject: gps_shm_close: Free privdata
|
||||
|
||||
Previously every open/close cycle leaked privdata.
|
||||
|
||||
Signed-off-by: Adrian Bunk <bunk@stusta.de>
|
||||
Signed-off-by: Gary E. Miller <gem@rellim.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
---
|
||||
libgps_shm.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libgps_shm.c b/libgps_shm.c
|
||||
index d93972bba..12bb3760b 100644
|
||||
--- a/libgps_shm.c
|
||||
+++ b/libgps_shm.c
|
||||
@@ -163,8 +163,12 @@ int gps_shm_read(struct gps_data_t *gpsdata)
|
||||
|
||||
void gps_shm_close(struct gps_data_t *gpsdata)
|
||||
{
|
||||
- if (PRIVATE(gpsdata) && PRIVATE(gpsdata)->shmseg != NULL)
|
||||
- (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg);
|
||||
+ if (PRIVATE(gpsdata)) {
|
||||
+ if (PRIVATE(gpsdata)->shmseg != NULL)
|
||||
+ (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg);
|
||||
+ free(PRIVATE(gpsdata));
|
||||
+ gpsdata->privdata = NULL;
|
||||
+ }
|
||||
}
|
||||
|
||||
int gps_shm_mainloop(struct gps_data_t *gpsdata, int timeout,
|
||||
--
|
||||
2.20.1
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
|
||||
SRC_URI_prepend = " \
|
||||
file://gpsbaud.service \
|
||||
git://git.netmodule.intranet/nmsw/gpsd.git;protocol=ssh;user=gitea;branch=imu-integration \
|
||||
git://gitlab.com/netmodule/third-party/gpsd.git;protocol=ssh;user=git;branch=3.19/hancock \
|
||||
file://60-ublox-neo.rules \
|
||||
"
|
||||
SRC_URI_remove = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz"
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
|
||||
SECTION = "console/network"
|
||||
LICENSE = "BSD-2-Clause"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=01764c35ae34d9521944bb6ab312af53"
|
||||
DEPENDS = "dbus ncurses python python3 pps-tools"
|
||||
PROVIDES = "virtual/gpsd"
|
||||
|
||||
SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
|
||||
file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
|
||||
file://0001-gps_shm_close-Free-privdata.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "b3bf88706794eb8e5f2c2543bf7ba87b"
|
||||
SRC_URI[sha256sum] = "27dd24d45b2ac69baab7933da2bf6ae5fb0be90130f67e753c110a3477155f39"
|
||||
|
||||
inherit scons update-rc.d python-dir pythonnative systemd update-alternatives
|
||||
|
||||
INITSCRIPT_PACKAGES = "gpsd-conf"
|
||||
INITSCRIPT_NAME = "gpsd"
|
||||
INITSCRIPT_PARAMS = "defaults 35"
|
||||
|
||||
SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}"
|
||||
|
||||
export STAGING_INCDIR
|
||||
export STAGING_LIBDIR
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} usb"
|
||||
PACKAGECONFIG[bluez] = "bluez='true',bluez='false',bluez5"
|
||||
PACKAGECONFIG[qt] = "qt='yes' qt_versioned=5,qt='no',qtbase"
|
||||
PACKAGECONFIG[usb] = "usb='true',usb='false',libusb1"
|
||||
EXTRA_OESCONS = " \
|
||||
sysroot=${STAGING_DIR_TARGET} \
|
||||
libQgpsmm='false' \
|
||||
debug='false' \
|
||||
nostrip='true' \
|
||||
systemd='${SYSTEMD_OESCONS}' \
|
||||
libdir='${libdir}' \
|
||||
manbuild='false' \
|
||||
${PACKAGECONFIG_CONFARGS} \
|
||||
"
|
||||
# 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 LINKFLAGS="${LDFLAGS}"
|
||||
}
|
||||
|
||||
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 LINKFLAGS="${LDFLAGS}"
|
||||
|
||||
export DESTDIR="${D}"
|
||||
# prefix is used for RPATH and DESTDIR/prefix for instalation
|
||||
${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} python_libdir=${libdir} install ${EXTRA_OESCONS} || \
|
||||
bbfatal "scons install execution failed."
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}/${sysconfdir}/init.d
|
||||
install -m 0755 ${S}/packaging/deb/etc_init.d_gpsd ${D}/${sysconfdir}/init.d/gpsd
|
||||
install -d ${D}/${sysconfdir}/default
|
||||
install -m 0644 ${S}/packaging/deb/etc_default_gpsd ${D}/${sysconfdir}/default/gpsd.default
|
||||
|
||||
#support for udev
|
||||
install -d ${D}/${sysconfdir}/udev/rules.d
|
||||
install -m 0644 ${S}/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 ${S}/systemd/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service
|
||||
sed -i -e 's,/usr/local,/usr,g' ${D}${systemd_unitdir}/system/${BPN}.service
|
||||
install -m 0644 ${S}/systemd/${BPN}ctl@.service ${D}${systemd_unitdir}/system/${BPN}ctl@.service
|
||||
sed -i -e 's,/usr/local,/usr,g' ${D}${systemd_unitdir}/system/${BPN}ctl@.service
|
||||
install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket
|
||||
}
|
||||
|
||||
PACKAGES =+ "libgps libgpsd python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
|
||||
|
||||
RPROVIDES_${PN}-dbg += "python-pygps-dbg"
|
||||
|
||||
FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \
|
||||
${libdir}/libQgpsmm.prl"
|
||||
|
||||
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"
|
||||
# Python files are required for gps/fake, required for gpsfake.
|
||||
FILES_gps-utils = "${bindir}/* ${libdir}/gps/*.py ${libdir}/gps/*.so"
|
||||
RDEPENDS_gps-utils = "python-pygps"
|
||||
|
||||
SUMMARY_python-pygps = "Python bindings to gpsd"
|
||||
FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}/*.egg-info"
|
||||
RDEPENDS_python-pygps = " \
|
||||
python-core \
|
||||
python-io \
|
||||
python-threading \
|
||||
python-terminal \
|
||||
gpsd \
|
||||
python-json"
|
||||
|
||||
RPROVIDES_${PN} += "${PN}-systemd"
|
||||
RREPLACES_${PN} += "${PN}-systemd"
|
||||
RCONFLICTS_${PN} += "${PN}-systemd"
|
||||
SYSTEMD_SERVICE_${PN} = "${BPN}.socket ${BPN}ctl@.service"
|
||||
|
||||
|
||||
ALTERNATIVE_${PN} = "gpsd-defaults"
|
||||
ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd"
|
||||
ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default"
|
||||
Loading…
Reference in New Issue