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