diff options
author | Domen Kožar <domen@enlambda.com> | 2017-02-27 12:54:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-27 12:54:27 +0100 |
commit | e649974271addcee9f7368bcbb5048367fb6cb56 (patch) | |
tree | 10b030f14272726fe896074f576e9ca2443ce07b /pkgs/development | |
parent | 9a052a33b6fd52a9ec387925e01886119fab4a67 (diff) | |
parent | 98617ccb9938d37a73804e4eb3d03c06079d7595 (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.nix | 9 | ||||
-rw-r--r-- | pkgs/development/haskell-modules/lib.nix | 2 |
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; }; |