summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/make-package-set.nix
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2017-09-10 15:36:48 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-01-02 21:00:13 -0500
commita224dfc2532fd3b06ba12bd81bd76f6cecb08d9d (patch)
tree987af15595383dcc62bfb3dd5e3b8b1cb2b39cd4 /pkgs/development/haskell-modules/make-package-set.nix
parenta5cc983c45fc8b2d0f6b7aa70f0f1911d35c1a13 (diff)
downloadnixlib-a224dfc2532fd3b06ba12bd81bd76f6cecb08d9d.tar
nixlib-a224dfc2532fd3b06ba12bd81bd76f6cecb08d9d.tar.gz
nixlib-a224dfc2532fd3b06ba12bd81bd76f6cecb08d9d.tar.bz2
nixlib-a224dfc2532fd3b06ba12bd81bd76f6cecb08d9d.tar.lz
nixlib-a224dfc2532fd3b06ba12bd81bd76f6cecb08d9d.tar.xz
nixlib-a224dfc2532fd3b06ba12bd81bd76f6cecb08d9d.tar.zst
nixlib-a224dfc2532fd3b06ba12bd81bd76f6cecb08d9d.zip
haskell infra: Fix cross as much as possible without changing hashes
Diffstat (limited to 'pkgs/development/haskell-modules/make-package-set.nix')
-rw-r--r--pkgs/development/haskell-modules/make-package-set.nix25
1 files changed, 15 insertions, 10 deletions
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix
index 7ac0ef509f41..448c6e0e4370 100644
--- a/pkgs/development/haskell-modules/make-package-set.nix
+++ b/pkgs/development/haskell-modules/make-package-set.nix
@@ -1,7 +1,10 @@
 # This expression takes a file like `hackage-packages.nix` and constructs
 # a full package set out of that.
 
-{ # package-set used for non-haskell dependencies (all of nixpkgs)
+{ # package-set used for build tools (all of nixpkgs)
+  buildPackages
+
+, # package-set used for non-haskell dependencies (all of nixpkgs)
   pkgs
 
 , # stdenv to use for building haskell packages
@@ -28,19 +31,21 @@
 self:
 
 let
+  inherit (stdenv) buildPlatform hostPlatform;
 
   inherit (stdenv.lib) fix' extends makeOverridable;
   inherit (haskellLib) overrideCabal;
 
+  buildHaskellPackages = if hostPlatform != buildPlatform
+                         then self.ghc.bootPkgs
+                         else self;
+
   mkDerivationImpl = pkgs.callPackage ./generic-builder.nix {
     inherit stdenv;
-    inherit (pkgs) fetchurl pkgconfig glibcLocales coreutils gnugrep gnused;
-    nodejs = pkgs.nodejs-slim;
-    jailbreak-cabal = if (self.ghc.cross or null) != null
-      then self.ghc.bootPkgs.jailbreak-cabal
-      else self.jailbreak-cabal;
+    nodejs = buildPackages.nodejs-slim;
+    inherit (buildHaskellPackages) jailbreak-cabal;
     inherit (self) ghc;
-    hscolour = overrideCabal self.hscolour (drv: {
+    hscolour = overrideCabal buildHaskellPackages.hscolour (drv: {
       isLibrary = false;
       doHaddock = false;
       hyperlinkSource = false;      # Avoid depending on hscolour for this build.
@@ -104,13 +109,13 @@ let
   haskellSrc2nix = { name, src, sha256 ? null }:
     let
       sha256Arg = if isNull sha256 then "--sha256=" else ''--sha256="${sha256}"'';
-    in pkgs.stdenv.mkDerivation {
+    in pkgs.buildPackages.stdenv.mkDerivation {
       name = "cabal2nix-${name}";
-      buildInputs = [ pkgs.haskellPackages.cabal2nix ];
+      nativeBuildInputs = [ pkgs.buildPackages.haskellPackages.cabal2nix ];
       preferLocalBuild = true;
       phases = ["installPhase"];
       LANG = "en_US.UTF-8";
-      LOCALE_ARCHIVE = pkgs.lib.optionalString pkgs.stdenv.isLinux "${pkgs.glibcLocales}/lib/locale/locale-archive";
+      LOCALE_ARCHIVE = pkgs.lib.optionalString buildPlatform.isLinux "${buildPackages.glibcLocales}/lib/locale/locale-archive";
       installPhase = ''
         export HOME="$TMP"
         mkdir -p "$out"