From 79b718f80c244efb83797e97a785ce80e8f7deec Mon Sep 17 00:00:00 2001 From: Lyrex Date: Thu, 30 Jul 2026 21:06:51 +0200 Subject: [PATCH] fix(appimage): drop the bundled libwayland-client so EGL can start MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The released AppImage opens every window blank on hosts whose Mesa is built against wayland 1.23 or newer. Mesa resolves its libwayland-client dependency to the copy linuxdeploy bundled from the build distro, which predates the symbol Mesa needs, and EGL display creation fails with EGL_BAD_PARAMETER — WebKit's render process aborts before drawing anything. Deleting the one library during the repack makes Mesa bind to the host's copy; this is the same measure the AppImage excludelist takes (mesa#11316). The library is removed in the repack rather than kept out of the bundle because Tauri gives no hook into its pinned linuxdeploy, whose excludelist predates the ban. --- scripts/fix-appimage.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scripts/fix-appimage.sh b/scripts/fix-appimage.sh index 03d9087..f8aa24f 100755 --- a/scripts/fix-appimage.sh +++ b/scripts/fix-appimage.sh @@ -32,6 +32,16 @@ head -c "$offset" "$appimage" > runtime "$appimage" --appimage-extract > /dev/null +# EGL comes from the host's Mesa, and Mesa built against wayland >= 1.23 +# calls wl_display_create_queue_with_name. The libwayland-client that +# linuxdeploy bundles from the build distro predates that symbol, Mesa binds +# to the bundled copy, and EGL display creation fails with EGL_BAD_PARAMETER: +# WebKit's render process aborts and every window is blank. Same reason the +# AppImage excludelist bans exactly this library (mesa#11316); the sibling +# libwayland-* libs are fine to bundle and stay. -f, because a linuxdeploy +# with the updated excludelist will stop bundling it. +rm -f squashfs-root/usr/lib/libwayland-client.so.0 + # The desktop file's real copy lives under usr/share/applications, and the # root FrameForge.png is already a regular file, so both are safe sources. rm squashfs-root/FrameForge.desktop squashfs-root/.DirIcon