@@ -1,11 +1,35 @@
1−{ sources ? import nix/sources.nix
2−, nixpkgs ? import sources.nixpkgs { }
1+{ sources ? import nix/sources.nix { inherit system; }
2+, nixpkgs ? import sources.nixpkgs { inherit system; }
3+, system ? builtins.currentSystem
4+, ghc ? "ghc8103"
35}:
46let
5− proto3-suite = import sources.proto3-suite { };
7+ unbreak = x: x.overrideDerivation (_: {
8+ broken = false;
9+ });
10+ overrides = (hself: hsuper: {
11+ proto3-suite = nixpkgs.haskell.lib.dontCheck (
12+ nixpkgs.haskell.lib.doJailbreak (
13+ hsuper.callCabal2nix "proto3-suite"
14+ sources.proto3-suite { }
15+ )
16+ );
17+ proto3-wire =
18+ hsuper.callHackageDirect
19+ {
20+ pkg = "proto3-wire";
21+ ver = "1.2.0";
22+ sha256 = "1jqz6zsli5zvlissy7mkgyrzkapjvgijx7kjva4fxjwdyd0hqix7";
23+ } { };
24+ haskell-src = nixpkgs.haskell.lib.doJailbreak (unbreak hsuper.haskell-src);
25+ parameterized = nixpkgs.haskell.lib.dontCheck (nixpkgs.haskell.lib.doJailbreak (unbreak hsuper.parameterized));
26+ });
27+ haskell = nixpkgs.haskell.packages.${ghc}.override {
28+ inherit overrides;
29+ };
630 sawtooth-haskell-protos-src = nixpkgs.stdenv.mkDerivation {
731 name = "sawtooth-haskell-protos-src";
8− buildInputs = [ proto3-suite.proto3-suite ];
32+ buildInputs = [ haskell.proto3-suite ];
933 src = sources.sawtooth-core + "/protos";
1034 buildPhase = ''
1135 for f in *.proto
@@ -30,53 +54,13 @@ let
3054 };
3155 sawtooth-haskell-protos =
3256 nixpkgs.haskellPackages.callCabal2nix "sawtooth-haskell-protos" sawtooth-haskell-protos-src { };
33− sawtooth-haskell-protos-overlay = hself: hsuper: {
57+ sawtooth-haskell-protos-overlay = nixpkgs.lib.composeExtensions overrides (hself: hsuper: {
3458 sawtooth-haskell-protos = hsuper.callCabal2nix "sawtooth-haskell-protos" sawtooth-haskell-protos-src { };
35− haskell-src = nixpkgs.haskell.lib.doJailbreak (hsuper.callHackageDirect
36− {
37− pkg = "haskell-src";
38− ver = "1.0.3.1";
39− sha256 = "11s2qnnhchcbi6szvcglv4xxz3l6zw9w3pziycpwrigjvpigymd2";
40− } { }
41− );
42− insert-ordered-containers = hsuper.callHackageDirect
43− {
44− pkg = "insert-ordered-containers";
45− ver = "0.2.3.1";
46− sha256 = "0zxxjwzcsyc7a572f584w83aqygdc3q05pfarghj2v437nsnap29";
47− } { };
48− swagger2 = hsuper.callHackageDirect
49− {
50− pkg = "swagger2";
51− ver = "2.6";
52− sha256 = "0x0s34q9bmrik0vmzpc08r4jq5kbpb8x7h19ixhaakiafpjfm59l";
53− } { };
54− proto3-suite = nixpkgs.haskell.lib.dontCheck (hsuper.callHackageDirect
55− {
56− pkg = "proto3-suite";
57− ver = "0.4.0.2";
58− sha256 = "11bppmb524q6qvgyddi9s7pf1n1zs4ypqkqs2qb6i8nsgmxndd1l";
59− } { }
60− );
61− proto3-wire = hsuper.callHackageDirect
62− {
63− pkg = "proto3-wire";
64− ver = "1.2.0";
65− sha256 = "1jqz6zsli5zvlissy7mkgyrzkapjvgijx7kjva4fxjwdyd0hqix7";
66− } { };
67− http-media = nixpkgs.haskell.lib.doJailbreak (hsuper.callHackageDirect
68− {
69− pkg = "http-media";
70− ver = "0.8.0.0";
71− sha256 = "080xkljq1iq0i8wagg8kbzbp523p2awa98wpn9i4ph1dq8y8346y";
72− } { }
73− );
74− parameterized = nixpkgs.haskell.lib.dontCheck hsuper.parameterized;
75− };
59+ });
7660in
7761{
7862 inherit sawtooth-haskell-protos-src sawtooth-haskell-protos-overlay;
79− build = (nixpkgs.haskell.packages.ghc882.override {
63+ build = (nixpkgs.haskell.packages.${ghc}.override {
8064 overrides = sawtooth-haskell-protos-overlay;
8165 }).sawtooth-haskell-protos;
8266}