shellFor: Don't suck in src to compare to deps. [Fixes #51079]

This commit is contained in:
Will Fancher 2019-01-29 16:26:29 -05:00
parent 7897dadbbf
commit 24ccaf65df

View file

@ -272,7 +272,10 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
# bash$ nix-shell --run "cabal new-build all"
shellFor = { packages, withHoogle ? false, ... } @ args:
let
selected = packages self;
nullSrc = p: overrideCabal p (_: { src = null; });
# Make sure we *never* accidentally suck in src.
selected = map nullSrc (packages self);
packageInputs = map getBuildInputs selected;
@ -284,7 +287,8 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
# because cabal will end up ignoring that built version, assuming
# new-style commands.
haskellInputs = pkgs.lib.filter
(input: pkgs.lib.all (p: input.outPath != p.outPath) selected)
# nullSrc in case a dep is one of the selected packages.
(input: pkgs.lib.all (p: (nullSrc input).outPath != p.outPath) selected)
(pkgs.lib.concatMap (p: p.haskellBuildInputs) packageInputs);
systemInputs = pkgs.lib.concatMap (p: p.systemBuildInputs) packageInputs;