nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
sternenseemann c145f7930d haskellPackages.hackage-db: downgrade to 2.1.0 if Cabal < 3.4
Stackage Nighly recently upgraded their version of hackage-db from 2.1.0
to 2.1.1. 2.1.1 had a compatibility fix for Cabal 3.4 [1]. However it
did not increase the version bound on Cabal nor fails to compile with
Cabal 3.2, so Stackage was able to update it.

Unfortunately hackage-db with Cabal 3.2 causes observable issues [2]
in cabal2nix, so we need to downgrade it for all compilers that still
ship a Cabal version < 3.4.

Also ideally we should update the constraints for hackage-db 2.1.0 and
hackage-db 2.1.1 on hackage. See also [3].

[1]: https://github.com/peti/hackage-db/pull/12
[2]: https://github.com/NixOS/cabal2nix/issues/501
[3]: https://github.com/peti/hackage-db/pull/14
2021-06-10 15:30:13 +02:00

95 lines
3.0 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ pkgs, haskellLib }:
with haskellLib;
self: super: {
# This compiler version needs llvm 9.x.
llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_9;
# Disable GHC 8.10.x core libraries.
array = null;
base = null;
binary = null;
bytestring = null;
Cabal = null;
containers = null;
deepseq = null;
directory = null;
exceptions = null;
filepath = 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;
# cabal-install needs more recent versions of Cabal and base16-bytestring.
cabal-install = super.cabal-install.overrideScope (self: super: {
Cabal = self.Cabal_3_4_0_0;
base16-bytestring = self.base16-bytestring_0_1_1_7;
});
# cabal-install-parsers is written for Cabal 3.4
cabal-install-parsers = super.cabal-install-parsers.override { Cabal = super.Cabal_3_4_0_0; };
# Jailbreak to fix the build.
base-noprelude = doJailbreak super.base-noprelude;
system-fileio = doJailbreak super.system-fileio;
unliftio-core = doJailbreak super.unliftio-core;
# Jailbreaking because monoidal-containers hasnt bumped it's base dependency for 8.10.
monoidal-containers = doJailbreak super.monoidal-containers;
# Jailbreak to fix the build.
brick = doJailbreak super.brick;
exact-pi = doJailbreak super.exact-pi;
serialise = doJailbreak super.serialise;
setlocale = doJailbreak super.setlocale;
shellmet = doJailbreak super.shellmet;
shower = doJailbreak super.shower;
# The shipped Setup.hs file is broken.
csv = overrideCabal super.csv (drv: { preCompileBuildDriver = "rm Setup.hs"; });
# Apply patch from https://github.com/finnsson/template-helper/issues/12#issuecomment-611795375 to fix the build.
language-haskell-extract = appendPatch (doJailbreak super.language-haskell-extract) (pkgs.fetchpatch {
name = "language-haskell-extract-0.2.4.patch";
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/e48738ee1be774507887a90a0d67ad1319456afc/patches/language-haskell-extract-0.2.4.patch?inline=false";
sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
});
# hnix 0.9.0 does not provide an executable for ghc < 8.10, so define completions here for now.
hnix = generateOptparseApplicativeCompletion "hnix"
(overrideCabal super.hnix (drv: {
# executable is allowed for ghc >= 8.10 and needs repline
executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
}));
# Break out of "Cabal < 3.2" constraint.
stylish-haskell = doJailbreak super.stylish-haskell;
# hackage-db 2.1.1 is incompatible with Cabal < 3.4
# See https://github.com/NixOS/cabal2nix/issues/501
hackage-db = super.hackage-db_2_1_0;
}