-
Notifications
You must be signed in to change notification settings - Fork 212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add libgmodule-2.0 to exclude list #500
Conversation
This will fix an error when an AppImage was created with glib < 2.70 and executed with glib >= 2.70: symbol lookup error: libgio-2.0.so.0: undefined symbol: g_module_open_full Full analysis: project-slippi/Ishiiruka#323 Also fixes knarfS/smuview#40
The interesting question is whether this will in turn cause other breakages. My gut feeling is that we need to bundle all libraries in
So far, we have been considering glib as something that is provided by the distribution. |
Fingers crossed :D
Yes you are absolutely right. All libs that come with libglib2.0 should be handled the same, either remove all of them or bundle all into the AppImage. I'm not sure what the better solution would be. Maybe bundle all of the glib2.0 libraries? |
Addressed with 1e3ecde |
I'm the developer of an application that links to GStreamer and I want to target Debian Bullseye. To make the AppImage I'm using linuxdeploy and the GStreamer plugin, to bundle all the needed files. I'm building the AppImage on a Debian Bullseye container, because it's the lowest denominator I want to support, and I find that Ubuntu makes things harder with cross-compilation and has more bloat for my taste. However, when I test the generated AppImage on a Debian Bullseye chroot, I get this error, due to the gobject library not being part of the base, non-GUI distro:
Searching the Internet for that error directed me to the exclude list mentioned in this issue and this issue itself, so that's why I think that it might be relevant to comment here. For my use case, I find that the "so far, we have been considering glib as something that is provided by the distribution" statement is quite unsatisfactory, as I wouldn't call a base Debian Bullseye installation without GLib components a strange system at all (in fact, some users of my application are reporting that they use Debian Bullseye). Is it feasible to consider bundling all the GLib components in AppImages that need them, not treating GLib as "distribution-provided", even if there are fairly sensible distribution configurations that do not include GLib? The current behavior basically means that users of my AppImage still need to make sure that the GLib package is installed, which partially defeats one of the objectives of AppImages: not having to install packages at all. |
Well. The objective of AppImage is that you can run applications on most mainstream desktop Linux distributions without having to manually install additional packages besides what they come with out of the box by default on their Live ISOs. If you really want to make an AppImage that has no dependencies on any distribution-provided packages, why draw the line at GLib? One could argue that a system without glibc is a perfectly fine system as well, and just bundle all libraries. This is what e.g., go-appimage
Then you need to ship Xorg as well I guess... which is out of the scope for AppImage, even though technically you might even be able to put it into an AppImage as well. |
I'm using GStreamer to process audio files in a CLI app, which does not not need a full-blown desktop environment at all. I understand that drawing the line on GLib is somewhat arbitrary, and that if the goal for AppImage is to target desktop environments, then it makes sense to assume it's there. I just wish I had found that out earlier. I'll look into the alternatives you've suggested. Thank you! |
I understand. Yes, for your use case it may be sensible to draw the line there. |
We need to exclude the glib libraries, otherwise we can end up using multiple incompatible versions. We could have also included all glib libraries, but then we would have to include the full gstreamer libraries too. See AppImageCommunity/pkg2appimage#500 (comment)
We need to exclude the glib libraries, otherwise we can end up using multiple incompatible versions. We could have also included all glib libraries, but then we would have to include the full gstreamer libraries too. See AppImageCommunity/pkg2appimage#500 (comment)
We need to exclude the glib libraries, otherwise we can end up using multiple incompatible versions. We could have also included all glib libraries, but then we would have to include the full gstreamer libraries too. See AppImageCommunity/pkg2appimage#500 (comment)
…nner work Summary: We need to exclude the glib libraries, otherwise we can end up using multiple incompatible versions. We could have also included all glib libraries, but then we would have to include the full gstreamer libraries too. See AppImageCommunity/pkg2appimage#500 (comment) This is a backport of [[ Electron-Cash/Electron-Cash#2653 | electroncash#2653 ]] Test Plan: Build the AppImage, test the webcam QR code scanner on a system where it previously didn't work (Ubuntu 22.04 with an AppImage built on Debian 10) Reviewers: #bitcoin_abc, Fabien Reviewed By: #bitcoin_abc, Fabien Differential Revision: https://reviews.bitcoinabc.org/D14284
…nner work Summary: We need to exclude the glib libraries, otherwise we can end up using multiple incompatible versions. We could have also included all glib libraries, but then we would have to include the full gstreamer libraries too. See AppImageCommunity/pkg2appimage#500 (comment) This is a backport of [[ Electron-Cash#2653 | electroncash#2653 ]] Test Plan: Build the AppImage, test the webcam QR code scanner on a system where it previously didn't work (Ubuntu 22.04 with an AppImage built on Debian 10) Reviewers: #bitcoin_abc, Fabien Reviewed By: #bitcoin_abc, Fabien Differential Revision: https://reviews.bitcoinabc.org/D14284
…nner work Summary: We need to exclude the glib libraries, otherwise we can end up using multiple incompatible versions. We could have also included all glib libraries, but then we would have to include the full gstreamer libraries too. See AppImageCommunity/pkg2appimage#500 (comment) This is a backport of [[ Electron-Cash#2653 | electroncash#2653 ]] Test Plan: Build the AppImage, test the webcam QR code scanner on a system where it previously didn't work (Ubuntu 22.04 with an AppImage built on Debian 10) Reviewers: #bitcoin_abc, Fabien Reviewed By: #bitcoin_abc, Fabien Differential Revision: https://reviews.bitcoinabc.org/D14284
…nner work Summary: We need to exclude the glib libraries, otherwise we can end up using multiple incompatible versions. We could have also included all glib libraries, but then we would have to include the full gstreamer libraries too. See AppImageCommunity/pkg2appimage#500 (comment) This is a backport of [[ Electron-Cash#2653 | electroncash#2653 ]] Test Plan: Build the AppImage, test the webcam QR code scanner on a system where it previously didn't work (Ubuntu 22.04 with an AppImage built on Debian 10) Reviewers: #bitcoin_abc, Fabien Reviewed By: #bitcoin_abc, Fabien Differential Revision: https://reviews.bitcoinabc.org/D14284
This will fix an error when an AppImage was created with glib < 2.70 and executed with glib >= 2.70:
Full analysis: project-slippi/Ishiiruka#323
Also fixes knarfS/smuview#40
@probonopd I guess updating this file will fix the download in the
generate-excludelist.sh
scripts of linuxdeploy and liunxdeployqt?