diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2017-09-10 15:36:48 -0400 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2018-01-02 21:00:13 -0500 |
commit | a224dfc2532fd3b06ba12bd81bd76f6cecb08d9d (patch) | |
tree | 987af15595383dcc62bfb3dd5e3b8b1cb2b39cd4 /pkgs/development/haskell-modules/make-package-set.nix | |
parent | a5cc983c45fc8b2d0f6b7aa70f0f1911d35c1a13 (diff) | |
download | nixlib-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.nix | 25 |
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" |