Files
vega/flatpak
Jure 382a9389ad Release v0.14.2 — Secret Service keychain on Linux (Flatpak-ready, survives reboots)
Linux key storage moves from the kernel keyring (linux-keyutils) to the
system secret service (gnome-keyring/KWallet, via dbus-secret-service). The
kernel keyring does not persist across Flatpak launches or reliably across
reboots; the secret service persists to disk and works in the sandbox via
--talk-name=org.freedesktop.secrets. Verified in the Flatpak build: log in,
full quit, relaunch, still signed in. Linux users re-enter their key once
(entry moves backends). macOS/Windows unchanged.

Also pins the Flathub manifest git-source to the v0.14.2 tag.
2026-07-18 14:43:50 +02:00
..

Flathub packaging for Vega

This directory holds the Flatpak packaging for com.veganostr.Vega, built entirely from source (Flathub forbids bundling prebuilt binaries — do not use Tauri's official Flatpak guide, which repackages a .deb).

Files

File Purpose Lives in
com.veganostr.Vega.yaml Flatpak manifest Flathub PR repo (copy here for reference)
com.veganostr.Vega.metainfo.xml AppStream metadata (store page) this repo, installed from source
com.veganostr.Vega.desktop Desktop entry this repo, installed from source
cargo-sources.json Vendored Rust crates (offline build) generated → Flathub PR repo
node-sources.json Vendored npm packages (offline build) generated → Flathub PR repo

Regenerating the vendored sources (after any dependency bump)

# Rust
pip install toml aiohttp
python flatpak-cargo-generator.py -d src-tauri/Cargo.lock -o flatpak/cargo-sources.json

# npm (lockfile v3)
pipx install git+https://github.com/flatpak/flatpak-builder-tools.git#subdirectory=node
flatpak-node-generator npm -o flatpak/node-sources.json package-lock.json

The generated sources must match the Cargo.lock / package-lock.json at the git tag the manifest pins.

Validate locally

appstreamcli validate flatpak/com.veganostr.Vega.metainfo.xml
desktop-file-validate flatpak/com.veganostr.Vega.desktop

Test build (needs ~several GB of SDK)

flatpak install flathub org.gnome.Platform//50 org.gnome.Sdk//50 \
  org.freedesktop.Sdk.Extension.rust-stable org.freedesktop.Sdk.Extension.node20
flatpak install flathub org.flatpak.Builder
git clone https://github.com/flathub/shared-modules.git   # for libappindicator
flatpak run org.flatpak.Builder --force-clean --user --install \
  build-dir flatpak/com.veganostr.Vega.yaml
flatpak run com.veganostr.Vega

Submitting to Flathub

  1. Fork github.com/flathub/flathub, branch off new-pr (NOT master).
  2. Add com.veganostr.Vega.yaml, cargo-sources.json, node-sources.json, and the shared-modules submodule at the repo top level.
  3. Open a PR against new-pr; a reviewer comments bot, build to test-build.

Open items before submission

  • Screenshots: metainfo.xml references three PNGs under flatpak/screenshots/. Add real screenshots there and pin the manifest's git source to a tag/commit that contains them (metainfo screenshot URLs should use a tag/commit ref, not a branch).
  • ffmpeg-full version: must match GNOME 50's freedesktop base — verify at first bot, build.
  • Keyring in the sandbox: the keyring crate uses the Secret Service over D-Bus (--talk-name=org.freedesktop.secrets). Verify nsec survives a sandboxed restart; if not, the oo7 crate's file backend is the known fallback.