summaryrefslogtreecommitdiffstats
path: root/pkgs/development
diff options
context:
space:
mode:
authorDomen Kožar <domen@enlambda.com>2017-02-27 12:54:27 +0100
committerGitHub <noreply@github.com>2017-02-27 12:54:27 +0100
commite649974271addcee9f7368bcbb5048367fb6cb56 (patch)
tree10b030f14272726fe896074f576e9ca2443ce07b /pkgs/development
parent9a052a33b6fd52a9ec387925e01886119fab4a67 (diff)
parent98617ccb9938d37a73804e4eb3d03c06079d7595 (diff)
Merge pull request #22613 from shajra/fix/9871-3
Haskell infrastructure: fix #9871 (overrideCabal)
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/haskell-modules/default.nix9
-rw-r--r--pkgs/development/haskell-modules/lib.nix2
2 files changed, 5 insertions, 6 deletions
diff --git a/pkgs/development/haskell-modules/default.nix b/pkgs/development/haskell-modules/default.nix
index d2ecc3381287..15a4ed42e8c0 100644
--- a/pkgs/development/haskell-modules/default.nix
+++ b/pkgs/development/haskell-modules/default.nix
@@ -6,12 +6,13 @@
let
- inherit (stdenv.lib) fix' extends;
+ inherit (stdenv.lib) fix' extends makeOverridable;
+ inherit (import ./lib.nix { inherit pkgs; }) overrideCabal;
haskellPackages = self:
let
- mkDerivation = pkgs.callPackage ./generic-builder.nix {
+ mkDerivationImpl = pkgs.callPackage ./generic-builder.nix {
inherit stdenv;
inherit (pkgs) fetchurl pkgconfig glibcLocales coreutils gnugrep gnused;
jailbreak-cabal = if (self.ghc.cross or null) != null
@@ -37,9 +38,7 @@ let
});
};
- overrideCabal = drv: f: drv.override (args: args // {
- mkDerivation = drv: args.mkDerivation (drv // f drv);
- });
+ mkDerivation = makeOverridable mkDerivationImpl;
callPackageWithScope = scope: drv: args: (stdenv.lib.callPackageWith scope drv args) // {
overrideScope = f: callPackageWithScope (mkScope (fix' (extends f scope.__unfix__))) drv args;
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index cc9daf336b02..ab817b7b2a16 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -3,7 +3,7 @@
rec {
overrideCabal = drv: f: (drv.override (args: args // {
- mkDerivation = drv: args.mkDerivation (drv // f drv);
+ mkDerivation = drv: (args.mkDerivation drv).override f;
})) // {
overrideScope = scope: overrideCabal (drv.overrideScope scope) f;
};