Files
firmware/docs
Oleksandr ShyshatskyiandClaude Fable 5 212d3a1efd A fork build without a fork is now impossible to ship
v20260824-nova-kakhovka went out without the Klipper fork: release.yml set
KLIPPER_FORK="", bin/patch.sh answered with "(skip) Klipper: keeping stock
tree", and every gate stayed green because every Klipper check was
conditional on files the broken package simply did not contain. On an
already-modded printer the stock 0.12-era overlay half-overwrote the v0.13
tree and klippy died at connect: "'void(*)(struct stepper_kinematics *,
double, double, double)' expects 4 arguments, got 3" -- a v0.12 caller
against the v0.13 cdef of extruder_set_pressure_advance (upstream
c84d78f3f). Note for the next reader of such a traceback: an arg-count
TypeError is a MIXED KLIPPY TREE, python against python; a stale
c_helper.so shows up as AttributeError instead, because cffi resolves
symbols lazily.

The fork now travels like every other asset. versions.env pins the creator5
commit and the Ingenic gcc 7.2.0/glibc 2.29 toolchain (the X2000's own;
Debian's mips crosses are big-endian or legacy-nan), fetch-assets.sh
downloads both by sha256, and patch.sh extracts the pinned tarball whenever
KLIPPER_FORK is not a local checkout -- which is exactly what CI now does,
with the KLIPPER_FORK="" lines gone from both workflows and vendor/ cached
on the pin file. c_helper.so is cross-compiled from the chelper sources of
the very tree being shipped whenever it is missing or older than them, so
the stale-.so class dies too; test/test-chelper.py returns from 3a28fdf's
grave to prove every cdef'd function is exported, and runs both in patch.sh
and in verify.sh against the extracted package. BUILD_KLIPPER=fork with no
tree is a hard build failure now; stock has to be asked for by name.

verify.sh also stops trusting `echo "$LIST" | grep -q`: under pipefail,
grep exiting at an early match SIGPIPEs the echo and the check reports 141
-- a race that stayed invisible until the fork tree tripled the payload
listing, then intermittently declared Mainsail and Moonraker missing from a
package that carried both. Herestrings have no pipe to break.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 13:52:20 +03:00
..