Add Flatpak image build

This commit is contained in:
Christian Basler
2025-07-24 22:04:23 +02:00
parent 1527ab0cb0
commit 4dc87e5f5b
8 changed files with 290 additions and 2 deletions

8
.gitignore vendored
View File

@@ -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

16
flatpak/build.sh Executable file
View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>ch.dissem.YAEP</id>
<name>YAEP</name>
<summary>Yet Another Einstein Puzzle</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>TODO</project_license>
<developer_name>Christian Basler</developer_name>
<description>
<p>
TODO.
</p>
</description>
<launchable type="desktop-id">ch.dissem.YAEP.desktop</launchable>
<requires>
<control>pointing</control>
<display_length compare="ge">768</display_length>
</requires>
<keywords>
<keyword>Game</keyword>
<keyword>Puzzle</keyword>
<keyword>Einstein</keyword>
<keyword>Zebra</keyword>
</keywords>
<branding>
<!-- TODO -->
<color scheme_preference="light" type="primary">#b8bee3</color>
<color scheme_preference="dark" type="primary">#282245</color>
</branding>
<screenshots>
<screenshot type="default">
<caption>TODO</caption>
<image>
https://raw.githubusercontent.com/RedddFoxxyy/Pomolin/v1.1.9/gitAssets/app_screenshots/screenshot1.png
</image>
</screenshot>
</screenshots>
<content_rating type="oars-1.1"/>
<url type="homepage">https://dissem.ch/YAEP/</url>
<url type="bugtracker">https://git.dissem.ch/chris/YAEP/issues</url>
<url type="vcs-browser">https://git.dissem.ch/chris/YAEP</url>
<releases>
<release date="2025-11-29" version="1.0.0">
<description>
<ul>
<li>Initial release</li>
</ul>
</description>
</release>
</releases>
</component>

View File

@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
id="Layer_2"
x="0px"
y="0px"
viewBox="0 0 32 32"
xml:space="preserve"
sodipodi:docname="ic_launcher.svg"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
width="32"
height="32"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs16"><filter
style="color-interpolation-filters:sRGB"
inkscape:label="Drop Shadow"
id="filter31"
x="-0.032370995"
y="-0.033195397"
width="1.0773869"
height="1.0793577"><feFlood
result="flood"
in="SourceGraphic"
flood-opacity="0.498039"
flood-color="rgb(0,0,0)"
id="feFlood30" /><feGaussianBlur
result="blur"
in="SourceGraphic"
stdDeviation="1.600000"
id="feGaussianBlur30" /><feOffset
result="offset"
in="blur"
dx="1.500000"
dy="1.500000"
id="feOffset30" /><feComposite
result="comp1"
operator="in"
in="flood"
in2="offset"
id="feComposite30" /><feComposite
result="comp2"
operator="over"
in="SourceGraphic"
in2="comp1"
id="feComposite31" /></filter></defs><sodipodi:namedview
id="namedview16"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="5.0602329"
inkscape:cx="18.47741"
inkscape:cy="88.632284"
inkscape:window-width="2514"
inkscape:window-height="1376"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_2" />
<g
id="g1"
transform="scale(0.25)"><rect
style="fill:#64bb8b;fill-opacity:1;stroke:none;stroke-width:1.06961;stroke-linecap:round;stroke-linejoin:round"
id="rect16"
width="128"
height="128"
x="0"
y="0"
ry="34.385769" /><g
id="g16"
transform="matrix(0.86689217,0,0,0.86689217,8.5348442,8.6056136)"
style="filter:url(#filter31)"><path
style="fill:#464c4f"
d="m 48.37,30.91 c 0,0 -11.64,-10.14 -12.76,-11.26 -1.13,-1.13 -3.94,-3.19 -3.38,-4.69 0.56,-1.5 9.970869,-5.1593697 16.52,-6.57 61.24673,-13.1920546 87.03498,66.992265 69.07,103.23 z"
id="path1"
sodipodi:nodetypes="cssscc" /><path
style="fill:#dfdfe0"
d="m 122.80319,94.287388 c -0.55952,4.737883 -1.7556,9.476742 -3.58825,14.216582 L 58.78,28.65 45.9,9.09 C 50.172499,7.9539441 54.430312,7.2672185 58.673441,7.0298231 L 65.33,33.23 73.824086,8.2778223 c 3.944588,0.9298418 7.612394,2.2400637 11.003419,3.9306647 L 71.88,39.22 75.96,40.7 93.154829,17.321488 c 2.030666,1.525255 3.874009,3.08539 5.530028,4.680406 L 81.59,44.64 l 5.63,4.15 17.60648,-20.033392 c 2.18905,2.770551 4.17347,5.673589 5.95327,8.709114 L 93.63,53.44 97.01,59 115.57372,46.917431 c 0.85589,1.980725 1.62329,3.929695 2.3022,5.84691 L 99.33,63.71 l 4.65,5.21 16.1781,-8.818231 c 0.56937,2.125057 1.06545,4.261013 1.48824,6.407868 L 104.19,75.33 l 2.96,6.69 15.8982,-5.810371 c 0.19299,2.146165 0.3103,4.149076 0.35195,6.008735 L 109.75,87.23 l 3.24,8.09 z"
id="path2"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccc" /><path
style="fill:#2f2f2f"
d="m 56.53,27.11 c -9.515632,0.68283 -16.735265,5.918392 -36.32,31.67 3.278036,11.308288 6.065802,22.034403 13.09,31.4 14.754823,1.844912 25.776979,-4.514463 29.98,-7.46 -1.570069,13.010422 -3.421949,25.24918 -4.98,38.29 -0.377505,3.1597 58.73991,1.00009 60.58,-0.84 4.00672,-4.00672 -2.52698,-67.624889 -40.1,-85.32 C 79.488656,14.965582 70.214593,7.4654598 69.62,7.4 69.522198,7.3894675 60.081987,9.8944679 56.53,27.11 Z"
id="path3"
sodipodi:nodetypes="ccccssccc" /><path
style="fill:#ffffff"
d="M 22.53,58.86 33.02,45.77 c 1.819925,2.610936 -1.210179,6.546081 -7.11,13.86 z"
id="path4"
sodipodi:nodetypes="cccc" /><path
style="fill:#ffffff"
d="m 28.47,78.02 c 16.344125,-15.16343 24.960791,-8.079215 23.51,6.76 -2.066549,1.049292 -3.371337,1.310501 -5.45,1.67 1.593813,-13.420769 -5.839561,-12.487267 -16.75,-5.89 z"
id="path5"
sodipodi:nodetypes="ccccc" /><path
style="fill:#ffffff"
d="m 32.69,85.39 c 2.974025,-3.546509 7.702141,-3.296661 8.03,1.97 -3.066857,0.198745 -4.479365,0.154746 -8.68,0 z"
id="path6"
sodipodi:nodetypes="cccc" /><path
style="fill:#ffffff"
d="m 29.97,69.81 c 0,0 8.49,-10.46 21.02,-6.01 12.53,4.45 7.27,17.55 7.27,17.55 l 3.43,-1.6 c 3.134982,-14.516465 -6.072104,-15.228473 -4.5,-23.22 0.988119,-3.902791 1.347111,-10.123287 5.957155,-11.45065 3.973341,0.142932 0.08547,6.596839 0.712845,12.11065 0.984765,8.654834 7.526674,7.780843 3.8,29.32 C 80.153957,80.177213 91.077391,71.622086 101.44,62.29 100.92352,61.019029 99.873769,59.293652 98.95,58.26 79.930936,72.11648 72.049452,76.501362 71.59,75.96 70.906762,75.154956 79.113363,52.72085 83.6,41.7 c -1.739551,-1.553843 -2.447211,-1.879108 -5.58,-3.05 -1.49791,2.87385 -3.62374,12.446811 -8.11,11.55 -1.88,-1.36 -1.83,-7.65 1.41,-11.97 1.73,-2.31 3.8,-3.05 4.08,-9.43 0.406083,-9.252901 -4.874232,-17.135626 -5.92,-17.08 -6.439844,4.086989 -8.193181,11.175358 -9.15,18.21 l -2.02,0.75 c 0,0 -0.96,10.46 -3.26,12.2 -2.3,1.74 -6.05,1.2 -6.45,-1.78 -0.52,-3.91 -0.33,-7.93 -0.33,-7.93 -3.254156,1.181974 -4.495149,3.708555 -5.2,6.94 -0.617081,6.754115 -10.168497,11.485223 -11.988628,22.794533 z"
id="path7"
sodipodi:nodetypes="csccssscccsccccssccsccssc" /><path
style="fill:#ffffff"
d="m 89.76,47.43 c 0,0 -5.33,11.83 -5.16,12.44 0.17,0.61 10.23,-7.46 10.23,-7.46 -3.009379,-3.73527 -4.307475,-4.571497 -5.07,-4.98 z"
id="path8"
sodipodi:nodetypes="cscc" /><path
style="fill:#0b0b0b"
d="m 54.23,53.58 c 0,2.8 -1.08,5.58 -4.22,5.3 -2.34,-0.21 -4.27,-2.5 -4.27,-5.3 0,-2.8 1.9,-5.07 4.25,-5.07 2.35,0 4.24,2.27 4.24,5.07 z"
id="path9" /><path
style="fill:#ffffff"
d="m 63.71,101.51 -0.84,7.67 c 28.972358,-11.093985 43.69859,-32.108673 44.98,-34 -0.57539,-2.121581 -1.50834,-4.063048 -2.82,-6.13 -20.847573,22.144094 -22.952642,23.971573 -41.32,32.46 z"
id="path10"
sodipodi:nodetypes="ccccc" /><path
style="fill:#ffffff"
d="m 66.88,118.9 c 4.883311,-4.88331 10.685214,3.17631 44.13,-36.04 0.47481,2.342723 1.09693,3.835453 1.47,5.78 -8.40359,12.68318 -15.724822,22.84732 -30.84,30.62 -4.826151,0.25674 -9.638547,0.0546 -14.76,-0.36 z"
id="path11"
sodipodi:nodetypes="ccccc" /><path
style="fill:#ffffff"
d="m 114.46,99.82 c -5.1642,9.14719 -5.75663,10.86854 -11.12,18.16 4.86811,-0.11174 9.09144,-0.43841 12.67,-0.98 0.34304,-5.51174 -0.17363,-11.23841 -1.55,-17.18 z"
id="path12"
sodipodi:nodetypes="cccc" /><path
style="fill:#454c50"
d="m 68.64,18.45 c -2.435036,-0.263247 -8.50729,16.82 -1.34,16.82 6.08653,0 3.386055,-16.594451 1.34,-16.82 z"
id="path13"
sodipodi:nodetypes="csc" /><path
style="fill:#464c4f"
d="m 29.88,60 c -2.89,-2.64 -7.41,-3.57 -9.67,-1.22 -2.25,2.35 -3.57,5.35 -5.44,7.32 -7.0250353,6.534018 -13.116568,15.916769 -8.17,25.53 3,4.97 9.1,8.26 16.61,5.63 C 30.72,94.63 33.72,90.78 34,87.97 35.035769,77.575321 27.08491,78.160548 28.56,74.64 29.31,72.85 35.32,64.98 29.88,60 Z"
id="path14"
sodipodi:nodetypes="cccssssc" /><path
style="fill:#303030"
d="m 11.11,79.71 c -0.1,1.56 1.92,1.27 2.63,2.72 0.7,1.45 -0.94,4.27 0.89,4.6 1.83,0.33 4.18,-3.28 3.05,-6.71 -1.13,-3.42 -6.43,-2.86 -6.57,-0.61 z"
id="path15" /><path
style="fill:#303030"
d="m 14.23,97.64 c 0,0 5,-2.44 7.25,-4.55 2.19,-2.06 4.32,-4.55 4.83,-5.35 0.52,-0.8 1.6,-2.25 2.53,-1.6 0.94,0.66 0.52,1.83 -0.09,2.72 -0.61,0.89 -2.16,3.1 -4.6,5.35 -2.11,1.95 -3.14,2.44 -4.69,3.28 -1.13,0.61 -2.21,0.7 -2.21,0.7 0,0 -0.88,0.01 -1.79,-0.14 C 15.11,98 14.23,97.64 14.23,97.64 Z"
id="path16" /></g></g>
</svg>

After

Width:  |  Height:  |  Size: 8.1 KiB

4
flatpak/prerequisites.sh Executable file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/env bash
flatpak install flathub org.freedesktop.Sdk
flatpak install flathub org.freedesktop.Sdk.Extension.openjdk21

View File

@@ -1,6 +1,7 @@
@file:Suppress("UnstableApiUsage")
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
rootProject.name = "YAEP"
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
pluginManagement {
repositories {