AppImage / AppImageKit

Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.libera.chat
http://appimage.org
Other
8.76k stars 563 forks source link

/usr/lib/libgio-2.0.so.0: undefined symbol: g_module_open_full #1162

Open federico-terzi opened 2 years ago

federico-terzi commented 2 years ago

Hi,

First of all, thank you for the great work you are doing!

I've been using the AppImage format for my app (https://github.com/federico-terzi/espanso) for a while, and it seems that since September, the AppImage won't run on an increasing number of distros. When launching the AppImage, we get this error:

/home/lucio/opt/Espanso.AppImage: symbol lookup error: /usr/lib/libgio-2.0.so.0: undefined symbol: g_module_open_full

Searching online, it seems to be happening with multiple app images:

From a first analysis, it seems that the library has been explicitly excluded from the AppImage: https://github.com/AppImage/pkg2appimage/blob/master/excludelist#L86

Do you have any tips/guidance on the best way to approach this problem?

Thanks!

federico-terzi commented 2 years ago

Just noticed this might be related: https://github.com/AppImage/pkg2appimage/issues/494

probonopd commented 2 years ago

Which distribution and version are you building the ingredients that go into your AppImage on? It's probably too new.

srevinsaju commented 2 years ago

Looks like this issue is similar to https://github.com/srevinsaju/guiscrcpy/issues/268#issue-1044574005, I was wondering on the root cause. The appimage was built on ubuntu18.04,

federico-terzi commented 2 years ago

@probonopd Thanks for the reply!

Which distribution and version are you building the ingredients that go into your AppImage on?

I'm building the app image inside a Docker container with Ubuntu 18.04, these are the relevant steps:

FROM ubuntu:18.04

RUN apt-get update \
    && apt-get install -y libssl-dev \
    libxdo-dev libxtst-dev libx11-dev \
    libxkbcommon-dev libwxgtk3.0-gtk3-dev libdbus-1-dev \
    wget git file build-essential pkg-config
probonopd commented 2 years ago

https://github.com/project-slippi/Ishiiruka/issues/323 contains an analysis of what is causing the issue and a workaround. Please let me know whether the workaround works for you, then we should probably add libgmodule-2.0.so to the excludelist.

federico-terzi commented 2 years ago

@probonopd Thanks! I'll give it a try :)

srevinsaju commented 2 years ago

@probonopd Thanks! can confirm that the workaround specified there works on Fedora 35 Silverblue.

ramesh45345 commented 2 years ago

Just to chime in here, the proposed workaround (removing libgmodule-2.0.so.0 from an unsquashed appimage) helped AppImageLauncher to function on a Fedora 35 machine (see https://github.com/TheAssassin/AppImageLauncher/issues/472).

TheAssassin commented 2 years ago

Someone has to test whether the proposed exclusion will break older systems. If not, it should be implemented ASAP.

federico-terzi commented 2 years ago

Can confirm the workaround works on both up-to-date Manjaro and Fedora 35, not sure about older systems

probonopd commented 2 years ago

Please test at least on CentOS 7 and on Ubuntu bionic. Thanks!

ramesh45345 commented 2 years ago

I have tested the workaround above (removing libgmodule-2.0.so.0 from an unsquashed AppImageLauncher) on an Ubuntu Bionic VM (18.04.6 x86_64). The workaround still allows the app to function and run, same as before the workaround. I believe this confirms the workaround does not break Ubuntu Bionic.

TheAssassin commented 2 years ago

@probonopd since you recently modified the excludelist, I assume this issue can be closed, right?

probonopd commented 2 years ago

I hope so but would appreciate a re-test. Thanks!

federico-terzi commented 2 years ago

@TheAssassin @probonopd I've just tried with the latest linuxdeploy AppImage release:

linuxdeploy version 1-alpha (git commit ID ed42a40), GitHub actions build 75 built on 2022-03-15 12:03:03 UTC

Unfortunately, it doesn't solve the problem... In fact, even the workaround seems to have stopped working (removing libgmodule), and now it fails with:

symbol lookup error: /lib64/libgobject-2.0.so.0: undefined symbol: g_uri_ref
probonopd commented 2 years ago

Not sure whether the latest linuxdeploy AppImage release already reflects the latest changes in https://github.com/AppImage/pkg2appimage/blob/master/excludelist.

federico-terzi commented 2 years ago

@probonopd Thank you, I really appreciate your hard work! I'll make sure to re-test the build once you feel it's the right time (for now, I've solved the problem vendoring an older version of linuxdeploy and appimagetool inside the repo, about a month old)

TheAssassin commented 2 years ago

I rebuilt linuxdeploy since. It does contain the latest excludelist.

probonopd commented 2 years ago

@federico-terzi could you please post links to a non-working and a working (using your manual workaround) version. Thanks!

federico-terzi commented 2 years ago

@probonopd Sure thing! Here we go:

These are the steps to build the app image: https://github.com/federico-terzi/espanso/blob/master/scripts/create_app_image.sh

probonopd commented 2 years ago

Thanks @federico-terzi. As I am a bit overloaded with other work at the moment: Could you extract both AppImages and find out the differences between them in terms of which files are contained? Thanks!

Files only in working v2.1.5 Files only in non-working v2.1.4
... ...
... ...
K1LL3RPUNCH commented 1 year ago

Still a issue.

https://github.com/PaulCombal/SamRewritten

[k1ll3rpunch@archlinux Загрузки]$ /home/k1ll3rpunch/Загрузки/SamRewritten-Ubuntu_18.04--d29ad13-x86_64.AppImage /tmp/.mount_SamRew2FkY23/usr/bin/samrewritten: symbol lookup error: /usr/lib/libgio-2.0.so.0: undefined symbol: g_module_open_full

Maxwell175 commented 1 year ago

Having this issue as well on latest Manjaro:

./timecamp.AppImage: symbol lookup error: /usr/lib/libgio-2.0.so.0: undefined symbol: g_module_open_full
probonopd commented 1 year ago

While I haven't had the time to investigate the root cause, https://github.com/rncbc/qtractor/issues/317 seems to suggest that new versions of libgio-2.0 on the target system might be causing this.

This needs systematic experimentation.

If it runs out that a "too new" libgio-2.0 on the target system can cause this, then it might be an ABI break in that library, something that I'd consider a bug if it happens within the same major version of the library. But again, let's not jump to conclusions before this is thoroughly investigated.

probonopd commented 1 year ago

Unfortunately,

https://abi-laboratory.pro/index.php?view=navigator&symbol=g_module_open_full#result

doesn't even know this symbol.