nixpkgs-suyu/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
sternenseemann d7ff8061be haskellPackages: always inherit llvmPackages from ghc's passthru
This means we only have to update the llvmPackages attribute in one
place now and should prevent situations like with 8.6.5 where different
versions would be used in the package set compared to the compiler
build.

Drop comments in the configuration-ghc-X.Y.x.nix files as well, since
LLVM version isn't tied to the compiler minor version at
all (e. g. 8.10.2 and 8.10.7 have different support ranges).
2021-11-23 16:46:18 +01:00

199 lines
8 KiB
Nix

{ pkgs, haskellLib }:
with haskellLib;
self: super: {
llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
# Disable GHC 9.2.x 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;
terminfo = null;
text = null;
time = null;
transformers = null;
unix = null;
xhtml = null;
# Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/20594
tf-random = overrideCabal {
doHaddock = !pkgs.stdenv.isAarch64;
} super.tf-random;
aeson = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/aeson-1.5.6.0.patch";
sha256 = "07rk7f0lhgilxvbg2grpl1p5x25wjf9m7a0wqmi2jr0q61p9a0nl";
# The revision information is newer than that included in the patch
excludes = ["*.cabal"];
}) (doJailbreak super.aeson);
basement = overrideCabal (drv: {
# This is inside a conditional block so `doJailbreak` doesn't work
postPatch = "sed -i -e 's,<4.16,<4.17,' basement.cabal";
}) (appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/basement-0.0.12.patch";
sha256 = "0c8n2krz827cv87p3vb1vpl3v0k255aysjx9lq44gz3z1dhxd64z";
}) super.basement);
# Tests fail because of typechecking changes
conduit = dontCheck super.conduit;
cryptonite = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/cryptonite-0.29.patch";
sha256 = "1g48lrmqgd88hqvfq3klz7lsrpwrir2v1931myrhh6dy0d9pqj09";
}) super.cryptonite;
# cabal-install needs more recent versions of Cabal
cabal-install = (doJailbreak super.cabal-install).overrideScope (self: super: {
Cabal = self.Cabal_3_6_2_0;
});
doctest = dontCheck (doJailbreak super.doctest_0_18_2);
# Tests fail in GHC 9.2
extra = dontCheck super.extra;
# Jailbreaks & Version Updates
assoc = doJailbreak super.assoc;
async = doJailbreak super.async;
attoparsec = super.attoparsec_0_14_2;
base64-bytestring = doJailbreak super.base64-bytestring;
base-compat = self.base-compat_0_12_1;
base-compat-batteries = self.base-compat-batteries_0_12_1;
binary-instances = doJailbreak super.binary-instances;
binary-orphans = super.binary-orphans_1_0_2;
ChasingBottoms = doJailbreak super.ChasingBottoms;
constraints = doJailbreak super.constraints;
cpphs = overrideCabal (drv: { postPatch = "sed -i -e 's,time >=1.5 && <1.11,time >=1.5 \\&\\& <1.12,' cpphs.cabal";}) super.cpphs;
cryptohash-md5 = doJailbreak super.cryptohash-md5;
cryptohash-sha1 = doJailbreak super.cryptohash-sha1;
data-fix = doJailbreak super.data-fix;
dec = doJailbreak super.dec;
ed25519 = doJailbreak super.ed25519;
ghc-byteorder = doJailbreak super.ghc-byteorder;
ghc-lib = self.ghc-lib_9_2_1_20211101;
ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101;
ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1;
hackage-security = doJailbreak super.hackage-security;
hashable = super.hashable_1_4_0_0;
hashable-time = doJailbreak super.hashable-time_0_3;
hedgehog = doJailbreak super.hedgehog;
HTTP = overrideCabal (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; }) (doJailbreak super.HTTP);
integer-logarithms = overrideCabal (drv: { postPatch = "sed -i -e 's, <1.1, <1.3,' integer-logarithms.cabal"; }) (doJailbreak super.integer-logarithms);
indexed-traversable = doJailbreak super.indexed-traversable;
indexed-traversable-instances = doJailbreak super.indexed-traversable-instances;
lifted-async = doJailbreak super.lifted-async;
lukko = doJailbreak super.lukko;
network = super.network_3_1_2_5;
OneTuple = super.OneTuple_0_3_1;
parallel = doJailbreak super.parallel;
polyparse = overrideCabal (drv: { postPatch = "sed -i -e 's, <0.11, <0.12,' polyparse.cabal"; }) (doJailbreak super.polyparse);
primitive = doJailbreak super.primitive;
quickcheck-instances = super.quickcheck-instances_0_3_26_1;
regex-posix = doJailbreak super.regex-posix;
resolv = doJailbreak super.resolv;
semialign = super.semialign_1_2_0_1;
singleton-bool = doJailbreak super.singleton-bool;
scientific = doJailbreak super.scientific;
shelly = doJailbreak super.shelly;
split = doJailbreak super.split;
splitmix = doJailbreak super.splitmix;
tar = doJailbreak super.tar;
tasty-hedgehog = doJailbreak super.tasty-hedgehog;
tasty-hspec = doJailbreak super.tasty-hspec;
th-desugar = self.th-desugar_1_13;
these = doJailbreak super.these;
time-compat = doJailbreak super.time-compat_1_9_6_1;
type-equality = doJailbreak super.type-equality;
unordered-containers = doJailbreak super.unordered-containers;
vector = doJailbreak (dontCheck super.vector);
vector-binary-instances = doJailbreak super.vector-binary-instances;
# Upper bound on `hashable` is too restrictive
witherable = doJailbreak super.witherable;
zlib = doJailbreak super.zlib;
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);
# lens >= 5.1 supports 9.2.1
lens = super.lens_5_1;
# Syntax error in tests fixed in https://github.com/simonmar/alex/commit/84b29475e057ef744f32a94bc0d3954b84160760
alex = dontCheck super.alex;
# Apply patches from head.hackage.
language-haskell-extract = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/language-haskell-extract-0.2.4.patch";
sha256 = "0w4y3v69nd3yafpml4gr23l94bdhbmx8xky48a59lckmz5x9fgxv";
}) (doJailbreak super.language-haskell-extract);
haskell-src-meta = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/haskell-src-meta-0.8.7.patch";
sha256 = "013k8hpxac226j47cdzgdf9a1j91kmm0cvv7n8zwlajbj3y9bzjp";
}) (doJailbreak super.haskell-src-meta);
# Tests depend on `parseTime` which is no longer available
hourglass = dontCheck super.hourglass;
# 1.2.1 introduced support for GHC 9.2.1, stackage has 1.2.0
# The test suite indirectly depends on random, which leads to infinite recursion
random = dontCheck super.random_1_2_1;
# 0.16.0 introduced support for GHC 9.0.x, stackage has 0.15.0
memory = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/memory-0.16.0.patch";
sha256 = "1kjganx729a6xfgfnrb3z7q6mvnidl042zrsd9n5n5a3i76nl5nl";
}) super.memory_0_16_0;
# GHC 9.0.x doesn't like `import Spec (main)` in Main.hs
# https://github.com/snoyberg/mono-traversable/issues/192
mono-traversable = dontCheck super.mono-traversable;
# Disable tests pending resolution of
# https://github.com/Soostone/retry/issues/71
retry = dontCheck super.retry;
# Upper bound on `hashable` is too restrictive
semigroupoids = overrideCabal (drv: { postPatch = "sed -i -e 's,hashable >= 1.2.7.0 && < 1.4,hashable >= 1.2.7.0 \\&\\& < 1.5,' semigroupoids.cabal";}) super.semigroupoids;
# Tests have a circular dependency on quickcheck-instances
text-short = dontCheck super.text-short_0_1_4;
# hlint 3.3 needs a ghc-lib-parser newer than the one from stackage
hlint = super.hlint_3_3_4.overrideScope (self: super: {
ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101;
ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1;
});
}