#2176 (make Linux AppImage GStreamer work on non-Debian distros) removed the bundled
GStreamer plugins so the system ones load — thank you, 0.5.0 now launches natively on
Arch. But two bundled libraries remain that undo that fix for the WebRTC half:
-
The AppImage bundles usr/lib/libsoup-3.0.so.0 (Ubuntu's build). On Arch, the system
libgstnice.so / libgstwebrtc.so link against system libgupnp-1.6, which is built
against libsoup 3.6.x. With the bundled (older) libsoup first on the loader path, the
plugin scanner fails both plugins:
Failed to load plugin '/usr/lib/gstreamer-1.0/libgstnice.so':
/usr/lib/libgupnp-1.6.so.0: undefined symbol: soup_server_message_pause
(identical for libgstwebrtc.so)
→ no webrtcbin → huddles have no media pipeline.
-
Renaming the bundled libsoup exposes the second one: system libsoup 3.6.6 needs a
newer libnghttp2 than the bundled usr/lib/libnghttp2.so.14:
symbol lookup error: /usr/lib/libsoup-3.0.so.0:
undefined symbol: nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation
Workaround (verified): rename both bundled libs so the system copies load:
cd squashfs-root/usr/lib
mv libsoup-3.0.so.0 libsoup-3.0.so.0.bak
mv libnghttp2.so.14 libnghttp2.so.14.bak
After this (and clearing ~/.cache/gstreamer-1.0/registry.x86_64.bin — the scanner
caches blacklisted plugins), a full rescan shows libgstwebrtc/libgstnice loading
cleanly; the only remaining failures are optional codecs (openexr, spandsp) with no
huddle impact. App runs stably with system libsoup (soname-compatible).
Suggested fix: drop libsoup-3.0.so.0 and libnghttp2.so.14 from the AppImage
(same rationale as removing bundled libsystemd in #2353 and bundled GStreamer in
#2176) — the bundled WebKit is happy with the system copies, soname is stable across
both.
Environment: Buzz Desktop 0.5.0 AppImage (extracted, AppRun), Arch Linux
(EndeavourOS), webkit2gtk-4.1 2.52.5 (system), gstreamer 1.28.5, libsoup3 3.6.6,
gupnp 1.6.10, libnice 0.1.23, PipeWire 1.6.8.
#2176 (make Linux AppImage GStreamer work on non-Debian distros) removed the bundled
GStreamer plugins so the system ones load — thank you, 0.5.0 now launches natively on
Arch. But two bundled libraries remain that undo that fix for the WebRTC half:
The AppImage bundles
usr/lib/libsoup-3.0.so.0(Ubuntu's build). On Arch, the systemlibgstnice.so/libgstwebrtc.solink against systemlibgupnp-1.6, which is builtagainst libsoup 3.6.x. With the bundled (older) libsoup first on the loader path, the
plugin scanner fails both plugins:
→ no
webrtcbin→ huddles have no media pipeline.Renaming the bundled libsoup exposes the second one: system libsoup 3.6.6 needs a
newer libnghttp2 than the bundled
usr/lib/libnghttp2.so.14:Workaround (verified): rename both bundled libs so the system copies load:
After this (and clearing
~/.cache/gstreamer-1.0/registry.x86_64.bin— the scannercaches blacklisted plugins), a full rescan shows libgstwebrtc/libgstnice loading
cleanly; the only remaining failures are optional codecs (openexr, spandsp) with no
huddle impact. App runs stably with system libsoup (soname-compatible).
Suggested fix: drop
libsoup-3.0.so.0andlibnghttp2.so.14from the AppImage(same rationale as removing bundled libsystemd in #2353 and bundled GStreamer in
#2176) — the bundled WebKit is happy with the system copies, soname is stable across
both.
Environment: Buzz Desktop 0.5.0 AppImage (extracted, AppRun), Arch Linux
(EndeavourOS), webkit2gtk-4.1 2.52.5 (system), gstreamer 1.28.5, libsoup3 3.6.6,
gupnp 1.6.10, libnice 0.1.23, PipeWire 1.6.8.