Publish Borea on Flathub
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
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
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 repositoryKSAModding.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
- Starting the game. Borea starts StarMap (
dotnet StarMap.dllon 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 withflatpak-spawn --host, which needs--talk-name=org.freedesktop.Flatpak, and Flathub grants that only "on sufficient explanation being provided" (linter rulefinish-args-flatpak-spawn-access). The first is the better fit if KSA runs in the sandbox. - 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.
- The profile and the library. The game profile is under
Documents/My Games/Kitten Space Agency, which--filesystem=xdg-documentscovers without home access. The Borea library defaults to the Flatpak's own data folder, and a library folder elsewhere goes through the portal again. - 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
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from KSAModding/Borea
-
area:docs good first issue
Difficulty 1/5 Under an hour Newbie friendliness 62/100
KSAModding/Borea#933 · 1 comment ·
Maintainers usually reply within 1 day
-
Toasts show behind an open modalPossibly taken @Maximilian-Nesslauer claimed this 8 days ago. Openarea:app
KSAModding/Borea#1004 · 1 assignee ·
Maintainers usually reply within 1 day
-
Make the code base easier to read and changePossibly taken @Maximilian-Nesslauer claimed this 14 days ago. Openarea:app area:cli area:core area:network area:storage
KSAModding/Borea#854 · 1 assignee ·
Maintainers usually reply within 1 day
-
Choose the mod loader version per instancePossibly taken @Maximilian-Nesslauer claimed this 15 days ago. Openarea:app area:cli area:core area:storage
KSAModding/Borea#838 · 1 assignee ·
Maintainers usually reply within 1 day
-
Place files at game-root again after a store update removed themPossibly taken @Maximilian-Nesslauer claimed this 21 days ago. Openarea:storage
KSAModding/Borea#772 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in KSAModding/Borea
Similar issues
-
needs-triage
Difficulty 1/5 1-3 hours Newbie friendliness 76/100
Azure/azure-sdk-for-net#64658 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
dotnet/aspnetcore#70370 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
NethermindEth/nethermind#15684 ·
Maintainers usually reply within 1 day
-
area/ai-assistant squad/flyt
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Altinn/altinn-studio#21798 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
SubtitleEdit/subtitleedit#16699 ·
Maintainers usually reply within 1 day