tenacityteam / tenacity-legacy

THIS REPO IS NOT MAINTAINED ANYMORE. Please see https://codeberg.org/tenacityteam/tenacity for Tenacity, which is maintained.
https://tenacityaudio.org
Other
6.8k stars 262 forks source link

libgobject-2.0.so.0: undefined symbol: g_uri_ref on Ubuntu 22.04 #723

Open guysoft opened 2 years ago

guysoft commented 2 years ago

Guidelines

Version/Commit hash

2027403619

Describe the bug.

  1. In Ubuntu 22.04:
  2. Run the appimage:
  3. Result

    $ ~/Applications/tenacity-linux--x86_64_eb539bbb02440698b7eae2679d116d36.AppImage 
    /tmp/.mount_tenaciwr2sEJ/bin/tenacity: symbol lookup error: /lib/x86_64-linux-gnu/libgobject-2.0.so.0: undefined symbol: g_uri_ref

Expected behavior

Shoudl run

OS

Ubuntu 20.04

Additional context

No response

This issue is not a duplicate

JERUKA9 commented 1 year ago

Did you try run it with chmod +x.

Im using debian but latest appimage with json works.

Zrzut ekranu z 2022-09-17 08-01-25

leio commented 1 year ago

g_uri_ref is new in glib-2.66. The error suggests that you somehow end up with using libgobject-2.0.so.0 that's coming from glib-2.66 or newer, but libglib-2.0.so.0 from an earlier version. The different glib provided libraries (libglib, libgobject, libgio, and more) should be used from the same version, or at the very least not a newer version of a higher level library (libgobject) with an older level version of a lower level library (libglib).

I don't know what or where this AppImage is from or how it's built, but this is the technical background for someone to figure things out when put into the tenacity context. My gut feeling is that it bundles libgobject-2.0.so.0 inside the AppImage, but not libglib-2.0.so.0 and then it uses the system version of the latter at runtime, which is too old for libgobject-2.0.so.0 liking. That would be a bug in the AppImage preparation, if this is what's happening (if my gut feeling is actually correct).

Edit: Looking at the error again, it feels like it might be the opposite, because I assume /lib/x86_64-linux-gnu/libgobject-2.0.so.0 would be the system path, so maybe the AppImage bundles an old libglib, but fails to bundle a libgobject.