Files
sunstone/packaging/dev.sunstone.Sunstone.yaml
T
enki 4c88003175 Sunstone 0.1.0 — native Linux nostr client
A GTK4 + libadwaita nostr client in Rust on rust-nostr: social feed with the
outbox/gossip model, long-form articles, live streams and video, NIP-17 DMs,
NIP-29 groups, calendar, polls, and NIP-57 zaps over NWC.

Published under the MIT license.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 22:06:30 -07:00

79 lines
3.0 KiB
YAML

# 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