Skip to content

Fix the Linux AppImage blank window on Fedora and ship an rpm - #132

Merged
mauropereiira merged 3 commits into
mainfrom
fix/linux-appimage-wayland
Sep 6, 2026
Merged

mauropereiira merged 3 commits into
mainfrom
fix/linux-appimage-wayland

Conversation

@mauropereiira

@mauropereiira mauropereiira commented Sep 6, 2026 •

Copy link
Copy Markdown
Owner

Problem

The 2.6.0 AppImage opens a blank white window on Fedora (#130). The console shows the WebKit web process aborting before the first paint:

Could not create default EGL display: EGL_BAD_PARAMETER. Aborting...

Tauri builds the AppImage with a linuxdeploy from July 2024 that still bundles Ubuntu 24.04's libwayland-client.so.0 (wayland 1.22). Fedora's and Arch's Mesa libEGL_mesa.so.0 needs wl_display_create_queue_with_name from wayland 1.23, the symbol lookup fails, EGL reports EGL_BAD_PARAMETER, and WebKit exits its web process. It happens under X11 too, since Mesa links libwayland-client either way. linuxdeploy has excluded that library since November 2024 (AppImageCommunity/pkg2appimage#559), but Tauri's pinned copy predates it. Confirmed by extracting the shipped Moldavite_2.6.0_amd64.AppImage, which carries usr/lib/libwayland-client.so.0, and by the exclude list embedded in each linuxdeploy build.

The reporter also can't try the deb because they're on Fedora.

Change

  1. Reproduction first (21b359d). A smoke-linux-fedora CI job takes the bundles from build-linux, installs the rpm in a Fedora 44 container, and launches the extracted AppImage and the installed binary under Xvfb. It fails on the EGL abort, on a dead WebKit web process, or on a screenshot with fewer than 32 distinct colors, which is what a blank window looks like. Screenshots and logs are kept as a linux-smoke artifact.
  2. Fix (1cc0ba9). Seed Tauri's linuxdeploy cache in CI and in the release workflow with linuxdeploy 1-alpha-20251107-1, pinned by SHA-256, so the AppImage leaves libwayland-client to the host. build-linux also asserts the library is absent from the extracted AppImage.
  3. An rpm for Fedora. Moldavite-x.x.x-1.x86_64.rpm depends on webkit2gtk4.1 and gtk3, is signed and listed like the deb, and the release verification expects it. Installing it on Fedora is part of the smoke test. Docs, release body and changelog mention it.

Nothing changes for macOS or Windows. The deb is untouched.

Verification

Both pushes ran the full CI. The smoke job's two runs are the evidence:

Push AppImage on Fedora 44 rpm on Fedora 44
Test only (21b359d), run 34037799934 fail: Could not create default EGL display: EGL_BAD_PARAMETER. Aborting..., no web process, 2-color window pass: web process alive, 569 colors
With the fix (1cc0ba9), run 34038317911 pass: web process alive, 569 colors pass: web process alive, 569 colors

The linux-smoke artifact on each run has the screenshots: the first run's AppImage shot is an empty cream window, the second run's shows the onboarding screen, identical to the rpm's. dnf install of the rpm resolved webkit2gtk4.1 and gtk3 on Fedora 44. build-linux verified the linuxdeploy checksum and found no libwayland-client.so* in the extracted AppImage. Every other check is green.

Known gaps

  • No Fedora hardware here, so the proof is the container run under Xvfb with Mesa's software renderer. NVIDIA-specific WebKitGTK problems (the DMA-BUF renderer ones Tauri documents) are a different failure and are not addressed.
  • libwayland-cursor, -egl and -server stay bundled; only the client library is what Mesa resolves against, and the smoke test would show if that changed.

🤖 Generated with Claude Code

Mauro Pereira and others added 2 commits September 6, 2026 15:00
The 2.6.0 AppImage opens a blank white window on Fedora (#130): the
WebKit web process aborts with "Could not create default EGL display:
EGL_BAD_PARAMETER" before the first paint. Nothing in CI could see it,
because the only Linux that ever ran the bundles was the Ubuntu that
built them.

Add a smoke-linux-fedora job that launches the AppImage and an rpm
under Xvfb in a Fedora 44 container and fails on that EGL abort, on a
dead web process, or on a window with nothing painted in it. This
commit carries the test only; on the current bundler it is expected to
fail on the AppImage, which is the reproduction. The fix follows.

The rpm answers the reporter's other point, that a Fedora user cannot
try the deb. It depends on webkit2gtk4.1 and gtk3, is signed and listed
like the deb, and the release verification now expects it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…s on Fedora

Tauri fetches a July 2024 linuxdeploy into ~/.cache/tauri and reuses it.
That build copies Ubuntu 24.04's libwayland-client.so.0 (wayland 1.22)
into the AppImage, and Fedora's and Arch's Mesa libEGL_mesa need
wl_display_create_queue_with_name from wayland 1.23, so the symbol lookup
fails, EGL reports EGL_BAD_PARAMETER and WebKit exits its web process
before the first paint. The previous commit's smoke-linux-fedora run
shows exactly that: "Could not create default EGL display", no web
process, a two-color window.

linuxdeploy has excluded the library since November 2024
(AppImageCommunity/pkg2appimage#559). Seed Tauri's cache in CI and in the
release workflow with linuxdeploy 1-alpha-20251107-1, pinned by SHA-256,
and have build-linux assert the library is absent from the extracted
AppImage so the regression cannot come back quietly.

Closes #130

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@mauropereiira
mauropereiira marked this pull request as ready for review September 6, 2026 14:21
@mauropereiira
mauropereiira merged commit 60ada0d into main Sep 6, 2026
19 checks passed
@mauropereiira
mauropereiira deleted the fix/linux-appimage-wayland branch September 6, 2026 15:00
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

Successfully merging this pull request may close these issues.

1 participant