annotate deploy/linux/appimage-excludelist @ 718:dfabf544f682

Fix incorrect packaging of 64-bit CRT with 32-bit binaries
author Chris Cannam
date Thu, 13 Dec 2018 07:10:21 +0000
parents 21e4df9865af
children c39a04fed8b2
rev   line source
Chris@700 1 # This file lists libraries that we will assume to be present on the host system and hence
Chris@700 2 # should NOT be bundled inside AppImages. This is a working document; expect it to change
Chris@700 3 # over time. File format: one filename per line. Each entry should have a justification comment.
Chris@700 4
Chris@700 5 # See the useful tool at https://abi-laboratory.pro/index.php?view=navigator&symbol=hb_buffer_set_cluster_level#result
Chris@700 6 # to investigate issues with missing symbols.
Chris@700 7
Chris@700 8 ld-linux.so.2
Chris@700 9 ld-linux-x86-64.so.2
Chris@700 10 libanl.so.1
Chris@700 11 libBrokenLocale.so.1
Chris@700 12 libcidn.so.1
Chris@700 13 libcrypt.so.1
Chris@700 14 libc.so.6
Chris@700 15 libdl.so.2
Chris@700 16 libm.so.6
Chris@700 17 libmvec.so.1
Chris@700 18 libnsl.so.1
Chris@700 19 libnss_compat.so.2
Chris@700 20 libnss_db.so.2
Chris@700 21 libnss_dns.so.2
Chris@700 22 libnss_files.so.2
Chris@700 23 libnss_hesiod.so.2
Chris@700 24 libnss_nisplus.so.2
Chris@700 25 libnss_nis.so.2
Chris@700 26 libpthread.so.0
Chris@700 27 libresolv.so.2
Chris@700 28 librt.so.1
Chris@700 29 libthread_db.so.1
Chris@700 30 libutil.so.1
Chris@700 31 # These files are all part of the GNU C Library which should never be bundled.
Chris@700 32 # List was generated from a fresh build of glibc 2.25.
Chris@700 33
Chris@700 34 libstdc++.so.6
Chris@700 35 # Workaround for:
Chris@700 36 # usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
Chris@700 37
Chris@700 38 libGL.so.1
Chris@700 39 # Part of the video driver (OpenGL); present on any regular
Chris@700 40 # desktop system, may also be provided by proprietary drivers.
Chris@700 41 # Known to cause issues if it's bundled.
Chris@700 42
Chris@700 43 libdrm.so.2
Chris@700 44 # Workaround for:
Chris@700 45 # Antergos Linux release 2015.11 (ISO-Rolling)
Chris@700 46 # /usr/lib/libdrm_amdgpu.so.1: error: symbol lookup error: undefined symbol: drmGetNodeTypeFromFd (fatal)
Chris@700 47 # libGL error: unable to load driver: swrast_dri.so
Chris@700 48 # libGL error: failed to load driver: swrast
Chris@700 49 # Unrecognized OpenGL version
Chris@700 50
Chris@700 51 # TODO:
Chris@700 52 # Consider to blackilst also libEGL.so.1
Chris@700 53 # see https://github.com/knapsu/plex-media-player-appimage/issues/11#issuecomment-394203370
Chris@700 54
Chris@700 55 libglapi.so.0
Chris@700 56 # Part of mesa
Chris@700 57 # known to cause problems with graphics, see https://github.com/RPCS3/rpcs3/issues/4427#issuecomment-381674910
Chris@700 58
Chris@700 59 libxcb.so.1
Chris@700 60 # Workaround for:
Chris@700 61 # Fedora 23
Chris@700 62 # symbol lookup error: /lib64/libxcb-dri3.so.0: undefined symbol: xcb_send_fd
Chris@700 63 # Uncertain if this is required to be bundled for some distributions - if so we need to write a version check script and use LD_PRELOAD to load the system version if it is newer
Chris@700 64 # Fedora 25:
Chris@700 65 # undefined symbol: xcb_send_request_with_fds
Chris@700 66 # https://github.com/AppImage/AppImages/issues/128
Chris@700 67
Chris@700 68 libX11.so.6
Chris@700 69 # Workaround for:
Chris@700 70 # Fedora 23
Chris@700 71 # symbol lookup error: ./lib/libX11.so.6: undefined symbol: xcb_wait_for_reply64
Chris@700 72 # Uncertain if this is required to be bundled for some distributions - if so we need to write a version check script and use LD_PRELOAD to load the system version if it is newer
Chris@700 73
Chris@700 74 libgio-2.0.so.0
Chris@700 75 # Workaround for:
Chris@700 76 # On Ubuntu, "symbol lookup error: /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/liboverlay-scrollbar.so: undefined symbol: g_settings_new"
Chris@700 77
Chris@700 78 # libgdk-x11-2.0.so.0 # Missing on openSUSE-Tumbleweed-KDE-Live-x86_64-Snapshot20170601-Media.iso
Chris@700 79 # libgtk-x11-2.0.so.0 # Missing on openSUSE-Tumbleweed-KDE-Live-x86_64-Snapshot20170601-Media.iso
Chris@700 80
Chris@700 81 libasound.so.2
Chris@700 82 # Workaround for:
Chris@700 83 # No sound, e.g., in VLC.AppImage (does not find sound cards)
Chris@700 84
Chris@700 85 libgdk_pixbuf-2.0.so.0
Chris@700 86 # Workaround for:
Chris@700 87 # On Ubuntu, get (inkscape:25621): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported
Chris@700 88
Chris@700 89 libfontconfig.so.1
Chris@700 90 # Workaround for:
Chris@700 91 # Application stalls when loading fonts during application launch; e.g., KiCad on ubuntu-mate
Chris@700 92
Chris@700 93 libthai.so.0
Chris@700 94 # Workaround for:
Chris@700 95 # audacity: /tmp/.mount_AudaciUsFbON/usr/lib/libthai.so.0: version `LIBTHAI_0.1.25' not found (required by /usr/lib64/libpango-1.0.so.0)
Chris@700 96 # on openSUSE Tumbleweed
Chris@700 97
Chris@700 98 # other "low-level" font rendering libraries
Chris@700 99 # should fix https://github.com/probonopd/linuxdeployqt/issues/261#issuecomment-377522251
Chris@700 100 # and https://github.com/probonopd/linuxdeployqt/issues/157#issuecomment-320755694
Chris@700 101 libfreetype.so.6
Chris@700 102 libharfbuzz.so.0
Chris@700 103
Chris@700 104 # Note, after discussion we do not exlude this, but we can use a dummy library that just does nothing
Chris@700 105 # libselinux.so.1
Chris@700 106 # Workaround for:
Chris@700 107 # sed: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
Chris@700 108 # Some distributions, such as Arch Linux, do not come with libselinux.so.1 by default.
Chris@700 109 # The solution is to bundle a dummy mock library:
Chris@700 110 # echo "extern int is_selinux_enabled(void){return 0;}" >> selinux-mock.c
Chris@700 111 # gcc -s -shared -o libselinux.so.1 -Wl,-soname,libselinux.so.1 selinux-mock.c
Chris@700 112 # strip libselinux.so.1
Chris@700 113 # More information: https://github.com/AppImage/AppImages/issues/83
Chris@700 114
Chris@700 115 # The following are assumed to be part of the base system
Chris@700 116 # Removing these has worked e.g., for Krita. Feel free to report if
Chris@700 117 # you think that some of these should go into AppImages and why.
Chris@700 118 libcom_err.so.2
Chris@700 119 libcrypt.so.1
Chris@700 120 libexpat.so.1
Chris@700 121 libgcc_s.so.1
Chris@700 122 libglib-2.0.so.0
Chris@700 123 libgpg-error.so.0
Chris@700 124 # libgssapi_krb5.so.2 # Disputed, seemingly needed by Arch Linux since Kerberos is named differently there
Chris@700 125 # libgssapi.so.3 # Seemingly needed when running Ubuntu 14.04 binaries on Fedora 23
Chris@700 126 # libhcrypto.so.4 # Missing on openSUSE LEAP 42.0
Chris@700 127 # libheimbase.so.1 # Seemingly needed when running Ubuntu 14.04 binaries on Fedora 23
Chris@700 128 # libheimntlm.so.0 # Seemingly needed when running Ubuntu 14.04 binaries on Fedora 23
Chris@700 129 # libhx509.so.5 # Missing on openSUSE LEAP 42.0
Chris@700 130 libICE.so.6
Chris@700 131 # libidn.so.11 # Does not come with Solus by default
Chris@700 132 # libk5crypto.so.3 # Runnning AppImage built on Debian 9 or Ubuntu 16.04 on an Archlinux fails otherwise; https://github.com/AppImage/AppImages/issues/301
Chris@700 133 libkeyutils.so.1
Chris@700 134 # libkrb5.so.26 # Disputed, seemingly needed by Arch Linux since Kerberos is named differently there. Missing on openSUSE LEAP 42.0
Chris@700 135 # libkrb5.so.3 # Disputed, seemingly needed by Arch Linux since Kerberos is named differently there
Chris@700 136 # libkrb5support.so.0 # Disputed, seemingly needed by Arch Linux since Kerberos is named differently there
Chris@700 137 libp11-kit.so.0
Chris@700 138 # libpcre.so.3 # Missing on Fedora 24, SLED 12 SP1, and openSUSE Leap 42.2
Chris@700 139 # libroken.so.18 # Mission on openSUSE LEAP 42.0
Chris@700 140 # libsasl2.so.2 # Seemingly needed when running Ubuntu 14.04 binaries on Fedora 23
Chris@700 141 libSM.so.6
Chris@700 142 libusb-1.0.so.0
Chris@700 143 libuuid.so.1
Chris@700 144 # libwind.so.0 # Missing on openSUSE LEAP 42.0
Chris@700 145 libz.so.1
Chris@700 146
Chris@700 147 # Potentially dangerous libraries
Chris@700 148 libgobject-2.0.so.0
Chris@700 149
Chris@700 150 # Workaround for:
Chris@700 151 # Rectangles instead of fonts
Chris@700 152 # https://github.com/AppImage/AppImages/issues/240
Chris@700 153 libpangoft2-1.0.so.0
Chris@700 154 libpangocairo-1.0.so.0
Chris@700 155 libpango-1.0.so.0
Chris@700 156
Chris@700 157 # Workaround for:
Chris@700 158 # e.g., Spotify
Chris@700 159 # relocation error: /lib/x86_64-linux-gnu/libgcrypt.so.20:
Chris@700 160 # symbol gpgrt_lock_lock, version GPG_ERROR_1.0 not defined
Chris@700 161 # in file libgpg-error.so.0 with link time reference
Chris@700 162 libgpg-error.so.0
Chris@700 163
Chris@700 164 libjack.so.0
Chris@700 165 # it must match the ABI of the JACK server which is installed in the base system
Chris@700 166 # rncbc confirmed this
Chris@700 167
Chris@700 168 # Unsolved issue:
Chris@700 169 # https://github.com/probonopd/linuxdeployqt/issues/35
Chris@700 170 # Error initializing NSS with a persistent database (sql:/home/me/.pki/nssdb): libsoftokn3.so: cannot open shared object file: No such file or directory
Chris@700 171 # Error initializing NSS without a persistent database: NSS error code: -5925
Chris@700 172 # nss_error=-5925, os_error=0
Chris@700 173 # libnss3.so should not be removed from the bundles, as this causes other issues, e.g.,
Chris@700 174 # https://github.com/probonopd/linuxdeployqt/issues/35#issuecomment-256213517
Chris@700 175 # and https://github.com/AppImage/AppImages/pull/114
Chris@700 176 # libnss3.so
Chris@700 177
Chris@700 178 # The following cannot be excluded, see
Chris@700 179 # https://github.com/AppImage/AppImages/commit/6c7473d8cdaaa2572248dcc53d7f617a577ade6b
Chris@700 180 # http://stackoverflow.com/questions/32644157/forcing-a-binary-to-use-a-specific-newer-version-of-a-shared-library-so
Chris@700 181 # libssl.so.1
Chris@700 182 # libssl.so.1.0.0
Chris@700 183 # libcrypto.so.1
Chris@700 184 # libcrypto.so.1.0.0