forked from tweag/jupyenv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhaskell-overlay.nix
69 lines (64 loc) · 2.46 KB
/
haskell-overlay.nix
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
_: pkgs:
let
ihaskellSrc = pkgs.fetchFromGitHub {
owner = "gibiansky";
repo = "IHaskell";
rev = "ef698157f44960566687a308e3455b5ba031eb43";
sha256 = "1y054m6fndsjiypsjgmipmhbpp3spj3fw1x53z4qrixkl43mz3mi";
};
overrides = self: hspkgs:
let
callDisplayPackage = name:
hspkgs.callCabal2nix
"ihaskell-${name}"
"${ihaskellSrc}/ihaskell-display/ihaskell-${name}"
{};
dontCheck = pkgs.haskell.lib.dontCheck;
dontHaddock = pkgs.haskell.lib.dontHaddock;
in
{
ihaskell = pkgs.haskell.lib.overrideCabal
(hspkgs.callCabal2nix "ihaskell" ihaskellSrc {})
(_drv: {
preCheck = ''
export HOME=$(${pkgs.pkgs.coreutils}/bin/mktemp -d)
export PATH=$PWD/dist/build/ihaskell:$PATH
export GHC_PACKAGE_PATH=$PWD/dist/package.conf.inplace/:$GHC_PACKAGE_PATH
'';
configureFlags = (_drv.configureFlags or []) ++ [
# otherwise the tests are agonisingly slow and the kernel times out
"--enable-executable-dynamic"
];
doHaddock = false;
});
ghc-parser = hspkgs.callCabal2nix "ghc-parser" "${ihaskellSrc}/ghc-parser" {};
ipython-kernel = hspkgs.callCabal2nix "ipython-kernel" "${ihaskellSrc}/ipython-kernel" {};
ihaskell-aeson = callDisplayPackage "aeson";
ihaskell-blaze = callDisplayPackage "blaze";
ihaskell-charts = callDisplayPackage "charts";
ihaskell-diagrams = callDisplayPackage "diagrams";
ihaskell-gnuplot = callDisplayPackage "gnuplot";
ihaskell-graphviz = callDisplayPackage "graphviz";
ihaskell-hatex = callDisplayPackage "hatex";
ihaskell-juicypixels = callDisplayPackage "juicypixels";
ihaskell-magic = callDisplayPackage "magic";
ihaskell-plot = callDisplayPackage "plot";
ihaskell-rlangqq = callDisplayPackage "rlangqq";
ihaskell-static-canvas = callDisplayPackage "static-canvas";
ihaskell-widgets = callDisplayPackage "widgets";
# Marked as broken in this version of Nixpkgs.
#chell = hspkgs.callHackage "chell" "0.4.0.2" {};
#patience = hspkgs.callHackage "patience" "0.1.1" {};
# Tests not passing.
#Diff = dontCheck hspkgs.Diff;
#zeromq4-haskell = dontCheck hspkgs.zeromq4-haskell;
};
in
{
haskellPackages = pkgs.haskellPackages.override (old: {
overrides =
pkgs.lib.composeExtensions
(old.overrides or (_: _: {}))
overrides;
});
}