fix(codeaf): build furrow from source and hand it over in CODEAF_FURROW
CI / check (push) Has been cancelled
CI / check (push) Has been cancelled
The package used to fetch the Agent-Field/furrow release asset and stage it for go:embed, which is what `make build` does. Those bytes are a stock glibc build that no Nix phase ever touched, so the copy codeaf writes out to ~/.codeaf/bin/furrow-0.1.0 cannot start here: NixOS answers "Could not start dynamically linked executable" and names stub-ld. Every furrow verb the package offers was dead with it. Staging a rebuilt furrow was not an option. Upstream's fetcher hashes what it stages against internal/furrowbin/pin.json and refuses anything else, and patching the downloaded asset changes its hash. So this stages nothing, and ./furrow.nix builds the pinned version from source instead. The wrapped codeaf passes it through CODEAF_FURROW, which internal/furrow reads before it looks at the embedded copy, so the go binary carries no furrow at all (63 MB, was 67 MB) and nothing unpatched is written to the state root. furrow is Rust, not Go, and rusqlite bundles sqlite, hence the build time. Its test suite wants a filesystem that supports user.* xattrs; the sandbox /tmp is tmpfs and answers EOPNOTSUPP, which takes out the fixture of all 54 cli tests at tests/cli.rs:48 and one lib test with it. The unit tests run, minus that one. Verified with nix build .#codeaf: `codeaf --version` reports 0.7.1, the wrapper sets CODEAF_FURROW to the store furrow, that furrow prints `furrow 0.1.0` against store glibc, and it sits in the codeaf output's references so a gc cannot pull it out from under the wrapper. Not verified on darwin, no builder. Refs nix-overlay-bju
This commit is contained in:
@@ -2,4 +2,8 @@
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
pkgs.callPackage ./package.nix { }
|
||||
pkgs.callPackage ./package.nix {
|
||||
# Not a package of its own: codeaf is the only consumer, and codeaf is the one
|
||||
# that knows which furrow version it pinned. See ./furrow.nix.
|
||||
furrow = pkgs.callPackage ./furrow.nix { };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user