diff --git a/pkgs/development/haskell-modules/default.nix b/pkgs/development/haskell-modules/default.nix index 32fa46f111d..d68b10b386e 100644 --- a/pkgs/development/haskell-modules/default.nix +++ b/pkgs/development/haskell-modules/default.nix @@ -7,6 +7,8 @@ , configurationNix ? import ./configuration-nix.nix }: +self: # Provided by `callPackageWithSelf` + let inherit (stdenv.lib) extends makeExtensible; @@ -14,19 +16,15 @@ let haskellPackages = makePackageSet { package-set = initialPackages; - inherit ghc extensible-self; + extensible-self = self; + inherit ghc; }; commonConfiguration = configurationCommon { inherit pkgs; }; nixConfiguration = configurationNix { inherit pkgs; }; - extensible-self = makeExtensible - (extends overrides - (extends packageSetConfig - (extends compilerConfig - (extends commonConfiguration - (extends nixConfiguration haskellPackages))))); - -in - - extensible-self +in (extends overrides + (extends packageSetConfig + (extends compilerConfig + (extends commonConfiguration + (extends nixConfiguration haskellPackages))))) self diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c783b3cb916..30e9d327c6e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5481,9 +5481,7 @@ with pkgs; haskell = callPackage ./haskell-packages.nix { }; - haskellPackages = haskell.packages.ghc802.override { - overrides = config.haskellPackageOverrides or (self: super: {}); - }; + haskellPackages = haskell.packages.ghc802.extend (config.haskellPackageOverrides or (self: super: {})); inherit (haskellPackages) ghc; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 099e45f1022..36ae1979ba0 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1,4 +1,4 @@ -{ pkgs, callPackage, stdenv, buildPlatform, targetPlatform }: +{ pkgs, callPackage, callPackageWithSelf, stdenv, buildPlatform, targetPlatform }: let # These are attributes in compiler and packages that don't support integer-simple. integerSimpleExcludes = [ @@ -118,79 +118,79 @@ in rec { packages = { # Support for this compiler is broken, because it can't deal with directory-based package databases. - # ghc6104 = callPackage ../development/haskell-modules { ghc = compiler.ghc6104; }; - ghc6123 = callPackage ../development/haskell-modules { + # ghc6104 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc6104; }; + ghc6123 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc6123; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-6.12.x.nix { }; }; - ghc704 = callPackage ../development/haskell-modules { + ghc704 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc704; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.0.x.nix { }; }; - ghc722 = callPackage ../development/haskell-modules { + ghc722 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc722; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.2.x.nix { }; }; - ghc742 = callPackage ../development/haskell-modules { + ghc742 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc742; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.4.x.nix { }; }; - ghc763 = callPackage ../development/haskell-modules { + ghc763 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc763; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.6.x.nix { }; }; - ghc783 = callPackage ../development/haskell-modules { + ghc783 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc783; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.8.x.nix { }; }; - ghc784 = callPackage ../development/haskell-modules { + ghc784 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc784; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.8.x.nix { }; }; - ghc7102 = callPackage ../development/haskell-modules { + ghc7102 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc7102; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { }; }; - ghc7103 = callPackage ../development/haskell-modules { + ghc7103 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc7103; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { }; }; - ghc801 = callPackage ../development/haskell-modules { + ghc801 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc801; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.0.x.nix { }; }; - ghc802 = callPackage ../development/haskell-modules { + ghc802 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc802; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.0.x.nix { }; }; - ghc821 = callPackage ../development/haskell-modules { + ghc821 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc821; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.2.x.nix { }; }; - ghcHEAD = callPackage ../development/haskell-modules { + ghcHEAD = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghcHEAD; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { }; }; # TODO Support for multiple variants here - ghcCross = callPackage ../development/haskell-modules { + ghcCross = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghcHEAD.crossCompiler; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { }; }; - ghcCross821 = callPackage ../development/haskell-modules { + ghcCross821 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghc821.crossCompiler; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.2.x.nix { }; }; - ghcjs = callPackage ../development/haskell-modules { + ghcjs = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghcjs; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { }; packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { }; }; - ghcjsHEAD = callPackage ../development/haskell-modules { + ghcjsHEAD = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghcjsHEAD; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.0.x.nix { }; packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { }; }; - ghcHaLVM240 = callPackage ../development/haskell-modules { + ghcHaLVM240 = callPackageWithSelf ../development/haskell-modules { ghc = compiler.ghcHaLVM240; compilerConfig = callPackage ../development/haskell-modules/configuration-halvm-2.4.0.nix { }; };