Skip to content

fix(linux): Remove unnecessary system GLib preload from AppRun#14616

Open
jack-obrien wants to merge 1 commit into
mavlink:masterfrom
jack-obrien:fix/apprun-remove-glib-preload
Open

fix(linux): Remove unnecessary system GLib preload from AppRun#14616
jack-obrien wants to merge 1 commit into
mavlink:masterfrom
jack-obrien:fix/apprun-remove-glib-preload

Conversation

@jack-obrien

Copy link
Copy Markdown

Description

Refer to Issue #14615 for the segfault bug I was experiencing.

The LD_PRELOAD of system libglib-2.0.so.0 was added in #13757 to fix TTS (libspeechd) failing because the bundled GLib lacked the g_string_free_and_steal symbol (added in GLib 2.76).

The CI build environment is now ubuntu-24.04, which ships GLib 2.80. linuxdeploy bundles that GLib into the AppImage, so the TTS issue is no longer applicable.

On systems with a newer system GLib (e.g. Arch Linux), the preload causes a version mismatch between the system GLib and the bundled GObject/GStreamer, resulting in a segfault on pipeline startup.

I also noticed that a similar symbol check exists in AppRun for the GIO module compatibility checking. This is also outdated as it checks against a symbol added in GIO 2.76, meanwhile the Appimage provides GIO 2.80. For now I kept the existing GIO logic to avoid breaking anything else. However I have added a WARNING comment there.

For now I would suggest merging this change to fix daily build compatibility fast, then coming back and fixing any other stale logic in a separate PR.

Type of Change

  • [x ] Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)
  • CI/Build changes
  • Other

Testing

  • [ x] Tested locally
  • Added/updated unit tests
  • Tested with simulator (SITL)
  • Tested with hardware

Platforms Tested

  • [x ] Linux
  • Windows
  • macOS
  • Android
  • iOS

Checklist

  • [ x] I have read the Contribution Guidelines
  • [ x] I have read the Code of Conduct
  • [ x] My code follows the project's coding standards
  • I have added tests that prove my fix/feature works
  • New and existing unit tests pass locally

Related Issues

#14615


By submitting this pull request, I confirm that my contribution is made under the terms of the project's dual license (Apache 2.0 and GPL v3).

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

⚠️ Build results unavailable — artifact download from one or more platform workflows failed (likely artifact retention expiry or transient API error). The combined report cannot be generated for this run.

See the Build Results workflow run for details.

The LD_PRELOAD of system libglib-2.0.so.0 was added in mavlink#13757 to fix
TTS (libspeechd) failing because the bundled GLib lacked the
g_string_free_and_steal symbol (added in GLib 2.76).

The CI build environment is now ubuntu-24.04, which ships GLib 2.80.
linuxdeploy bundles that GLib into the AppImage, so the TTS issue is no
longer applicable.

On systems with a newer system GLib (e.g. Arch Linux), the preload
causes a version mismatch between the system GLib and the bundled
GObject/GStreamer, resulting in a segfault on pipeline startup.
@jack-obrien
jack-obrien force-pushed the fix/apprun-remove-glib-preload branch from 3dc19ea to c086b3d Compare July 19, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant