Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bundling correct versions of plugins for GStreamer #559

Open
MikePooh opened this issue Dec 7, 2022 · 0 comments
Open

Bundling correct versions of plugins for GStreamer #559

MikePooh opened this issue Dec 7, 2022 · 0 comments

Comments

@MikePooh
Copy link

MikePooh commented Dec 7, 2022

I am trying to bundle Qt5 app which using GStreamer and its plugins. Running linuxdeployqt-5-x86_64.AppImage on Docker with Ubuntu 20.04 which uses Qt 5.12.8 and GStreamer 1.16.3
It bundles successfully, but after trying to run it on newer Linux distro, I got the following output:

(gpzv:579927): GStreamer-WARNING **: 16:58:21.318: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so: undefined symbol: gst_type_mark_as_plugin_api (gpzv:579927): GStreamer-WARNING **: 16:58:21.318: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so: undefined symbol: gst_type_mark_as_plugin_api (gpzv:579927): GStreamer-WARNING **: 16:58:21.319: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so: undefined symbol: gst_type_mark_as_plugin_api

Obviously that plugins was trying to loads from the wrong (host) path which uses newer GStremaer 1.20.4

This set of plugins which needed during runtime are not show with ldd before bundling, so it doesn't get in to it.
I've run patchelf --add-needed to implicitly set it dependency. After that that it get into ldd and get into the bundle.
libgstcoreelements.so => ..._Docker_x86_64/prog/./lib/libgstcoreelements.so (0x00007f67e2071000)
But unfortunately in runtime it is still uses host path to load that plugins i.e. "/usr/lib/.." instead of bundle path "./lib/..."
How to handle it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant