In #12, I introduced a way for stacklock2nix to generate a completely new package set. Part of this includes creating an overlay that has the GHC boot packages set to null:
|
# An Nixpkgs Haskell overlay that has GHC boot packages set to `null`. This |
|
# is used as an initial overlay when creating a brand new package set. |
|
newPkgSetCompilerConfig = self: super: { |
|
# TODO: Should llvmPackages be enabled here? |
|
# llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages; |
|
|
|
# Disable GHC core libraries. |
|
array = null; |
|
base = null; |
|
binary = null; |
|
bytestring = null; |
|
Cabal = null; |
|
containers = null; |
|
deepseq = null; |
|
directory = null; |
|
exceptions = null; |
|
filepath = null; |
|
ghc-bignum = null; |
|
ghc-boot = null; |
|
ghc-boot-th = null; |
|
ghc-compact = null; |
|
ghc-heap = null; |
|
ghc-prim = null; |
|
ghci = null; |
|
haskeline = null; |
|
hpc = null; |
|
integer-gmp = null; |
|
libiserv = null; |
|
mtl = null; |
|
parsec = null; |
|
pretty = null; |
|
process = null; |
|
rts = null; |
|
stm = null; |
|
template-haskell = null; |
|
|
|
# GHC only builds terminfo if it is a native compiler |
|
# terminfo = if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then null else self.terminfo_0_4_1_5; |
|
terminfo = null; |
|
|
|
text = null; |
|
time = null; |
|
transformers = null; |
|
unix = null; |
|
|
|
# GHC only bundles the xhtml library if haddock is enabled, check if this is |
|
# still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463 |
|
# xhtml = if self.ghc.hasHaddock or true then null else self.xhtml_3000_2_2_1; |
|
xhtml = null; |
|
}; |
I think this overlay could likely be defined automatically, without it having to be hard-coded. Here's a function from Nixpkgs doing something similar:
NixOS/nixpkgs#217124
In #12, I introduced a way for stacklock2nix to generate a completely new package set. Part of this includes creating an overlay that has the GHC boot packages set to null:
stacklock2nix/nix/build-support/stacklock2nix/default.nix
Lines 661 to 710 in 79f2b1f
I think this overlay could likely be defined automatically, without it having to be hard-coded. Here's a function from Nixpkgs doing something similar:
NixOS/nixpkgs#217124