WIP: Build Doodle inside Flatpak SDK
This commit is contained in:
parent
e6ac0bb5bc
commit
a0a7147624
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
.flatpak-builder/
|
.flatpak-builder/
|
||||||
build/
|
build/
|
||||||
|
source/
|
||||||
|
|
28
README.md
28
README.md
|
@ -2,9 +2,31 @@
|
||||||
|
|
||||||
This repo contains Flatpak manifests to distribute Sketchy Maze to Linux users.
|
This repo contains Flatpak manifests to distribute Sketchy Maze to Linux users.
|
||||||
|
|
||||||
It's a work in progress and currently tries to bundle the binary distribution
|
It's a work in progress. It builds the game in the Flatpak SDK but doesn't yet
|
||||||
from tarball; but the binary uses glibc-2.32 which is not yet available in
|
handle copying the runtime environment (SFX) and things in.
|
||||||
the freedesktop runtime.
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
The Doodle source directory should be at a folder named "source" relative
|
||||||
|
to this flatpak repo. A symlink can work. For best results, the Doodle source
|
||||||
|
folder should be "fully initialized" and ready to simply `go build` the app
|
||||||
|
and be done; this means `make doodads` has already been run, and `make bindata`
|
||||||
|
to embed them in the Go sources. Generally, if you had run a `make dist` in
|
||||||
|
Doodle recently you're good to go.
|
||||||
|
|
||||||
|
The `source/go.mod` file should have "replace" directives pointing to the
|
||||||
|
appropriate path as seen in the Flatpak build environment, like:
|
||||||
|
|
||||||
|
```
|
||||||
|
replace git.kirsle.net/go/render => /run/build/doodle/deps/render
|
||||||
|
replace git.kirsle.net/go/ui => /run/build/doodle/deps/ui
|
||||||
|
replace git.kirsle.net/go/audio => /run/build/doodle/deps/audio
|
||||||
|
```
|
||||||
|
|
||||||
|
It may be possible to skip the `replace` directives entirely and have `go get`
|
||||||
|
download the dependencies the usual way, but the `proxy.golang.org` server
|
||||||
|
sometimes caches stale versions of these if they were just recently changed and,
|
||||||
|
in case they had bugs, will prevent the app from building.
|
||||||
|
|
||||||
## Makefile
|
## Makefile
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,9 @@
|
||||||
"runtime": "org.freedesktop.Platform",
|
"runtime": "org.freedesktop.Platform",
|
||||||
"runtime-version": "20.08",
|
"runtime-version": "20.08",
|
||||||
"sdk": "org.freedesktop.Sdk",
|
"sdk": "org.freedesktop.Sdk",
|
||||||
|
"sdk-extensions": [
|
||||||
|
"org.freedesktop.Sdk.Extension.golang"
|
||||||
|
],
|
||||||
"finish-args": [
|
"finish-args": [
|
||||||
"--device=all",
|
"--device=all",
|
||||||
"--persist=.doodle",
|
"--persist=.doodle",
|
||||||
|
@ -24,24 +27,29 @@
|
||||||
{
|
{
|
||||||
"name": "doodle",
|
"name": "doodle",
|
||||||
"buildsystem": "simple",
|
"buildsystem": "simple",
|
||||||
"build-options": {},
|
"build-options": {
|
||||||
|
"build-args": [
|
||||||
|
"--share=network"
|
||||||
|
]
|
||||||
|
},
|
||||||
"build-commands": [
|
"build-commands": [
|
||||||
"find",
|
"find",
|
||||||
"install -Dm755 ./doodle /app/bin/doodle",
|
"pwd",
|
||||||
"install -Dm755 ./doodad /app/bin/doodad",
|
". /usr/lib/sdk/golang/enable.sh; env GOPATH=\"$(pwd)\"; make build",
|
||||||
"mkdir -p /app/share/doodle /app/share/icons",
|
"install -Dm755 ./bin/doodle /app/bin/doodle",
|
||||||
"cp -ra guidebook rtp *.md /app/share/doodle",
|
"install -Dm755 ./bin/doodad /app/bin/doodad",
|
||||||
|
"mkdir -p /app/share/doodle /app/share/icons /app/extra/export/share",
|
||||||
|
"cp -ra guidebook rtp *.md /app/extra/export/share/",
|
||||||
"cp -ra 256.png /app/share/icons/doodle.png",
|
"cp -ra 256.png /app/share/icons/doodle.png",
|
||||||
"install -Dm644 com.sketchymaze.Doodle.desktop /app/share/applications/com.sketchymaze.Doodle.desktop",
|
"install -Dm644 com.sketchymaze.Doodle.desktop /app/share/applications/com.sketchymaze.Doodle.desktop",
|
||||||
"install -Dm644 com.sketchymaze.Doodle.appdata.xml /app/share/appdata/com.sketchymaze.Doodle.appdata.xml",
|
"install -Dm644 com.sketchymaze.Doodle.appdata.xml /app/share/appdata/com.sketchymaze.Doodle.appdata.xml",
|
||||||
"for s in 16 32 64 128 256; do install -Dm644 ${s}.png /app/share/icons/hicolor/${s}x${s}/apps/doodle.png; done",
|
"for s in 16 32 64 128 256; do install -Dm644 ${s}.png /app/share/icons/hicolor/${s}x${s}/apps/doodle.png; done",
|
||||||
"find /app/share"
|
"find /app"
|
||||||
],
|
],
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "dir",
|
||||||
"url": "https://www.kirsle.net/projects/Doodle/v0.4.0/doodle-0.4.0-linux-64bit.tar.gz",
|
"path": "source"
|
||||||
"sha256": "ee3755be22b953bbfe0e477bc40b7c0637e61b49ef5653b49974490cb3fa6d3b"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "dir",
|
"type": "dir",
|
||||||
|
@ -54,6 +62,13 @@
|
||||||
{
|
{
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"path": "com.sketchymaze.Doodle.appdata.xml"
|
"path": "com.sketchymaze.Doodle.appdata.xml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "extra-data",
|
||||||
|
"filename": "doodle",
|
||||||
|
"url": "https://download.sketchymaze.com/extra-data.tar.gz",
|
||||||
|
"sha256": "4ff48d57e6329f2638f3fcdca93a9b65a0fc9cbc057fe0446083a6a8a87088d1",
|
||||||
|
"size": 7159771
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user