flatpak/README.md

54 lines
1.9 KiB
Markdown

# 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//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.