Bundling gtk in AppImage causes errors in some distros.
See original GitHub issueWe are creating AppImage for rustdesk, which can greatly improve the user experience using it. We use appimage-builder
to create the AppImage and follow the instructions on offical website of appimage-builder
. However, the AppImage can only run successfully in a part of distros. I highly doubt there is some issue when bundling gtk
in AppImage, causing critical errors with different version of X11.
Build Env: Ubuntu 18.04
Tested: Ubuntu 18.04(works), Ubuntu 20.04(works), Kubuntu 22.04(works), Manjaro 21.2.6(some works, some is not working, causing gnutls 3_6 not symbol found
), Fedora 36 workstation(GNOME wayland) (not working, core dumped).
The AppImageBuilder.yml is here.
I use gdb
on Fedora 36 workstation to trace the issue, the backtrace is shown below:
(gdb) bt
#0 0x00007ffff1851fc1 in ?? () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1 0x00007ffff185305c in g_log_default_handler () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff18532e2 in g_logv () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff185343f in g_log () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007ffff210e4f9 in ?? () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#5 0x00007ffff210eb5c in ?? () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#6 0x00007ffff211297b in g_settings_get_enum () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#7 0x00007ffff5494edf in ?? () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#8 0x00007ffff5496148 in ?? () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#9 0x00007ffff549072e in ?? () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#10 0x00007ffff5435d5d in gdk_display_manager_open_display () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#11 0x00007ffff702f69a in gtk_init_check () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007ffff702f6c9 in gtk_init () from /tmp/.mount_RustDeu7cpf2//usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#13 0x00005555554d1a9d in ?? ()
#14 0x00005555554be0e3 in ?? ()
#15 0x00005555554d5bcc in main ()
Is it OK to bundle the whole of libgtk-3-0
in AppImage(it’s added by appimage-builder --generate
automatically)? This package brings lots of dependencies(like gnutls
, libglib-2.0
), which causes conflict with some systems.
Issue Analytics
- State:
- Created a year ago
- Comments:7 (2 by maintainers)
libnsl
is part of glibc on Ubuntu based systems but Fedora people move it into another package therefore is not present in the system when the AppImage runs. A solution would be to move libnsl.so.1 from opt/libc to /lib/x86_64-linux-gnu/libnsl.so.1 (you can use a cp command for this in the after bundle, if you use the include file it will also put it in opt/libc).We should implement this solutions as part of appimage-builder soon.
I think it’s also worth noticing https://github.com/rustdesk/rustdesk/issues/577#issuecomment-1151399825