# Flathub Submission Readiness Tracks OrbitHub's readiness for submission to Flathub. This is a separate checklist from `docs/PROGRESS.md`'s development milestones, since Flathub submission is an external process with its own requirements. ## Status | Item | Status | |---|---| | Production manifest with pinned, reproducible git source | Done — `packaging/flatpak/flathub/org.darksingularity.OrbitHub.yml` | | Offline build (no network fetches during build) | Verified — no `FetchContent`/`ExternalProject`/`curl`/`wget` in CMake; all vendored deps committed in `third_party/` | | SSH client available inside the sandbox | Verified — provided by the `org.kde.Platform` runtime base, no packaging needed | | `--filesystem=home` removed | Done — narrowed to `--filesystem=~/.ssh` (read-write, needed for `known_hosts` and SSH config) | | SSH known-hosts trust persists with narrowed permissions | Verified in sandbox | | RDP works with zero filesystem permission | Verified — FreeRDP's cert trust store lives outside the sandboxed home path concerns entirely (see below) | | Private-key/export file pickers use the desktop portal | Uses `QFileDialog` static functions, which route through the portal when sandboxed; not yet visually confirmed interactively | | Current, supported KDE runtime | Verified — `6.10` (not EOL) | | Desktop entry validates | Verified | | Application icon validates | Verified — PNGs at all standard hicolor sizes, matching the real app icon | | MetaInfo/AppStream validates | Verified via `appstreamcli validate` (0 errors) | | Screenshots present | In progress | | Release information present | Done — `` block with `v2026.9.8` | | Developer/project URLs present | Done — homepage, bugtracker, vcs-browser, developer block | | Architecture support decided | `x86_64` only (no ARM hardware available to test FreeRDP/WinPR on aarch64) | | Flathub manifest linter passes | Not yet run locally — needs `sudo apt install gir1.2-appstream-1.0` for its AppStream bindings; Flathub's own CI runs this during submission review regardless | | AppStream linter passes | Passing (`appstreamcli validate`) | | Clean install works without host dependencies | Verified via local `.flatpak` bundle install and launch | ## Related finding (not a packaging blocker) During permission-narrowing research, RDP certificate verification was found to be completely disabled (`IgnoreCertificate=TRUE`, all server certificates silently accepted including *changed* ones). This has been fixed separately in `src/rdp_session_backend.cpp` — FreeRDP's own trust-on-first-use certificate store is now used, matching SSH's known-hosts model. Not a Flathub-specific issue, but worth noting since it was found in the course of this work. ## Explicitly out of scope for this repo - Opening the actual submission PR against `github.com/flathub/flathub` — requires the maintainer's GitHub identity, done outside this repo. - ARM64 build/testing — no hardware available. - Flathub's post-acceptance developer-verification step — done via Flathub's own website after acceptance, using DNS control of `darksingularity.org`. ## Files - Dev manifest (local iteration, `type: dir`): `packaging/flatpak/org.darksingularity.OrbitHub.yml` - Flathub submission manifest (pinned `type: git`): `packaging/flatpak/flathub/org.darksingularity.OrbitHub.yml` - AppStream metainfo: `packaging/linux/org.darksingularity.OrbitHub.metainfo.xml` - Desktop entry: `packaging/linux/org.darksingularity.OrbitHub.desktop`