From 0d0ca4aa8ef0ee0d8f875e3a4cb0c71a73061fe4 Mon Sep 17 00:00:00 2001 From: hermes-agent Date: Tue, 18 Aug 2026 06:11:19 +0000 Subject: [PATCH 1/2] yarr: use pre-built binary instead of building from source MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Building yarr from source (Rust) takes ~5+ min and times out the config-nixos CI runner (3h limit) when combined with the full perlis+wilkes+relay flake check. Use the pre-built x86_64-linux binary from GitHub releases instead — fast fetch, no Rust toolchain needed. Removes the rust-nixpkgs flake input (no longer needed). --- flake.nix | 14 +++----------- packages/default.nix | 4 ++-- packages/yarr/package.nix | 26 ++++++++++++-------------- 3 files changed, 17 insertions(+), 27 deletions(-) diff --git a/flake.nix b/flake.nix index a3e63e1..d1a3b1d 100644 --- a/flake.nix +++ b/flake.nix @@ -12,14 +12,10 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - # Newer nixpkgs for yarr: the pinned nixpkgs has rustc 1.95 but yarr - # needs 1.97.1. Bumping the main nixpkgs input breaks aioimaplib - # (email server dep), so use a separate input just for yarr's rust. - rust-nixpkgs.url = "github:NixOS/nixpkgs/0e251e24a4f24e036a084b6b4b2d2491af4167f4"; }; outputs = - { self, nixpkgs, rust-nixpkgs, ... }: + { self, nixpkgs, ... }: let supportedSystems = [ "x86_64-linux" @@ -40,10 +36,7 @@ inherit system; overlays = [ self.overlays.default ]; }; - # yarr needs rustc 1.97.1; the main nixpkgs input only has 1.95. - # Build its rust toolchain from the newer rust-nixpkgs input. - rustPkgs = import rust-nixpkgs { inherit system; }; - mcpPackages = import ./packages { inherit pkgs rustPkgs; }; + mcpPackages = import ./packages { inherit pkgs; }; in mcpPackages // { default = pkgs.symlinkJoin { @@ -60,8 +53,7 @@ inherit system; overlays = [ self.overlays.default ]; }; - rustPkgs = import rust-nixpkgs { inherit system; }; - mcpPackages = import ./packages { inherit pkgs rustPkgs; }; + mcpPackages = import ./packages { inherit pkgs; }; in { default = pkgs.mkShell { diff --git a/packages/default.nix b/packages/default.nix index 1fff09f..81325d5 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -1,4 +1,4 @@ -{ pkgs, rustPkgs ? pkgs }: +{ pkgs }: { manim-mcp-server = pkgs.callPackage ./manim-mcp-server/package.nix { }; @@ -28,6 +28,6 @@ navidrome-mcp = pkgs.callPackage ./navidrome-mcp/package.nix { }; ovhcloud-mcp = pkgs.callPackage ./ovhcloud-mcp/package.nix { }; slskd-mcp = pkgs.callPackage ./slskd-mcp/package.nix { }; - yarr = rustPkgs.callPackage ./yarr/package.nix { }; + yarr = pkgs.callPackage ./yarr/package.nix { }; # example-mcp-server = pkgs.callPackage ./example-mcp-server/package.nix { }; } \ No newline at end of file diff --git a/packages/yarr/package.nix b/packages/yarr/package.nix index f29f417..7318f1e 100644 --- a/packages/yarr/package.nix +++ b/packages/yarr/package.nix @@ -1,31 +1,29 @@ { lib, - rustPlatform, - fetchFromGitHub, + stdenv, + fetchzip, }: -rustPlatform.buildRustPackage rec { +stdenv.mkDerivation rec { pname = "yarr"; version = "2.2.2"; - src = fetchFromGitHub { - owner = "dinglebear-ai"; - repo = "yarr"; - rev = "15a599bab38a"; - hash = "sha256-PlD2NYK06rVdKirUq2dw04WL9yFrM2TB1d67Weero0k="; + src = fetchzip { + url = "https://github.com/dinglebear-ai/yarr/releases/download/v${version}/yarr-x86_64.tar.gz"; + hash = lib.fakeHash; }; - cargoHash = "sha256-e89uYPLqwhh1epedUvVEDTT4y35nuwLWlco4AVvKoK4="; - - # The cargo test phase hangs (0% CPU, no rustc procs) — likely a test - # blocking on network. Skip tests; we only need the binary. - doCheck = false; + installPhase = '' + mkdir -p $out/bin + cp yarr $out/bin/ + chmod +x $out/bin/yarr + ''; meta = with lib; { description = "Rust MCP server for media automation fleets - Sonarr, Radarr, Prowlarr, Jellyfin, SABnzbd, qBittorrent, Plex"; homepage = "https://github.com/dinglebear-ai/yarr"; license = licenses.agpl3Only; mainProgram = "yarr"; - platforms = platforms.all; + platforms = [ "x86_64-linux" ]; }; } \ No newline at end of file -- 2.55.0 From 279b4e5caf3d4ff766561861187543f4ce796869 Mon Sep 17 00:00:00 2001 From: hermes-agent Date: Tue, 18 Aug 2026 06:12:47 +0000 Subject: [PATCH 2/2] yarr: set correct fetchzip hash for pre-built binary --- packages/yarr/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/yarr/package.nix b/packages/yarr/package.nix index 7318f1e..7377342 100644 --- a/packages/yarr/package.nix +++ b/packages/yarr/package.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { src = fetchzip { url = "https://github.com/dinglebear-ai/yarr/releases/download/v${version}/yarr-x86_64.tar.gz"; - hash = lib.fakeHash; + hash = "sha256-2L1slCN/zigS4eMIXK7vexAyLNQZs8Q4BMdA7GHIIiM="; }; installPhase = '' -- 2.55.0