- Bump llama-cpp from b9048 to b9159 - Add WebUI build derivation to work around HF bucket fetch in Nix sandbox - Switch MTP patch from .patch to .diff (squashed unified diff applies cleanly) - Refactor default.nix with let bindings for cleaner structure - Add AGENTS.md documenting version/postFetch pitfalls - Add qwen3.6-27b-vllm-50k single-GPU config to llama-swap - Fix --spec-type from "mtp" to "draft-mtp" in llama.cpp configs - Update update-package-hashes skill with fetchpatch/.diff guidance
1.5 KiB
1.5 KiB
llama-cpp — Agent Notes
Override of pkgs.llama-cpp with CUDA + Vulkan + BLAS, custom CMake flags, and an optional fork pin.
Pitfalls
version must be numeric
Upstream pkgs/by-name/ll/llama-cpp/package.nix passes version straight through as a C integer via:
(cmakeFeature "LLAMA_BUILD_NUMBER" finalAttrs.version)
build-info.cpp then emits int LLAMA_BUILD_NUMBER = <version>;. A non-numeric version (e.g. "mtp-clean-08b1474") breaks the build with:
error: '<value>' was not declared in this scope
int LLAMA_BUILD_NUMBER = <value>;
Convention:
- Upstream tag pins: use the bare build number, e.g.
version = "9048";withtag = "b${version}";. - Fork / arbitrary commit pins: use a
YYYYMMDDdate derived from the commit's author/commit date (gh api repos/<owner>/<repo>/commits/<sha>→.commit.committer.date).
leaveDotGit + postFetch
We keep .git only long enough to record the short SHA into $out/COMMIT, then strip it. Preserve this pattern when changing src so downstream tooling that reads COMMIT keeps working.
Refreshing the pinned commit (fork)
git ls-remote https://github.com/<owner>/llama.cpp refs/heads/<branch>→ get the full SHA.nix run nixpkgs#nix-prefetch-github -- <owner> llama.cpp --rev <sha> --leave-dot-git→ get the hash.- Look up the commit date:
curl -s https://api.github.com/repos/<owner>/llama.cpp/commits/<sha> | jq -r '.commit.committer.date'. - Update
src.{owner,rev,hash}and setversion = "YYYYMMDD".