@@ -1,16 +1,30 @@
11{ sources ? import nix/sources.nix { inherit system; }
22, nixpkgs ? import sources.nixpkgs { inherit system; }
33, system ? builtins.currentSystem
4+, ghc ? "ghc8103"
45}:
56let
6− proto3-suite' = import sources.proto3-suite { };
7− proto3-suite =
8− if system == "x86_64-linux" then proto3-suite'.proto3-suite-linux
9− else if system == "x86_64-darwin" then proto3-suite'.proto3-suite-darwin
10− else abort "proto3-suite only supports x86_64-linux and x86_64-darwin at the moment :(";
7+ unbreak = x: x.overrideDerivation (_: {
8+ broken = false;
9+ });
10+ overrides = (hself: hsuper: {
11+ proto3-suite = nixpkgs.haskell.lib.dontCheck (nixpkgs.haskell.lib.doJailbreak (unbreak hsuper.proto3-suite));
12+ proto3-wire =
13+ hsuper.callHackageDirect
14+ {
15+ pkg = "proto3-wire";
16+ ver = "1.2.0";
17+ sha256 = "1jqz6zsli5zvlissy7mkgyrzkapjvgijx7kjva4fxjwdyd0hqix7";
18+ } { };
19+ haskell-src = nixpkgs.haskell.lib.doJailbreak (unbreak hsuper.haskell-src);
20+ parameterized = nixpkgs.haskell.lib.dontCheck (nixpkgs.haskell.lib.doJailbreak (unbreak hsuper.parameterized));
21+ });
22+ haskell = nixpkgs.haskell.packages.${ghc}.override {
23+ inherit overrides;
24+ };
1125 sawtooth-haskell-protos-src = nixpkgs.stdenv.mkDerivation {
1226 name = "sawtooth-haskell-protos-src";
13− buildInputs = [ proto3-suite ];
27+ buildInputs = [ haskell.proto3-suite ];
1428 src = sources.sawtooth-core + "/protos";
1529 buildPhase = ''
1630 for f in *.proto
@@ -35,59 +49,13 @@ let
3549 };
3650 sawtooth-haskell-protos =
3751 nixpkgs.haskellPackages.callCabal2nix "sawtooth-haskell-protos" sawtooth-haskell-protos-src { };
38− sawtooth-haskell-protos-overlay = hself: hsuper: {
52+ sawtooth-haskell-protos-overlay = nixpkgs.lib.composeExtensions overrides (hself: hsuper: {
3953 sawtooth-haskell-protos = hsuper.callCabal2nix "sawtooth-haskell-protos" sawtooth-haskell-protos-src { };
40− haskell-src = nixpkgs.haskell.lib.doJailbreak (hsuper.callHackageDirect
41− {
42− pkg = "haskell-src";
43− ver = "1.0.3.1";
44− sha256 = "11s2qnnhchcbi6szvcglv4xxz3l6zw9w3pziycpwrigjvpigymd2";
45− } { }
46− );
47− insert-ordered-containers = hsuper.callHackageDirect
48− {
49− pkg = "insert-ordered-containers";
50− ver = "0.2.3.1";
51− sha256 = "0zxxjwzcsyc7a572f584w83aqygdc3q05pfarghj2v437nsnap29";
52− } { };
53− swagger2 = hsuper.callHackageDirect
54− {
55− pkg = "swagger2";
56− ver = "2.6";
57− sha256 = "0x0s34q9bmrik0vmzpc08r4jq5kbpb8x7h19ixhaakiafpjfm59l";
58− } { };
59− proto3-suite = nixpkgs.haskell.lib.dontCheck (hsuper.callHackageDirect
60− {
61− pkg = "proto3-suite";
62− ver = "0.4.0.2";
63− sha256 = "11bppmb524q6qvgyddi9s7pf1n1zs4ypqkqs2qb6i8nsgmxndd1l";
64− } { }
65− );
66− proto3-wire = hsuper.callHackageDirect
67− {
68− pkg = "proto3-wire";
69− ver = "1.2.0";
70− sha256 = "1jqz6zsli5zvlissy7mkgyrzkapjvgijx7kjva4fxjwdyd0hqix7";
71− } { };
72− http-media = nixpkgs.haskell.lib.doJailbreak (hsuper.callHackageDirect
73− {
74− pkg = "http-media";
75− ver = "0.8.0.0";
76− sha256 = "080xkljq1iq0i8wagg8kbzbp523p2awa98wpn9i4ph1dq8y8346y";
77− } { }
78− );
79− parameterized = nixpkgs.haskell.lib.dontCheck (hsuper.callHackageDirect
80− {
81− pkg = "parameterized";
82− ver = "0.5.0.0";
83− sha256 = "sha256-FB3E0ChUG1x6uYE8fL7hcncS5Xg0mqNOxc7KlLhEdB0=";
84− } { }
85− );
86− };
54+ });
8755in
8856{
8957 inherit sawtooth-haskell-protos-src sawtooth-haskell-protos-overlay;
90− build = (nixpkgs.haskell.packages.ghc882.override {
58+ build = (nixpkgs.haskell.packages.${ghc}.override {
9159 overrides = sawtooth-haskell-protos-overlay;
9260 }).sawtooth-haskell-protos;
9361}