4c88003175
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>
79 lines
3.0 KiB
YAML
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
|