nix: restore atf cross overlay dropped in #3810 - #3822
Conversation
The 2026-07-03 nightly failed in release-node-sdk/bindings/build-macos (darwin-arm64): atf-aarch64-apple-darwin aborts with "cannot run test program while cross compiling", cascading through libiconv → apple-sdk-14.4 → bindings-node-js-napi. No node/bindings npm nightly has published since 20260630 (and the shared last-nightly watermark from the iOS tag keeps subsequent runs skipping). The overlay was removed in #3810 on the expectation that NixOS/nixpkgs#510292 (merged, present in the pinned nixos-unstable rev) covers it. It does not for this build: the upstream seeds are gated on !buildPlatform.canExecute hostPlatform, and our cross is aarch64-darwin → aarch64-apple-darwin — same arch and kernel, so canExecute is true and the seeds never apply, while autoconf still decides cross_compiling=yes from the triple mismatch. Restore the structurally-gated (buildPlatform != hostPlatform) overlay until the upstream gate matches; double-applying the seeds is harmless. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @insipx's task —— View job Code Review — 2026-07-06 16:03 UTCSummaryThe implementation is correct and well-justified. This is a pragmatic workaround for a gap in the upstream nixpkgs fix where structural cross-compilation detection ( Positive Observations
No Issues Found
RecommendationApprove. This is a necessary bridge until nixpkgs switches to structural inequality. The implementation is sound and well-documented. Tasks Completed
|
ApprovabilityVerdict: Approved Restores a Nix cross-compilation overlay for the You can customize Macroscope's approvability policy. Learn more. |
Summary
The 2026-07-03 nightly failed in
release-node-sdk / bindings / build-macos (darwin-arm64):No node-sdk/node-bindings npm nightly has published since
20260630.ac662b3— and because the nightly watermark is the latest tag of any SDK, the successful iOS leg's20260703tag makes every subsequent scheduled run log "No new commits since last nightly; skipping", so the node leg never retried.Why the upstream fix doesn't cover this
#3810 removed this overlay expecting NixOS/nixpkgs#510292 (merged, present in the pinned nixos-unstable rev
b5aa0fbd) to cover it. The upstream seeds are gated on!stdenv.buildPlatform.canExecute stdenv.hostPlatform— but this build's cross is aarch64-darwin → aarch64-apple-darwin: same arch, same kernel, socanExecuteis true and the seeds never apply, while autoconf still decidescross_compiling=yesfrom the configured-triple mismatch and aborts theAC_RUN_IFELSEprobes.This restores the original overlay verbatim (structurally gated on
buildPlatform != hostPlatform) with the comment updated to record the upstream state and the retirement condition: the upstream gate switching to structural inequality (nixpkgs follow-up incoming). Double-applying the seeds when both gates fire is harmless — same cache values.Verification:
nix-instantiate --parseclean; the real proof is the next scheduled nightly (new commit un-skips the watermark) or a manualReleasedispatch withnode-sdk: true.🤖 Generated with Claude Code
Note
Restore atf cross-compilation overlay in nix patches
Restores an overlay in patches.nix that was dropped in #3810. When
buildPlatform != hostPlatform, theatfderivation is overridden to pre-seed three autoconf cache variables (kyua_cv_getopt_plus,kyua_cv_attribute_noreturn,kyua_cv_getcwd_works) soAC_RUN_IFELSEtests are skipped and configuration succeeds during cross-compilation.Macroscope summarized f4005df.