diff options
Diffstat (limited to 'nix/haskell-overlay.nix')
-rw-r--r-- | nix/haskell-overlay.nix | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/nix/haskell-overlay.nix b/nix/haskell-overlay.nix new file mode 100644 index 0000000..b496cd4 --- /dev/null +++ b/nix/haskell-overlay.nix @@ -0,0 +1,50 @@ +self: super: + +let + claySrc = super.pkgs.fetchFromGitHub { + owner = "sebastiaanvisser"; + repo = "clay"; + rev = "cc7729b1b42a79e261091ff7835f7fc2a7ae3cee"; + sha256 = "1vd67976lvi5l4qq18zy6j44apynkl44ps04p8vwfx4gzr895dyp"; + }; + jsaddleSrc = super.pkgs.fetchFromGitHub { + owner = "ghcjs"; + repo = "jsaddle"; + rev = "1e39844"; + sha256 = "1qrjrjagmrrlcalys33636w5cb67db52i183masb7xd93wir8963"; + }; + misoSrc = super.pkgs.fetchFromGitHub { + owner = "dmjio"; + repo = "miso"; + rev = "1.5"; + sha256 = "00al7gw760vzzlqpf035k4n4li0rdymcjpxn184z9nc4m92cjv9z"; + }; +in { + haskell = super.haskell // { + packages = super.haskell.packages // { + ghc865 = super.haskell.packages.ghc865.override (old: { + overrides = with super.pkgs.haskell.lib; self: super: { + clay = self.callCabal2nix "clay" claySrc {}; + miso = self.callCabal2nix "miso" misoSrc {}; + wai-middleware-metrics = dontCheck super.wai-middleware-metrics; + }; + }); + ghcjs = super.haskell.packages.ghcjs.override (old: { + overrides = with super.haskell.lib; self: super: { + QuickCheck = dontCheck super.QuickCheck; + base-compat-batteries = dontCheck super.http-types; + clay = dontCheck (self.callCabal2nix "clay" claySrc {}); + comonad = dontCheck super.comonad; + jsaddle-warp = dontCheck (self.callCabal2nix "jsaddle-warp" "${jsaddleSrc}/jsaddle-warp" {}); + http-types = dontCheck super.http-types; + miso = self.callCabal2nix "miso" misoSrc {}; + network-uri= dontCheck super.network-uri; + scientific = dontCheck super.scientific; # takes forever + servant = dontCheck super.servant; + tasty-quickcheck = dontCheck super.tasty-quickcheck; + time-compat = dontCheck super.time-compat; + }; + }); + }; + }; +} |