Handling Gtk+ and gtk icon themes
See original GitHub issuethere is an issue in how appimage in general handle gtk themeing and this is mitigated(fixed) by using gtk-plugin of linuxdeploy fixing env variable and Bundles Gtk+ resources, however this use system version of libraries not using AppDir included libraries this specially a problem when trying in AppDir depending on different version libraries than the system is using.
for instance : using linuxdeploy-plugin-gtk for AppDir that depend on libncursesw6 while the system(don’t have it) has different version (will error out).
also it tried to load some icon from (/org) which is no in the system(linux mint 19.3)
(bottles:19707): Gtk-WARNING **: Could not load a pixbuf from /org/gtk/libgtk/theme/Adwaita/assets/bullet-symbolic.svg.
here some examples:
- https://github.com/AppImage/AppImageKit/issues/906#issue-398543025
- https://github.com/bottlesdevs/Bottles/issues/156#issuecomment-796665063 .env :
APPDIR=$ORIGIN/
APPIMAGE_UUID=835f16ac-fc19-4e3f-aed3-58eb5d7ac2eb
EXEC_PATH=$APPDIR/usr/bin/python3
EXEC_ARGS=$APPDIR/usr/bin/bottles $@
XDG_DATA_DIRS=$APPDIR/usr/local/share:$APPDIR/usr/share:$XDG_DATA_DIRS
XDG_CONFIG_DIRS=$APPDIR/etc/xdg:$XDG_CONFIG_DIRS
LD_PRELOAD=libapprun_hooks.so
GDK_PIXBUF_MODULEDIR=$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders
GDK_PIXBUF_MODULE_FILE=$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
APPDIR_LIBRARY_PATH=$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:$APPDIR/lib/x86_64-linux-gnu:$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders
GSETTINGS_SCHEMA_DIR=$APPDIR/usr/share/glib-2.0/schemas
GST_PLUGIN_PATH=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer-1.0
GST_PLUGIN_SYSTEM_PATH=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer-1.0
GST_REGISTRY_REUSE_PLUGIN_SCANNER=no
GST_PLUGIN_SCANNER=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner
GST_PTP_HELPER=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper
GTK_EXE_PREFIX=$APPDIR/usr/lib/x86_64-linux-gnu
GTK_DATA_PREFIX=$APPDIR/usr/lib
PATH=$APPDIR/usr/bin:${PATH}
LIBC_LIBRARY_PATH=$APPDIR/opt/libc/lib/x86_64-linux-gnu:$APPDIR/opt/libc/usr/lib/x86_64-linux-gnu:$APPDIR/opt/libc/lib64
APPDIR_LIBC_VERSION=2.33
SYSTEM_INTERP=/lib64/ld-linux-x86-64.so.2
PYTHONHOME=$APPDIR/usr/
PYTHONPATH=$APPDIR/usr/lib/python3/dist-packages
GTK_THEME=Adwaita
GTK_PATH=$APPDIR/usr/lib/x86_64-linux-gnu/gtk-3.0
.bundle.yml:
apt:
packages:
- libsoup2.4-1:amd64=2.72.0-3
- libtasn1-6:amd64=4.16.0-2
- libnettle8:amd64=3.7-2.1
- libuuid1:amd64=2.36.1-7ubuntu2
- hicolor-icon-theme:all=0.17-2
- liblzo2-2:amd64=2.10-2build1
- libdatrie1:amd64=0.2.13-1ubuntu2
- libkrb5support0:amd64=1.18.3-4
- libtiff5:amd64=4.2.0-1
- libwayland-egl1:amd64=1.18.0-2~exp1.1
- gvfs-libs:amd64=1.47.90-1ubuntu1
- dbus:amd64=1.12.20-1ubuntu3
- libgtk-3-0:amd64=3.24.25-1ubuntu2
- libunwind8:amd64=1.3.2-2
- libjbig0:amd64=2.1-3.1build1
- libpng16-16:amd64=1.6.37-3build2
- libjpeg-turbo8:amd64=2.0.6-0ubuntu1
- libdevmapper1.02.1:amd64=2:1.02.175-2ubuntu3
- libidn2-0:amd64=2.3.0-5
- libxfixes3:amd64=1:5.0.3-2build1
- libpam0g:amd64=1.3.1-5ubuntu6
- libkeyutils1:amd64=1.6.1-2ubuntu1
- libgtk-3-common:all=3.24.25-1ubuntu2
- fonts-dejavu-core:all=2.37-2build1
- librsvg2-common:amd64=2.50.3+dfsg-1
- python3:amd64=3.9.1-1
- libdconf1:amd64=0.38.0-2
- glib-networking:amd64=2.66.0-2
- libpopt0:amd64=1.18-2build2
- libgck-1-0:amd64=3.38.1-2
- libpsl5:amd64=0.21.0-1.2
- libtinfo6:amd64=6.2+20201114-2build1
- libicu67:amd64=67.1-6ubuntu1
- libthai-data:all=0.1.28-4
- dbus-user-session:amd64=1.12.20-1ubuntu3
- ubuntu-mono:all=20.10-0ubuntu1
- libparted2:amd64=3.4-1
- libkrb5-3:amd64=1.18.3-4
- gtk2-engines-pixbuf:amd64=2.24.33-1ubuntu2
- libatk-bridge2.0-0:amd64=2.38.0-1build1
- libpython3-stdlib:amd64=3.9.1-1
- libcom-err2:amd64=1.45.7-1ubuntu2
- libexpat1:amd64=2.2.10-2
- gcc-11-base:amd64=11-20210306-1ubuntu1
- libglib2.0-0:amd64=2.67.5-2
- libxrender1:amd64=1:0.9.10-1build2
- libgssapi-krb5-2:amd64=1.18.3-4
- libxrandr2:amd64=2:1.5.2-0ubuntu1
- libjson-glib-1.0-common:all=1.6.2-1
- zlib1g:amd64=1:1.2.11.dfsg-2ubuntu5
- libxcursor1:amd64=1:1.2.0-2build2
- tzdata:all=2021a-1ubuntu1
- libgdk-pixbuf-xlib-2.0-0:amd64=2.40.2-2build2
- libblkid1:amd64=2.36.1-7ubuntu2
- libpcre2-8-0:amd64=10.36-2ubuntu4
- libreadline8:amd64=8.1-1
- libpixman-1-0:amd64=0.40.0-1build2
- libblockdev-part2:amd64=2.25-2
- gir1.2-glib-2.0:amd64=1.66.1-1build1
- libss2:amd64=1.45.7-1ubuntu2
- libudev1:amd64=247.3-1ubuntu4
- libthai0:amd64=0.1.28-4
- e2fsprogs:amd64=1.45.7-1ubuntu2
- libcap2:amd64=1:2.44-1build1
- libdeflate0:amd64=1.7-1ubuntu1
- libpangoft2-1.0-0:amd64=1.48.2-1build2
- libcairo-gobject2:amd64=1.16.0-5build1
- libzstd1:amd64=1.4.8+dfsg-2build1
- libxcomposite1:amd64=1:0.4.5-1
- libpolkit-agent-1-0:amd64=0.105-30
- librsvg2-bin:amd64=2.50.3+dfsg-1
- libparted-fs-resize0:amd64=3.4-1
- libatk1.0-data:all=2.36.0-0ubuntu2
- parted:amd64=3.4-1
- libext2fs2:amd64=1.45.7-1ubuntu2
- libfreetype6:amd64=2.10.4+dfsg-1build1
- libblockdev-loop2:amd64=2.25-2
- libsoup-gnome2.4-1:amd64=2.72.0-3
- libxext6:amd64=2:1.3.4-0ubuntu3
- libblockdev-swap2:amd64=2.25-2
- libxml2:amd64=2.9.10+dfsg-6.3build1
- gdisk:amd64=1.0.6-1.1
- libpython3.9-stdlib:amd64=3.9.2-1
- libudisks2-0:amd64=2.9.2-1
- libblockdev-fs2:amd64=2.25-2
- python3-minimal:amd64=3.9.1-1
- libaudit-common:all=1:3.0-2ubuntu1
- gvfs:amd64=1.47.90-1ubuntu1
- sound-theme-freedesktop:all=0.8-2ubuntu1
- glib-networking-services:amd64=2.66.0-2
- libxdamage1:amd64=1:1.1.5-2
- libpango-1.0-0:amd64=1.48.2-1build2
- libcairo-script-interpreter2:amd64=1.16.0-5build1
- libcrypt1:amd64=1:4.4.17-1ubuntu2
- libcanberra0:amd64=0.30-7ubuntu2
- libvorbis0a:amd64=1.3.7-1
- lsof:amd64=4.93.2+dfsg-1.1
- libxi6:amd64=2:1.7.10-1build2
- libgstreamer1.0-0:amd64=1.18.3-1
- libnsl2:amd64=1.3.0-0ubuntu3
- liblcms2-2:amd64=2.12~rc1-2
- libfribidi0:amd64=1.0.8-2ubuntu1
- librsvg2-2:amd64=2.50.3+dfsg-1
- libgdk-pixbuf2.0-0:amd64=2.40.2-2build2
- gnome-themes-extra-data:all=3.28-1ubuntu1
- readline-common:all=8.1-1
- libwayland-client0:amd64=1.18.0-2~exp1.1
- libcap-ng0:amd64=0.7.9-2.2build1
- libsqlite3-0:amd64=3.34.1-2
- dmidecode:amd64=3.3-1build1
- libavahi-common-data:amd64=0.8-5ubuntu1
- libmpdec3:amd64=2.5.1-1
- desktop-file-utils:amd64=0.26-1ubuntu1
- gvfs-common:all=1.47.90-1ubuntu1
- libbz2-1.0:amd64=1.0.8-4ubuntu2
- libharfbuzz0b:amd64=2.7.4-1ubuntu1
- libjpeg8:amd64=8c-2ubuntu8
- libstdc++6:amd64=11-20210306-1ubuntu1
- libk5crypto3:amd64=1.18.3-4
- libatasmart4:amd64=0.19-5
- libacl1:amd64=2.2.53-10build1
- libltdl7:amd64=2.4.6-15
- libdw1:amd64=0.183-4
- libncursesw6:amd64=6.2+20201114-2build1
- librest-0.7-0:amd64=0.8.1-1.1
- python3.9:amd64=3.9.2-1
- libcanberra-gtk3-0:amd64=0.30-7ubuntu2
- libsecret-common:all=0.20.4-2
- udisks2:amd64=2.9.2-1
- libwayland-cursor0:amd64=1.18.0-2~exp1.1
- libgtk-3-0:amd64=4.0.1-0build1
- libvulkan1:amd64=1.2.162.0-1
- dconf-gsettings-backend:amd64=0.38.0-2
- gnome-themes-standard:all=3.28-1ubuntu1
- libgraphite2-3:amd64=1.3.14-1
- libsystemd0:amd64=247.3-1ubuntu4
- libaudit1:amd64=1:3.0-2ubuntu1
- libelf1:amd64=0.183-4
- libwebp6:amd64=0.6.1-2
- libgtk-3-common:all=4.0.1-0build1
- libtirpc-common:all=1.3.1-1build1
- libgirepository-1.0-1:amd64=1.66.1-1build1
- liblz4-1:amd64=1.9.3-1build1
- libgpg-error0:amd64=1.38-2build1
- libsecret-1-0:amd64=0.20.4-2
- xkb-data:all=2.29-2build1
- fontconfig-config:all=2.13.1-4.2ubuntu3
- libc6:amd64=2.33-0ubuntu2
- libmount1:amd64=2.36.1-7ubuntu2
- libapparmor1:amd64=3.0.0-0ubuntu6
- libpangocairo-1.0-0:amd64=1.48.2-1build2
- libgdk-pixbuf2.0-common:all=2.42.2+dfsg-1build1
- libogg0:amd64=1.3.4-0.1
- libffi8ubuntu1:amd64=3.4~20200819gead65ca871-0ubuntu5
- libpam-systemd:amd64=247.3-1ubuntu4
- libcolord2:amd64=1.4.5-3
- libxinerama1:amd64=2:1.1.4-2build2
- logsave:amd64=1.45.7-1ubuntu2
- libtirpc3:amd64=1.3.1-1build1
- gtk-update-icon-cache:amd64=3.24.25-1ubuntu2
- libgcr-base-3-1:amd64=3.38.1-2
- libgdk-pixbuf-2.0-0:amd64=2.42.2+dfsg-1build1
- libgcrypt20:amd64=1.8.7-2ubuntu2
- python3.9-minimal:amd64=3.9.2-1
- udev:amd64=247.3-1ubuntu4
- libatk1.0-0:amd64=2.36.0-0ubuntu2
- liblzma5:amd64=5.2.5-1.0build1
- libssl1.1:amd64=1.1.1j-1ubuntu1
- libgudev-1.0-0:amd64=1:234-1
- libdb5.3:amd64=5.3.28+dfsg1-0.6ubuntu3
- libdbus-1-3:amd64=1.12.20-1ubuntu3
- libavahi-common3:amd64=0.8-5ubuntu1
- libgcc-s1:amd64=11-20210306-1ubuntu1
- libasound2:amd64=1.2.4-1.1
- libblockdev-utils2:amd64=2.25-2
- libgmp10:amd64=2:6.2.1+dfsg-1ubuntu1
- python3-gi:amd64=3.38.0-2
- libgraphene-1.0-0:amd64=1.10.4+dfsg1-1
- libjson-glib-1.0-0:amd64=1.6.2-1
- libatspi2.0-0:amd64=2.39.90.1-1
- media-types:all=4.0.0
- libcups2:amd64=2.3.3op2-3ubuntu1
- libhandy-1-0:amd64=1.1.90-2
- libbrotli1:amd64=1.0.9-2build2
- libepoxy0:amd64=1.5.5-1build1
- gnome-themes-extra:amd64=3.28-1ubuntu1
- gsettings-desktop-schemas:all=3.38.0-1ubuntu1
- libfontconfig1:amd64=2.13.1-4.2ubuntu3
- libkmod2:amd64=28-1ubuntu2
- adwaita-icon-theme:all=3.38.0-1ubuntu2
- libvorbisfile3:amd64=1.3.7-1
- libunistring2:amd64=0.9.10-4
- libasound2-data:all=1.2.4-1.1
- libp11-kit0:amd64=0.23.22-1
- libavahi-client3:amd64=0.8-5ubuntu1
- libxkbcommon0:amd64=1.0.3-2
- dconf-service:amd64=0.38.0-2
- libproxy1v5:amd64=0.4.17-1
- libcairo2:amd64=1.16.0-5build1
- libcanberra-gtk3-module:amd64=0.30-7ubuntu2
- glib-networking-common:all=2.66.0-2
- libselinux1:amd64=3.1-3build1
- libpolkit-gobject-1-0:amd64=0.105-30
- libblockdev2:amd64=2.25-2
- libgnutls30:amd64=3.7.0-5ubuntu1
- libhogweed6:amd64=3.7-2.1
- libpcre3:amd64=2:8.39-13build2
- libblockdev-part-err2:amd64=2.25-2
- gvfs-daemons:amd64=1.47.90-1ubuntu1
- libpython3.9-minimal:amd64=3.9.2-1
- libtdb1:amd64=1.4.3-1build1
sources:
- deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ groovy main restricted universe
multiverse
dependencies:
- ld-linux-x86-64.so.2
- libxcb-render.so.0
- libgcc_s.so.1
- libxcb-shm.so.0
- libX11.so.6
- libcrypt.so.1
- libresolv.so.2
- libpthread.so.0
- libm.so.6
- librt.so.1
- libxcb.so.1
- libstdc++.so.6
- libgdk-x11-2.0.so.0
- libdl.so.2
- libc.so.6
- libutil.so.1
- libz.so.1
- libgtk-x11-2.0.so.0
Issue Analytics
- State:
- Created 3 years ago
- Comments:15 (8 by maintainers)
Top GitHub Comments
The
generate
commands runs the application using the binaries in the system therefore the system sources list must be used. Otherwise it may include packages that provides the wrong binary version. The runtime dependencies may vary from one system to other depending on your runtime configuration. I wonder why snapd is being included in your bundle, the good thing is that you can edit those dependencies latter.Opt out those packages that may look weird to you (like snapd) and use the test cases to validate that the resulting bundle is still portable.
Regarding the integration script. We recommend using appimagelauncher or appimaged as they rely on libappimage and generated an “standardized” desktop launcher. Other tools may generate a working desktop launcher but may not work well with the mentioned tools
For libhandy to be properly loaded you need to setup
GI_TYPELIB_PATH
. This is my whole env setup.