Repository navigation
fix(bundler): update linuxdeploy and linuxdeploy-plugin-gtk - #16062
Conversation
|
Thanks for working on this. I tested the PR with a production Tauri app on Ubuntu 26.04, where the current AppImage fails to start. With this PR, it starts normally on both Wayland and X11 without any workarounds. One thing I noticed is that prepare_tools() downloads linuxdeploy-plugin-gtk.sh from the plugin repository’s master branch instead of using the version included in this PR. I monkeypatched it by putting the PR’s script in the Tauri cache to test it. Otherwise, this fixes the issue for us. Thanks! |
|
Thanks for testing it. Much appreciated :)
ffs, how embarassing... |
…n Linux WebKitWebProcess aborts with "Could not create default EGL display: EGL_BAD_PARAMETER. Aborting..." because linuxdeploy bundles libwayland-client.so.0, which shadows the host library and breaks the host Mesa/EGL stack glvnd loads. Strip it from the AppImage after bundling on Linux CI builds. See veloxbase#47; tracked upstream at tauri-apps/tauri#16062.
- Rewrite the embedded linuxdeploy-plugin-gtk/gstreamer scripts whenever the cached copy differs. A script left in the tools cache by an older CLI was used forever, so existing users kept `GDK_BACKEND=x11` and got no GIO module bundling. - Find gio-querymodules with search_tool: Fedora only ships gio-querymodules-64, which made the gtk plugin exit with 127. - Skip the gdk-pixbuf loaders when their directory does not exist (gdk-pixbuf 2.44 with glycin on Arch), instead of failing on `cp ''`. - Drop the old libgiognutls/GIO_EXTRA_MODULES block, now covered by GIO_MODULE_DIR. It found two copies of the module and exported a newline-separated value that included the build machine's AppDir path.
|
my LLM based tests came up with some weird bugs (not related to this PR):
|
* feat: restore AppImage distribution with GPU rendering (#1301) Tauri CLI 2.12 (tauri-bundler 2.10, tauri-apps/tauri#16062) fixes the AppImage blank-window EGL bug on Mesa 25+/Wayland at the source, so: - bump @tauri-apps/cli to ^2.12.0 and re-add the appimage bundle target - drop the AppImage-only WEBKIT_DISABLE_COMPOSITING_MODE/DMABUF gate; the env vars are still honoured (and detected) when a user sets them by hand - README and updater footer no longer describe AppImage as local-build-only * docs: list cmake in Linux build dependencies * docs: list cmake in README Linux build dependencies * docs: drop nonexistent libayatanaloop-dev from README Linux deps
tauri-bundler 2.10 (CLI 2.12) の linuxdeploy GTK plugin は GIO モジュールを usr/lib/x86_64-linux-gnu/gio/modules ではなく usr/lib/gio/modules へ置く (tauri-apps/tauri#16062)。起動時の同梱 TLS の確認先・検査スクリプト・runbook を新しい配置へ合わせる。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* chore(deps): TypeScript / npm 依存を最新へ更新する (#1449 AC-1) - apps/desktop と tools/promo の npm 依存を latest へ上げる。 - desktop の typescript は typescript-eslint 8.71.0 の peer 上限 (<6.1.0) のため 6.0.3 に留める。 - desktop の jsdom は vitest の jsdom 環境が 30.1 で壊れる (vitest-dev/vitest#11336、未リリース) ため ~30.0.1 に留める。 - promo は TypeScript 7.0.2 / React 19.3 / Remotion 4.0.530 へ上げる。 - Tauri JS 2.12 に合わせ、src-tauri の tauri / tauri-build / 各 plugin の crate を同じ major.minor へ上げる。 - 非推奨になった InvokeMessage::state_ref を Manager::try_state へ置き換える。 - eslint-plugin-react-refresh 0.5.7 で不要になった抑制コメントを削除する。 - THIRD_PARTY_NOTICES を lock から再生成する。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(appimage): Tauri CLI 2.12 の GIO モジュールの配置先に合わせる (#1449 AC-1) tauri-bundler 2.10 (CLI 2.12) の linuxdeploy GTK plugin は GIO モジュールを usr/lib/x86_64-linux-gnu/gio/modules ではなく usr/lib/gio/modules へ置く (tauri-apps/tauri#16062)。起動時の同梱 TLS の確認先・検査スクリプト・runbook を新しい配置へ合わせる。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(updater): 更新 fixture が署名した bundle の版を告知する (#1449 AC-1) tauri-plugin-updater 2.13 は、署名の trusted comment に Tauri CLI 2.12 が記録した版と 更新 endpoint が告知する版の一致を要求する。fixture は同じ crate の版で署名した bundle を 99.0.0 として告知していたため SignedVersionMismatch で拒否された。告知する版を crate の版に合わせる。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
The AppImage carried the build runner's libwayland (Ubuntu 22.04). AppRun puts the image's libraries ahead of the system's, so on a distribution with a newer Mesa (reported on Arch) EGL could not get a display and the window stayed blank. The AUR package works around it by deleting the four libwayland libraries from the extracted image. Tauri's bundler 2.10.0 (CLI 2.12.0, tauri-apps/tauri#16062) updates linuxdeploy and its GTK plugin, which no longer bundle them, and stops forcing GDK_BACKEND=x11: on a Wayland session the app now runs on Wayland. - tauri 2.12.1, @tauri-apps/cli 2.12.1 and @tauri-apps/api 2.12.1, kept on the same release - rust-version 1.90, which tauri 2.12 requires - release.yml: the Linux inspection fails when a libwayland library is in the image, so an upgrade or a bundler change cannot bring them back unnoticed; xdg-utils is no longer installed on the runner, as the bundler stopped copying xdg-mime into the image and the app runs the system's xdg-mime to register thinkwatch:// Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…raries (#279) * Use Tauri 2.12.1: the AppImage no longer bundles the Wayland libraries The AppImage carried the build runner's libwayland (Ubuntu 22.04). AppRun puts the image's libraries ahead of the system's, so on a distribution with a newer Mesa (reported on Arch) EGL could not get a display and the window stayed blank. The AUR package works around it by deleting the four libwayland libraries from the extracted image. Tauri's bundler 2.10.0 (CLI 2.12.0, tauri-apps/tauri#16062) updates linuxdeploy and its GTK plugin, which no longer bundle them, and stops forcing GDK_BACKEND=x11: on a Wayland session the app now runs on Wayland. - tauri 2.12.1, @tauri-apps/cli 2.12.1 and @tauri-apps/api 2.12.1, kept on the same release - rust-version 1.90, which tauri 2.12 requires - release.yml: the Linux inspection fails when a libwayland library is in the image, so an upgrade or a bundler change cannot bring them back unnoticed; xdg-utils is no longer installed on the runner, as the bundler stopped copying xdg-mime into the image and the app runs the system's xdg-mime to register thinkwatch:// Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * release: exclude every libwayland library from the AppImage Tauri 2.12's linuxdeploy drops libwayland-client through the AppImage exclude list, but libwayland-egl, -cursor and -server still went in (the new inspection caught them in the rehearsal). They are one library family; mixing the build runner's copies with the system's is the same risk. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: 2026.10.4 - Bump the version to 2026.10.4 - release-notes/2026.10.4.md: the AppImage no longer carries its own Wayland libraries and runs on Wayland on a Wayland session, with thanks to sunnysab on LINUX DO, whose AUR package showed the fix; Tauri 2.12.1; core unchanged (0.61.0), request history kept Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…raries (#279) * Use Tauri 2.12.1: the AppImage no longer bundles the Wayland libraries The AppImage carried the build runner's libwayland (Ubuntu 22.04). AppRun puts the image's libraries ahead of the system's, so on a distribution with a newer Mesa (reported on Arch) EGL could not get a display and the window stayed blank. The AUR package works around it by deleting the four libwayland libraries from the extracted image. Tauri's bundler 2.10.0 (CLI 2.12.0, tauri-apps/tauri#16062) updates linuxdeploy and its GTK plugin, which no longer bundle them, and stops forcing GDK_BACKEND=x11: on a Wayland session the app now runs on Wayland. - tauri 2.12.1, @tauri-apps/cli 2.12.1 and @tauri-apps/api 2.12.1, kept on the same release - rust-version 1.90, which tauri 2.12 requires - release.yml: the Linux inspection fails when a libwayland library is in the image, so an upgrade or a bundler change cannot bring them back unnoticed; xdg-utils is no longer installed on the runner, as the bundler stopped copying xdg-mime into the image and the app runs the system's xdg-mime to register thinkwatch:// Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * release: exclude every libwayland library from the AppImage Tauri 2.12's linuxdeploy drops libwayland-client through the AppImage exclude list, but libwayland-egl, -cursor and -server still went in (the new inspection caught them in the rehearsal). They are one library family; mixing the build runner's copies with the system's is the same risk. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: 2026.10.4 - Bump the version to 2026.10.4 - release-notes/2026.10.4.md: the AppImage no longer carries its own Wayland libraries and runs on Wayland on a Wayland session, with thanks to sunnysab on LINUX DO, whose work packaging the app showed the fix; Tauri 2.12.1; core unchanged (0.61.0), request history kept Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…bwayland-client The 2.11 bundler's linuxdeploy copied the build runner's libwayland-client (1.22 on ubuntu-24.04) into the AppImage. Mesa 25+ needs symbols it lacks, so WebKit's web process aborted with EGL_BAD_PARAMETER and the window stayed blank. 2.12's linuxdeploy excludes it (tauri-apps/tauri#16062). Closes #65 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rolling distros The AppImage bundled an old libwayland-client that aborts WebKitWebProcess with "Could not create surfaceless EGL display: EGL_BAD_ALLOC" against a newer host Mesa (Arch, Fedora). tauri-bundler 2.10 (tauri-apps/tauri#16062) updates linuxdeploy and its GTK plugin, which stop bundling it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d EGL The AppImage built with CLI 2.10 bundled libwayland-client from the Ubuntu 22.04 runner, and the AppImage launcher loads bundled libraries ahead of the host's. Current Mesa's libEGL_mesa needs libwayland 1.23+ symbols (wl_display_create_queue_with_name, wl_display_dispatch_queue_timeout, wl_fixes_interface), so glvnd could not load it. WebKit's web process then aborted with "Could not create default EGL display: EGL_BAD_PARAMETER" and the window stayed white. That covers AMD and Intel on any recent distro; NVIDIA's own EGL driver is unaffected. tauri-bundler 2.10 (CLI 2.12, upstream tauri-apps/tauri#16062) updates linuxdeploy so the client library is no longer bundled, and stops forcing GDK_BACKEND=x11. Lockfile-only: package.json already allows ^2. Verified on Fedora 44 / Mesa 26.2.3: - the 8f6659f nightly reproduces the abort; - an AppImage built with CLI 2.12.1 has no libwayland-client; - the nightly with only that library removed starts under both X11 and native Wayland. Refs #281 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…2.1 no longer bundling libwayland-client (#66) fix: bump @tauri-apps/cli to 2.12.1 so the AppImage stops bundling libwayland-client The 2.11 bundler's linuxdeploy copied the build runner's libwayland-client (1.22 on ubuntu-24.04) into the AppImage. Mesa 25+ needs symbols it lacks, so WebKit's web process aborted with EGL_BAD_PARAMETER and the window stayed blank. 2.12's linuxdeploy excludes it (tauri-apps/tauri#16062). Closes #65 Co-authored-by: Raphaël Bideau <raphael@panora.co> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…te it A libwayland copied from the Ubuntu build image clashes with the host's newer Mesa: crashes or a blank webview on e.g. Arch/KDE Wayland (tauri-apps/tauri#15665, tauri-apps/tauri#15976). Set LINUXDEPLOY_EXCLUDED_LIBRARIES=libwayland-* for the Tauri builds (linuxdeploy honors it from @tauri-apps/cli 2.12, tauri-apps/tauri#16062), and run the host-ABI gate on the Tauri AppImage. host-abi-gate.sh gains HOST_ABI_LIBS_LIST so this bundle can keep glib, which its GTK/WebKitGTK needs.
…te it A libwayland copied from the Ubuntu build image clashes with the host's newer Mesa: crashes or a blank webview on e.g. Arch/KDE Wayland (tauri-apps/tauri#15665, tauri-apps/tauri#15976). Set LINUXDEPLOY_EXCLUDED_LIBRARIES=libwayland-* for the Tauri builds (linuxdeploy honors it from @tauri-apps/cli 2.12, tauri-apps/tauri#16062), and run the host-ABI gate on the Tauri AppImage. host-abi-gate.sh gains HOST_ABI_LIBS_LIST so this bundle can keep glib, which its GTK/WebKitGTK needs.
…te it (#1509) * fix(release): don't bundle libwayland into the Tauri AppImage, and gate it A libwayland copied from the Ubuntu build image clashes with the host's newer Mesa: crashes or a blank webview on e.g. Arch/KDE Wayland (tauri-apps/tauri#15665, tauri-apps/tauri#15976). Set LINUXDEPLOY_EXCLUDED_LIBRARIES=libwayland-* for the Tauri builds (linuxdeploy honors it from @tauri-apps/cli 2.12, tauri-apps/tauri#16062), and run the host-ABI gate on the Tauri AppImage. host-abi-gate.sh gains HOST_ABI_LIBS_LIST so this bundle can keep glib, which its GTK/WebKitGTK needs. * test(package): cover host-abi-gate.sh's default list and HOST_ABI_LIBS_LIST override * test(package): make the symlink case depend on the gate checking symlinks
…) (#480) The 0.4.10 AppImage opened an empty window on Omarchy with an AMD GPU: WebKit's page process aborted with "Could not create default EGL display: EGL_BAD_PARAMETER". Tauri 2.11's bundler builds the AppImage with a linuxdeploy from July 2024, which copies Ubuntu 22.04's libwayland 1.20 into it, ahead of the system's; Mesa 26.2's EGL driver needs functions libwayland only gained later, so it never loads. Found and tested by the reporter. Tauri's fix (tauri-apps/tauri#16062, not in a release yet) moves to linuxdeploy 07333c6. scripts/appimage-linuxdeploy.sh puts that same build, checksum pinned, where Tauri 2.11 looks before downloading its own, and the builds set LINUXDEPLOY_EXCLUDED_LIBRARIES=libwayland-* so all four (client, server, cursor, egl) stay out. Every desktop has its own libwayland, as GTK needs it. scripts/appimage-wayland-check.sh fails a build that carries one; it fails on the released 0.4.10 AppImage, naming the four.
…ayland Tauri CLI 2.12 updates linuxdeploy and its GTK plugin (tauri-apps/tauri#16062), fixing EGL_BAD_PARAMETER blank windows on newer Mesa (tauri-apps/tauri#15976, #15665).
So far i only tested building and running on arch. I assume this will cause issues but since the old stuff also causes issues i think this is fine.
script diff is tauri-apps/linuxdeploy-plugin-gtk#5 + tauri-apps/linuxdeploy-plugin-gtk#6
Still on vacation so idk how long it takes for me to test this.
Should fix #15976
Should fix #15665 (same as above)
Maybe fixes #15902
Edit: In #14390 i inlined the plugin scripts. In #14841 i accidentally removed that. This PR fixes that as well.