You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The plugin currently only exports Qt plugins for X11. Distributions are now moving towards Wayland as default so it would be nice if there was at least an optional setting for also exporting the needed Qt wayland platform plugins to run natively on wayland instead of having to run the appimage via xwayland. Just adding them as EXTRA_PLATFORM_PLUGINS does not seem to add all the needed files.
I am also aiming to package for Wayland / Weston. I create a packaging VM using Yocto Poky Kirkstone Linux and explicitly remove X11 collateral and explicitly add Wayland / Weston collateral in my $POKY_ROOT/build/conf/local.conf prior to launching a build. I'm building against target qemuarm64 and running under QEMU emulation from an x86_64 packaging VM. The VM comes up with a standard Weston desktop where I can launch a terminal and move it around with my mouse.
Here are some hints to get you started:
Add the following lines to your local.conf, remove all content under cache* and tmp in your build directory and bitbake a fresh binary.
Also, since we're using the commercial license, there are a few more steps to include the commercial FFMPEG collateral.
With all that said, I'm also seeing evidence that plugins for Wayland, even when made available in the underlying build system, are not making their way into the AppImage. Since my neck is on the line for this, I'll tinker and try to get a PR that will extend the tool. I'll also take a look at the PR you mentioned. Wish me luck !
It does for me. I'm not sure though if this is the best solution. It would be nice if there was a way to simply tell linuxdeploy which directories from the plugins directory to deploy instead of connecting it to the actual plugin names of Qt.
For the record, here's what I get when I run the AppImage (Dice 3D/physics example that ships with Qt6) on a freshly rebooted CrossControl v700 device (i.MX8DualXPlus ARMv8 aarch64 platform):
root@v700:/home/ccs/Downloads# export QT_QPA_PLATFORM=wayland
root@v700:/home/ccs/Downloads# ./Dice-aarch64.AppImage
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Aborted
root@v700:/home/ccs/Downloads#
On my platform, the westin user has id 1000 export XDG_RUNTIME_DIR=/run/user/1000
The toolchain works as shown below, without me setting the following line: export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so libqwayland-generic.so"
When I specify the extra plugins, I get the following error: ERROR: Cannot deploy non-existing library file: /usr/lib/plugins/platforms/libqwayland-egl.so libqwayland-generic.so
Here's the file structure created by the linuxdeploy toolchain with qt input plugin and appimage output plugin : Note the conspicuous absence of content in the /usr/plugins/platforms portion of the tree :
PRs welcome. Wayland is becoming more of a thing lately and we should support it better. Adding those libraries used to cause a lot of issues, if it got better, it's time to re-add them.
Activity
mdear commentedon Feb 23, 2024
I am also aiming to package for Wayland / Weston. I create a packaging VM using Yocto Poky Kirkstone Linux and explicitly remove X11 collateral and explicitly add Wayland / Weston collateral in my $POKY_ROOT/build/conf/local.conf prior to launching a build. I'm building against target qemuarm64 and running under QEMU emulation from an x86_64 packaging VM. The VM comes up with a standard Weston desktop where I can launch a terminal and move it around with my mouse.
Here are some hints to get you started:
Add the following lines to your local.conf, remove all content under cache* and tmp in your build directory and bitbake a fresh binary.
DISTRO_FEATURES:remove = "x11"
DISTRO_FEATURES:append = " wayland"
PACKAGECONFIG:remove:pn-qtbase = "x11"
PACKAGECONFIG:append:pn-qtbase = " wayland"
Also, since we're using the commercial license, there are a few more steps to include the commercial FFMPEG collateral.
With all that said, I'm also seeing evidence that plugins for Wayland, even when made available in the underlying build system, are not making their way into the AppImage. Since my neck is on the line for this, I'll tinker and try to get a PR that will extend the tool. I'll also take a look at the PR you mentioned. Wish me luck !
SushiTee commentedon Feb 23, 2024
It does for me. I'm not sure though if this is the best solution. It would be nice if there was a way to simply tell linuxdeploy which directories from the plugins directory to deploy instead of connecting it to the actual plugin names of Qt.
mdear commentedon Feb 23, 2024
For the record, here's what I get when I run the AppImage (Dice 3D/physics example that ships with Qt6) on a freshly rebooted CrossControl v700 device (i.MX8DualXPlus ARMv8 aarch64 platform):
On my platform, the westin user has id 1000
export XDG_RUNTIME_DIR=/run/user/1000The toolchain works as shown below, without me setting the following line:
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so libqwayland-generic.so"When I specify the extra plugins, I get the following error:
ERROR: Cannot deploy non-existing library file: /usr/lib/plugins/platforms/libqwayland-egl.so libqwayland-generic.soeven though the files are actually available:
Here's the file structure created by the linuxdeploy toolchain with qt input plugin and appimage output plugin : Note the conspicuous absence of content in the
/usr/plugins/platformsportion of the tree :TheAssassin commentedon Apr 24, 2024
PRs welcome. Wayland is becoming more of a thing lately and we should support it better. Adding those libraries used to cause a lot of issues, if it got better, it's time to re-add them.
tresf commentedon Feb 13, 2025
According to this article, it may be pretty close to working, quoting:
I noticed that these plugins are already mentioned here:
linuxdeploy-plugin-qt/src/deployers/WaylandcompositorPluginsDeployer.cpp
Lines 9 to 13 in 2d9e23f
How do we add these to a build?
tresf commentedon Feb 13, 2025
This seems to do the trick:
Fix AppImage: bundle actual Wayland platform plugins