From: Uwe Hermann Date: Thu, 3 Oct 2019 13:18:36 +0000 (+0200) Subject: sigrok-native-appimage: Bump local AppImageKit files. X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=af040d31bd7fe97cca86ee7d4472a6b404185122;p=sigrok-util.git sigrok-native-appimage: Bump local AppImageKit files. Bump functions.sh and excludelist to the latest upstream versions from: https://github.com/AppImage/pkg2appimage --- diff --git a/cross-compile/appimage/contrib/excludelist b/cross-compile/appimage/contrib/excludelist index 4baede7..dc1797a 100644 --- a/cross-compile/appimage/contrib/excludelist +++ b/cross-compile/appimage/contrib/excludelist @@ -10,12 +10,12 @@ ld-linux-x86-64.so.2 libanl.so.1 libBrokenLocale.so.1 libcidn.so.1 -libcrypt.so.1 +# libcrypt.so.1 # Not part of glibc anymore as of Fedora 30. See https://github.com/slic3r/Slic3r/issues/4798 and https://pagure.io/fedora-docs/release-notes/c/01d74b33564faa42959c035e1eee286940e9170e?branch=f28 libc.so.6 libdl.so.2 libm.so.6 libmvec.so.1 -libnsl.so.1 +# libnsl.so.1 # Not part of glibc anymore as of Fedora 28. See https://github.com/RPCS3/rpcs3/issues/5224#issuecomment-434930594 libnss_compat.so.2 libnss_db.so.2 libnss_dns.so.2 @@ -36,11 +36,17 @@ libstdc++.so.6 # usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found libGL.so.1 +# The above may be missing on Chrome OS, https://www.reddit.com/r/Crostini/comments/d1lp67/ultimaker_cura_no_longer_running_as_an_appimage/ libEGL.so.1 # Part of the video driver (OpenGL); present on any regular # desktop system, may also be provided by proprietary drivers. # Known to cause issues if it's bundled. +libGLdispatch.so.0 +libGLX.so.0 +# reported to be superfluent and conflicting system libraries (graphics driver) +# see https://github.com/linuxdeploy/linuxdeploy/issues/89 + libdrm.so.2 # Workaround for: # Antergos Linux release 2015.11 (ISO-Rolling) @@ -53,6 +59,10 @@ libglapi.so.0 # Part of mesa # known to cause problems with graphics, see https://github.com/RPCS3/rpcs3/issues/4427#issuecomment-381674910 +libgbm.so.1 +# Part of mesa +# https://github.com/probonopd/linuxdeployqt/issues/390#issuecomment-529036305 + libxcb.so.1 # Workaround for: # Fedora 23 @@ -113,7 +123,6 @@ libharfbuzz.so.0 # Removing these has worked e.g., for Krita. Feel free to report if # you think that some of these should go into AppImages and why. libcom_err.so.2 -libcrypt.so.1 libexpat.so.1 libgcc_s.so.1 libglib-2.0.so.0 @@ -127,7 +136,7 @@ libgpg-error.so.0 libICE.so.6 # libidn.so.11 # Does not come with Solus by default # 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 -libkeyutils.so.1 +# libkeyutils.so.1 # Does not come with Void Linux by default; https://github.com/Subsurface-divelog/subsurface/issues/1971#issuecomment-466606834 # libkrb5.so.26 # Disputed, seemingly needed by Arch Linux since Kerberos is named differently there. Missing on openSUSE LEAP 42.0 # libkrb5.so.3 # Disputed, seemingly needed by Arch Linux since Kerberos is named differently there # libkrb5support.so.0 # Disputed, seemingly needed by Arch Linux since Kerberos is named differently there @@ -151,6 +160,10 @@ libpangoft2-1.0.so.0 libpangocairo-1.0.so.0 libpango-1.0.so.0 +# FIXME: +# Can get symbol lookup error: /lib64/libpango-1.0.so.0: undefined symbol: g_log_structured_standard +# if libcairo is bundled but libpango is not + # Workaround for: # e.g., Spotify # relocation error: /lib/x86_64-linux-gnu/libgcrypt.so.20: @@ -180,7 +193,15 @@ libjack.so.0 # libcrypto.so.1 # libcrypto.so.1.0.0 -# The following may be spefific to a particular GPU and may need to be excluded -# according to https://github.com/RicardoEPRodrigues/3Engine/issues/4#issuecomment-402532194 -# libGLEW.so.2.0 # to be confirmed +# According to https://github.com/RicardoEPRodrigues/3Engine/issues/4#issuecomment-511598362 +# libGLEW is not tied to a specific GPU. It's linked against libGL.so.1 +# and that one is different depending on the installed driver. +# In fact libGLEW is changing its soversion very often, so you should always bundle libGLEW.so.2.0 + # libglut.so.3 # to be confirmed + +libxcb-dri3.so.0 # https://github.com/AppImage/AppImages/issues/348 +libxcb-dri2.so.0 # https://github.com/probonopd/linuxdeployqt/issues/331#issuecomment-442276277 + +# If the next line turns out to cause issues, we will have to remove it again and find another solution +libfribidi.so.0 # https://github.com/olive-editor/olive/issues/221 and https://github.com/knapsu/plex-media-player-appimage/issues/14 diff --git a/cross-compile/appimage/contrib/functions.sh b/cross-compile/appimage/contrib/functions.sh index d8f9338..1671e91 100644 --- a/cross-compile/appimage/contrib/functions.sh +++ b/cross-compile/appimage/contrib/functions.sh @@ -29,6 +29,9 @@ OPTIONS="-o Debug::NoLocking=1 -o APT::Install-Suggests=0 " +# Detect if we are running inside Docker +grep docker /proc/1/cgroup >/dev/null && export DOCKER_BUILD=1 || true + # Detect system architecture to know which binaries of AppImage tools # should be downloaded and used. case "$(uname -i)" in @@ -115,7 +118,7 @@ move_lib() # Delete blacklisted files delete_blacklisted() { - BLACKLISTED_FILES=$(cat_file_from_url https://github.com/AppImage/AppImages/raw/${PKG2AICOMMIT}/excludelist | sed 's|#.*||g') + BLACKLISTED_FILES=$(cat_file_from_url https://github.com/AppImage/pkg2appimage/raw/${PKG2AICOMMIT}/excludelist | sed 's|#.*||g') echo $BLACKLISTED_FILES for FILE in $BLACKLISTED_FILES ; do FILES="$(find . -name "${FILE}" -not -path "./usr/optional/*")" @@ -141,11 +144,11 @@ glibc_needed() # Usage: get_desktopintegration name_of_desktop_file_and_exectuable get_desktopintegration() { - REALBIN=$(grep -o "^Exec=.*" *.desktop | sed -e 's|Exec=||g' | cut -d " " -f 1 | head -n 1) - cat_file_from_url https://raw.githubusercontent.com/AppImage/AppImageKit/master/desktopintegration > ./usr/bin/$REALBIN.wrapper - chmod a+x ./usr/bin/$REALBIN.wrapper - - sed -i -e "s|^Exec=$REALBIN|Exec=$REALBIN.wrapper|g" $1.desktop + # REALBIN=$(grep -o "^Exec=.*" *.desktop | sed -e 's|Exec=||g' | cut -d " " -f 1 | head -n 1) + # cat_file_from_url https://raw.githubusercontent.com/AppImage/AppImageKit/deprecated/AppImageAssistant/desktopintegration > ./usr/bin/$REALBIN.wrapper + # chmod a+x ./usr/bin/$REALBIN.wrapper + echo "The desktopintegration script is deprecated. Please advise users to use https://github.com/AppImage/appimaged instead." + # sed -i -e "s|^Exec=$REALBIN|Exec=$REALBIN.wrapper|g" $1.desktop } # Generate AppImage; this expects $ARCH, $APP and $VERSION to be set @@ -203,11 +206,14 @@ generate_type2_appimage() # if [ -z "$URL" ] ; then # URL=$(wget -q "https://s3.amazonaws.com/archive.travis-ci.org/jobs/$((ID+2))/log.txt" -O - | grep "https://transfer.sh/.*/appimagetool" | tail -n 1 | sed -e 's|\r||g') # fi - URL="https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-${SYSTEM_ARCH}.AppImage" - wget -c "$URL" -O appimagetool - chmod a+x ./appimagetool - appimagetool=$(readlink -f appimagetool) - + if [ -z "$(which appimagetool)" ] ; then + URL="https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-${SYSTEM_ARCH}.AppImage" + wget -c "$URL" -O appimagetool + chmod a+x ./appimagetool + appimagetool=$(readlink -f appimagetool) + else + appimagetool=$(which appimagetool) + fi if [ "$DOCKER_BUILD" ]; then appimagetool_tempdir=$(mktemp -d) mv appimagetool "$appimagetool_tempdir" @@ -253,7 +259,12 @@ generate_status() mkdir -p ./tmp/archives/ mkdir -p ./tmp/lists/partial touch tmp/pkgcache.bin tmp/srcpkgcache.bin - wget -q -c "https://github.com/AppImage/AppImages/raw/${PKG2AICOMMIT}/excludedeblist" + if [ -e "${HERE}/usr/share/pkg2appimage/excludedeblist" ] ; then + EXCLUDEDEBLIST="${HERE}/usr/share/pkg2appimage/excludedeblist" + else + wget -q -c "https://github.com/AppImage/AppImages/raw/${PKG2AICOMMIT}/excludedeblist" + EXCLUDEDEBLIST=excludedeblist + fi rm status 2>/dev/null || true for PACKAGE in $(cat excludedeblist | cut -d "#" -f 1) ; do printf "Package: $PACKAGE\nStatus: install ok installed\nArchitecture: all\nVersion: 9:999.999.999\n\n" >> status