Merge pull request #45348 from shlevy/shellFor-all-build-inputs

haskellPackages.shellFor: fix after recent getHaskellBuildInputs fix.
This commit is contained in:
Peter Simons 2018-09-02 16:11:43 +02:00 committed by GitHub
commit b35b8baddd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 8 deletions

@ -298,15 +298,18 @@ rec {
overrideSrc = drv: { src, version ? drv.version }:
overrideCabal drv (_: { inherit src version; editedCabalFile = null; });
# Get all of the build inputs of a haskell package, divided by category.
getBuildInputs = p:
(overrideCabal p (args: {
passthru = (args.passthru or {}) // {
_getBuildInputs = extractBuildInputs p.compiler args;
};
}))._getBuildInputs;
# Extract the haskell build inputs of a haskell package.
# This is useful to build environments for developing on that
# package.
getHaskellBuildInputs = p:
(overrideCabal p (args: {
passthru = (args.passthru or {}) // {
_getHaskellBuildInputs = (extractBuildInputs p.compiler args).haskellBuildInputs;
};
}))._getHaskellBuildInputs;
getHaskellBuildInputs = p: (getBuildInputs p).haskellBuildInputs;
# Under normal evaluation, simply return the original package. Under
# nix-shell evaluation, return a nix-shell optimized environment.

@ -38,7 +38,7 @@ let
inherit (stdenv) buildPlatform hostPlatform;
inherit (stdenv.lib) fix' extends makeOverridable;
inherit (haskellLib) overrideCabal getHaskellBuildInputs;
inherit (haskellLib) overrideCabal getBuildInputs;
mkDerivationImpl = pkgs.callPackage ./generic-builder.nix {
inherit stdenv;
@ -257,7 +257,7 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
shellFor = { packages, withHoogle ? false, ... } @ args:
let
selected = packages self;
packageInputs = builtins.map getHaskellBuildInputs selected;
packageInputs = builtins.map getBuildInputs selected;
haskellInputs =
builtins.filter
(input: pkgs.lib.all (p: input.outPath != p.outPath) selected)