Files
nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix
sternenseemann 9ca9e6efff haskell.packages.ghc{94,96,98}: add missing ghc-experimental attr
There is no way to provide this package for those older versions of GHC,
but some packages take it as an input, so we need to have the attribute
to prevent callPackage from failing.
2026-02-26 13:01:24 +01:00

174 lines
5.3 KiB
Nix

{ pkgs, haskellLib }:
let
inherit (pkgs) fetchpatch lib;
in
with haskellLib;
self: super: {
# Disable GHC core libraries.
array = null;
base = null;
binary = null;
bytestring = null;
Cabal = null;
Cabal-syntax = 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;
system-cxx-std-lib = 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
doDistribute self.terminfo_0_4_1_7;
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 doDistribute self.xhtml_3000_4_0_0;
Win32 = null;
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# Becomes a core package in GHC >= 9.10
os-string = doDistribute self.os-string_2_0_10;
# Become core packages in GHC >= 9.10, no release compatible with GHC < 9.10 is available
ghc-experimental = null;
ghc-internal = null;
# Become core packages in GHC >= 9.10, but aren't uploaded to Hackage
ghc-toolchain = null;
ghc-platform = null;
# only broken for >= 9.6
calligraphy = doDistribute (unmarkBroken super.calligraphy);
# Jailbreaks & Version Updates
# hashable >= 1.5 needs base >= 4.18
hashable = self.hashable_1_4_7_0;
hashable-time = doJailbreak super.hashable-time;
libmpd = doJailbreak super.libmpd;
# generically needs base-orphans for 9.4 only
base-orphans = dontCheck (doDistribute super.base-orphans);
generically = addBuildDepends [
self.base-orphans
] super.generically;
# Needs base-orphans for GHC < 9.8 / base < 4.19
some = addBuildDepend self.base-orphans super.some;
# the dontHaddock is due to a GHC panic. might be this bug, not sure.
# https://gitlab.haskell.org/ghc/ghc/-/issues/21619
hedgehog = dontHaddock super.hedgehog;
hpack = overrideCabal (drv: {
# Cabal 3.6 seems to preserve comments when reading, which makes this test fail
# 2021-10-10: 9.2.1 is not yet supported (also no issue)
testFlags = [
"--skip=/Hpack/renderCabalFile/is inverse to readCabalFile/"
]
++ drv.testFlags or [ ];
}) (doJailbreak super.hpack);
# Later versions require unix >= 2.8 which is tricky to provide with GHC 9.4
crypton-x509-store = doDistribute self.crypton-x509-store_1_6_11;
# 2022-08-01: Tests are broken on ghc 9.2.4: https://github.com/wz1000/HieDb/issues/46
hiedb = dontCheck super.hiedb;
# Tests require skeletest which doesn't support GHC 9.4
toml-reader = dontCheck super.toml-reader;
# 2022-10-06: https://gitlab.haskell.org/ghc/ghc/-/issues/22260
ghc-check = dontHaddock super.ghc-check;
ghc-tags = doDistribute (doJailbreak self.ghc-tags_1_7); # aeson < 2.2
# ghc-lib >= 9.8 and friends no longer build with GHC 9.4 since they require semaphore-compat
ghc-lib-parser = doDistribute (
self.ghc-lib-parser_9_6_7_20250325.override {
happy = self.happy_1_20_1_1; # wants happy < 1.21
}
);
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_6_0_2;
ghc-lib = doDistribute (
self.ghc-lib_9_6_7_20250325.override {
happy = self.happy_1_20_1_1; # wants happy < 1.21
}
);
# Last version to not depend on file-io and directory-ospath-streaming,
# which both need unix >= 2.8.
tar = self.tar_0_6_3_0;
# A given major version of ghc-exactprint only supports one version of GHC.
ghc-exactprint = dontCheck super.ghc-exactprint_1_6_1_3;
# Too strict upper bound on template-haskell
# https://github.com/mokus0/th-extras/issues/18
th-extras = doJailbreak super.th-extras;
# https://github.com/kowainik/relude/issues/436
relude = dontCheck super.relude;
haddock-library = doJailbreak super.haddock-library;
path = self.path_0_9_5;
haskell-language-server =
lib.throwIf pkgs.config.allowAliases
"haskell-language-server has dropped support for ghc 9.4 in version 2.12.0.0, please use a newer ghc version or an older nixpkgs"
(markBroken super.haskell-language-server);
hlint = doDistribute self.hlint_3_6_1;
# directory-ospath-streaming requires the ospath API in core packages
# filepath, directory and unix.
stan = super.stan.override {
directory-ospath-streaming = null;
};
# Packages which need compat library for GHC < 9.6
inherit (lib.mapAttrs (_: addBuildDepends [ self.foldable1-classes-compat ]) super)
indexed-traversable
OneTuple
these
;
base-compat-batteries = addBuildDepends [
self.foldable1-classes-compat
self.OneTuple
] super.base-compat-batteries;
# Tests require nothunks < 0.3 (conflicting with Stackage) for GHC < 9.8
aeson = dontCheck super.aeson;
# Too strict lower bound on base
primitive-addr = doJailbreak super.primitive-addr;
}