diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index dac480a..bf0980a 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -81,9 +81,12 @@ jobs: run: | sudo apt-get update && sudo apt-get install -y nsis p7zip-full VERSION="$(sed -n 's/.*config\/version="\([^"]*\)".*/\1/p' project.godot)" - makensis /DVERSION="$VERSION" \ - /DARTIFACT="build/step-line-windows-$VERSION.exe" \ - /DICON=packaging/windows/step-line.ico \ + # NOTE: on Linux, makensis uses -D defines (the /D form is Windows-only + # and is rejected as a script path). + makensis \ + -DVERSION="$VERSION" \ + -DARTIFACT="build/step-line-windows-$VERSION.exe" \ + -DICON=packaging/windows/step-line.ico \ packaging/windows/step-line.nsi - name: Verify Windows installer contents diff --git a/packaging/linux/build_appimage.sh b/packaging/linux/build_appimage.sh index c079941..5d2f33a 100644 --- a/packaging/linux/build_appimage.sh +++ b/packaging/linux/build_appimage.sh @@ -27,8 +27,11 @@ cp "$HERE/step-line.desktop" "$APPDIR/step-line.desktop" cp "$HERE/AppRun" "$APPDIR/AppRun" chmod +x "$APPDIR/AppRun" cp "$HERE/step-line.png" "$APPDIR/step-line.png" -mkdir -p "$APPDIR/usr/share/metainfo" -cp "$HERE/step-line.appdata.xml" "$APPDIR/usr/share/metainfo/step-line.appdata.xml" +# Desktop entry + metainfo in standard locations (AppStream validation requires +# the metainfo filename to match the component id, and the .desktop discoverable). +mkdir -p "$APPDIR/usr/share/applications" "$APPDIR/usr/share/metainfo" +cp "$HERE/step-line.desktop" "$APPDIR/usr/share/applications/step-line.desktop" +cp "$HERE/step-line.appdata.xml" "$APPDIR/usr/share/metainfo/net.stepline.game.appdata.xml" TOOL="${APPIMAGE_TOOL:-/tmp/appimagetool-x86_64.AppImage}" if [[ ! -f "$TOOL" ]]; then diff --git a/packaging/linux/step-line.appdata.xml b/packaging/linux/step-line.appdata.xml index d8d00d4..fae1183 100644 --- a/packaging/linux/step-line.appdata.xml +++ b/packaging/linux/step-line.appdata.xml @@ -1,8 +1,10 @@ - net.step-line.StepLine + net.stepline.game Step Line Workplace security simulation on Hollywood Boulevard + https://git.allucanget.biz/zwitschi/security-game + Step Line Team

Step Line is a workplace security simulation about observation, communication, diff --git a/squashfs-root/.DirIcon b/squashfs-root/.DirIcon new file mode 120000 index 0000000..0e7fb9f --- /dev/null +++ b/squashfs-root/.DirIcon @@ -0,0 +1 @@ +appimagetool.png \ No newline at end of file diff --git a/squashfs-root/AppRun b/squashfs-root/AppRun new file mode 100755 index 0000000..4bc2d84 --- /dev/null +++ b/squashfs-root/AppRun @@ -0,0 +1,10 @@ +#! /bin/sh + +set -e + +this_dir="$(dirname -- "$(readlink -f -- "$0")")" + +# make appimagetool prefer the bundled mksquashfs +export PATH="$this_dir"/usr/bin:"$PATH" + +exec "$this_dir"/usr/bin/appimagetool "$@" diff --git a/squashfs-root/appimagetool.desktop b/squashfs-root/appimagetool.desktop new file mode 120000 index 0000000..3a632fb --- /dev/null +++ b/squashfs-root/appimagetool.desktop @@ -0,0 +1 @@ +usr/share/applications/appimagetool.desktop \ No newline at end of file diff --git a/squashfs-root/appimagetool.png b/squashfs-root/appimagetool.png new file mode 120000 index 0000000..6fad5e6 --- /dev/null +++ b/squashfs-root/appimagetool.png @@ -0,0 +1 @@ +usr/share/icons/hicolor/128x128/apps/appimagetool.png \ No newline at end of file diff --git a/squashfs-root/usr/bin/appimagetool b/squashfs-root/usr/bin/appimagetool new file mode 100755 index 0000000..2b81f74 Binary files /dev/null and b/squashfs-root/usr/bin/appimagetool differ diff --git a/squashfs-root/usr/bin/desktop-file-validate b/squashfs-root/usr/bin/desktop-file-validate new file mode 100755 index 0000000..3d8b3f5 Binary files /dev/null and b/squashfs-root/usr/bin/desktop-file-validate differ diff --git a/squashfs-root/usr/bin/mksquashfs b/squashfs-root/usr/bin/mksquashfs new file mode 100755 index 0000000..299f3ab Binary files /dev/null and b/squashfs-root/usr/bin/mksquashfs differ diff --git a/squashfs-root/usr/bin/zsyncmake b/squashfs-root/usr/bin/zsyncmake new file mode 100755 index 0000000..5dae565 Binary files /dev/null and b/squashfs-root/usr/bin/zsyncmake differ diff --git a/squashfs-root/usr/share/applications/appimagetool.desktop b/squashfs-root/usr/share/applications/appimagetool.desktop new file mode 100644 index 0000000..86eabaf --- /dev/null +++ b/squashfs-root/usr/share/applications/appimagetool.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Name=appimagetool +Exec=appimagetool +Comment=Tool to generate AppImages from AppDirs +Icon=appimagetool +Categories=Development; +Terminal=true + diff --git a/squashfs-root/usr/share/icons/hicolor/128x128/apps/appimagetool.png b/squashfs-root/usr/share/icons/hicolor/128x128/apps/appimagetool.png new file mode 100644 index 0000000..a304efd Binary files /dev/null and b/squashfs-root/usr/share/icons/hicolor/128x128/apps/appimagetool.png differ diff --git a/squashfs-root/usr/share/metainfo/appimagetool.appdata.xml b/squashfs-root/usr/share/metainfo/appimagetool.appdata.xml new file mode 100644 index 0000000..0f7da9c --- /dev/null +++ b/squashfs-root/usr/share/metainfo/appimagetool.appdata.xml @@ -0,0 +1,31 @@ + + + appimagetool.desktop + MIT + MIT + appimagetool +

Create AppImage files + +

+ appimagetool is a tool that lets you generate AppImage files. An AppImage + is a self-running bundle that contains an application and everything + it needs to run that cannot reasonably expected to be part of each target system. +

+

+ This can include libraries that are not commonly available on target systems, + resources such as translations, icons, fonts, and other auxiliary files. + appimagetool makes it easy to take an AppDir (e.g., generated by linuxdeployqt) + and turn it into an AppImage. +

+

+ You can also embed update information so that your users can update the AppImage + using binary delta updates with the AppImageUpdate tool. + You can also sign the AppImage with GPG. +

+
+ https://github.com/AppImage/AppImageKit + AppImage + + appimagetool + +