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

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

Open
mdear opened this issue Feb 21, 2024 · 4 comments

Comments

@mdear
Copy link

mdear commented Feb 21, 2024

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
Copy link
Author

mdear commented Feb 21, 2024

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

export QT_QPA_PLATFORM=wayland

@mdear
Copy link
Author

mdear commented Feb 22, 2024

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
Copy link
Author

mdear commented Feb 23, 2024

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
Copy link
Author

mdear commented Feb 25, 2024

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 !

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