From 812c1af1f257f171cfd0b0e5838e4ce4c770bf7e Mon Sep 17 00:00:00 2001 From: Erik Simon Date: Sat, 19 Sep 2026 14:59:01 +0200 Subject: [PATCH] mars(kittentts): install the wheel under its real filename uv reads the version from the wheel filename, and the fetchurl store path's hash prefix made it reject the file ("invalid version"). Expose it via a linkFarm under kittentts-0.8.1-py3-none-any.whl. Co-Authored-By: Claude Opus 5 --- hosts/mars/hermes-agent.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hosts/mars/hermes-agent.nix b/hosts/mars/hermes-agent.nix index 5151219..bcbb81e 100644 --- a/hosts/mars/hermes-agent.nix +++ b/hosts/mars/hermes-agent.nix @@ -85,6 +85,10 @@ let url = "https://github.com/KittenML/KittenTTS/releases/download/0.8.1/kittentts-0.8.1-py3-none-any.whl"; sha256 = "sha256-SCpDbE8fMZIVNxA3bkWf82iVF+vNp8KwUeL9QYe0GFE="; }; + # uv parses the version out of the filename; the store hash prefix breaks it. + kittenttsWheelFile = "${pkgs.linkFarm "kittentts-wheel" { + "kittentts-0.8.1-py3-none-any.whl" = kittenttsWheel; + }}/kittentts-0.8.1-py3-none-any.whl"; kittenttsReqs = pkgs.writeText "kittentts-requirements.txt" ( builtins.readFile ./kittentts/requirements.txt ); @@ -619,7 +623,7 @@ in # the CUDA tree; the requirements freeze already covers its real needs. UV_CACHE_DIR=$stageDir/uv-cache \ uv pip install --python "$stageVenv/bin/python" --quiet --no-deps \ - ${kittenttsWheel} + ${kittenttsWheelFile} # Dead-import shim: .pth auto-loads kitten_tts_stub at interpreter # start so `from misaki import en, espeak` resolves without the real