From b2d4cafe1f71b338f6c1d3d8b876e2de075f41db Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Sun, 19 Apr 2020 18:01:31 -0700 Subject: Separate haskell from other packages --- nix/haskell-packages.nix | 50 +++++++++++++++++++++++++++++++++++++ nix/nixpkgs.nix | 4 ++- nix/overlay.nix | 65 ------------------------------------------------ nix/sources.json | 12 +++++++++ nix/wemux.nix | 12 +++++++++ 5 files changed, 77 insertions(+), 66 deletions(-) create mode 100644 nix/haskell-packages.nix delete mode 100644 nix/overlay.nix create mode 100644 nix/wemux.nix diff --git a/nix/haskell-packages.nix b/nix/haskell-packages.nix new file mode 100644 index 0000000..b496cd4 --- /dev/null +++ b/nix/haskell-packages.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; + }; + }); + }; + }; +} diff --git a/nix/nixpkgs.nix b/nix/nixpkgs.nix index 246b8a8..a5d1640 100644 --- a/nix/nixpkgs.nix +++ b/nix/nixpkgs.nix @@ -3,8 +3,10 @@ let nixpkgs = import sources.nixpkgs { system = "x86_64-linux"; overlays = [ + (_: _: { inherit sources; }) (_: _: { niv = import sources.niv {}; }) - (import ./overlay.nix) + (import ./haskell-packages.nix) + (_: pkgs: { wemux = super.callPackage ./wemux.nix {}; }) ]; }; in nixpkgs diff --git a/nix/overlay.nix b/nix/overlay.nix deleted file mode 100644 index dcadf34..0000000 --- a/nix/overlay.nix +++ /dev/null @@ -1,65 +0,0 @@ -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; - }; - }); - }; - }; - wemux = super.stdenv.mkDerivation rec { - name = "wemux"; - version = "2020.04.03"; - src = super.pkgs.fetchFromGitHub { - owner = "zolrath"; - repo = "wemux"; - rev = "01c6541f8deceff372711241db2a13f21c4b210c"; - sha256 = "1y962nzvs7sf720pl3wa582l6irxc8vavd0gp4ag4243b2gs4qvm"; - }; - installPhase = '' - mkdir -p $out/bin - cp ${src}/wemux $out/bin - chmod +x $out/bin/wemux - ''; - }; -} diff --git a/nix/sources.json b/nix/sources.json index 841f308..76ad1f1 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -22,5 +22,17 @@ "type": "tarball", "url": "https://github.com/NixOS/nixpkgs/archive/b0c285807d6a9f1b7562ec417c24fa1a30ecc31a.tar.gz", "url_template": "https://github.com///archive/.tar.gz" + }, + "wemux": { + "branch": "master", + "description": "Multi-User Tmux Made Easy", + "homepage": "", + "owner": "zolrath", + "repo": "wemux", + "rev": "01c6541f8deceff372711241db2a13f21c4b210c", + "sha256": "1y962nzvs7sf720pl3wa582l6irxc8vavd0gp4ag4243b2gs4qvm", + "type": "tarball", + "url": "https://github.com/zolrath/wemux/archive/01c6541f8deceff372711241db2a13f21c4b210c.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" } } diff --git a/nix/wemux.nix b/nix/wemux.nix new file mode 100644 index 0000000..4972815 --- /dev/null +++ b/nix/wemux.nix @@ -0,0 +1,12 @@ +{ sources, stdenv }: + +stdenv.mkDerivation rec { + name = "wemux"; + version = "2020.04.03"; + src = sources.wemux; + installPhase = '' + mkdir -p $out/bin + cp ${src}/wemux $out/bin + chmod +x $out/bin/wemux + ''; +} -- cgit v1.2.3