Repository navigation
package: ship llama-perplexity, and prove provenance before localizing - #563
Conversation
Two blockers in the package stage after #556, both fatal for the release build: - #556's load check requires hrx/llama/bin/llama-perplexity, but `put` never staged it, so every package run died with "missing from the package". The build makes it (cmake/hrx.cmake builds llama-server, llama-bench and llama-perplexity) and #556's localization gives it $ORIGIN RUNPATHs and its libllama-perplexity-impl.so, so stage it like the other two tools. - pack_require_provenance compares each staged file byte for byte with the same path under the build, and #556 called it after pack_localize - which rewrites every RUNPATH with patchelf and copies libomp.so in. Nothing can match after that, so the check failed on every file. Run it before pack_localize, where the staged copies are still the build's own bytes (and libomp.so is not there yet). Proved on the release build (engine e7d64b8, strixhalo): scripts/package-linux.sh exits 0, hrx/llama/bin ships 27 files with llama-server, llama-bench and llama-perplexity, the three sealed NPU sets, and no "cannot load" line from #556's own check. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
… comment Rebased onto main (0d0c846) and reviewed against the current packaging, image and release check (#556, #563, #569): - docs/releases.md conflicted on the pins table and the NPU paragraph: the branch put the private repositories' names back into a public file ("gpu-kernels (private, HIP)", "npu-kernels (private, signed)", "npu-runtime (private)"), which main had scrubbed. Resolved keeping main's wording ("private kernel add-on (HIP)", "private NPU kernel set (signed)", "private NPU runtime") and the new shape. - scripts/weekly.sh package_checks: the set's manifest is now derived from `rel` once, instead of rebuilding the path with `${f%/npu/kernels/*}` plus `cut` (which can leave a double slash). Checked that the derived path resolves for <pkg>/npu/kernels/<set>/<id>/layer1.elf. - os/mini/init.sh: comment wrapped. Not marked ready: the package stage stages nothing against the pins in this tree (see the PR comment). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The package stage cannot run on a release build after #556. Two independent blockers, both in
scripts/package-linux.sh:1. #556 requires a tool it never stages.
pack_require_tools(line ~103) demandsllama-server llama-bench llama-perplexity, butputonly stages the first two, so every run dies withmissing from the package: hrx/llama/bin/llama-perplexity. The build does make it —cmake/hrx.cmakebuilds allthree — and #556's
pack_localizegives it$ORIGINRUNPATHs andlibllama-perplexity-impl.so. Fix: stage it too.2. The provenance check can never pass where it is.
pack_require_provenancecompares each staged file byte forbyte with
$build/$rel, and it is called afterpack_localize, which rewrites every RUNPATH withpatchelfandcopies
libomp.soin from TheRock. So it reports every ELF asdiffers from the build being packaged(and libomp asnot in the build). Fix: run it beforepack_localize, where the staged files are still the build's own bytes.Proved against the release build (engine
e7d64b8, strixhalo):scripts/package-linux.sh <build> /tmp/outexits0,
hrx/llama/binships 27 files includingllama-server,llama-bench,llama-perplexityandlibllama-perplexity-impl.so, the three sealed NPU sets are packed, and #556's own load check prints no"cannot load" line. Before the change, the stage failed one line earlier on the missing tool.
python3 tools/copyright.py --checkrc=0. Release-blocking for the v2026.43 candidate: thee7d64b8tree is otherwisegreen (hw-gate 20/20, 1bit.check both ways, vmtest + vmtest-release PASS, binary drop PASS), and only
packageneeds tore-run after this merges.
🤖 Generated with Claude Code