nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ pkgs, haskellLib }:
2
3self: super:
4
5let
6 inherit (pkgs) lib;
7
8 warnAfterVersion =
9 ver: pkg:
10 lib.warnIf (lib.versionOlder ver
11 super.${pkg.pname}.version
12 ) "override for haskell.packages.ghc912.${pkg.pname} may no longer be needed" pkg;
13
14in
15
16with haskellLib;
17
18{
19 # Disable GHC core libraries
20 array = null;
21 base = null;
22 binary = null;
23 bytestring = null;
24 Cabal = null;
25 Cabal-syntax = null;
26 containers = null;
27 deepseq = null;
28 directory = null;
29 exceptions = null;
30 file-io = null;
31 filepath = null;
32 ghc-bignum = null;
33 ghc-boot = null;
34 ghc-boot-th = null;
35 ghc-compact = null;
36 ghc-experimental = null;
37 ghc-heap = null;
38 ghc-internal = null;
39 ghc-platform = null;
40 ghc-prim = null;
41 ghc-toolchain = null;
42 ghci = null;
43 haddock-api = null;
44 haddock-library = null;
45 haskeline = null;
46 hpc = null;
47 integer-gmp = null;
48 mtl = null;
49 os-string = null;
50 parsec = null;
51 pretty = null;
52 process = null;
53 rts = null;
54 semaphore-compat = null;
55 stm = null;
56 system-cxx-std-lib = null;
57 template-haskell = null;
58 # GHC only builds terminfo if it is a native compiler
59 terminfo =
60 if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
61 null
62 else
63 haskellLib.doDistribute self.terminfo_0_4_1_7;
64 text = null;
65 time = null;
66 transformers = null;
67 unix = null;
68 xhtml = null;
69 Win32 = null;
70
71 #
72 # Hand pick versions that are compatible with ghc 9.12 and base 4.21
73 #
74
75 extensions = doDistribute self.extensions_0_1_1_0;
76 ghc-exactprint = doDistribute self.ghc-exactprint_1_12_0_0;
77
78 #
79 # Jailbreaks
80 #
81
82 large-generics = doJailbreak super.large-generics; # base <4.20
83 cpphs = overrideCabal (drv: {
84 # jail break manually the conditional dependencies
85 postPatch = ''
86 sed -i 's/time >=1.5 \&\& <1.13/time >=1.5 \&\& <=1.14/g' cpphs.cabal
87 '';
88 }) super.cpphs;
89 cabal-install-parsers = doJailbreak super.cabal-install-parsers; # base, Cabal-syntax, etc.
90 ghc-exactprint_1_12_0_0 = addBuildDepends [
91 # somehow buildDepends was missing
92 self.Diff
93 self.extra
94 self.ghc-paths
95 self.silently
96 self.syb
97 self.HUnit
98 ] super.ghc-exactprint_1_12_0_0;
99 timezone-series = doJailbreak super.timezone-series; # time <1.14
100 timezone-olson = doJailbreak super.timezone-olson; # time <1.14
101 cabal-plan = doJailbreak super.cabal-plan; # base <4.21
102 decimal-literals = doJailbreak super.decimal-literals; # base <4.21
103 matrix-client = doJailbreak super.matrix-client; # time <1.13
104 patat = doJailbreak super.patat; # time <1.13
105 puresat = doJailbreak super.puresat; # base <4.21
106 dbus = doJailbreak super.dbus; # template-haskell <2.23
107 xmobar = doJailbreak super.xmobar; # base <4.21
108
109 #
110 # Test suite issues
111 #
112
113 relude = dontCheck super.relude;
114
115 # https://gitlab.haskell.org/ghc/ghc/-/issues/25930
116 generic-lens = dontCheck super.generic-lens;
117
118 # Cabal 3.14 regression (incorrect datadir in tests): https://github.com/haskell/cabal/issues/10717
119 alex = overrideCabal (drv: {
120 preCheck = drv.preCheck or "" + ''
121 export alex_datadir="$(pwd)/data"
122 '';
123 }) super.alex;
124
125 # https://github.com/sjakobi/newtype-generics/pull/28/files
126 newtype-generics = warnAfterVersion "0.6.2" (doJailbreak super.newtype-generics);
127
128 # Test failure because of GHC bug:
129 # https://gitlab.haskell.org/ghc/ghc/-/issues/25937
130 # https://github.com/sol/interpolate/issues/20
131 interpolate = dontCheckIf (lib.versionOlder self.ghc.version "9.12.3") super.interpolate;
132}