Skip to content

feat: first-class Nix support (flake, CI-relay, multi-platform) - #3434

Open
realitymolder wants to merge 1 commit into
block:mainfrom
realitymolder:nix-support-firstclass
Open

feat: first-class Nix support (flake, CI-relay, multi-platform)#3434
realitymolder wants to merge 1 commit into
block:mainfrom
realitymolder:nix-support-firstclass

Conversation

@realitymolder

Copy link
Copy Markdown

Summary

Adds first-class Nix support for building Buzz from a flake. Users can now run nix run github:block/buzz without any Nix overlay or manual setup.

What's included

  • flake.nix — Standard flake output wired via flake-utils.eachDefaultSystem, calls into nix/buzz.nix. Uses the block/buzz GitHub repo as a pinned source.
  • nix/buzz.nix — Builds both:
    • buzz-desktop: Tauri 2 app (Rust + pnpm frontend + sidecars)
    • buzz-sidecars: Rust CLI tools (buzz-acp, buzz-agent, buzz-dev-mcp, git-credential-nostr, buzz)
  • nix/versions.nix — Single source of truth for versions, hashes, and cargo output hashes (auto-updated by CI)
  • .github/workflows/update-nix-versions.yml — On every v* tag push, bumps buzzVersion in versions.nix and opens a PR via buzz-release-bot
  • Multi-platform support — Builds on x86_64-linux, aarch64-linux, and aarch64-darwin with platform-conditional:
    • sherpa-onnx archive selection
    • Sidecar binary target triples
    • Build inputs (Linux: gtk/webkit/alsa/gstreamer; macOS: CoreFoundation/Security/SystemConfiguration)
    • wrapGAppsHook4 (Linux-only)

Testing

nix flake check # evaluation passes across all platforms
nix build # builds cleanly on x86_64-linux
./result/bin/buzz-desktop --help

Related issue

N/A

Signed-off-by: Daniel Toubul <daniel@toubul.eu>
@realitymolder
realitymolder requested a review from a team as a code owner July 28, 2026 23:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant