From f89c9074349b9f02e30f5e5521052607e79b2bed Mon Sep 17 00:00:00 2001 From: DrSheppard <60893791+Drsheppard01@users.noreply.github.com> Date: Thu, 16 Jan 2025 04:47:15 +0300 Subject: [PATCH 1/4] tryiing to make comprehensive builder/boilerplate --- template.sh.in | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 template.sh.in diff --git a/template.sh.in b/template.sh.in new file mode 100644 index 0000000..46a98e5 --- /dev/null +++ b/template.sh.in @@ -0,0 +1,84 @@ +#!/bin/sh + +## arguments for script and run + +set -eu +export ARCH="$(uname -m)" +export APPIMAGE_EXTRACT_AND_RUN=1 + +## tools that will be used next +APPIMAGETOOL="https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$ARCH.AppImage" +LIB4BN="https://raw.githubusercontent.com/VHSgunzo/sharun/refs/heads/main/lib4bin" +URUNTIME="$(wget -q https://api.github.com/repos/VHSgunzo/uruntime/releases -O - \ + | sed 's/[()",{} ]/\n/g' | grep -oi "https.*appimage.*dwarfs.*$ARCH$" | head -1)" + + +## useful meta for appimagetool +## APP_NAME= +## DESKTOP= +## ICON= +UPINFO="gh-releases-zsync|$(echo "$REPO" | tr '/' '|')|latest|*$ARCH.AppImage.zsync" + + +make_appdir() { + mkdir -p .AppDir \ + .AppDir/share/icon \ + .AppDir/lib \ + .AppDir/bin \ +} + +build() { + CURRENTDIR="$(readlink -f "$(dirname "$0")")" + git clone $REPO + +} + +bundle_libs() { + mv ./usr/bin ./ + wget "$LIB4BN" -O ./lib4bin + chmod +x ./lib4bin + ./lib4bin -p -v -r -s ./bin/* + rm -f ./lib4bin +} + +add_sound_libs() { + cp -rv /usr/lib/alsa-lib ./usr/lib + cp -rv /usr/lib/pipewire-0.3 ./usr/lib + cp -rv /usr/lib/spa-0.2 ./usr/lib +} + +add graphics_libs() { + cp -vr /usr/lib/libGLX* ./shared/lib || true + cp -vr /usr/lib/libEGL* ./shared/lib || true + cp -vr /usr/lib/dri ./shared/lib + cp -vn /usr/lib/libvulkan* ./shared/lib + ldd ./shared/lib/dri/* \ + ./shared/lib/libvulkan* \ + ./shared/lib/libEGL* \ + ./shared/lib/libGLX* 2>/dev/null \ + | awk -F"[> ]" '{print $4}' | xargs -I {} cp -nv {} ./shared/lib || true + mkdir -p ./share/vulkan + cp -vr /usr/share/glvnd ./share + cp -vr /usr/share/vulkan/icd.d ./share/vulkan + sed -i 's|/usr/lib||g;s|/.*-linux-gnu||g;s|"/|"|g' ./share/vulkan/icd.d/* +} + +sharun() { + ln -s ./bin/obs ./AppRun + ./sharun -g +} + +generate_app() { + printf "$UPINFO" > data.upd_info + llvm-objcopy --update-section=.upd_info=data.upd_info \ + --set-section-flags=.upd_info=noload,readonly ./uruntime + printf 'AI\x02' | dd of=./uruntime bs=1 count=3 seek=8 conv=notrunc + wget -q "$URUNTIME" -O ./uruntime + chmod +x ./uruntime + ./uruntime --appimage-mkdwarfs -f \ + --set-owner 0 --set-group 0 \ + --no-history --no-create-timestamp \ + --compression zstd:level=22 -S24 -B16 \ + --header uruntime \ + -i ./AppDir -o "$PACKAGE"-"$VERSION"-anylinux-"$ARCH".AppImage +} \ No newline at end of file From 7848f45964ab6861d1d72a847f8bfa1886f6d639 Mon Sep 17 00:00:00 2001 From: DrSheppard <60893791+Drsheppard01@users.noreply.github.com> Date: Thu, 16 Jan 2025 05:05:50 +0300 Subject: [PATCH 2/4] add metainfo folder, bugfixes --- template.sh.in | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/template.sh.in b/template.sh.in index 46a98e5..cd296e6 100644 --- a/template.sh.in +++ b/template.sh.in @@ -21,16 +21,16 @@ UPINFO="gh-releases-zsync|$(echo "$REPO" | tr '/' '|')|latest|*$ARCH.AppImage.zs make_appdir() { - mkdir -p .AppDir \ - .AppDir/share/icon \ - .AppDir/lib \ - .AppDir/bin \ + mkdir -p .AppDir + mkdir -p .AppDir/share/icon + mkdir -p .AppDir/share/metainfo + mkdir -p .AppDir/lib + mkdir -p .AppDir/bin } build() { CURRENTDIR="$(readlink -f "$(dirname "$0")")" git clone $REPO - } bundle_libs() { @@ -47,7 +47,7 @@ add_sound_libs() { cp -rv /usr/lib/spa-0.2 ./usr/lib } -add graphics_libs() { +add_graphics_libs() { cp -vr /usr/lib/libGLX* ./shared/lib || true cp -vr /usr/lib/libEGL* ./shared/lib || true cp -vr /usr/lib/dri ./shared/lib @@ -81,4 +81,4 @@ generate_app() { --compression zstd:level=22 -S24 -B16 \ --header uruntime \ -i ./AppDir -o "$PACKAGE"-"$VERSION"-anylinux-"$ARCH".AppImage -} \ No newline at end of file +} From de7f26bfa0e01f0db21b039e187b2564099ff179 Mon Sep 17 00:00:00 2001 From: DrSheppard <60893791+Drsheppard01@users.noreply.github.com> Date: Thu, 16 Jan 2025 05:59:55 +0300 Subject: [PATCH 3/4] add template of a --- app.metainfo.xml | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 app.metainfo.xml diff --git a/app.metainfo.xml b/app.metainfo.xml new file mode 100644 index 0000000..19f5e74 --- /dev/null +++ b/app.metainfo.xml @@ -0,0 +1,47 @@ + + + + CC0-1.0 + + + + + +

Steam is a software distribution service with an online store, automated installation, automatic updates, achievements, SteamCloud synchronized savegame and screenshot functionality, and many social features.

+
+ + + + + + + + + + + + + + + + LicenseRef-proprietary=https://example.com/mylicense.html + + + + + + + + + + + + + + + pkgname-pkgversion + + + intense + +
\ No newline at end of file From 08587d208d41d34f8e549a587971c4d719e175e4 Mon Sep 17 00:00:00 2001 From: DrSheppard <60893791+Drsheppard01@users.noreply.github.com> Date: Fri, 17 Jan 2025 00:57:09 +0300 Subject: [PATCH 4/4] resolve issues --- template.sh.in | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/template.sh.in b/template.sh.in index cd296e6..1425ed9 100644 --- a/template.sh.in +++ b/template.sh.in @@ -33,38 +33,8 @@ build() { git clone $REPO } -bundle_libs() { - mv ./usr/bin ./ - wget "$LIB4BN" -O ./lib4bin - chmod +x ./lib4bin - ./lib4bin -p -v -r -s ./bin/* - rm -f ./lib4bin -} - -add_sound_libs() { - cp -rv /usr/lib/alsa-lib ./usr/lib - cp -rv /usr/lib/pipewire-0.3 ./usr/lib - cp -rv /usr/lib/spa-0.2 ./usr/lib -} - -add_graphics_libs() { - cp -vr /usr/lib/libGLX* ./shared/lib || true - cp -vr /usr/lib/libEGL* ./shared/lib || true - cp -vr /usr/lib/dri ./shared/lib - cp -vn /usr/lib/libvulkan* ./shared/lib - ldd ./shared/lib/dri/* \ - ./shared/lib/libvulkan* \ - ./shared/lib/libEGL* \ - ./shared/lib/libGLX* 2>/dev/null \ - | awk -F"[> ]" '{print $4}' | xargs -I {} cp -nv {} ./shared/lib || true - mkdir -p ./share/vulkan - cp -vr /usr/share/glvnd ./share - cp -vr /usr/share/vulkan/icd.d ./share/vulkan - sed -i 's|/usr/lib||g;s|/.*-linux-gnu||g;s|"/|"|g' ./share/vulkan/icd.d/* -} - sharun() { - ln -s ./bin/obs ./AppRun + ln -s ./bin/$APP ./AppRun ./sharun -g }