From 1a1a7493d8942334482610d57909c4049e8da1e6 Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Wed, 2 Apr 2025 01:31:21 -0400 Subject: [PATCH 1/7] sort dependencies alphabetically and call appimage script --- .github/workflows/build.yaml | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 73c1857..771f4d7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -19,7 +19,18 @@ jobs: - name: Install dependencies run: | sudo apt update - sudo apt install -y qt6-base-dev qt6-tools-dev qt6-svg-dev libgl1-mesa-dev libxkbcommon-dev libvulkan-dev qmake6 smartmontools qt6ct patchelf + sudo apt install -y \ + libgl1-mesa-dev \ + libvulkan-dev \ + libxkbcommon-dev \ + patchelf \ + qmake6 \ + qt6-base-dev \ + qt6ct \ + qt6-svg-dev \ + qt6-tools-dev \ + smartmontools \ + wget - name: Build run: | @@ -28,28 +39,9 @@ jobs: - name: Package AppImage run: | - export APPIMAGE_EXTRACT_AND_RUN=1 ARCH=x86_64 VERSION=anylinux - curl -sSfL "https://github.com/probonopd/go-appimage/releases/download/832/appimagetool-823-x86_64.AppImage" -o appimagetool-static.AppImage - chmod a+x *.AppImage - - mkdir -p AppDir/usr/bin/../share/applications - cp build/QDiskInfo AppDir/usr/bin/ - cp dist/QDiskInfo.desktop AppDir/usr/share/applications - cp dist/QDiskInfo-256x256.png AppDir/QDiskInfo.png + chmod +x ./qdiskinfo-appimage.sh + ./qdiskinfo-appimage.sh - ./appimagetool-static.AppImage -s deploy AppDir/usr/share/applications/*.desktop - - # deploy qt6ct - mkdir -p ./AppDir/usr/lib/x86_64-linux-gnu/qt6/plugins/platformthemes/../styles - cp -v /usr/lib/x86_64-linux-gnu/qt6/plugins/platformthemes/libqt6ct.so ./AppDir/usr/lib/x86_64-linux-gnu/qt6/plugins/platformthemes - cp -v /usr/lib/x86_64-linux-gnu/qt6/plugins/styles/libqt6ct-style.so ./AppDir/usr/lib/x86_64-linux-gnu/qt6/plugins/styles - cp -v /usr/lib/x86_64-linux-gnu/libqt6ct* ./AppDir/lib/x86_64-linux-gnu - - # HACK - patchelf --set-rpath '$ORIGIN/../../../../../bin:$ORIGIN/../../../../../lib64:$ORIGIN/../../../../../../lib64:$ORIGIN/../../../..:$ORIGIN/../../../../../../lib:$ORIGIN/../../../libfakeroot:$ORIGIN/../../../../../local/lib:$ORIGIN/../../../../../local/lib/x86_64-linux-gnu:$ORIGIN/../../../../../../lib/x86_64-linux-gnu:$ORIGIN/../../..:$ORIGIN/../../../../../../lib32:$ORIGIN/../../../../../lib32:$ORIGIN/../../../../../../lib/x86_64-linux-gnu/gconv:$ORIGIN/.:$ORIGIN/../iconengines:$ORIGIN/../imageformats:$ORIGIN/../xcbglintegrations' ./AppDir/usr/lib/x86_64-linux-gnu/qt6/plugins/platformthemes/* ./AppDir/usr/lib/x86_64-linux-gnu/qt6/plugins/styles/* ./AppDir/lib/x86_64-linux-gnu/libqt6ct* - - ./appimagetool-static.AppImage AppDir - - name: Upload AppImage uses: actions/upload-artifact@v4 with: From cfe274c2459656196a70bea5e7c72bb4ecf2d483 Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Wed, 2 Apr 2025 05:33:08 +0000 Subject: [PATCH 2/7] add appimage script --- qdiskinfo-appimage.sh | 58 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 qdiskinfo-appimage.sh diff --git a/qdiskinfo-appimage.sh b/qdiskinfo-appimage.sh new file mode 100644 index 0000000..55e6115 --- /dev/null +++ b/qdiskinfo-appimage.sh @@ -0,0 +1,58 @@ +#!/bin/sh + +set -eu + +export ARCH="$(uname -m)" +export APPIMAGE_EXTRACT_AND_RUN=1 + +APP=QDiskInfo +APPIMAGETOOL="https://github.com/pkgforge-dev/appimagetool-uruntime/releases/download/continuous/appimagetool-$ARCH.AppImage" +UPINFO="gh-releases-zsync|$(echo "$GITHUB_REPOSITORY" | tr '/' '|')|latest|*-$ARCH.AppImage.zsync" +LIB4BN="https://raw.githubusercontent.com/VHSgunzo/sharun/refs/heads/main/lib4bin" +VERSION="$(echo "$GITHUB_SHA" | cut -c 1-9)-anylinux" + +# Prepare AppDir +mkdir ./AppDir/shared/bin +cp -v ./dist/QDiskInfo.desktop ./AppDir +cp -v ./dist/QDiskInfo-256x256.png ./AppDir/QDiskInfo.png +cp -v ./dist/QDiskInfo-256x256.png ./AppDir/.DirIcon +cp -v ./build/QDiskInfo ./AppDir/shared/bin +cd ./AppDir + +# ADD LIBRARIES +wget "$LIB4BN" -O ./lib4bin +./lib4bin -p -v -s -k \ + ./shared/bin/QDiskInfo \ + /usr/lib/"$ARCH"-linux-gnu/qt6/plugins/iconengines/* \ + /usr/lib/"$ARCH"-linux-gnu/qt6/plugins/imageformats/* \ + /usr/lib/"$ARCH"-linux-gnu/qt6/plugins/platforms/* \ + /usr/lib/"$ARCH"-linux-gnu/qt6/plugins/platformthemes/* \ + /usr/lib/"$ARCH"-linux-gnu/qt6/plugins/styles/* \ + /usr/lib/"$ARCH"-linux-gnu/qt6/plugins/xcbglintegrations/* \ + /usr/lib/"$ARCH"-linux-gnu/qt6/plugins/wayland-*/* + +# prepare sharun +echo '#!/bin/sh +CURRENTDIR="$(dirname "$(readlink -f "$0")")" +[ -f "$APPIMAGE".stylesheet ] && APPIMAGE_QT_THEME="$APPIMAGE.stylesheet" +[ -f "$APPIMAGE_QT_THEME" ] && set -- "$@" "-stylesheet" "$APPIMAGE_QT_THEME" +exec "$CURRENTDIR"/bin/QDiskInfo "$@"' > ./AppRun +chmod +x +./sharun -g + +# Make AppImage with uruntime +cd .. +wget "$APPIMAGETOOL" -O ./appimagetool +chmod +x ./appimagetool + +./appimagetool --comp zstd \ + --mksquashfs-opt -Xcompression-level \ + --mksquashfs-opt 22 \ + --no-appstream -u "$UPINFO" \ + "$PWD"/AppDir "$PWD"/"$APP"-"$VERSION"-"$ARCH".AppImage + + + + + + From 2d9d8f07e134bfe70720d340cc38b10557f4e4eb Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Wed, 2 Apr 2025 01:36:51 -0400 Subject: [PATCH 3/7] oops --- qdiskinfo-appimage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qdiskinfo-appimage.sh b/qdiskinfo-appimage.sh index 55e6115..deaf60d 100644 --- a/qdiskinfo-appimage.sh +++ b/qdiskinfo-appimage.sh @@ -12,7 +12,7 @@ LIB4BN="https://raw.githubusercontent.com/VHSgunzo/sharun/refs/heads/main/lib4bi VERSION="$(echo "$GITHUB_SHA" | cut -c 1-9)-anylinux" # Prepare AppDir -mkdir ./AppDir/shared/bin +mkdir -p ./AppDir/shared/bin cp -v ./dist/QDiskInfo.desktop ./AppDir cp -v ./dist/QDiskInfo-256x256.png ./AppDir/QDiskInfo.png cp -v ./dist/QDiskInfo-256x256.png ./AppDir/.DirIcon From e39bc1d2d0e46c08aed6a992addeae26c157f60f Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Wed, 2 Apr 2025 01:38:58 -0400 Subject: [PATCH 4/7] oops2 --- qdiskinfo-appimage.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/qdiskinfo-appimage.sh b/qdiskinfo-appimage.sh index deaf60d..0153e66 100644 --- a/qdiskinfo-appimage.sh +++ b/qdiskinfo-appimage.sh @@ -21,6 +21,7 @@ cd ./AppDir # ADD LIBRARIES wget "$LIB4BN" -O ./lib4bin +chmod +x ./lib4bin ./lib4bin -p -v -s -k \ ./shared/bin/QDiskInfo \ /usr/lib/"$ARCH"-linux-gnu/qt6/plugins/iconengines/* \ From b68f20fad405735822890215c180be3cea094d4f Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Wed, 2 Apr 2025 01:41:42 -0400 Subject: [PATCH 5/7] oops3 --- qdiskinfo-appimage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qdiskinfo-appimage.sh b/qdiskinfo-appimage.sh index 0153e66..6dc6586 100644 --- a/qdiskinfo-appimage.sh +++ b/qdiskinfo-appimage.sh @@ -38,7 +38,7 @@ CURRENTDIR="$(dirname "$(readlink -f "$0")")" [ -f "$APPIMAGE".stylesheet ] && APPIMAGE_QT_THEME="$APPIMAGE.stylesheet" [ -f "$APPIMAGE_QT_THEME" ] && set -- "$@" "-stylesheet" "$APPIMAGE_QT_THEME" exec "$CURRENTDIR"/bin/QDiskInfo "$@"' > ./AppRun -chmod +x +chmod +x ./AppRun ./sharun -g # Make AppImage with uruntime From 203e1d046f5c5b02898c4d1286c5356706cc1a96 Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Wed, 2 Apr 2025 01:42:07 -0400 Subject: [PATCH 6/7] remove empty lines --- qdiskinfo-appimage.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/qdiskinfo-appimage.sh b/qdiskinfo-appimage.sh index 6dc6586..6ae7404 100644 --- a/qdiskinfo-appimage.sh +++ b/qdiskinfo-appimage.sh @@ -51,9 +51,3 @@ chmod +x ./appimagetool --mksquashfs-opt 22 \ --no-appstream -u "$UPINFO" \ "$PWD"/AppDir "$PWD"/"$APP"-"$VERSION"-"$ARCH".AppImage - - - - - - From 69d83efa3801b6e7f27b5b816a2aa4445be1d2cb Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Wed, 2 Apr 2025 04:12:53 -0400 Subject: [PATCH 7/7] =?UTF-8?q?bundle=20smartctl=20with=20wrappe=20?= =?UTF-8?q?=F0=9F=91=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- qdiskinfo-appimage.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/qdiskinfo-appimage.sh b/qdiskinfo-appimage.sh index 6ae7404..dce0675 100644 --- a/qdiskinfo-appimage.sh +++ b/qdiskinfo-appimage.sh @@ -32,11 +32,24 @@ chmod +x ./lib4bin /usr/lib/"$ARCH"-linux-gnu/qt6/plugins/xcbglintegrations/* \ /usr/lib/"$ARCH"-linux-gnu/qt6/plugins/wayland-*/* +# also use lib4bin to make a portable smartctl with wrappe +./lib4bin --with-wrappe "$(command -v smartctl)" + # prepare sharun echo '#!/bin/sh CURRENTDIR="$(dirname "$(readlink -f "$0")")" +CACHEDIR="${XDG_CACHE_HOME:-$HOME/.cache}" [ -f "$APPIMAGE".stylesheet ] && APPIMAGE_QT_THEME="$APPIMAGE.stylesheet" [ -f "$APPIMAGE_QT_THEME" ] && set -- "$@" "-stylesheet" "$APPIMAGE_QT_THEME" + +if ! command -v smartctl >/dev/null 2>&1; then + echo "smartctl is not on the system, using bundled binary..." + export PATH="$PATH:"$CACHEDIR"/qdiskinfo-appimage" + mkdir -p "$CACHEDIR"/qdiskinfo-appimage + cp -v "$CURRENTDIR"/smartctl "$CACHEDIR"/qdiskinfo-appimage + chmod +x "$CACHEDIR"/qdiskinfo-appimage/smartctl +fi + exec "$CURRENTDIR"/bin/QDiskInfo "$@"' > ./AppRun chmod +x ./AppRun ./sharun -g