aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Van Den Berge <sam.van.den.berge@gmail.com>2021-06-17 09:26:16 +0200
committerKhem Raj <raj.khem@gmail.com>2021-06-18 08:39:32 -0700
commit96c7664e4002ae1b691e50fc00f83e41c23dd557 (patch)
tree7cdcf0a3f1561a74eb105fb43c806871343a4afa
parentdf8ecfeacfc84a34a0696a48f3a1dc6d83496271 (diff)
downloadmeta-openembedded-contrib-96c7664e4002ae1b691e50fc00f83e41c23dd557.tar.gz
meta-openembedded-contrib-96c7664e4002ae1b691e50fc00f83e41c23dd557.tar.bz2
meta-openembedded-contrib-96c7664e4002ae1b691e50fc00f83e41c23dd557.zip
libiio: fix installing libiio when python3 bindings are enabled
This patch fixes the following error when libiio is installed when python3 bindings are enabled: ERROR: Execution of '.../libiio/0.21+gitAUTOINC+565bf68ecc-r0/temp/run.do_install.2349473' failed with exit code 1: running build running build_py running install Traceback (most recent call last): File ".../libiio/0.21+gitAUTOINC+565bf68ecc-r0/build/bindings/python/setup.py", line 77, in _check_libiio_installed raise OSError OSError During handling of the above exception, another exception occurred: Traceback (most recent call last): File ".../libiio/0.21+gitAUTOINC+565bf68ecc-r0/build/bindings/python/setup.py", line 106, in <module> setup(**config) File ".../libiio/0.21+gitAUTOINC+565bf68ecc-r0/recipe-sysroot-native/usr/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup return distutils.core.setup(**attrs) File ".../libiio/0.21+gitAUTOINC+565bf68ecc-r0/recipe-sysroot-native/usr/lib/python3.9/distutils/core.py", line 148, in setup dist.run_commands() File ".../libiio/0.21+gitAUTOINC+565bf68ecc-r0/recipe-sysroot-native/usr/lib/python3.9/distutils/dist.py", line 966, in run_commands self.run_command(cmd) File ".../libiio/0.21+gitAUTOINC+565bf68ecc-r0/recipe-sysroot-native/usr/lib/python3.9/distutils/dist.py", line 985, in run_command cmd_obj.run() File ".../libiio/0.21+gitAUTOINC+565bf68ecc-r0/build/bindings/python/setup.py", line 52, in run self._check_libiio_installed() File "/libiio/0.21+gitAUTOINC+565bf68ecc-r0/build/bindings/python/setup.py", line 83, in _check_libiio_installed raise Exception(msg) Exception: The libiio library could not be found. libiio needs to be installed first before the python bindings. The latest release can be found on GitHub: https://github.com/analogdevicesinc/libiio/releases Some time ago a fix for this issue was already discussed here [1]. However in the same discussion also a second issue was being handled. A fix for the second issue was merged in 51f98865da0. The first issue didn't pop up anymore and so a fix was never applied. Recently however after switching from build machine, I started seeing the first issue. I suspect due to build caching the first issue didn't pop up anymore before up until now. With this patch, fixes are now available for both issues handled in [1]. [1]: https://github.com/openembedded/meta-openembedded/issues/248 Signed-off-by: Sam Van Den Berge <sam.van.den.berge@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-oe/recipes-support/libiio/files/0001-python-Do-not-verify-whether-libiio-is-installed-whe.patch34
-rw-r--r--meta-oe/recipes-support/libiio/libiio_git.bb4
2 files changed, 37 insertions, 1 deletions
diff --git a/meta-oe/recipes-support/libiio/files/0001-python-Do-not-verify-whether-libiio-is-installed-whe.patch b/meta-oe/recipes-support/libiio/files/0001-python-Do-not-verify-whether-libiio-is-installed-whe.patch
new file mode 100644
index 0000000000..4d3dcd5ced
--- /dev/null
+++ b/meta-oe/recipes-support/libiio/files/0001-python-Do-not-verify-whether-libiio-is-installed-whe.patch
@@ -0,0 +1,34 @@
+From 717b0f46b23ddc042da481d1d446bdd1c6c49142 Mon Sep 17 00:00:00 2001
+From: Julien Malik <julien.malik@unseenlabs.fr>
+Date: Mon, 27 Jul 2020 14:34:44 +0200
+Subject: [PATCH] python: Do not verify whether libiio is installed when
+ cross-compiling
+
+This should fix #561
+
+Signed-off-by: Julien Malik <julien.malik@paraiso.me>
+---
+ bindings/python/setup.py.cmakein | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/bindings/python/setup.py.cmakein b/bindings/python/setup.py.cmakein
+index cd14e2e..96d58a8 100644
+--- a/bindings/python/setup.py.cmakein
++++ b/bindings/python/setup.py.cmakein
+@@ -54,6 +54,13 @@ class InstallWrapper(install):
+ install.run(self)
+
+ def _check_libiio_installed(self):
++ cross_compiling = ("${CMAKE_CROSSCOMPILING}" == "TRUE")
++ if cross_compiling:
++ # When cross-compiling, we generally cannot dlopen
++ # the libiio shared lib from the build platform.
++ # Simply skip this check in that case.
++ return
++
+ from platform import system as _system
+ from ctypes import CDLL as _cdll
+ from ctypes.util import find_library
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-oe/recipes-support/libiio/libiio_git.bb
index 6f37d1e898..d2d6fd4751 100644
--- a/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -7,7 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
SRCREV = "565bf68eccfdbbf22cf5cb6d792e23de564665c7"
PV = "0.21+git${SRCPV}"
-SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https"
+SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https \
+ file://0001-python-Do-not-verify-whether-libiio-is-installed-whe.patch \
+"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
S = "${WORKDIR}/git"