Files

Flatpak packaging

Builds a portable sunstone.flatpak bundle you can install on any distro with Flatpak + the GNOME 49 runtime.

Build a test bundle

Prereqs (one-time):

flatpak install --user flathub org.flatpak.Builder \
  org.gnome.Platform//49 org.gnome.Sdk//49 \
  org.freedesktop.Sdk.Extension.rust-stable//25.08

Commit your changes (the manifest builds from git HEAD), then from the repo root:

flatpak run org.flatpak.Builder --force-clean --user --install \
  --install-deps-from=flathub \
  build-dir packaging/dev.sunstone.Sunstone.yaml

Run it:

flatpak run dev.sunstone.Sunstone

Make a single-file bundle to copy to another machine

flatpak build-bundle ~/.local/share/flatpak/repo \
  sunstone.flatpak dev.sunstone.Sunstone --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo

On the target distro:

flatpak install --user sunstone.flatpak
flatpak run dev.sunstone.Sunstone

(The target needs the GNOME 49 runtime; flatpak install will pull it from Flathub automatically if the repo is configured.)

Notes / caveats

  • This is a dev bundle, not Flathub-ready. The manifest uses --share=network at build time so cargo can fetch crates. Flathub requires fully-offline builds: generate cargo-sources.json with flatpak-cargo-generator.py from Cargo.lock, add it as a source, drop the network build-arg, and run cargo build --offline.
  • The player requires GStreamer's gtk4paintablesink. If a stream/video fails to open inside the sandbox, the GNOME runtime is missing that element and we need to add gst-plugin-gtk4 as a build module.
  • Hardware video decode is intentionally disabled in-app on Intel GPUs (SUNSTONE_HW_DECODE=1 to opt back in); software decode runs everywhere.