@@ -258,9 +258,9 @@ final: prev: {
258258
259259 # Function to call stackToNix
260260 callStackToNix = import ../lib/call-stack-to-nix.nix {
261− pkgs = final.buildPackages.pkgs;
262− inherit (final.buildPackages.pkgs) runCommand;
263− inherit (final.buildPackages.haskell-nix) nix-tools mkCacheFile materialize;
261+ pkgs = final.evalPackages.pkgs;
262+ inherit (final.evalPackages.pkgs) runCommand;
263+ inherit (final.evalPackages.haskell-nix) nix-tools mkCacheFile materialize;
264264 };
265265
266266 # given a source location call `cabal-to-nix` (from nix-tools) on it
@@ -563,6 +563,9 @@ final: prev: {
563563 haskellNixRoots = final.recurseIntoAttrs {
564564 Level0 = haskellNixRoots' 0;
565565 Level1 = haskellNixRoots' 1;
566+ # Should be safe to use this now we have materialized everything
567+ # except the tests
568+ Level2 = haskellNixRoots' 2;
566569 };
567570
568571 haskellNixRoots' = ifdLevel:
@@ -570,10 +573,12 @@ final: prev: {
570573 in final.recurseIntoAttrs ({
571574 # Things that require no IFD to build
572575 inherit (final.buildPackages.haskell-nix) source-pins;
573− # Double buildPackages (since evalPackages implies buildPackages) is intentional,
576+ # Double buildPackages is intentional,
574577 # see comment in lib/default.nix for details.
575− inherit (final.evalPackages.buildPackages) gitMinimal nix-prefetch-git;
576− inherit (final.evalPackages) nix;
578+ # Using buildPackages rather than evalPackages so both darwin and linux
579+ # versions will get pinned (evalPackages on darwin systems will be for darwin).
580+ inherit (final.buildPackages.buildPackages) gitMinimal nix-prefetch-git;
581+ inherit (final.buildPackages) nix;
577582 } // final.lib.optionalAttrs (final.stdenv.hostPlatform.libc == "glibc") {
578583 inherit (final) glibcLocales;
579584 } // final.lib.optionalAttrs (ifdLevel > 0) {
@@ -591,7 +596,7 @@ final: prev: {
591596 inherit (final.buildPackages.haskell-nix.haskellPackages.hpack.components.exes) hpack;
592597 inherit (final.buildPackages.haskell-nix) cabal-install dotCabal nix-tools alex happy;
593598 # These seem to be the only things we use from `ghc-extra-packages`
594− # in haskell.nix itfinal.
599+ # in haskell.nix itself.
595600 inherit (final.ghc-extra-packages."${defaultCompilerNixName}"
596601 .iserv-proxy.components.exes) iserv-proxy;
597602 inherit (final.ghc-extra-packages."${defaultCompilerNixName}"