mirror of
https://github.com/ilyakooo0/haskell.nix.git
synced 2024-09-11 06:55:40 +03:00
Use runCommandLocal for dotCabal (#901)
This produces a pretty big store path (>1GB), and is very quick to build. Prefer building it locally.
This commit is contained in:
parent
b06fdfa065
commit
8c0b7c27b4
@ -17,7 +17,7 @@
|
||||
pkgs:
|
||||
{ name, index }:
|
||||
|
||||
pkgs.evalPackages.runCommand "hackage-repo-${name}" { nativeBuildInputs = [ pkgs.evalPackages.nix ]; } ''
|
||||
pkgs.evalPackages.runCommandLocal "hackage-repo-${name}" { nativeBuildInputs = [ pkgs.evalPackages.nix ]; } ''
|
||||
mkdir -p $out
|
||||
export expires="4000-01-01T00:00:00Z"
|
||||
|
||||
|
@ -17,6 +17,7 @@ let
|
||||
emscripten = import ./emscripten.nix;
|
||||
nix-prefetch-git-minimal = import ./nix-prefetch-git-minimal.nix;
|
||||
gobject-introspection = import ./gobject-introspection.nix;
|
||||
shims = import ./shims.nix;
|
||||
eval-on-current = import ./eval-on-current.nix;
|
||||
eval-on-build = import ./eval-on-build.nix;
|
||||
};
|
||||
@ -48,6 +49,7 @@ let
|
||||
emscripten
|
||||
nix-prefetch-git-minimal
|
||||
gobject-introspection
|
||||
shims
|
||||
# Restore nixpkgs haskell and haskellPackages
|
||||
(_: prev: { inherit (prev.haskell-nix-prev) haskell haskellPackages; })
|
||||
];
|
||||
|
@ -218,7 +218,8 @@ final: prev: {
|
||||
# dotCabalName anyway.
|
||||
dotCabalName = "dot-cabal-" + allNames;
|
||||
in
|
||||
final.evalPackages.runCommand dotCabalName { nativeBuildInputs = [ cabal-install ]; } ''
|
||||
# This is very big, and cheap to build: use runCommandLocal to prefer building it locally
|
||||
final.evalPackages.runCommandLocal dotCabalName { nativeBuildInputs = [ cabal-install ]; } ''
|
||||
mkdir -p $out/.cabal
|
||||
cat <<EOF > $out/.cabal/config
|
||||
${final.lib.concatStrings (
|
||||
|
9
overlays/shims.nix
Normal file
9
overlays/shims.nix
Normal file
@ -0,0 +1,9 @@
|
||||
# Shims to make older versions of nixpkgs work
|
||||
final: prev: {
|
||||
# nixpkgs 19.09 and older does not have runCommandLocal
|
||||
runCommandLocal = prev.runCommandLocal or (name: env:
|
||||
final.runCommand name ({
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
} // env));
|
||||
}
|
Loading…
Reference in New Issue
Block a user