Skip to contentSkip to conversation

gpsd upgrade

PATCH New Martin Jansa 1 participant 17 messages Apr 30, 2012

lore
Share & tools
lore
#0 lore raw

cover gpsd upgrade

Scons build is a bit mess, that's why I've kept most changes as separate patches to make review easier and provide reasoning for each change in commit message.

Some changes seem more like distutils/scons.bbclass fixups which should be fixed elsewhere, but this makes it built with only QA warning about hotplug script accessing prefix from base_prefix, which I'm not going to fix. (there was about 20 QA errors about rpaths etc before..)

I've also kept 3.5 and git recipe, because only 3.4 was tested in runtime by Denis and 3.5+git need a bit different set of patches.

The following changes since commit 8f9b2e3a102e66426ce5b269a6827fc6a3218bef:

kernel bbclass: recreate uImage unless KEEPUIMAGE is set (2012-04-27 21:57:32 +0200)

are available in the git repository at:
git://git.openembedded.org/meta-openembedded-contrib jansa/gpsd
http://cgit.openembedded.org/cgit.cgi/meta-openembedded-contrib/log/?h=jansa/gpsd

Denis 'GNUtoo' Carikli (1):
gpsd: update to 3.4

Martin Jansa (15):
gpsd: move files to gpsd dir as they are not version specific gpsd-3.4: minor style issues
gpsd-3.4: drop pkgconfig=''
gpsd-3.4: fix DSO build correctly
gpsd: pass sysroot param to scons and fix SConstruct to respect that
gpsd: export PKG_CONFIG with PKG_CONFIG_SYSROOT_DIR
gpsd: use gpsd.service and gpsd.socket from source tree, drop local
files
gpsd: replace whole do_install from scons.bbclass
gpsd: remove RPATH from binaries instead of replacing it with
redundant /usr/lib
gpsd: add recipe for 3.5 with negative D_P for testing
gpsd: add git recipe with negative D_P for tests gpsd-3.4: fix python paths and RPATHs
gpsd: fix python paths and RPATHs
gpsd: add chrpath-native to depends
gpsd: disable docs generation

 .../recipes-navigation/gpsd/gpsd-2.96/gpsd.service |    9 --
 .../recipes-navigation/gpsd/gpsd-2.96/gpsd.socket  |    9 --
 ...t-fix-DSO-build-for-ntpshm-garmin_monitor.patch |   41 ++++++
 ...prefix-includepy-with-sysroot-and-drop-sy.patch |   72 +++++++++++
 ...disable-html-and-man-docs-building-becaus.patch |   49 ++++++++
 ...prefix-includepy-with-sysroot-and-drop-sy.patch |   72 +++++++++++
 ...respect-sysroot-setting-when-prepending-L.patch |   36 ++++++
 ...struct-respect-sysroot-also-in-SPLINTOPTS.patch |   29 +++++
 ...strptime-prototype-is-not-provided-unless.patch |   39 ++++++
 .../gpsd/gpsd/0004-SConstruct-remove-rpath.patch   |   41 ++++++
 .../gpsd/{gpsd-2.96 => gpsd}/60-gpsd.rules         |    0
 .../gpsd/{gpsd-2.96 => gpsd}/gpsd                  |    0
 .../gpsd/{gpsd-2.96 => gpsd}/gpsd-default          |    0
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb        |  127 +++++++++++++++++++
 meta-oe/recipes-navigation/gpsd/gpsd_3.5.bb        |  128 ++++++++++++++++++++
 .../gpsd/{gpsd_2.96.bb => gpsd_git.bb}             |   87 ++++++++-----
 16 files changed, 688 insertions(+), 51 deletions(-)
 delete mode 100644 meta-oe/recipes-navigation/gpsd/gpsd-2.96/gpsd.service
 delete mode 100644 meta-oe/recipes-navigation/gpsd/gpsd-2.96/gpsd.socket
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd-3.4/0001-SConstruct-fix-DSO-build-for-ntpshm-garmin_monitor.patch
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd-3.4/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-disable-html-and-man-docs-building-becaus.patch
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-respect-sysroot-setting-when-prepending-L.patch
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0003-Revert-The-strptime-prototype-is-not-provided-unless.patch
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0004-SConstruct-remove-rpath.patch
 rename meta-oe/recipes-navigation/gpsd/{gpsd-2.96 => gpsd}/60-gpsd.rules (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-2.96 => gpsd}/gpsd (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-2.96 => gpsd}/gpsd-default (100%)
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd_3.5.bb
 rename meta-oe/recipes-navigation/gpsd/{gpsd_2.96.bb => gpsd_git.bb} (53%)
Signature · 1 line
1.7.8.6
#1 lore raw

PATCH 1/16 gpsd: update to 3.4

From: Denis 'GNUtoo' Carikli <[email protected]>

---
 .../gpsd/{gpsd-2.96 => gpsd-3.4}/60-gpsd.rules     |    0
 .../gpsd/{gpsd-2.96 => gpsd-3.4}/gpsd              |    0
 .../gpsd/{gpsd-2.96 => gpsd-3.4}/gpsd-default      |    0
 .../gpsd/{gpsd-2.96 => gpsd-3.4}/gpsd.service      |    0
 .../gpsd/{gpsd-2.96 => gpsd-3.4}/gpsd.socket       |    0
 .../gpsd/{gpsd_2.96.bb => gpsd_3.4.bb}             |   49 +++++++++++---------
 6 files changed, 27 insertions(+), 22 deletions(-)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-2.96 => gpsd-3.4}/60-gpsd.rules (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-2.96 => gpsd-3.4}/gpsd (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-2.96 => gpsd-3.4}/gpsd-default (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-2.96 => gpsd-3.4}/gpsd.service (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-2.96 => gpsd-3.4}/gpsd.socket (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd_2.96.bb => gpsd_3.4.bb} (74%)
meta-oe/recipes-navigation/gpsd/gpsd-3.4/60-gpsd.rules renamed from meta-oe/recipes-navigation/gpsd/gpsd-2.96/60-gpsd.rules +0 -0
similarity index 100%
rename from meta-oe/recipes-navigation/gpsd/gpsd-2.96/60-gpsd.rules
rename to meta-oe/recipes-navigation/gpsd/gpsd-3.4/60-gpsd.rules
meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd renamed from meta-oe/recipes-navigation/gpsd/gpsd-2.96/gpsd +0 -0
similarity index 100%
rename from meta-oe/recipes-navigation/gpsd/gpsd-2.96/gpsd
rename to meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd
meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd-default renamed from meta-oe/recipes-navigation/gpsd/gpsd-2.96/gpsd-default +0 -0
similarity index 100%
rename from meta-oe/recipes-navigation/gpsd/gpsd-2.96/gpsd-default
rename to meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd-default
meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd.service renamed from meta-oe/recipes-navigation/gpsd/gpsd-2.96/gpsd.service +0 -0
similarity index 100%
rename from meta-oe/recipes-navigation/gpsd/gpsd-2.96/gpsd.service
rename to meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd.service
meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd.socket renamed from meta-oe/recipes-navigation/gpsd/gpsd-2.96/gpsd.socket +0 -0
similarity index 100%
rename from meta-oe/recipes-navigation/gpsd/gpsd-2.96/gpsd.socket
rename to meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd.socket
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb renamed from meta-oe/recipes-navigation/gpsd/gpsd_2.96.bb +27 -22

90 lines not on this page · raw message

Signature · 1 line
1.7.8.6
#2 lore raw

PATCH 2/16 gpsd: move files to gpsd dir as they are not version specific

In reply to Martin Jansa
---
 .../gpsd/{gpsd-3.4 => gpsd}/60-gpsd.rules          |    0
 .../gpsd/{gpsd-3.4 => gpsd}/gpsd                   |    0
 .../gpsd/{gpsd-3.4 => gpsd}/gpsd-default           |    0
 .../gpsd/{gpsd-3.4 => gpsd}/gpsd.service           |    0
 .../gpsd/{gpsd-3.4 => gpsd}/gpsd.socket            |    0
 5 files changed, 0 insertions(+), 0 deletions(-)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.4 => gpsd}/60-gpsd.rules (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.4 => gpsd}/gpsd (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.4 => gpsd}/gpsd-default (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.4 => gpsd}/gpsd.service (100%)
 rename meta-oe/recipes-navigation/gpsd/{gpsd-3.4 => gpsd}/gpsd.socket (100%)
meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules renamed from meta-oe/recipes-navigation/gpsd/gpsd-3.4/60-gpsd.rules +0 -0
similarity index 100%
rename from meta-oe/recipes-navigation/gpsd/gpsd-3.4/60-gpsd.rules
rename to meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules
meta-oe/recipes-navigation/gpsd/gpsd/gpsd renamed from meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd +0 -0
similarity index 100%
rename from meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd
rename to meta-oe/recipes-navigation/gpsd/gpsd/gpsd
meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default renamed from meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd-default +0 -0
similarity index 100%
rename from meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd-default
rename to meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default
meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service renamed from meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd.service +0 -0
similarity index 100%
rename from meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd.service
rename to meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service
meta-oe/recipes-navigation/gpsd/gpsd/gpsd.socket renamed from meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd.socket +0 -0
similarity index 100%
rename from meta-oe/recipes-navigation/gpsd/gpsd-3.4/gpsd.socket
rename to meta-oe/recipes-navigation/gpsd/gpsd/gpsd.socket
Signature · 1 line
1.7.8.6
#3 lore raw

PATCH 3/16 gpsd-3.4: minor style issues

In reply to Martin Jansa
---
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb |   29 ++++++++++++--------------
 1 files changed, 13 insertions(+), 16 deletions(-)
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +13 -16
index 972871a..0e67555 100644
@@ -5,16 +5,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800"
 DEPENDS = "dbus dbus-glib ncurses python libusb1"
 PROVIDES = "virtual/gpsd"
 
-PR = "r0"
-
-SRC_URI = "http://download.savannah.gnu.org/releases/gpsd/gpsd-${PV}.tar.gz;name=gpsd \
-           file://gpsd-default \
-           file://gpsd \
-           file://gpsd.socket \
-           file://gpsd.service \
-           file://60-gpsd.rules"
-SRC_URI[gpsd.md5sum] = "c01353459faa68834309109d4e868460"
-SRC_URI[gpsd.sha256sum] = "79f7de9ead63c7f5d2c9a92e85b5f82e53323c4d451ef8e27ea265ac3ef9a70f"
+SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
+  file://gpsd-default \
+  file://gpsd \
+  file://gpsd.socket \
+  file://gpsd.service \
+  file://60-gpsd.rules \
+"
+SRC_URI[md5sum] = "c01353459faa68834309109d4e868460"
+SRC_URI[sha256sum] = "79f7de9ead63c7f5d2c9a92e85b5f82e53323c4d451ef8e27ea265ac3ef9a70f"
 
 inherit scons update-rc.d python-dir systemd
 
@@ -24,7 +23,6 @@ INITSCRIPT_PARAMS = "defaults 35"
 SYSTEMD_PACKAGES = "${PN}-systemd"
 SYSTEMD_SERVICE = "${PN}.socket"
 
-
 LDFLAGS += "-L${STAGING_LIBDIR} -lm"
 export STAGING_INCDIR
 export STAGING_LIBDIR
@@ -66,13 +64,10 @@ do_install_append() {
     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/
-    install -d ${D}${base_libdir}/udev/
 
     #support for python
     install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
-    for f in ${S}/gps/* ;do
-        install $f ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
-    done
+    install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
 }
 
 pkg_postinst_${PN}-conf() {
@@ -80,11 +75,13 @@ pkg_postinst_${PN}-conf() {
 }
 
 pkg_postrm_${PN}-conf() {
-	update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default	
+	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_gpsd-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc"
+
 FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug"
 
 RDEPENDS_${PN} = "gpsd-gpsctl"
Signature · 1 line
1.7.8.6
#4 lore raw

PATCH 4/16 gpsd-3.4: drop pkgconfig=''

In reply to Martin Jansa

* this is wrong, it's used as path where to install .pc files and we expect them in not directly in sysroot

---
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +0 -1
index 0e67555..9584e55 100644
@@ -34,7 +34,6 @@ EXTRA_OESCONS = " \
   debug='true' \
   strip='false' \
   systemd='true' \
-  pkgconfig='${PKG_CONFIG_DIR}' \
 "
 
 do_compile_prepend() {
Signature · 1 line
1.7.8.6
#5 lore raw

PATCH 5/16 gpsd-3.4: fix DSO build correctly

In reply to Martin Jansa
---
 ...t-fix-DSO-build-for-ntpshm-garmin_monitor.patch |   41 ++++++++++++++++++++
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb        |    4 +-
 2 files changed, 42 insertions(+), 3 deletions(-)
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd-3.4/0001-SConstruct-fix-DSO-build-for-ntpshm-garmin_monitor.patch
meta-oe/recipes-navigation/gpsd/gpsd-3.4/0001-SConstruct-fix-DSO-build-for-ntpshm-garmin_monitor.patch new file +41 -0
new file mode 100644
index 0000000..1aa4304
@@ -0,0 +1,41 @@
+From e1f780fc2355c22c2c3f0a70c1a1ef2669779c53 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <[email protected]>
+Date: Tue, 24 Apr 2012 13:42:38 +0200
+Subject: [PATCH] SConstruct: fix DSO build for ntpshm, garmin_monitor
+
+| x86_64-oe-linux-gcc -m64
+--sysroot=/OE/shr-core/tmp-eglibc/sysroots/qemux86-64 -o gpsmon
+--sysroot=/OE/shr-core/tmp-eglibc/sysroots/qemux86-64
+-Wl,-rpath=/OE/shr-core/tmp-eglibc/work/x86_64-oe-linux/gpsd/gpsd-3.4-r2/gpsd-3.4
+-Wl,-rpath=/OE/shr-core/tmp-eglibc/sysroots/qemux86-64/usr/lib gpsmon.o
+monitor_italk.o monitor_nmea.o monitor_oncore.o monitor_sirf.o
+monitor_superstar2.o monitor_tnt.o monitor_ubx.o monitor_garmin.o -L.
+-L/OE/shr-core/tmp-eglibc/sysroots/qemux86-64/usr/lib
+-L/OE/shr-core/tmp-eglibc/sysroots/qemux86-64/lib -lrt -lbluetooth
+-lgpsd -lusb-1.0 -lbluetooth -lgps -lncurses -ltinfo
+
+/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/4.6.4/ld:
+* ntpshm.o: undefined reference to symbol 'log@@GLIBC_2.2.5'
+* monitor_garmin.o: undefined reference to symbol 'hypot@@GLIBC_2.2.5'
+
+Signed-off-by: Martin Jansa <[email protected]>
+---
+ SConstruct |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 7bd44a1..9ff00c1 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -806,7 +806,7 @@ if qt_env:
+ # The libraries have dependencies on system libraries
+ 
+ gpslibs = ["-lgps"]
+-gpsdlibs = ["-lgpsd"] + usblibs + bluezlibs + gpslibs
++gpsdlibs = ["-lgpsd"] + ["-lm"] + usblibs + bluezlibs + gpslibs
+ 
+ # Source groups
+ 
+-- 
+1.7.8.5
+
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +1 -3
index 9584e55..bb79368 100644
@@ -6,6 +6,7 @@ DEPENDS = "dbus dbus-glib ncurses python libusb1"
 PROVIDES = "virtual/gpsd"
 
 SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
+  file://0001-SConstruct-fix-DSO-build-for-ntpshm-garmin_monitor.patch \
   file://gpsd-default \
   file://gpsd \
   file://gpsd.socket \
@@ -23,12 +24,9 @@ INITSCRIPT_PARAMS = "defaults 35"
 SYSTEMD_PACKAGES = "${PN}-systemd"
 SYSTEMD_SERVICE = "${PN}.socket"
 
-LDFLAGS += "-L${STAGING_LIBDIR} -lm"
 export STAGING_INCDIR
 export STAGING_LIBDIR
 
-CC += "${LDFLAGS}"
-
 EXTRA_OESCONS = " \
   libQgpsmm='false' \
   debug='true' \
Signature · 1 line
1.7.8.6
#6 lore raw

PATCH 6/16 gpsd: pass sysroot param to scons and fix SConstruct to respect that

In reply to Martin Jansa
---
 ...respect-sysroot-setting-when-prepending-L.patch |   36 ++++++++++++++++++++
 ...struct-respect-sysroot-also-in-SPLINTOPTS.patch |   29 ++++++++++++++++
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb        |    7 +++-
 3 files changed, 71 insertions(+), 1 deletions(-)
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-respect-sysroot-setting-when-prepending-L.patch
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-respect-sysroot-setting-when-prepending-L.patch new file +36 -0
new file mode 100644
index 0000000..6b720a5
@@ -0,0 +1,36 @@
+From 7427bb23092b3e395d14e42cd3b64691082fe826 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <[email protected]>
+Date: Tue, 24 Apr 2012 10:58:26 +0200
+Subject: [PATCH 1/4] SConstruct: respect sysroot setting when prepending
+ LIBPATH/RPATH
+
+Signed-off-by: Martin Jansa <[email protected]>
+---
+ SConstruct |   11 ++++++++---
+ 1 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 22bc9f4..21b2205 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -269,9 +269,14 @@ def installdir(dir, add_destdir=True):
+     return wrapped
+ 
+ # Honor the specified installation prefix in link paths.
+-env.Prepend(LIBPATH=[installdir('libdir')])
+-if env["shared"]:
+-    env.Prepend(RPATH=[installdir('libdir')])
++if env['sysroot']:
++    env.Prepend(LIBPATH=[os.path.normpath("%s/%s/%s" % (env['sysroot'], env['prefix'], env['libdir']))])
++    if env["shared"]:
++        env.Prepend(RPATH=[os.path.normpath("%s/%s/%s" % (env['sysroot'], env['prefix'], env['libdir']))])
++else:
++    env.Prepend(LIBPATH=[installdir('libdir')])
++    if env["shared"]:
++        env.Prepend(RPATH=[installdir('libdir')])
+ 
+ # Give deheader a way to set compiler flags
+ if 'MORECFLAGS' in os.environ:
+-- 
+1.7.8.5
+
meta-oe/recipes-navigation/gpsd/gpsd/0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch new file +29 -0
new file mode 100644
index 0000000..55ef704
@@ -0,0 +1,29 @@
+From 5266eb72cbc8193faa2345b8774b0f159e61c067 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <[email protected]>
+Date: Tue, 24 Apr 2012 11:52:35 +0200
+Subject: [PATCH 2/4] SConstruct: respect sysroot also in SPLINTOPTS
+
+Signed-off-by: Martin Jansa <[email protected]>
+---
+ SConstruct |    5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 21b2205..0cf5799 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1224,7 +1224,10 @@ def Utility(target, source, action):
+ 
+ # Report splint warnings
+ # Note: test_bits.c is unsplintable because of the PRI64 macros.
+-env['SPLINTOPTS'] = "-I/usr/include/libusb-1.0 +quiet"
++if env['sysroot']:
++    env['SPLINTOPTS'] = "-I%s/usr/include/libusb-1.0 +quiet" % env['sysroot']
++else:
++    env['SPLINTOPTS'] = "-I/usr/include/libusb-1.0 +quiet"
+ 
+ def Splint(target,sources, description, params):
+     return Utility(target,sources+generated_sources,[
+-- 
+1.7.8.5
+
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +6 -1
index bb79368..7502f9a 100644
@@ -7,6 +7,8 @@ PROVIDES = "virtual/gpsd"
 
 SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
   file://0001-SConstruct-fix-DSO-build-for-ntpshm-garmin_monitor.patch \
+  file://0001-SConstruct-respect-sysroot-setting-when-prepending-L.patch \
+  file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
   file://gpsd-default \
   file://gpsd \
   file://gpsd.socket \
@@ -28,16 +30,19 @@ export STAGING_INCDIR
 export STAGING_LIBDIR
 
 EXTRA_OESCONS = " \
+  sysroot=${STAGING_DIR_TARGET} \
   libQgpsmm='false' \
   debug='true' \
   strip='false' \
   systemd='true' \
 "
+# this cannot be used, because then chrpath is not found and only static lib is built
+# target=${HOST_SYS}
 
 do_compile_prepend() {
-    export LIBPATH="${STAGING_LIBDIR}"
     export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
     export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+
     export BUILD_SYS="${BUILD_SYS}"
     export HOST_SYS="${HOST_SYS}"
 }
Signature · 1 line
1.7.8.6
#7 lore raw

PATCH 7/16 gpsd: export PKG_CONFIG with PKG_CONFIG_SYSROOT_DIR

In reply to Martin Jansa

* python-scons-native executes pkg-config with wrong environment and as result -I/usr/include/libusb-1.0 is returned

---
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +2 -0
index 7502f9a..37fb79d 100644
@@ -41,6 +41,7 @@ EXTRA_OESCONS = " \
 
 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}"
@@ -49,6 +50,7 @@ do_compile_prepend() {
 
 do_install_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}"
Signature · 1 line
1.7.8.6
#8 lore raw

PATCH 8/16 gpsd: use gpsd.service and gpsd.socket from source tree, drop local files

In reply to Martin Jansa
---
 meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service |    9 ---------
 meta-oe/recipes-navigation/gpsd/gpsd/gpsd.socket  |    9 ---------
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb       |    7 +++++--
 3 files changed, 5 insertions(+), 20 deletions(-)
 delete mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service
 delete mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/gpsd.socket
meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service deleted +0 -9
deleted file mode 100644
index 8deaf75..0000000
@@ -1,9 +0,0 @@
-[Unit]
-Description=GPS (Global Positioning System) Daemon
-Requires=gpsd.socket
-
-[Service]
-ExecStart=/usr/sbin/gpsd -N
-
-[Install]
-Also=gpsd.socket
meta-oe/recipes-navigation/gpsd/gpsd/gpsd.socket deleted +0 -9
deleted file mode 100644
index 13c17f2..0000000
@@ -1,9 +0,0 @@
-[Unit]
-Description=GPS (Global Positioning System) Daemon Sockets
-
-[Socket]
-ListenStream=/var/run/gpsd.sock
-ListenStream=127.0.0.1:2947
-
-[Install]
-WantedBy=sockets.target
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +5 -2
index 37fb79d..d139091 100644
@@ -11,8 +11,6 @@ SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
   file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
   file://gpsd-default \
   file://gpsd \
-  file://gpsd.socket \
-  file://gpsd.service \
   file://60-gpsd.rules \
 "
 SRC_URI[md5sum] = "c01353459faa68834309109d4e868460"
@@ -72,6 +70,11 @@ do_install_append() {
     #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/${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() {
Signature · 1 line
1.7.8.6
#9 lore raw

PATCH 9/16 gpsd: replace whole do_install from scons.bbclass

In reply to Martin Jansa

* prefix was wrong, because SConstruct expects prefix usable as RPATH and DESTDIR not DESTDIR/prefix combined together in prefix variable

---
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +6 -1
index d139091..fae3492 100644
@@ -46,13 +46,18 @@ do_compile_prepend() {
     export HOST_SYS="${HOST_SYS}"
 }
 
-do_install_prepend() {
+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() {
Signature · 1 line
1.7.8.6
#10 lore raw

PATCH 10/16 gpsd: remove RPATH from binaries instead of replacing it with redundant /usr/lib

In reply to Martin Jansa
---
 .../gpsd/gpsd/0004-SConstruct-remove-rpath.patch   |   41 ++++++++++++++++++++
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb        |    1 +
 2 files changed, 42 insertions(+), 0 deletions(-)
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0004-SConstruct-remove-rpath.patch
meta-oe/recipes-navigation/gpsd/gpsd/0004-SConstruct-remove-rpath.patch new file +41 -0
new file mode 100644
index 0000000..add624b
@@ -0,0 +1,41 @@
+From b59f8c5bf8519a5ca114696e79b8690ebb68e0d3 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <[email protected]>
+Date: Tue, 24 Apr 2012 16:24:35 +0200
+Subject: [PATCH 4/4] 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 <[email protected]>
+---
+ SConstruct |    7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 0cf5799..3c919fc 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1152,8 +1152,11 @@ if qt_env:
+ 
+ # We don't use installdir here in order to avoid having DESTDIR affect the rpath
+ if env["shared"]:
+-    env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
+-                      % (installdir('libdir', False), ))
++    if env['sysroot']:
++        env.AddPostAction(binaryinstall, '$CHRPATH -d "$TARGET"')
++    else:
++        env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
++                         % (installdir('libdir', False), ))
+ 
+ if not env['debug'] and not env['profiling'] and env['strip']:
+     env.AddPostAction(binaryinstall, '$STRIP $TARGET')
+-- 
+1.7.8.5
+
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +1 -0
index fae3492..0796c34 100644
@@ -9,6 +9,7 @@ SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
   file://0001-SConstruct-fix-DSO-build-for-ntpshm-garmin_monitor.patch \
   file://0001-SConstruct-respect-sysroot-setting-when-prepending-L.patch \
   file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
+  file://0004-SConstruct-remove-rpath.patch \
   file://gpsd-default \
   file://gpsd \
   file://60-gpsd.rules \
Signature · 1 line
1.7.8.6
#11 lore raw

PATCH 11/16 gpsd: add recipe for 3.5 with negative D_P for testing

In reply to Martin Jansa
---
 ...strptime-prototype-is-not-provided-unless.patch |   39 ++++++
 meta-oe/recipes-navigation/gpsd/gpsd_3.5.bb        |  126 ++++++++++++++++++++
 2 files changed, 165 insertions(+), 0 deletions(-)
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0003-Revert-The-strptime-prototype-is-not-provided-unless.patch
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd_3.5.bb
meta-oe/recipes-navigation/gpsd/gpsd/0003-Revert-The-strptime-prototype-is-not-provided-unless.patch new file +39 -0
new file mode 100644
index 0000000..c2d191c
@@ -0,0 +1,39 @@
+From c6bb11767172407bfaaebd962b4d12cd8e8a1fb0 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <[email protected]>
+Date: Tue, 24 Apr 2012 14:57:04 +0200
+Subject: [PATCH 3/4] Revert "The strptime prototype is not provided unless
+ explicitly requested."
+
+* This reverts commit 615d3eb14ea4833ce38ea89ec385308f4f679b33.
+* with _XOPEN_SOURCE defined, we don't have
+  CLOCK_REALTIME and timespec defined and build fails:
+  | arm-oe-linux-gnueabi-gcc -march=armv4t -mthumb -mthumb-interwork -mtune=arm920t --sysroot=/OE/shr-core/tmp-eglibc/sysroots/om-gta02 -o gpsutils.os -c -O2 -pipe -g -feliminate-unused-debug-types --sysroot=/OE/shr-core/tmp-eglibc/sysroots/om-gta02 -O2 -fPIC gpsutils.c
+  | gpsutils.c: In function 'timestamp':
+  | gpsutils.c:299:22: error: storage size of 'ts' isn't known
+  | gpsutils.c:300:34: error: 'CLOCK_REALTIME' undeclared (first use in this function)
+  | gpsutils.c:300:34: note: each undeclared identifier is reported only once for each function it appears in
+  | gpsutils.c: In function 'unix_to_iso8601':
+  | gpsutils.c:385:11: warning: incompatible implicit declaration of built-in function 'snprintf' [enabled by default]
+---
+ gpsutils.c |    5 -----
+ 1 files changed, 0 insertions(+), 5 deletions(-)
+
+diff --git a/gpsutils.c b/gpsutils.c
+index 60c4ae9..a1530ec 100644
+--- a/gpsutils.c
++++ b/gpsutils.c
+@@ -3,11 +3,6 @@
+  * This file is Copyright (c) 2010 by the GPSD project
+  * BSD terms apply: see the file COPYING in the distribution root for details.
+  */
+-
+-/* The strptime prototype is not provided unless explicitly requested.
+- *  So add the define that POSIX says to to avoid: */
+-#define _XOPEN_SOURCE
+-
+ #include <stdio.h>
+ #include <time.h>
+ #include <sys/time.h>
+-- 
+1.7.8.5
+
meta-oe/recipes-navigation/gpsd/gpsd_3.5.bb new file +126 -0

126 lines not on this page · raw message

Signature · 1 line
1.7.8.6
#12 lore raw

PATCH 12/16 gpsd: add git recipe with negative D_P for tests

In reply to Martin Jansa
---
 meta-oe/recipes-navigation/gpsd/gpsd_git.bb |  129 +++++++++++++++++++++++++++
 1 files changed, 129 insertions(+), 0 deletions(-)
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd_git.bb
meta-oe/recipes-navigation/gpsd/gpsd_git.bb new file +129 -0
new file mode 100644
index 0000000..8bb0d3e
@@ -0,0 +1,129 @@
+DESCRIPTION = "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"
+PROVIDES = "virtual/gpsd"
+
+SRCREV = "f8744f4af8cef211de698df5d8e6caddfe33f29d"
+
+DEFAULT_PREFERENCE = "-1"
+PV = "3.5+gitr${SRCPV}"
+
+SRC_URI = "git://git.sv.gnu.org/gpsd.git;protocol=git;branch=master \
+  file://0001-SConstruct-respect-sysroot-setting-when-prepending-L.patch \
+  file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
+  file://0003-Revert-The-strptime-prototype-is-not-provided-unless.patch \
+  file://0004-SConstruct-remove-rpath.patch \
+  file://gpsd-default \
+  file://gpsd \
+  file://60-gpsd.rules \
+"
+S = "${WORKDIR}/git"
+
+inherit scons update-rc.d python-dir systemd
+
+INITSCRIPT_NAME = "gpsd"
+INITSCRIPT_PARAMS = "defaults 35"
+
+SYSTEMD_PACKAGES = "${PN}-systemd"
+SYSTEMD_SERVICE = "${PN}.socket"
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+EXTRA_OESCONS = " \
+  sysroot=${STAGING_DIR_TARGET} \
+  libQgpsmm='false' \
+  debug='true' \
+  strip='false' \
+  systemd='true' \
+"
+# 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 ${S}/systemd/${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_gpsd-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"
+
+DESCRIPTION_gpsd-udev = "udev relevant files to use gpsd hotplugging"
+FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*"
+RDEPENDS_gpsd-udev += "udev gpsd-conf"
+
+DESCRIPTION_libgpsd = "C service library used for communicating with gpsd"
+FILES_libgpsd = "${libdir}/libgpsd.so.*"
+
+DESCRIPTION_libgps = "C service library used for communicating with gpsd"
+FILES_libgps = "${libdir}/libgps.so.*"
+
+DESCRIPTION_gpsd-conf = "gpsd configuration files and init scripts"
+FILES_gpsd-conf = "${sysconfdir}"
+
+DESCRIPTION_gpsd-gpsctl = "Tool for tweaking GPS modes"
+FILES_gpsd-gpsctl = "${bindir}/gpsctl"
+
+DESCRIPTION_gps-utils = "Utils used for simulating, monitoring,... a GPS"
+FILES_gps-utils = "${bindir}/*"
+RDEPENDS_gps-utils = "python-pygps"
+
+DESCRIPTION_python-pygps = "Python bindings to gpsd"
+FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS_python-pygps = "python-core python-curses gpsd python-json"
Signature · 1 line
1.7.8.6
#13 lore raw

PATCH 13/16 gpsd-3.4: fix python paths and RPATHs

In reply to Martin Jansa

* see included patch for description

---
 ...prefix-includepy-with-sysroot-and-drop-sy.patch |   72 ++++++++++++++++++++
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb        |    1 +
 2 files changed, 73 insertions(+), 0 deletions(-)
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd-3.4/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
meta-oe/recipes-navigation/gpsd/gpsd-3.4/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch new file +72 -0
new file mode 100644
index 0000000..27c6aad
@@ -0,0 +1,72 @@
+From bc224302f1665078c8d15138318709c1a1c2c0a0 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <[email protected]>
+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 <[email protected]>
+---
+ SConstruct |    9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 9ff00c1..9c0f751 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -924,6 +924,12 @@ else:
+         if vars[i] is None:
+             vars[i] = ""
+     (cc, cxx, opt, basecflags, ccshared, ldshared, so_ext, includepy) = 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
++
+     # in case CC/CXX was set to the scan-build wrapper,
+     # ensure that we build the python modules with scan-build, too
+     if env['CC'] is None or env['CC'].find('scan-build') < 0:
+@@ -1158,11 +1164,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'] or env['profiling']:
+         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
+
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +1 -0
index 0796c34..37bd319 100644
@@ -10,6 +10,7 @@ SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
   file://0001-SConstruct-respect-sysroot-setting-when-prepending-L.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://gpsd-default \
   file://gpsd \
   file://60-gpsd.rules \
Signature · 1 line
1.7.8.6
#14 lore raw

PATCH 14/16 gpsd: fix python paths and RPATHs

In reply to Martin Jansa

* see included patch for description

---
 ...prefix-includepy-with-sysroot-and-drop-sy.patch |   72 ++++++++++++++++++++
 meta-oe/recipes-navigation/gpsd/gpsd_3.5.bb        |    1 +
 meta-oe/recipes-navigation/gpsd/gpsd_git.bb        |    1 +
 3 files changed, 74 insertions(+), 0 deletions(-)
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch new file +72 -0
new file mode 100644
index 0000000..c6eb03b
@@ -0,0 +1,72 @@
+From dd3ca38b27cce93f7e932abaa27b41371234fa90 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <[email protected]>
+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 <[email protected]>
+---
+ SConstruct |    9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 3c919fc..8478181 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -932,6 +932,12 @@ 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
++
+     # in case CC/CXX was set to the scan-build wrapper,
+     # ensure that we build the python modules with scan-build, too
+     if env['CC'] is None or env['CC'].find('scan-build') < 0:
+@@ -1165,11 +1171,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
+
meta-oe/recipes-navigation/gpsd/gpsd_3.5.bb +1 -0
index bd65eae..a1c8f9f 100644
@@ -11,6 +11,7 @@ SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
   file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
   file://0003-Revert-The-strptime-prototype-is-not-provided-unless.patch \
   file://0004-SConstruct-remove-rpath.patch \
+  file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
   file://gpsd-default \
   file://gpsd \
   file://60-gpsd.rules \
meta-oe/recipes-navigation/gpsd/gpsd_git.bb +1 -0
index 8bb0d3e..68f0b9d 100644
@@ -15,6 +15,7 @@ SRC_URI = "git://git.sv.gnu.org/gpsd.git;protocol=git;branch=master \
   file://0002-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
   file://0003-Revert-The-strptime-prototype-is-not-provided-unless.patch \
   file://0004-SConstruct-remove-rpath.patch \
+  file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
   file://gpsd-default \
   file://gpsd \
   file://60-gpsd.rules \
Signature · 1 line
1.7.8.6
#15 lore raw

PATCH 15/16 gpsd: add chrpath-native to depends

In reply to Martin Jansa

* on debian wheezy I've seen this

$ tmp-eglibc/sysroots/x86_64-linux/usr/bin/chrpath ../../../shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/image/usr/sbin/gpsd
../../../shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/image/usr/sbin/gpsd: RPATH=/var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4:/var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/sysroots/om-gta02/usr/lib
$ chrpath ../../../shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/image/usr/sbin/gpsd
`../../../shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/image/usr/sbin/gpsd' probably isn't a 64-bit LSB-first ELF file.
Usage: chrpath [-v|-d|-c|-r <path>] <program> [<program> ...]
                               with the path given
   -l|--list                   List the current rpath/runpath (default)
   -h|--help                   Show this usage information.
$ chrpath -v
chrpath version 0.13
$ tmp-eglibc/sysroots/x86_64-linux/usr/bin/chrpath -v
chrpath version 0.14
---
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +1 -1
index 37bd319..8cd806f 100644
@@ -2,7 +2,7 @@ DESCRIPTION = "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"
+DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-native"
 PROVIDES = "virtual/gpsd"
 
 SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
Signature · 1 line
1.7.8.6
#16 lore raw

PATCH 16/16 gpsd: disable docs generation

In reply to Martin Jansa
---
 ...disable-html-and-man-docs-building-becaus.patch |   49 ++++++++++++++++++++
 meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb        |    1 +
 meta-oe/recipes-navigation/gpsd/gpsd_3.5.bb        |    1 +
 meta-oe/recipes-navigation/gpsd/gpsd_git.bb        |    1 +
 4 files changed, 52 insertions(+), 0 deletions(-)
 create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-disable-html-and-man-docs-building-becaus.patch
meta-oe/recipes-navigation/gpsd/gpsd/0001-SConstruct-disable-html-and-man-docs-building-becaus.patch new file +49 -0
new file mode 100644
index 0000000..9db2432
@@ -0,0 +1,49 @@
+From ca1a781afbd68697ef2f573557f1f93ec7ab8d3c Mon Sep 17 00:00:00 2001
+From: Martin Jansa <[email protected]>
+Date: Sun, 29 Apr 2012 00:05:59 +0200
+Subject: [PATCH] SConstruct: disable html and man docs building because
+ xmlto-native from OE is broken
+
+It will try to load dtd and fail:
+| xmlto man gpsctl.xml; mv `basename gpsctl.1` gpsctl.1
+| xmlto: /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml does not validate (status 3)
+| xmlto: Fix document syntax or use --skip-validation option
+| I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+| /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml:8: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
+|    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+|                                                               ^
+| I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+| warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
+| validity error : Could not load the external subset "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
+| Document /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml does not validate
+| mv: cannot stat `gpsctl.1': No such file or directory
+| scons: *** [gpsctl.1] Error 1
+| scons: building terminated because of errors.
+
+Signed-off-by: Martin Jansa <[email protected]>
+---
+ SConstruct |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 9c0f751..8236abb 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -560,12 +560,12 @@ size_t strlcpy(/*@out@*/char *dst, /*@in@*/const char *src, size_t size);
+ 
+ 
+ manbuilder = mangenerator = htmlbuilder = None
+-if config.CheckXsltproc():
++if False and config.CheckXsltproc():
+     mangenerator = 'xsltproc'
+     build = "xsltproc --nonet %s $SOURCE >$TARGET"
+     htmlbuilder = build % docbook_html_uri
+     manbuilder = build % docbook_man_uri
+-elif WhereIs("xmlto"):
++elif False and WhereIs("xmlto"):
+     mangenerator = 'xmlto'
+     htmlbuilder = "xmlto html-nochunks $SOURCE; mv `basename $TARGET` $TARGET"
+     manbuilder = "xmlto man $SOURCE; mv `basename $TARGET` $TARGET"
+-- 
+1.7.8.6
+
meta-oe/recipes-navigation/gpsd/gpsd_3.4.bb +1 -0
index 8cd806f..7f6d0ba 100644
@@ -11,6 +11,7 @@ SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
   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 \
meta-oe/recipes-navigation/gpsd/gpsd_3.5.bb +1 -0
index a1c8f9f..92060b2 100644
@@ -12,6 +12,7 @@ SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${P}.tar.gz \
   file://0003-Revert-The-strptime-prototype-is-not-provided-unless.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 \
meta-oe/recipes-navigation/gpsd/gpsd_git.bb +1 -0
index 68f0b9d..2d01a77 100644
@@ -16,6 +16,7 @@ SRC_URI = "git://git.sv.gnu.org/gpsd.git;protocol=git;branch=master \
   file://0003-Revert-The-strptime-prototype-is-not-provided-unless.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 \
Signature · 1 line
1.7.8.6