Add nak and ngit to every edition #80

Merged
TheDarkWizard merged 1 commit from add-nostr-tools into main 2026-08-01 02:50:04 +00:00

Adds two nostr tools to common.yml so every edition ships them: nak (the nostr army knife CLI) and ngit (git branches and patches over nostr).

Neither is packaged for Fedora, Terra, or any live COPR (the COPR search hits are unrelated fuzzy matches), so both are baked in from their upstream GitHub releases using the tea/superfile pattern: resolve the latest tag at build time so they track upstream with no manual bumps.

Two things differ from the tea and superfile snippets, both called out in comments:

No checksum verification. Neither project publishes a checksums file (verified against nak v0.20.2 and ngit v2.6.3). Each block instead ends with a --version smoke test. That is a smaller loss than it looks: a checksums file served from the same release as the binary was never a trust anchor against a bad upstream, only against a corrupted transfer, and HTTPS plus the smoke test cover that. If either project starts publishing checksums, these should switch to the superfile pattern.

ngit installs two binaries. The tarball carries ngit and git-remote-nostr, and both need to be in PATH since git execs the remote helper for nostr:// remotes. The musl tarball is used rather than the glibc one so the binaries are fully static and cannot drift against the image's glibc.

Tested by extracting both snippets from the recipe and running them verbatim against a throwaway prefix: all three binaries download, install, and report their versions (nak v0.20.2, ngit 2.6.3).

Worth knowing before merging: these add about 79MB to the image (nak is 44MB and ships unstripped with debug info, ngit 18MB, git-remote-nostr 16MB). Stripping nak would claw back roughly half of its size if that matters more than shipping exactly what upstream built.

Adds two nostr tools to common.yml so every edition ships them: nak (the nostr army knife CLI) and ngit (git branches and patches over nostr). Neither is packaged for Fedora, Terra, or any live COPR (the COPR search hits are unrelated fuzzy matches), so both are baked in from their upstream GitHub releases using the tea/superfile pattern: resolve the latest tag at build time so they track upstream with no manual bumps. Two things differ from the tea and superfile snippets, both called out in comments: **No checksum verification.** Neither project publishes a checksums file (verified against nak v0.20.2 and ngit v2.6.3). Each block instead ends with a `--version` smoke test. That is a smaller loss than it looks: a checksums file served from the same release as the binary was never a trust anchor against a bad upstream, only against a corrupted transfer, and HTTPS plus the smoke test cover that. If either project starts publishing checksums, these should switch to the superfile pattern. **ngit installs two binaries.** The tarball carries `ngit` and `git-remote-nostr`, and both need to be in PATH since git execs the remote helper for `nostr://` remotes. The musl tarball is used rather than the glibc one so the binaries are fully static and cannot drift against the image's glibc. Tested by extracting both snippets from the recipe and running them verbatim against a throwaway prefix: all three binaries download, install, and report their versions (nak v0.20.2, ngit 2.6.3). Worth knowing before merging: these add about 79MB to the image (nak is 44MB and ships unstripped with debug info, ngit 18MB, git-remote-nostr 16MB). Stripping nak would claw back roughly half of its size if that matters more than shipping exactly what upstream built.
Add nak and ngit to every edition
Some checks failed
bluebuild / Check if a rebuild is needed (pull_request) Successful in 4s
PR Rebase Hint / Post rebase command (pull_request) Successful in 3s
bluebuild / Release (pull_request) Has been cancelled
bluebuild / Generate Release (pull_request) Has been cancelled
bluebuild / Build COSMIC NVIDIA (COSMIC NVIDIA, recipe-cosmic-nvidia.yml) (pull_request) Has been cancelled
bluebuild / Build COSMIC (COSMIC, recipe-cosmic.yml) (pull_request) Has been cancelled
bluebuild / Build GNOME NVIDIA (GNOME NVIDIA, recipe-gnome-nvidia.yml) (pull_request) Has been cancelled
bluebuild / Build GNOME (GNOME, recipe-gnome.yml) (pull_request) Has been cancelled
bluebuild / Build Hyprland DMS NVIDIA (Hyprland DMS NVIDIA, recipe-hyprland-dms-nvidia.yml) (pull_request) Has been cancelled
bluebuild / Build Hyprland DMS (Hyprland DMS, recipe-hyprland-dms.yml) (pull_request) Has been cancelled
bluebuild / Build Hyprland Noctalia NVIDIA (Hyprland Noctalia NVIDIA, recipe-hyprland-noctalia-nvidia.yml) (pull_request) Has been cancelled
bluebuild / Build Hyprland Noctalia (Hyprland Noctalia, recipe-hyprland-noctalia.yml) (pull_request) Has been cancelled
bluebuild / Build KDE NVIDIA (KDE NVIDIA, recipe-kde-nvidia.yml) (pull_request) Has been cancelled
bluebuild / Build KDE (KDE, recipe-kde.yml) (pull_request) Has been cancelled
bluebuild / Build Niri DMS NVIDIA (Niri DMS NVIDIA, recipe-niri-dms-nvidia.yml) (pull_request) Has been cancelled
bluebuild / Build Niri DMS (Niri DMS, recipe-niri-dms.yml) (pull_request) Has been cancelled
bluebuild / Build Niri Noctalia NVIDIA (Niri Noctalia NVIDIA, recipe-niri-noctalia-nvidia.yml) (pull_request) Has been cancelled
bluebuild / Build Niri Noctalia (Niri Noctalia, recipe-niri-noctalia.yml) (pull_request) Has been cancelled
bluebuild / Build Nourish NVIDIA (Nourish NVIDIA, recipe-nourish-nvidia.yml) (pull_request) Has been cancelled
bluebuild / Build Nourish (Nourish, recipe-nourish.yml) (pull_request) Has been cancelled
bluebuild / Build XFCE NVIDIA (XFCE NVIDIA, recipe-xfce-nvidia.yml) (pull_request) Has been cancelled
bluebuild / Build XFCE (XFCE, recipe-xfce.yml) (pull_request) Has been cancelled
bluebuild / Build Budgie NVIDIA (Budgie NVIDIA, recipe-budgie-nvidia.yml) (pull_request) Has been cancelled
bluebuild / Build Budgie (Budgie, recipe-budgie.yml) (pull_request) Has been cancelled
998b8a1f23
Two nostr tools baked into /usr/bin on all editions: nak, the nostr
army knife CLI, and ngit, which puts git branches and patches on nostr.

Neither is packaged for Fedora, Terra, or a live COPR, so both come
from their upstream GitHub releases and track the latest tag on every
build, the same way tea and superfile do. Neither publishes a checksums
file, so instead of a sha256 check each block ends with a --version
smoke test, which catches the truncated or corrupt download a checksum
from the same release would have caught.

ngit ships two binaries and both are installed: ngit itself plus
git-remote-nostr, the helper git execs for nostr:// remotes. Its musl
tarball is used so the binaries stay static.

🧪 Test this PR on a real install

Once the build checks on this PR pass, a signed test image is published for each edition this PR builds. Pick the one matching your hardware and, from an existing Monolith install (which already has the signing policy), rebase onto it:

gnome

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/gnome:pr-80-44
systemctl reboot

kde

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde:pr-80-44
systemctl reboot

xfce

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce:pr-80-44
systemctl reboot

cosmic

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic:pr-80-44
systemctl reboot

budgie

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie:pr-80-44
systemctl reboot

hyprland-noctalia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia:pr-80-44
systemctl reboot

hyprland-dms

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms:pr-80-44
systemctl reboot

niri-noctalia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-noctalia:pr-80-44
systemctl reboot

niri-dms

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-dms:pr-80-44
systemctl reboot

nourish

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/nourish:pr-80-44
systemctl reboot

gnome-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/gnome-nvidia:pr-80-44
systemctl reboot

kde-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde-nvidia:pr-80-44
systemctl reboot

xfce-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce-nvidia:pr-80-44
systemctl reboot

cosmic-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic-nvidia:pr-80-44
systemctl reboot

budgie-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie-nvidia:pr-80-44
systemctl reboot

hyprland-noctalia-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia-nvidia:pr-80-44
systemctl reboot

hyprland-dms-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms-nvidia:pr-80-44
systemctl reboot

niri-noctalia-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-noctalia-nvidia:pr-80-44
systemctl reboot

niri-dms-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-dms-nvidia:pr-80-44
systemctl reboot

nourish-nvidia

rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/nourish-nvidia:pr-80-44
systemctl reboot

The tags are rebuilt on every new commit here, so rpm-ostree upgrade pulls the latest build. When you're done testing, return to your edition's released image (:latest).

The commands cover the editions this PR affected when it was opened; commits that touch more editions publish their tags too, just without a refreshed comment. The test tags stop updating once this PR is merged or closed.

### 🧪 Test this PR on a real install **Once the build checks on this PR pass**, a signed test image is published for each edition this PR builds. Pick the one matching your hardware and, from an existing Monolith install (which already has the signing policy), rebase onto it: **`gnome`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/gnome:pr-80-44 systemctl reboot ``` **`kde`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde:pr-80-44 systemctl reboot ``` **`xfce`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce:pr-80-44 systemctl reboot ``` **`cosmic`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic:pr-80-44 systemctl reboot ``` **`budgie`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie:pr-80-44 systemctl reboot ``` **`hyprland-noctalia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia:pr-80-44 systemctl reboot ``` **`hyprland-dms`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms:pr-80-44 systemctl reboot ``` **`niri-noctalia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-noctalia:pr-80-44 systemctl reboot ``` **`niri-dms`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-dms:pr-80-44 systemctl reboot ``` **`nourish`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/nourish:pr-80-44 systemctl reboot ``` **`gnome-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/gnome-nvidia:pr-80-44 systemctl reboot ``` **`kde-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/kde-nvidia:pr-80-44 systemctl reboot ``` **`xfce-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/xfce-nvidia:pr-80-44 systemctl reboot ``` **`cosmic-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/cosmic-nvidia:pr-80-44 systemctl reboot ``` **`budgie-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/budgie-nvidia:pr-80-44 systemctl reboot ``` **`hyprland-noctalia-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-noctalia-nvidia:pr-80-44 systemctl reboot ``` **`hyprland-dms-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/hyprland-dms-nvidia:pr-80-44 systemctl reboot ``` **`niri-noctalia-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-noctalia-nvidia:pr-80-44 systemctl reboot ``` **`niri-dms-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/niri-dms-nvidia:pr-80-44 systemctl reboot ``` **`nourish-nvidia`** ```bash rpm-ostree rebase ostree-image-signed:docker://forge.waywardinn.com/monolith-os/nourish-nvidia:pr-80-44 systemctl reboot ``` The tags are rebuilt on every new commit here, so `rpm-ostree upgrade` pulls the latest build. When you're done testing, return to your edition's released image (`:latest`). _The commands cover the editions this PR affected when it was opened; commits that touch more editions publish their tags too, just without a refreshed comment. The test tags stop updating once this PR is merged or closed._
Sign in to join this conversation.
No description provided.