From 4dc87e5f5bb80a0cb8f00fa7ede034cffe7b136c Mon Sep 17 00:00:00 2001 From: Christian Basler Date: Thu, 24 Jul 2025 22:04:23 +0200 Subject: [PATCH] Add Flatpak image build --- .gitignore | 8 +- flatpak/build.sh | 16 +++ flatpak/ch.dissem.YAEP.yml | 35 +++++ flatpak/info/ch.dissem.YAEP.desktop | 8 ++ flatpak/info/ch.dissem.YAEP.metainfo.xml | 61 +++++++++ flatpak/info/ch.dissem.YAEP.svg | 157 +++++++++++++++++++++++ flatpak/prerequisites.sh | 4 + settings.gradle.kts | 3 +- 8 files changed, 290 insertions(+), 2 deletions(-) create mode 100755 flatpak/build.sh create mode 100644 flatpak/ch.dissem.YAEP.yml create mode 100644 flatpak/info/ch.dissem.YAEP.desktop create mode 100644 flatpak/info/ch.dissem.YAEP.metainfo.xml create mode 100644 flatpak/info/ch.dissem.YAEP.svg create mode 100755 flatpak/prerequisites.sh diff --git a/.gitignore b/.gitignore index 63c3ef0..f7953ed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ *.iml .gradle -**/build/ +build xcuserdata !src/**/build/ local.properties @@ -16,3 +16,9 @@ captures !*.xcworkspace/contents.xcworkspacedata **/xcshareddata/WorkspaceSettings.xcsettings .kotlin + +# Flatpak Build +.flatpak-builder +flatpak/_build +flatpak/_repo +flatpak/*.flatpak diff --git a/flatpak/build.sh b/flatpak/build.sh new file mode 100755 index 0000000..e333980 --- /dev/null +++ b/flatpak/build.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +cd "$(dirname "$(readlink -f "$0")")/.." || error "Failed to switch to correct directory" + +./gradlew packageReleaseUberJarForCurrentOS + +flatpak-builder --ccache --force-clean --repo=flatpak/_repo ./flatpak/_build ./flatpak/ch.dissem.YAEP.yml + +if [ "$1" = "bundle" ] || [ "$1" = "install" ]; then + echo "Build is done, creating bundle now. This may take a while..." + flatpak build-bundle flatpak/_repo "flatpak/YAEP-$(arch)-1.0.0.flatpak" ch.dissem.YAEP +fi + +if [ "$1" = "install" ]; then + flatpak install "flatpak/YAEP-$(arch)-1.0.0.flatpak" +fi diff --git a/flatpak/ch.dissem.YAEP.yml b/flatpak/ch.dissem.YAEP.yml new file mode 100644 index 0000000..1ae57d6 --- /dev/null +++ b/flatpak/ch.dissem.YAEP.yml @@ -0,0 +1,35 @@ +id: ch.dissem.YAEP +runtime: org.freedesktop.Platform +runtime-version: '25.08' +sdk: org.freedesktop.Sdk +sdk-extensions: + - org.freedesktop.Sdk.Extension.openjdk21 +command: yaep +finish-args: + - --socket=x11 + - --device=dri # Required for better X11 performance + - --share=ipc # Required for better X11 performance + - --env=PATH=/app/bin:/app/jre/bin:/usr/bin + - --env=JAVA_HOME=/app/jre +modules: + - name: openjdk + buildsystem: simple + build-commands: + - /usr/lib/sdk/openjdk21/install.sh + - name: yaep + buildsystem: simple + sources: + - type: dir + path: ../desktop/build/compose/jars/ + - type: dir + path: ../flatpak/info/ + - type: script + dest-filename: yaep + commands: + - java -jar /app/data/yaep.jar + build-commands: + - install -Dm755 yaep /app/bin/yaep + - install -Dm644 YAEP-*-release.jar /app/data/yaep.jar + - install -Dm644 ch.dissem.YAEP.desktop /app/share/applications/ch.dissem.YAEP.desktop + - install -Dm644 ch.dissem.YAEP.svg /app/share/icons/hicolor/scalable/apps/ch.dissem.YAEP.svg + - install -Dm644 ch.dissem.YAEP.metainfo.xml /app/share/metainfo/ch.dissem.YAEP.metainfo.xml diff --git a/flatpak/info/ch.dissem.YAEP.desktop b/flatpak/info/ch.dissem.YAEP.desktop new file mode 100644 index 0000000..144e860 --- /dev/null +++ b/flatpak/info/ch.dissem.YAEP.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=YAEP +Comment=Yet Another Einstein Puzzle +Exec=/app/bin/yaep +Icon=ch.dissem.YAEP +Terminal=false +Type=Application +Categories=Game;LogicGame; \ No newline at end of file diff --git a/flatpak/info/ch.dissem.YAEP.metainfo.xml b/flatpak/info/ch.dissem.YAEP.metainfo.xml new file mode 100644 index 0000000..2b46d75 --- /dev/null +++ b/flatpak/info/ch.dissem.YAEP.metainfo.xml @@ -0,0 +1,61 @@ + + + ch.dissem.YAEP + + YAEP + Yet Another Einstein Puzzle + CC0-1.0 + TODO + Christian Basler + + +

+ TODO. +

+
+ + ch.dissem.YAEP.desktop + + + pointing + 768 + + + + Game + Puzzle + Einstein + Zebra + + + + + #b8bee3 + #282245 + + + + + TODO + + https://raw.githubusercontent.com/RedddFoxxyy/Pomolin/v1.1.9/gitAssets/app_screenshots/screenshot1.png + + + + + + + https://dissem.ch/YAEP/ + https://git.dissem.ch/chris/YAEP/issues + https://git.dissem.ch/chris/YAEP + + + + +
    +
  • Initial release
  • +
+
+
+
+
\ No newline at end of file diff --git a/flatpak/info/ch.dissem.YAEP.svg b/flatpak/info/ch.dissem.YAEP.svg new file mode 100644 index 0000000..f98f17b --- /dev/null +++ b/flatpak/info/ch.dissem.YAEP.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/flatpak/prerequisites.sh b/flatpak/prerequisites.sh new file mode 100755 index 0000000..519c064 --- /dev/null +++ b/flatpak/prerequisites.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +flatpak install flathub org.freedesktop.Sdk +flatpak install flathub org.freedesktop.Sdk.Extension.openjdk21 diff --git a/settings.gradle.kts b/settings.gradle.kts index 4a70e16..160fbfd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,6 +1,7 @@ +@file:Suppress("UnstableApiUsage") +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") rootProject.name = "YAEP" -enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") pluginManagement { repositories {