# Flatpak manifest for Sunstone (test/dev bundles). # # This builds against the GNOME 49 runtime (GTK4 + libadwaita + GStreamer) # and the freedesktop rust-stable SDK extension. It uses `--share=network` # during the build so cargo can fetch crates — that makes the build NON- # reproducible and unacceptable for Flathub, but it's the fastest path to a # portable bundle you can `flatpak install` on other distros. See # packaging/README.md for the Flathub-ready (vendored) upgrade path. # # Build: flatpak run org.flatpak.Builder --force-clean --user --install \ # build-dir packaging/dev.sunstone.Sunstone.yaml # Bundle: flatpak build-bundle ~/.local/share/flatpak/repo \ # sunstone.flatpak dev.sunstone.Sunstone id: dev.sunstone.Sunstone runtime: org.gnome.Platform runtime-version: '49' sdk: org.gnome.Sdk sdk-extensions: - org.freedesktop.Sdk.Extension.rust-stable command: sunstone finish-args: # GPU + windowing for GTK4/GStreamer rendering. - --device=dri - --socket=wayland - --socket=fallback-x11 - --share=ipc # Audio for streams/videos. - --socket=pulseaudio # nostr relays, media hosts, LNURL/NWC zaps — all networked. - --share=network # System dark/light preference, fonts, cursor theme. - --talk-name=org.freedesktop.portal.Settings build-options: append-path: /usr/lib/sdk/rust-stable/bin # Cargo fetches crates over the network at build time (dev bundle only). build-args: - --share=network env: CARGO_HOME: /run/build/sunstone/cargo modules: # libspelling (GTK4 system spellcheck for the article editor) isn't in the # GNOME 49 runtime, so build it into the bundle. Its deps — gtksourceview-5, # enchant-2, icu — ARE in the SDK. Docs/vapi/sysprof/introspection off to # avoid pulling extra build tooling we don't need. - name: libspelling buildsystem: meson config-opts: - -Ddocs=false - -Dvapi=false - -Dsysprof=false - -Dintrospection=disabled sources: - type: archive url: https://download.gnome.org/sources/libspelling/0.4/libspelling-0.4.8.tar.xz sha256: 277646285818da7b295ef007b2c5ebd815d0930b3ad097505b3ced96965af517 - name: sunstone buildsystem: simple build-commands: # Thin-LTO release build of the workspace binary. - cargo build --release --bin sunstone - install -Dm755 target/release/sunstone /app/bin/sunstone # Desktop entry, icon, AppStream metadata. - install -Dm644 packaging/dev.sunstone.Sunstone.desktop /app/share/applications/dev.sunstone.Sunstone.desktop - install -Dm644 crates/sunstone-gtk/assets/sunstone-mark.svg /app/share/icons/hicolor/scalable/apps/dev.sunstone.Sunstone.svg - install -Dm644 packaging/dev.sunstone.Sunstone.metainfo.xml /app/share/metainfo/dev.sunstone.Sunstone.metainfo.xml sources: # Git checkout of the local repo at HEAD — tracked files only, so the # multi-GB target/ dir never enters the sandbox. Commit before building. - type: git url: file:///home/enki/git/sunstone branch: main