Skip to content

fix(linux): isolate AppImage GStreamer plugins to prevent ABI mismatch#444

Merged
koala73 merged 1 commit intomainfrom
fix/gstreamer-abi-isolation
Feb 26, 2026
Merged

fix(linux): isolate AppImage GStreamer plugins to prevent ABI mismatch#444
koala73 merged 1 commit intomainfrom
fix/gstreamer-abi-isolation

Conversation

@koala73
Copy link
Owner

@koala73 koala73 commented Feb 26, 2026

Summary

Problem

Users on various Linux distros reported GStreamer errors and no YouTube playback:

Failed to load plugin '/usr/lib/gstreamer-1.0/libgstcodecparsers-1.0.so.0': undefined symbol: gst_util_floor_log2
GStreamer element vp9parse not found
GStreamer element h264parse not found
GStreamer element opusparse not found

Root cause: The AppImage bundles GStreamer 1.24 from CI (Ubuntu 24.04), but the code appended host plugin directories as fallback. Host plugins compiled against a different GStreamer version (older or newer) fail with undefined symbol errors due to ABI mismatch. This left WebKit with zero usable codec plugins.

Why this is safe now

PR #434 added the full GStreamer codec suite (base, good, bad, ugly, libav, gl) to CI. With bundleMediaFramework: true, the AppImage bundles all necessary plugins. No host fallback needed.

Separate issue: Exec format error (aarch64 on x86_64)

One user also reported Exec format error when running an aarch64 AppImage — this is an architecture mismatch (wrong download), not a code bug.

Test plan

  • Run AppImage on distro with GStreamer 1.22 (Ubuntu 22.04/Debian 12) — no undefined symbol errors
  • Run AppImage on distro with GStreamer 1.28 (Arch) — no ABI conflicts
  • YouTube Live News plays correctly
  • Check stderr for absence of Failed to load plugin GStreamer warnings from host paths

…plugins

The AppImage bundles GStreamer from CI (Ubuntu 24.04, GStreamer 1.24).
Previously, host plugin directories (/usr/lib/gstreamer-1.0/) were
appended as fallback. This caused ABI version mismatches — host plugins
compiled against a different GStreamer version fail with undefined symbol
errors (gst_util_floor_log2, mpg123_open_handle64, etc.), leaving WebKit
without usable codecs for YouTube playback.

Since PR #434 installs the full GStreamer codec suite on CI, the AppImage
is fully self-contained. Remove the host fallback and block host plugin
scanning to prevent ABI conflicts across distro GStreamer versions.
@vercel
Copy link

vercel bot commented Feb 26, 2026

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

Project Deployment Actions Updated (UTC)
worldmonitor Building Building Preview, Comment Feb 26, 2026 7:55pm
worldmonitor-finance Building Building Preview, Comment Feb 26, 2026 7:55pm
worldmonitor-happy Building Building Preview, Comment Feb 26, 2026 7:55pm
worldmonitor-startup Building Building Preview, Comment Feb 26, 2026 7:55pm

Request Review

@chatgpt-codex-connector
Copy link

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

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