Skip to content

feat(flatpak): Flathub build-from-source packaging#327

Draft
debba wants to merge 1 commit into
mainfrom
feat/flatpak-packaging
Draft

feat(flatpak): Flathub build-from-source packaging#327
debba wants to merge 1 commit into
mainfrom
feat/flatpak-packaging

Conversation

@debba

@debba debba commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Relates to #326

Adds Flatpak/Flathub packaging for Tabularis, built from source (the approach Flathub reviewers prefer) with fully vendored, offline dependencies.

What's included

  • flatpak/io.github.tabularisdb.Tabularis.yml — manifest: org.gnome.Platform//50 runtime (ships webkit2gtk-4.1), node22 + rust-stable SDK extensions, offline build (cargo build --features tauri/custom-protocol so production assets are embedded — no dev-server/localhost).
  • flatpak/io.github.tabularisdb.Tabularis.metainfo.xml + .desktop — AppStream metadata and desktop entry.
  • flatpak/cargo-sources.json + flatpak/node-sources.json — vendored Rust crates and pnpm packages for offline builds.
  • flatpak/generate-sources.sh — regenerates the vendored sources.
  • .github/workflows/flathub.yml — on each published release: regenerates sources, pins tag+commit, syncs the pnpm version, updates the metainfo release list, and opens/refreshes a PR on the Flathub repo (mirrors the existing AUR flow).

App ID

io.github.tabularisdb.Tabularis (based on the GitHub org, no domain verification required).

Verified locally

  • End-to-end offline build with flatpak-builder (frontend + Rust) ✅
  • App installs and launches in production mode — drivers register, no localhost connection ✅
  • appstreamcli validate ✅, desktop-file-validate ✅, flatpak-builder-lint clean except expected items (see below)

Notes / follow-ups

  • The auto-updater is already disabled under Flatpak (updater.rs detects FLATPAK_ID).
  • Linter flags that need a one-time justification at Flathub review (kept intentionally): --filesystem=home (open SQLite files / import-export dumps from arbitrary paths) and --socket=ssh-auth (SSH tunneling). External screenshot URLs are mirrored automatically by Flathub after merge.
  • The initial Flathub submission (creating the upstream packaging repo + FLATHUB_TOKEN) is still a manual one-time step.

- Manifest io.github.tabularisdb.Tabularis.yml (GNOME 50 runtime, node22 +
  rust-stable SDK extensions, fully offline build with tauri/custom-protocol)
- AppStream metainfo + desktop entry
- Vendored sources (cargo-sources.json, node-sources.json) and
  generate-sources.sh to regenerate them
- flathub.yml workflow: on each release, regenerate sources, pin tag+commit
  and open/refresh a PR on the Flathub repo (mirrors the AUR flow)
- gitignore Flatpak build artifacts
@debba debba linked an issue Jun 16, 2026 that may be closed by this pull request
2 tasks
@debba debba mentioned this pull request Jun 16, 2026
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat]: Official Flatpak package

1 participant