icons | ||
.gitignore | ||
com.sketchymaze.Doodle.appdata.xml | ||
com.sketchymaze.Doodle.desktop | ||
com.sketchymaze.Doodle.json | ||
launcher.sh | ||
Makefile | ||
README.md |
Flatpak
This repo contains Flatpak manifests to distribute Sketchy Maze to Linux users.
The game source is required. If you're not the developer, you won't have access to the source, but the rest of the Flatpak goodness is available for you to read and learn from in case you're also looking to package a Go SDL2 application for Linux.
Install Flatpak Deps
sudo dnf install flatpak-builder
# Get the base layers.
flatpak install flathub org.freedesktop.Sdk//21.08
flatpak install flathub org.freedesktop.Sdk.Extension.golang//21.08
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 guidebook/
and rtp/
directories
should also be included.
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/sketchymaze/deps/render
replace git.kirsle.net/go/ui => /run/build/sketchymaze/deps/ui
replace git.kirsle.net/go/audio => /run/build/sketchymaze/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
make install
will attempt to build and install the Flatpak.
make repo
will build it and create the Flatpak repo in the directory ./repo
To Do
- GPG signature for the Flatpak.
- Upload the repo to
download.sketchymaze.com
for public access.