linuxdeploy-plugin-qt icon indicating copy to clipboard operation
linuxdeploy-plugin-qt copied to clipboard

Error seen after removing x11 and adding Wayland/Weston compositor to Poky Linux ARMv8 build

Open mdear opened this issue 1 year ago • 4 comments

Hello,

Having troubles running linuxdeploy-qt after removing x11 and adding wayland with weston compositor to my Yocto Poky Kirkstone ATMv8 build

I got your whole linuxdeploy toolchain with qt input and appimage qt output plugins working on , but then when I tried to run the AppImage on target, I realized it was looking for x11 binaries, which do not exist on our CrossControl v700 / v1200 screens since they are based on Wayland instead of X11 and use a Weston compositor.

So, I rebuilt my Poky binary with the following changes to $POKY_ROOT/build/conf/local.conf (after completely removing the build/tmp directory tree):

ERROR: Cannot deploy non-existing library file: /usr/lib/plugins/platforms/libqxcb.so

# Set the distro to work with Wayland and remove all X11 support since these
# are incompatible technologies and our v700/v1200 features use Wayland.
DISTRO_FEATURES:remove = "x11"
DISTRO_FEATURES:append = " wayland"
PACKAGECONFIG:remove:pn-qtbase = "x11"
PACKAGECONFIG:append:pn-qtbase = " wayland"

And now I'm getting the following error from the qt plugin:

...

-- Running input plugin: qt --
[qt/stderr] linuxdeploy-plugin-qt version 1-alpha (git commit ID 52d9a4c), GitHub actions build 130 built on 2024-01-09 17:22:58 UTC
[qt/stdout] Using qmake: /usr/bin/qmake
[qt/stdout]
[qt/stdout] Using Qt version:  6.5.3  ( 6 )
[qt/stdout]   libEGL.so.1  libGLESv2.so.2  libQt6Core.so.6  libQt6DBus.so.6  libQt6Gui.so.6  libQt6Network.so.6  libQt6Qml.so.6  libc.so.6  libdbus-1.so.3  libdrm.so.2  libexpat.so.1  libffi.so.8  libfontconfig.so.1  libfreetype.so.6  libgbm.so.1  libgcc_s.so.1  libglapi.so.0  libglib-2.0.so.0  libharfbuzz.so.0  libicudata.so.70  libicui18n.so.70  libicuuc.so.70  libm.so.6  libpcre.so.1  libpcre2-16.so.0  libpng16.so.16  libpthread.so.0  libstdc++.so.6  libuuid.so.1  libwayland-client.so.0  libwayland-server.so.0  libxkbcommon.so.0  libz.so.1  libzstd.so.1
[qt/stdout] Found Qt modules: core dbus gui network qml
[qt/stdout] Extra Qt modules:  
[qt/stdout]
[qt/stdout] QT_INSTALL_LIBS: /usr/lib
[qt/stdout] Prepending QT_INSTALL_LIBS path to $LD_LIBRARY_PATH, new $LD_LIBRARY_PATH: /usr/lib:/lib:/usr/lib:/home/ccs/Qt/Projects/CortexBuilds/glibc_2.35_out/lib:/home/ccs/Qt/Projects/CortexBuilds/V700/Qt-6.4.1/lib:/home/ccs/Qt/Projects/CortexBuilds/glibc_2.34_out/lib:/home/ccs/Qt/Projects/CortexBuilds/V700/sysroots/cortexa35-poky-linux/lib:/home/ccs/Qt/Projects/CortexBuilds/V700/sysroots/cortexa35-poky-linux/usr/lib:/home/ccs/Qt/Projects/CortexBuilds/lib
[qt/stdout] Prepending QT_INSTALL_BINS and QT_INSTALL_LIBEXECS paths to $PATH, new $PATH: /usr/bin:/usr/libexec:/opt/bin:/bin:/usr/bin:/home/ccs/Qt/Projects/CortexBuilds/bin
[qt/stdout]
[qt/stdout] -- Deploying module: core --
[qt/stdout]
[qt/stdout] -- Deploying module: dbus --
[qt/stdout]
[qt/stdout] -- Deploying module: gui --
[qt/stdout] Deploying platform plugins
[qt/stdout] ERROR: Cannot deploy non-existing library file: /usr/lib/plugins/platforms/libqxcb.so
ERROR: Failed to run plugin: qt (exit code: 1)
ccs@qemuarm64:~/Qt/Projects/CortexBuilds/bin$

Any hints on how to resolve ?

Thanks,

mdear avatar Feb 21 '24 16:02 mdear

I tried defining the following environment variable before invoking the linuxdeploy toolchain:

export QT_QPA_PLATFORM=wayland

mdear avatar Feb 21 '24 17:02 mdear

I'm stuck again. I'm failing at the same point on my QEMU Yocto Poky Kirkstone build with x11 stripped out and wayland/weston added (and rebuilt completely from scratch)

I'm also running the packaging script on a physical ARMv8 device (CrossControl V700) and am also getting stopped at the exact same point.

I'm scratching my head trying to figure out why the linuxdeploy-plugin-qt has any kind of X11 dependencies.

mdear avatar Feb 22 '24 12:02 mdear

I hacked my way around this, but hope for a fix that will allow a system with no x11 support to not expect x11 libraries.

mdear avatar Feb 23 '24 20:02 mdear

I finally got an AppImage that works on my ARMv8 target, but I had to do some manual packaging steps. This toolchain got me 95% of the way there, though, so I'm appreciative !

mdear avatar Feb 25 '24 03:02 mdear