yarr: use pre-built binary instead of building from source #14
@@ -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 {
|
||||
|
||||
@@ -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 { };
|
||||
}
|
||||
+12
-14
@@ -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 = "sha256-2L1slCN/zigS4eMIXK7vexAyLNQZs8Q4BMdA7GHIIiM=";
|
||||
};
|
||||
|
||||
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" ];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user