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:"
|
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
|
||||||
SRC_URI_prepend = " \
|
SRC_URI_prepend = " \
|
||||||
file://gpsbaud.service \
|
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 \
|
file://60-ublox-neo.rules \
|
||||||
"
|
"
|
||||||
SRC_URI_remove = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz"
|
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