[OE-core] [PATCH] gstreamer1.0-python_1.16.0.bb: Override libpython dir

Jaewon Lee jaewon.lee at xilinx.com
Tue Jun 11 00:35:53 UTC 2019


As mentioned in upstream commit a2cf84affff8a78fdaa8fabcfa9b40be1936678e,
"gstpythonplugin hardcodes the location of the libpython from the build
workspace and then fails at runtime."

In other words, PYTHON_LIB_LOC was set to the recipe-sysroot-native dir
in the gstreamer1.0-python workspace on the host. Overriding
PYTHON_LIB_LOC with /usr/lib by adding --with-libpython-dir=${libdir} to
EXTRA_OECONF to fix this issue.

The error that was seen is:
** (gst-plugin-scanner:2343): CRITICAL **: 23:08:18.327: Couldn't
g_module_open libpython. Reason: ${project}/build/tmp/work/${arch}/
gstreamer1.0-python/1.14.4-r0/recipe-sysroot-native/usr/lib/libpython3.5m.so:
cannot open shared object file: No such file or directory

The comment continues and says "it still fails because it looks for
a symlinked library ending in .so instead of the actually library with
LIBNAME.so.MAJOR.MINOR. Although we could patch the code to use the path
we want, it will break again if the library version ever changes."
This isn't the case anymore as the package is deploying
/usr/lib/gstreamer-1.0/libgstpython.cpython-37m-i386-linux-gnu.so, a
versionless so.

Signed-off-by: Jaewon Lee <jaewon.lee at xilinx.com>
Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr at xilinx.com>
---
 .../gstreamer/gstreamer1.0-python_1.16.0.bb                  | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb
index af9f3f2..0f3aac1 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.0.bb
@@ -22,16 +22,10 @@ UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspe
 
 inherit autotools pkgconfig distutils3-base upstream-version-is-even gobject-introspection distro_features_check
 
+EXTRA_OECONF += "--with-libpython-dir=${libdir}"
+
 do_install_append() {
-    # gstpythonplugin hardcodes the location of the libpython from the build
-    # workspace and then fails at runtime. We can override it using
-    # --with-libpython-dir=${libdir}, but it still fails because it looks for a
-    # symlinked library ending in .so instead of the actually library with
-    # LIBNAME.so.MAJOR.MINOR. Although we could patch the code to use the path
-    # we want, it will break again if the library version ever changes. We need
-    # to think about the best way of handling this and possibly consult
-    # upstream.
-    #
+
     # Note that this particular find line is taken from the Debian packaging for
     # gst-python1.0.
     find "${D}" \
-- 
2.7.4



More information about the Openembedded-core mailing list