Files
gen1recomp/docs/linux-flatpak.md
T
1jamie 6a02a13f22 ci(linux): build and publish Flatpak on release and path-gated PR CI
Add a ubuntu-24.04 linux-flatpak job that runs build_flatpak.sh from the
shared love payload, wire it into release staging/upload, and mirror a
path-gated Flatpak build in ci.yml when flatpak packaging changes.
2026-08-25 15:32:29 -05:00

1.6 KiB

Linux Flatpak

Releases may ship gen1recomp-<version>-linux.flatpak (x86_64 bundle).

Install

flatpak install --user ./gen1recomp-<version>-linux.flatpak
flatpak run com.theboisclub.gen1recomp

Or open the .flatpak in Discover / GNOME Software. AppStream metainfo includes a <releases> entry so those UIs can show the version.

Permissions

The manifest requests:

  • network (updater, mods, save sync)
  • X11 / Wayland / DRI / PulseAudio
  • --device=all (SDL2 gamepads, rumble, gyro via evdev/hidraw)
  • --filesystem=home (ROM import)

Curl is bundled at /app/bin/curl so the game does not need host curl.

Updates

Lua/engine payloads still use the in-app .love updater. A native shell bump points at the new .flatpak asset (Download Flatpak update).

After a .love payload download, restart uses love.event.quit("restart") (execv of /proc/self/exe inside bwrap). If a restart hangs after an update, fully quit and relaunch — PhysFS can retain a lock on the previous payload across a bad handoff.

Building

scripts/build_flatpak.sh --version X.Y.Z
# → dist/flatpak/gen1recomp-X.Y.Z-linux.flatpak

Requires flatpak + flatpak-builder and the Freedesktop 24.08 runtime from Flathub (installed automatically on first build).

Release CI builds the bundle on ubuntu-24.04 (linux-flatpak job) from the shared game.love payload and publishes gen1recomp-<ver>-linux.flatpak alongside the AppImages. PR CI path-gates the same script when flatpak/ or scripts/build_flatpak.sh change.

Flathub store submission is out of scope for the GitHub bundle channel.