Skip to content

Linux AppImage: bundled libsoup-3.0/libnghttp2 shadow system libs on non-Debian distros, breaking system GStreamer WebRTC plugins #3494

Description

@scottsanpedro

#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.


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions