|
|
|
# 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
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo dnf install flatpak-builder
|
|
|
|
|
|
|
|
# Get the base layers.
|
|
|
|
flatpak install flathub org.freedesktop.Sdk//20.08
|
|
|
|
flatpak install flathub org.freedesktop.Sdk.Extension.golang//20.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.
|