Publish Borea on Flathub

Open
#591 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
csharp
Domain
desktop, release

Research direction

Start with docs/packaging.md and the .NET Flatpak guide; check whether a .NET 10 SDK extension supports the current runtime, then investigate sandboxed game launching, folder-portal access, profile storage, and library migration. The issue names borea-package.txt and the required desktop file, MetaInfo, icon, license files, and Flathub manifest. Done means answering the four sandbox questions and submitting a validated manifest and metadata to Flathub; Linux testing and Flatpak experience are called out as gaps.

Written by the indexing model from the issue text.

Description

area:infra help wanted os:linux
what

@elevatorctln asked on Discord (2026-09-25) whether Borea could be released as a Flatpak. Today the Linux build is a single-file borea in a tar.gz, and #76 lists Flathub only as an optional later step.
A Flathub release would make Borea installable from any software center on Linux, and Flathub updates it.

Today Should be
Linux players download the tar.gz from the GitHub release. Borea is on Flathub under an app id such as io.github.KSAModding.Borea.
Borea updates itself. The Flatpak ships borea-package.txt with the line flatpak, so Borea points to the software center instead of updating itself (docs/packaging.md).
Borea writes its own .desktop file for borea:// links. The Flatpak ships a desktop file with MimeType=x-scheme-handler/borea, and Borea does not write its own while it runs in the Flatpak.
The Flathub manifest lives in a Flathub repository, and every Borea release updates it.
What Flathub asks for
  • A build from source, not our prebuilt single file (Flathub requirements). The .NET guide builds with the dotnet SDK extension, framework-dependent, and with the NuGet packages downloaded ahead of time by flatpak-dotnet-generator.py. The guide shows .NET 8, so the first check is whether a .NET 10 extension exists for the current runtime.
  • An app id with at least four components for a GitHub project, verified through https://ksamodding.github.io/.well-known/org.flathub.VerifiedApps.txt. That address needs a repository KSAModding.github.io, which does not exist yet, or a manual exception by Flathub.
  • A MetaInfo file that passes validation, a desktop file, the icon as SVG or at least 256 by 256 PNG, and the license files under share/licenses.
  • As few static permissions as possible, and portals where they work (sandbox permissions).
The questions this issue answers first
  1. Starting the game. Borea starts StarMap (dotnet StarMap.dll on Linux) and through it KSA. Inside the sandbox there are two ways. Either the game runs inside Borea's sandbox, as Minecraft launchers packaged as Flatpaks do, which needs the graphics and audio permissions (--device=dri, Wayland or X11, PulseAudio) and a .NET runtime for StarMap inside the Flatpak. Or Borea starts it on the host with flatpak-spawn --host, which needs --talk-name=org.freedesktop.Flatpak, and Flathub grants that only "on sufficient explanation being provided" (linter rule finish-args-flatpak-spawn-access). The first is the better fit if KSA runs in the sandbox.
  2. The game folder. KSA is not on Steam, so the game is wherever the player installed it. The file chooser portal grants access to a folder the player picks, which fits Borea's existing "choose the game folder" flow. It has to be checked whether a folder granted through the portal can also be the folder a game is started from.
  3. The profile and the library. The game profile is under Documents/My Games/Kitten Space Agency, which --filesystem=xdg-documents covers without home access. The Borea library defaults to the Flatpak's own data folder, and a library folder elsewhere goes through the portal again.
  4. What the sandbox changes for players. Files of Borea move to ~/.var/app/<app id>/, and an existing Borea library outside the Flatpak is not found by itself.
Result

A short answer to the four questions in this issue, then the manifest, the MetaInfo file and the Flathub submission as a pull request.
Help from somebody who already packaged a Flatpak is very welcome, and I cannot test on Linux myself yet.

Part of #76.

Dominant language
C#
Stars
29
Forks
3
Avg merge
17h 21m
Merged PRs (30d)
291

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from KSAModding/Borea

All issues in KSAModding/Borea

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.