Skip to content

fix(ci): strip GPU/Wayland libs from AppImage for non-Ubuntu distros - #666

Merged
koala73 merged 1 commit into
mainfrom
fix/appimage-gpu-lib-strip
Mar 1, 2026
Merged

koala73 merged 1 commit into
mainfrom
fix/appimage-gpu-lib-strip

Conversation

@koala73

@koala73 koala73 commented Mar 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Fixes black screen on Arch-based distros (CatchyOS, etc.) with Wayland + NVIDIA GPUs
  • Tauri's bundleMediaFramework: true bundles Ubuntu's Mesa GPU libs which override host drivers via LD_LIBRARY_PATH → EGL_BAD_ALLOC / EGL_BAD_PARAMETER
  • Post-build CI step extracts AppImage, strips 14 GPU/Wayland lib patterns + Mesa DRI drivers (all on the official AppImage excludelist), repackages, verifies, and re-uploads

Details

Libraries stripped: libEGL, libGLX, libGLdispatch, libGLESv2, libGL, libOpenGL, libglapi, libgbm, libEGL_mesa, libGLX_mesa, libwayland-{client,server,cursor,egl}, Mesa DRI drivers (*_dri.so)

NOT stripped: GStreamer, WebKitGTK, GTK, GLib, Pango, Cairo — these stay bundled.

Safety measures:

  • appimagetool pinned to immutable release 1.9.1 with SHA256 verification
  • Fails if zero libs stripped (detects build changes)
  • Post-repack verification checks ALL banned patterns
  • Deterministic artifact selection (fails if != 1 AppImage)
  • Atomic repack (temp path + mv)
  • Existing smoke test validates the stripped AppImage

Test plan

  • CI "Strip GPU libraries from AppImage" step lists ~15-20 removed files and passes verification
  • Smoke test step still passes on stripped AppImage
  • Download released AppImage → extract → verify no libEGL/libGLESv2/libwayland present
  • Test on Arch-based Wayland+NVIDIA system: no black screen
  • Test on Ubuntu: app still works normally

…reen on non-Ubuntu distros

Tauri's `bundleMediaFramework: true` causes linuxdeploy to bundle Ubuntu's
Mesa libEGL, libGLESv2, libwayland-*, and DRI drivers. On Arch-based distros
with NVIDIA GPUs on Wayland, these override the host GPU drivers via
LD_LIBRARY_PATH, causing EGL_BAD_ALLOC / EGL_BAD_PARAMETER → black screen.

Post-build step extracts the AppImage, strips 14 GPU/Wayland lib patterns
plus Mesa DRI drivers (all on the official AppImage excludelist), repackages
with appimagetool 1.9.1 (SHA256-verified), verifies no banned libs remain,
and re-uploads the stripped AppImage to the GitHub Release.
@vercel

vercel Bot commented Mar 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
worldmonitor Building Building Preview, Comment Mar 1, 2026 1:42pm
worldmonitor-finance Building Building Preview, Comment Mar 1, 2026 1:42pm
worldmonitor-happy Building Building Preview, Comment Mar 1, 2026 1:42pm
worldmonitor-startup Building Building Preview, Comment Mar 1, 2026 1:42pm

Request Review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@koala73
koala73 merged commit 75d6a3a into main Mar 1, 2026
6 checks passed
koala73 added a commit that referenced this pull request Mar 1, 2026
…reen on non-Ubuntu distros (#666)

Tauri's `bundleMediaFramework: true` causes linuxdeploy to bundle Ubuntu's
Mesa libEGL, libGLESv2, libwayland-*, and DRI drivers. On Arch-based distros
with NVIDIA GPUs on Wayland, these override the host GPU drivers via
LD_LIBRARY_PATH, causing EGL_BAD_ALLOC / EGL_BAD_PARAMETER → black screen.

Post-build step extracts the AppImage, strips 14 GPU/Wayland lib patterns
plus Mesa DRI drivers (all on the official AppImage excludelist), repackages
with appimagetool 1.9.1 (SHA256-verified), verifies no banned libs remain,
and re-uploads the stripped AppImage to the GitHub Release.
matthewvecchione1-ops pushed a commit to matthewvecchione1-ops/worldmonitor that referenced this pull request Mar 4, 2026
…reen on non-Ubuntu distros (koala73#666)

Tauri's `bundleMediaFramework: true` causes linuxdeploy to bundle Ubuntu's
Mesa libEGL, libGLESv2, libwayland-*, and DRI drivers. On Arch-based distros
with NVIDIA GPUs on Wayland, these override the host GPU drivers via
LD_LIBRARY_PATH, causing EGL_BAD_ALLOC / EGL_BAD_PARAMETER → black screen.

Post-build step extracts the AppImage, strips 14 GPU/Wayland lib patterns
plus Mesa DRI drivers (all on the official AppImage excludelist), repackages
with appimagetool 1.9.1 (SHA256-verified), verifies no banned libs remain,
and re-uploads the stripped AppImage to the GitHub Release.
@koala73
koala73 deleted the fix/appimage-gpu-lib-strip branch March 4, 2026 19:40

This branch was successfully deployed

4 active deployments
Preview – worldmonitor-finance — cbd65409 Deployed Mar 1, 2026 by vercel[bot]
Preview – worldmonitor-startup — cbd65409 Deployed Mar 1, 2026 by vercel[bot]
Preview – worldmonitor — cbd65409 Deployed Mar 1, 2026 by vercel[bot]
Preview – worldmonitor-happy — cbd65409 Deployed Mar 1, 2026 by vercel[bot]
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