sawtooth-haskell-protos/default.nix

94 lines
3.1 KiB
Nix
Raw Normal View History

2020-12-20 18:51:43 +03:00
{ sources ? import nix/sources.nix { inherit system; }
, nixpkgs ? import sources.nixpkgs { inherit system; }
, system ? builtins.currentSystem
2020-11-25 15:37:58 +03:00
}:
let
2020-12-20 18:51:43 +03:00
proto3-suite' = import sources.proto3-suite { };
proto3-suite =
if system == "x86_64-linux" then proto3-suite'.proto3-suite-linux
else if system == "x86_64-darwin" then proto3-suite'.proto3-suite-darwin
else abort "proto3-suite only supports x86_64-linux and x86_64-darwin at the moment :(";
2020-11-25 15:37:58 +03:00
sawtooth-haskell-protos-src = nixpkgs.stdenv.mkDerivation {
name = "sawtooth-haskell-protos-src";
2020-12-20 18:51:43 +03:00
buildInputs = [ proto3-suite ];
2020-11-25 15:37:58 +03:00
src = sources.sawtooth-core + "/protos";
buildPhase = ''
for f in *.proto
do
sed -i -e "/syntax = \"proto3\";/a package $(basename $f .proto);" -e 's/import "/import "data\/sawtooth\//' $f
done
mkdir -p data/sawtooth
mv *.proto data/sawtooth
for f in data/sawtooth/**.proto
do
compile-proto-file --includeDir data/sawtooth --includeDir $(pwd) --proto $f --out out/src
done
cp ${./package.yaml} out/package.yaml
'';
installPhase = ''
mkdir $out
cp -a out/. $out/
'';
};
sawtooth-haskell-protos =
nixpkgs.haskellPackages.callCabal2nix "sawtooth-haskell-protos" sawtooth-haskell-protos-src { };
sawtooth-haskell-protos-overlay = hself: hsuper: {
sawtooth-haskell-protos = hsuper.callCabal2nix "sawtooth-haskell-protos" sawtooth-haskell-protos-src { };
2020-11-25 22:34:50 +03:00
haskell-src = nixpkgs.haskell.lib.doJailbreak (hsuper.callHackageDirect
2020-11-25 15:37:58 +03:00
{
pkg = "haskell-src";
ver = "1.0.3.1";
sha256 = "11s2qnnhchcbi6szvcglv4xxz3l6zw9w3pziycpwrigjvpigymd2";
2020-11-25 22:34:50 +03:00
} { }
);
2020-11-25 15:37:58 +03:00
insert-ordered-containers = hsuper.callHackageDirect
{
pkg = "insert-ordered-containers";
ver = "0.2.3.1";
sha256 = "0zxxjwzcsyc7a572f584w83aqygdc3q05pfarghj2v437nsnap29";
} { };
swagger2 = hsuper.callHackageDirect
{
pkg = "swagger2";
ver = "2.6";
sha256 = "0x0s34q9bmrik0vmzpc08r4jq5kbpb8x7h19ixhaakiafpjfm59l";
} { };
proto3-suite = nixpkgs.haskell.lib.dontCheck (hsuper.callHackageDirect
{
pkg = "proto3-suite";
ver = "0.4.0.2";
sha256 = "11bppmb524q6qvgyddi9s7pf1n1zs4ypqkqs2qb6i8nsgmxndd1l";
} { }
);
proto3-wire = hsuper.callHackageDirect
{
pkg = "proto3-wire";
ver = "1.2.0";
sha256 = "1jqz6zsli5zvlissy7mkgyrzkapjvgijx7kjva4fxjwdyd0hqix7";
} { };
http-media = nixpkgs.haskell.lib.doJailbreak (hsuper.callHackageDirect
{
pkg = "http-media";
ver = "0.8.0.0";
sha256 = "080xkljq1iq0i8wagg8kbzbp523p2awa98wpn9i4ph1dq8y8346y";
} { }
);
2020-11-28 17:46:22 +03:00
parameterized = nixpkgs.haskell.lib.dontCheck (hsuper.callHackageDirect
{
pkg = "parameterized";
ver = "0.5.0.0";
sha256 = "sha256-FB3E0ChUG1x6uYE8fL7hcncS5Xg0mqNOxc7KlLhEdB0=";
} { }
);
2020-11-25 15:37:58 +03:00
};
in
{
inherit sawtooth-haskell-protos-src sawtooth-haskell-protos-overlay;
build = (nixpkgs.haskell.packages.ghc882.override {
overrides = sawtooth-haskell-protos-overlay;
}).sawtooth-haskell-protos;
}