From a6d7fc6cdc5212790fcf0d2a8d6d07ad58e409a2 Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:21:23 -0400 Subject: [PATCH] CI/AppImage: deploy all dependencies manually --- .github/workflows/release.yml | 51 ++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 05cf67a46..f0424af7b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -162,9 +162,9 @@ jobs: shell: bash if: matrix.build == 'x86_64-linux' run: | - # Required as of 22.x https://github.com/AppImage/AppImageKit/wiki/FUSE + export APPIMAGE_EXTRACT_AND_RUN=1 sudo add-apt-repository universe - sudo apt install libfuse2 + sudo apt install desktop-file-utils zsync mkdir dist @@ -187,34 +187,35 @@ jobs: rm -rf runtime/grammars/sources cp -r runtime "$APP.AppDir/usr/lib/helix/runtime" + # Bundle libc and all dependencies + ldd "$APP.AppDir"/usr/bin/hx | awk -F"[> ]" '{print $4}' \ + | xargs -I {} cp -vf {} "$APP.AppDir"/usr/lib + cp -v /lib64/ld-linux-x86-64.so.2 "$APP.AppDir" + rm -f "$APP.AppDir"/usr/lib/ld-linux-x86-64.so.2 2>/dev/null || true + cat << 'EOF' > "$APP.AppDir/AppRun" #!/bin/sh - APPDIR="$(dirname "$(readlink -f "${0}")")" - HELIX_RUNTIME="$APPDIR/usr/lib/helix/runtime" exec "$APPDIR/usr/bin/hx" "$@" + unset ARGV0 + export HELIX_RUNTIME="$APPDIR/usr/lib/helix/runtime" + exec "$APPDIR/ld-linux-x86-64.so.2" \ + --library-path "$APPDIR/usr/lib" "$APPDIR/usr/bin/hx" "$@" EOF chmod 755 "$APP.AppDir/AppRun" - curl -Lo linuxdeploy-x86_64.AppImage \ - https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage - chmod +x linuxdeploy-x86_64.AppImage - - ./linuxdeploy-x86_64.AppImage \ - --appdir "$APP.AppDir" -d contrib/Helix.desktop \ - -i contrib/helix.png --output appimage - - # anylinux appimage - APPIMAGETOOL=$(wget -q https://api.github.com/repos/probonopd/go-appimage/releases -O - \ - | sed 's/[()",{} ]/\n/g' | grep -oi 'https.*continuous.*tool.*86_64.*mage$') - wget -q "$APPIMAGETOOL" -O ./appimagetool - chmod +x ./appimagetool ./*AppImage - ./"$APP-$VERSION-$ARCH.AppImage" --appimage-extract - ./appimagetool -s deploy squashfs-root/usr/share/applications/Helix.desktop - sed -i '13i\export HELIX_RUNTIME="${HERE}"/usr/lib/helix/runtime' squashfs-root/AppRun - ARCH=x86_64 VERSION="$VERSION-anylinux" ./appimagetool -s squashfs-root - mv *anylinux*AppImage dist - mv "$APP"-*-"$ARCH".AppImage \ - "$APP"-*-"$ARCH".AppImage.zsync dist + cp contrib/Helix.desktop "$APP.AppDir" + cp contrib/helix.png "$APP.AppDir" + ln -s helix.png "$APP.AppDir"/.DirIcon + + curl -Lo appimagetool \ + "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage" + chmod +x appimagetool + + ./appimagetool -n -u "$UPDATE_INFORMATION" ./"$APP.AppDir" \ + ./"$APP-$VERSION-$ARCH.AppImage" + + mv "$APP-$VERSION-$ARCH.AppImage" \ + "$APP-$VERSION-$ARCH.AppImage.zsync" dist - name: Build archive shell: bash @@ -296,7 +297,7 @@ jobs: file_glob: true tag: ${{ github.ref_name }} overwrite: true - + - name: Upload binaries as artifact uses: actions/upload-artifact@v4 if: env.preview == 'true'