From cecab9c4caee8e1d1f14acfae49d2dd8c66b5518 Mon Sep 17 00:00:00 2001 From: Sean Nyekjaer Date: Mon, 11 May 2020 19:45:05 +0200 Subject: gpsd: Upgrade 3.19 -> 3.20 Revert "SConstruct: Add test for sizeof(time_t), result in SIZEOF_TIME_T." Do not cross-compile a small for it to be executed on the host. Signed-off-by: Sean Nyekjaer Signed-off-by: Khem Raj --- ...struct-Add-test-for-sizeof-time_t-result-.patch | 108 ++++++++++++++++ .../gpsd/0001-gps_shm_close-Free-privdata.patch | 37 ------ meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb | 137 --------------------- meta-oe/recipes-navigation/gpsd/gpsd_3.20.bb | 137 +++++++++++++++++++++ 4 files changed, 245 insertions(+), 174 deletions(-) create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0001-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch delete mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch delete mode 100644 meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd_3.20.bb diff --git a/meta-oe/recipes-navigation/gpsd/gpsd/0001-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch b/meta-oe/recipes-navigation/gpsd/gpsd/0001-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch new file mode 100644 index 0000000000..b021d0b727 --- /dev/null +++ b/meta-oe/recipes-navigation/gpsd/gpsd/0001-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch @@ -0,0 +1,108 @@ +Subject: [PATCH] Revert "SConstruct: Add test for sizeof(time_t), result in + SIZEOF_TIME_T." + +This reverts commit b32ff1a86c44fa738dabaf63de1b5462e0071ad3. + +Upstream-Status: Inappropriate [cross-compile specific] + +--- + SConstruct | 54 ++++-------------------------------------- + android/gpsd_config.in | 1 - + 2 files changed, 5 insertions(+), 50 deletions(-) + +diff --git a/SConstruct b/SConstruct +index 33e0ff326..e3c62fa3c 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -597,42 +597,6 @@ def CheckHeaderDefines(context, file, define): + return ret + + +-def CheckSizeOf(context, type): +- """Check sizeof 'type'""" +- context.Message('Checking size of ' + type + '... ') +- +- program = """ +-#include +-#include +- +-/* +- * The CheckSizeOf function does not have a way for the caller to +- * specify header files to be included to provide the type being +- * checked. As a workaround until that is remedied, include the +- * header required for time_t, which is the sole current use of this +- * function. +- */ +-#include +- +-int main() { +- printf("%d", (int)sizeof(""" + type + """)); +- return 0; +-} +-""" +- +- # compile it +- ret = context.TryCompile(program, '.c') +- if 0 == ret: +- announce('ERROR: TryCompile failed\n') +- # fall back to sizeof(time_t) is 8 +- return '8' +- +- # run it +- ret = context.TryRun(program, '.c') +- context.Result(ret[0]) +- return ret[1] +- +- + def CheckCompilerDefines(context, define): + context.Message('Checking if compiler supplies %s... ' % (define,)) + ret = context.TryLink(""" +@@ -703,15 +667,13 @@ env.Prepend(LIBPATH=[os.path.realpath(os.curdir)]) + + # CheckXsltproc works, but result is incorrectly saved as "no" + config = Configure(env, custom_tests={ +- 'CheckC11': CheckC11, +- 'CheckCompilerDefines': CheckCompilerDefines, +- 'CheckCompilerOption': CheckCompilerOption, +- 'CheckHeaderDefines': CheckHeaderDefines, + 'CheckPKG': CheckPKG, +- 'CheckSizeOf': CheckSizeOf, + 'CheckXsltproc': CheckXsltproc, +- 'GetPythonValue': GetPythonValue, +- }) ++ 'CheckCompilerOption': CheckCompilerOption, ++ 'CheckCompilerDefines': CheckCompilerDefines, ++ 'CheckC11': CheckC11, ++ 'CheckHeaderDefines': CheckHeaderDefines, ++ 'GetPythonValue': GetPythonValue}) + + # Use print, rather than announce, so we see it in -s mode. + print("This system is: %s" % sys.platform) +@@ -1043,12 +1005,6 @@ else: + confdefs.append("/* #undef HAVE_%s_H */\n" + % hdr.replace("/", "_").upper()) + +- sizeof_time_t = config.CheckSizeOf("time_t") +- confdefs.append("#define SIZEOF_TIME_T %s\n" % sizeof_time_t) +- announce("sizeof(time_t) is %s" % sizeof_time_t) +- if 4 >= int(sizeof_time_t): +- announce("WARNING: time_t is too small. It will fail in 2038") +- + # check function after libraries, because some function require libraries + # for example clock_gettime() require librt on Linux glibc < 2.17 + for f in ("cfmakeraw", "clock_gettime", "daemon", "fcntl", "fork", +diff --git a/android/gpsd_config.in b/android/gpsd_config.in +index 758251986..d240f6d34 100644 +--- a/android/gpsd_config.in ++++ b/android/gpsd_config.in +@@ -19,7 +19,6 @@ + #define HAVE_ARPA_INET_H 1 + #define HAVE_SYSLOG_H 1 + #define HAVE_DAEMON 1 +-#define SIZEOF_TIME_T 8 + #define HAVE_CLOCK_GETTIME 1 + #define HAVE_STRPTIME 1 + #define HAVE_GMTIME_R 1 +-- +2.26.2 + diff --git a/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch b/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch deleted file mode 100644 index 9b38015800..0000000000 --- a/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 2a4b3bcde0d73a3a4a6644d5f944ac9d16023ba9 Mon Sep 17 00:00:00 2001 -From: Adrian Bunk -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 -Signed-off-by: Gary E. Miller - -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 - diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb deleted file mode 100644 index f74ebda5f1..0000000000 --- a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb +++ /dev/null @@ -1,137 +0,0 @@ -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 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 python3-dir python3native 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 python3-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 = "python3-pygps" - -SUMMARY_python3-pygps = "Python bindings to gpsd" -FILES_python3-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}/*.egg-info" -RDEPENDS_python3-pygps = " \ - python3-core \ - python3-io \ - python3-threading \ - python3-terminal \ - gpsd \ - python3-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" diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.20.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.20.bb new file mode 100644 index 0000000000..0914f7ec2b --- /dev/null +++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.20.bb @@ -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 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-Revert-SConstruct-Add-test-for-sizeof-time_t-result-.patch \ +" +SRC_URI[md5sum] = "cf7fdec7ce7221d20bee1a7246362b05" +SRC_URI[sha256sum] = "172a7805068eacb815a3c5225436fcb0be46e7e49a5001a94034eac43df85e50" + +inherit scons update-rc.d python3-dir python3native 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 python3-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 = "python3-pygps" + +SUMMARY_python3-pygps = "Python bindings to gpsd" +FILES_python3-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}/*.egg-info" +RDEPENDS_python3-pygps = " \ + python3-core \ + python3-io \ + python3-threading \ + python3-terminal \ + gpsd \ + python3-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" -- cgit v1.2.3-54-g00ecf