appimage-builder
appimage-builder copied to clipboard
Issue with bundling (or not bundling) `libwayland-*`
The issue is that both the AppImage and the graphics driver can depend on the Wayland libraries.
If you do bundle libwayland-*, then the AppImage can crash if the system's graphics driver requires a newer libwayland-* than the AppImage (which is why I created #236):
/lib/aarch64-linux-gnu/libEGL_mesa.so.0: undefined symbol: wl_proxy_marshal_flags
However, if you don't bundle libwayland-*, then the AppImage can crash if the AppImage requires a newer libwayland-* than the system:
zenity: symbol lookup error: /tmp/.mount_minecrbaFrQa/usr/lib/x86_64-linux-gnu/libgdk-3.so.0: undefined symbol: wl_proxy_marshal_flags
The only good solution I can see to this is to build the AppImage on a super old OS and not bundle libwayland-*, so that the OS's libwayland-* is always newer than the one the AppImage was built with. But this removes one of appimage-builder's main advantages IMO, that you don't need to build on a super old LTS (unlike linuxdeploy).
What do you think?
I working on AppRun modules which should provide a way to opt-in certain binaries and runtime environment variables depending on the host system.
Right now I've use them for glibc and glibstdc++ but it seems that we will need one for libwayland too. To implement it we need a way of reading the version from the libwayland library.
appimage-builder modules support branch: https://github.com/AppImageCrafters/appimage-builder/tree/feat/apprun_v3