blob: 6fbb28d026eec8cad31d0ae6c0a1bf0b0470fee4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
{ pkgs }:
with import ./lib.nix { inherit pkgs; };
self: super: {
# LLVM is not supported on this GHC; use the latest one.
inherit (pkgs) llvmPackages;
inherit (pkgs.haskell-ng.packages.ghc7101) jailbreak-cabal alex happy;
# Many packages fail with:
# haddock: internal error: expectJust getPackageDetails
mkDerivation = drv: super.mkDerivation (drv // { doHaddock = false; });
# This is the list of packages that are built into a booted ghcjs installation
# It can be generated with the command:
# nix-shell '<nixpkgs>' -A pkgs.haskellPackages_ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1 = null;/'"
Cabal = null;
aeson = null;
array = null;
async = null;
attoparsec = null;
base = null;
binary = null;
rts = null;
bytestring = null;
case-insensitive = null;
containers = null;
deepseq = null;
directory = null;
dlist = null;
extensible-exceptions = null;
filepath = null;
ghc-prim = null;
ghcjs-base = null;
ghcjs-prim = null;
hashable = null;
integer-gmp = null;
mtl = null;
old-locale = null;
old-time = null;
parallel = null;
pretty = null;
primitive = null;
process = null;
scientific = null;
stm = null;
syb = null;
template-haskell = null;
text = null;
time = null;
transformers = null;
unix = null;
unordered-containers = null;
vector = null;
pqueue = overrideCabal super.pqueue (drv: {
patchPhase = ''
sed -i -e '12s|null|Data.PQueue.Internals.null|' Data/PQueue/Internals.hs
sed -i -e '64s|null|Data.PQueue.Internals.null|' Data/PQueue/Internals.hs
sed -i -e '32s|null|Data.PQueue.Internals.null|' Data/PQueue/Min.hs
sed -i -e '32s|null|Data.PQueue.Max.null|' Data/PQueue/Max.hs
sed -i -e '42s|null|Data.PQueue.Prio.Internals.null|' Data/PQueue/Prio/Min.hs
sed -i -e '42s|null|Data.PQueue.Prio.Max.null|' Data/PQueue/Prio/Max.hs
'';
});
transformers-compat = overrideCabal super.transformers-compat (drv: {
configureFlags = [];
});
dependent-map = overrideCabal super.dependent-map (drv: {
preConfigure = ''
sed -i 's/^.*trust base.*$//' *.cabal
'';
});
profunctors = overrideCabal super.profunctors (drv: {
preConfigure = ''
sed -i 's/^{-# ANN .* #-}//' src/Data/Profunctor/Unsafe.hs
'';
});
ghcjs-dom = overrideCabal super.ghcjs-dom (drv: {
buildDepends = [ self.base self.mtl self.text self.ghcjs-base ];
});
ghc-paths = overrideCabal super.ghc-paths (drv: {
patches = [ ./ghc-paths-nix-ghcjs.patch ];
});
reflex-dom = overrideCabal super.reflex-dom (drv: {
buildDepends = [
self.aeson self.base self.bytestring self.containers self.data-default
self.dependent-map self.dependent-sum self.ghcjs-dom self.lens self.mtl
self.ref-tf self.reflex self.safe self.semigroups self.text self.these
self.time self.transformers
];
});
}
|