on iko/ghcjs-patch-master help sign in
Don't use allowSubstitutes=false (#1389)

`runCommandLocal` sets both `preferLocalBuild=true` and `allowSubstitutes=false`. There's an [argument](https://github.com/NixOS/nix/issues/4442) that the latter is a misfeature. There's really no reason not to download something from a substitutor if it's actually been built already. We can get the effect that we want easily enough by just setting `preferLocalBuild=true` alone.

commit315b6d353d5cd30d5ee0c159d06b144f7e8ef320 authorMichael Peyton Jones <michael.peyton-jones@iohk.io> dateThu 3 Mar 2022, 02:17 (5 years ago) parentea3b640
5 files changed+10−8
lib/cabal-project-parser.nix+4−2 lib/clean-git.nix+2−2 lib/default.nix+1−1 mk-local-hackage-repo/default.nix+1−1 overlays/haskell.nix+2−2
lib/cabal-project-parser.nix+4−2
@@ -137,10 +137,11 @@ let
137137 name = __head lines;
138138 # The $HOME dir with `.cabal` sub directory after running `cabal new-update` to download the repository
139139 home =
140− pkgs.evalPackages.runCommandLocal name ({
140+ pkgs.evalPackages.runCommand name ({
141141 nativeBuildInputs = [ cabal-install pkgs.evalPackages.curl nix-tools ];
142142 LOCALE_ARCHIVE = pkgs.lib.optionalString (pkgs.evalPackages.stdenv.buildPlatform.libc == "glibc") "${pkgs.evalPackages.glibcLocales}/lib/locale/locale-archive";
143143 LANG = "en_US.UTF-8";
144+ preferLocalBuild = true;
144145 } // pkgs.lib.optionalAttrs (sha256 != null) {
145146 outputHashMode = "recursive";
146147 outputHashAlgo = "sha256";
@@ -161,10 +162,11 @@ let
161162 '';
162163 # Output of hackage-to-nix
163164 hackage = import (
164− pkgs.evalPackages.runCommandLocal ("hackage-to-nix-" + name) {
165+ pkgs.evalPackages.runCommand ("hackage-to-nix-" + name) {
165166 nativeBuildInputs = [ cabal-install pkgs.evalPackages.curl nix-tools ];
166167 LOCALE_ARCHIVE = pkgs.lib.optionalString (pkgs.evalPackages.stdenv.buildPlatform.libc == "glibc") "${pkgs.evalPackages.glibcLocales}/lib/locale/locale-archive";
167168 LANG = "en_US.UTF-8";
169+ preferLocalBuild = true;
168170 } ''
169171 mkdir -p $out
170172 hackage-to-nix $out ${home}/.cabal/packages/${name}/01-index.tar ${attrs.url}
lib/clean-git.nix+2−2
@@ -1,5 +1,5 @@
11# From https://github.com/NixOS/nix/issues/2944
2−{ lib, runCommandLocal, git, cleanSourceWith }:
2+{ lib, runCommand, git, cleanSourceWith }:
33{ name ? null, src, subDir ? "", includeSiblings ? false, keepGitDir ? false }:
44
55# The function call
@@ -112,7 +112,7 @@ then
112112 # `git ls-files --recurse-submodules` to give us an accurate list
113113 # of all the files in the index.
114114 whitelist_files = knownSubmoduleDirs:
115− runCommandLocal "git-ls-files" {} ''
115+ runCommand "git-ls-files" { preferLocalBuild = true; } ''
116116 tmp=$(mktemp -d)
117117 cd $tmp
118118 ${ lib.optionalString hasSubmodules ''
lib/default.nix+1−1
@@ -202,7 +202,7 @@ in {
202202 cleanGit = import ./clean-git.nix {
203203 inherit lib cleanSourceWith;
204204 git = gitMinimal;
205− inherit (pkgs.evalPackages.buildPackages) runCommandLocal;
205+ inherit (pkgs.evalPackages.buildPackages) runCommand;
206206 };
207207
208208 # Some times it is handy to temporarily use a relative path between git
mk-local-hackage-repo/default.nix+1−1
@@ -17,7 +17,7 @@
1717pkgs:
1818{ name, index }:
1919
20−pkgs.evalPackages.runCommandLocal "hackage-repo-${name}" {} ''
20+pkgs.evalPackages.runCommand "hackage-repo-${name}" { preferLocalBuild = true; } ''
2121mkdir -p $out
2222export expires="4000-01-01T00:00:00Z"
2323
overlays/haskell.nix+2−2
@@ -211,8 +211,8 @@ final: prev: {
211211 # dotCabalName anyway.
212212 dotCabalName = "dot-cabal-" + allNames;
213213 in
214− # This is very big, and cheap to build: use runCommandLocal to prefer building it locally
215− final.evalPackages.runCommandLocal dotCabalName { nativeBuildInputs = [ cabal-install ]; } ''
214+ # This is very big, and cheap to build: prefer building it locally
215+ final.evalPackages.runCommand dotCabalName { nativeBuildInputs = [ cabal-install ]; preferLocalBuild = true; } ''
216216 mkdir -p $out/.cabal
217217 cat <<EOF > $out/.cabal/config
218218 ${final.lib.concatStrings (