Files
sunstone/packaging/README.md
T

60 lines
1.8 KiB
Markdown

# 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):
```sh
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:
```sh
flatpak run org.flatpak.Builder --force-clean --user --install \
--install-deps-from=flathub \
build-dir packaging/dev.sunstone.Sunstone.yaml
```
Run it:
```sh
flatpak run dev.sunstone.Sunstone
```
## Make a single-file bundle to copy to another machine
```sh
flatpak build-bundle ~/.local/share/flatpak/repo \
sunstone.flatpak dev.sunstone.Sunstone --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo
```
On the target distro:
```sh
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`](https://github.com/flatpak/flatpak-builder-tools/tree/master/cargo)
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.