diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index bfdbe453e7..9fbde68de3 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -80,6 +80,8 @@ jobs: extra-trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= loony-tools:pr9m4BkM/5/eSTZlkQyRt57Jz7OMBxNSUiMC4FkcNfk= # The pinned haskell.nix uses this scheduling marker for cross # slices that need a real x86_64 host. This runner is native x86_64. + # Nix also requires its experimental feature for this marker. + extra-experimental-features = ${{ matrix.system == 'x86_64-linux' && 'recursive-nix' || '' }} extra-system-features = ${{ matrix.system == 'x86_64-linux' && 'recursive-nix' || '' }} - name: Show outputs from this checkout diff --git a/scripts/nix/README.md b/scripts/nix/README.md index b0e9a9f125..18313eeeca 100644 --- a/scripts/nix/README.md +++ b/scripts/nix/README.md @@ -140,8 +140,12 @@ operations. This checkout opts `ghc914-sh` Android ARM32 out of that restriction on Linux with patched QEMU 9.1–11, after passing normal target TH under emulation. Other target/compiler package sets retain the upstream guard, which also covers cross-compiler stalls without QEMU. Advertise the marker on a native x86_64 Linux -builder for those jobs; keep it off Rosetta slots. The GitHub workflow sets it -only for its native x86_64 Linux runner. The upstream fixes and regression jobs +builder for those jobs; keep it off Rosetta slots. Nix also requires the +[`recursive-nix` experimental feature](https://nix.dev/manual/nix/2.35/development/experimental-features.html#xp-feature-recursive-nix) +when building derivations with this reserved marker. Enable both +`extra-experimental-features = recursive-nix` and +`extra-system-features = recursive-nix` on that builder. The GitHub workflow +sets both only for its native x86_64 Linux runner. The upstream fixes and regression jobs are in [haskell.nix PR #2585](https://github.com/input-output-hk/haskell.nix/pull/2585). To build both Android APK ABIs from the current checkout, preserving the same