on iko/ghcjs-patch-master help sign in
Use runCommandLocal for dotCabal (#901)
8c0b7c2Michael Peyton Jones
mk-local-hackage-repo/default.nix+1−1
@@ -17,7 +17,7 @@
17pkgs:
17pkgs:
18{ name, index }:
18{ name, index }:
19
19
20−pkgs.evalPackages.runCommand "hackage-repo-${name}" { nativeBuildInputs = [ pkgs.evalPackages.nix ]; } ''
20+pkgs.evalPackages.runCommandLocal "hackage-repo-${name}" { nativeBuildInputs = [ pkgs.evalPackages.nix ]; } ''
21mkdir -p $out
21mkdir -p $out
22export expires="4000-01-01T00:00:00Z"
22export expires="4000-01-01T00:00:00Z"
23
23
overlays/default.nix+2
@@ -17,6 +17,7 @@ let
17 emscripten = import ./emscripten.nix;
17 emscripten = import ./emscripten.nix;
18 nix-prefetch-git-minimal = import ./nix-prefetch-git-minimal.nix;
18 nix-prefetch-git-minimal = import ./nix-prefetch-git-minimal.nix;
19 gobject-introspection = import ./gobject-introspection.nix;
19 gobject-introspection = import ./gobject-introspection.nix;
20+ shims = import ./shims.nix;
20 eval-on-current = import ./eval-on-current.nix;
21 eval-on-current = import ./eval-on-current.nix;
21 eval-on-build = import ./eval-on-build.nix;
22 eval-on-build = import ./eval-on-build.nix;
22 };
23 };
@@ -48,6 +49,7 @@ let
48 emscripten
49 emscripten
49 nix-prefetch-git-minimal
50 nix-prefetch-git-minimal
50 gobject-introspection
51 gobject-introspection
52+ shims
51 # Restore nixpkgs haskell and haskellPackages
53 # Restore nixpkgs haskell and haskellPackages
52 (_: prev: { inherit (prev.haskell-nix-prev) haskell haskellPackages; })
54 (_: prev: { inherit (prev.haskell-nix-prev) haskell haskellPackages; })
53 ];
55 ];
overlays/haskell.nix+2−1
@@ -218,7 +218,8 @@ final: prev: {
218 # dotCabalName anyway.
218 # dotCabalName anyway.
219 dotCabalName = "dot-cabal-" + allNames;
219 dotCabalName = "dot-cabal-" + allNames;
220 in
220 in
221+ # This is very big, and cheap to build: use runCommandLocal to prefer building it locally
221− final.evalPackages.runCommand dotCabalName { nativeBuildInputs = [ cabal-install ]; } ''
222+ final.evalPackages.runCommandLocal dotCabalName { nativeBuildInputs = [ cabal-install ]; } ''
222 mkdir -p $out/.cabal
223 mkdir -p $out/.cabal
223 cat <<EOF > $out/.cabal/config
224 cat <<EOF > $out/.cabal/config
224 ${final.lib.concatStrings (
225 ${final.lib.concatStrings (
overlays/shims.nixnew file+9
@@ -0,0 +1,9 @@
1+# Shims to make older versions of nixpkgs work
2+final: prev: {
3+ # nixpkgs 19.09 and older does not have runCommandLocal
4+ runCommandLocal = prev.runCommandLocal or (name: env:
5+ final.runCommand name ({
6+ preferLocalBuild = true;
7+ allowSubstitutes = false;
8+ } // env));
9+}