nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ pkgs, haskellLib }:
2
3let
4 inherit (pkgs) lib;
5in
6
7with haskellLib;
8
9# cabal2nix doesn't properly add dependencies conditional on arch(javascript)
10
11(self: super: {
12 ghcjs-base = addBuildDepends (with self; [
13 aeson
14 attoparsec
15 dlist
16 hashable
17 primitive
18 scientific
19 unordered-containers
20 vector
21 ]) super.ghcjs-base;
22
23 ghcjs-dom = addBuildDepend self.ghcjs-dom-javascript super.ghcjs-dom;
24 ghcjs-dom-javascript = addBuildDepend self.ghcjs-base super.ghcjs-dom-javascript;
25 jsaddle = addBuildDepend self.ghcjs-base super.jsaddle;
26 jsaddle-dom = addBuildDepend self.ghcjs-base super.jsaddle-dom;
27 jsaddle-warp = overrideCabal (drv: {
28 libraryHaskellDepends = [ ];
29 testHaskellDepends = [ ];
30 }) super.jsaddle-warp;
31
32 entropy = addBuildDepend self.ghcjs-dom super.entropy;
33
34 # https://gitlab.haskell.org/ghc/ghc/-/issues/25083#note_578275
35 patch = haskellLib.disableParallelBuilding super.patch;
36 reflex-dom-core = haskellLib.disableParallelBuilding super.reflex-dom-core;
37
38 # Marked as dontDistribute in -common because of jsaddle-webkit2gtk
39 # which requires an unmaintained version of libsoup. Since this dep
40 # is unnecessary for the JS backend, we can re-enable these jobs here.
41 reflex-dom = doDistribute (
42 super.reflex-dom.override (drv: {
43 jsaddle-webkit2gtk = null;
44 })
45 );
46 reflex-localize-dom = doDistribute super.reflex-localize-dom;
47 trasa-reflex = doDistribute super.trasa-reflex;
48
49 miso-examples = pkgs.lib.pipe super.miso-examples [
50 (addBuildDepends (
51 with self;
52 [
53 aeson
54 ghcjs-base
55 jsaddle-warp
56 miso
57 servant
58 ]
59 ))
60 ];
61
62 # https://github.com/haskellari/splitmix/pull/75
63 splitmix = appendPatch (pkgs.fetchpatch {
64 url = "https://github.com/haskellari/splitmix/commit/7ffb3158f577c48ab5de774abea47767921ef3e9.patch";
65 sha256 = "sha256-n2q4FGf/pPcI1bhb9srHjHLzaNVehkdN6kQgL0F4MMg=";
66 }) super.splitmix;
67
68 # See https://gitlab.haskell.org/ghc/ghc/-/issues/26019#note_621324, without this flag the build OOMs
69 SHA = haskellLib.appendConfigureFlag "--ghc-option=-fignore-interface-pragmas" super.SHA;
70})