mirror of
https://github.com/hoornet/vega.git
synced 2026-07-24 01:08:11 -07:00
382a9389ad
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.
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
- Fork
github.com/flathub/flathub, branch offnew-pr(NOTmaster). - Add
com.veganostr.Vega.yaml,cargo-sources.json,node-sources.json, and theshared-modulessubmodule at the repo top level. - Open a PR against
new-pr; a reviewer commentsbot, buildto test-build.
Open items before submission
- Screenshots:
metainfo.xmlreferences three PNGs underflatpak/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-fullversion:must match GNOME 50's freedesktop base — verify at firstbot, build.- Keyring in the sandbox: the
keyringcrate uses the Secret Service over D-Bus (--talk-name=org.freedesktop.secrets). Verify nsec survives a sandboxed restart; if not, theoo7crate's file backend is the known fallback.