feat(proto): Add protobuf & gRPC dependencies via external
Moves the Protobuf & gRPC dependencies to a separate file which uses buildGo.external to build the dependencies. The versions are pinned at master of 2019-11-26.
This commit is contained in:
parent
8b6b08b814
commit
d3e8774a8e
2 changed files with 74 additions and 12 deletions
14
buildGo.nix
14
buildGo.nix
|
|
@ -123,18 +123,8 @@ let
|
||||||
paths = [ gopathSrc gopathPkg ];
|
paths = [ gopathSrc gopathPkg ];
|
||||||
}) // { goDeps = uniqueDeps; };
|
}) // { goDeps = uniqueDeps; };
|
||||||
|
|
||||||
# Protobuf & gRPC integration requires these dependencies:
|
protoLibs = import ./proto.nix {
|
||||||
proto-go-src = fetchFromGitHub {
|
inherit external;
|
||||||
owner = "golang";
|
|
||||||
repo = "protobuf";
|
|
||||||
rev = "ed6926b37a637426117ccab59282c3839528a700";
|
|
||||||
sha256 = "0fynqrim022x9xi2bivkw19npbz4316v4yr7mb677s9s36z4dc4h";
|
|
||||||
};
|
|
||||||
|
|
||||||
goProto = external {
|
|
||||||
path = "github.com/golang/protobuf";
|
|
||||||
src = proto-go-src;
|
|
||||||
deps = [];
|
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
# Only the high-level builder functions are exposed
|
# Only the high-level builder functions are exposed
|
||||||
|
|
|
||||||
72
proto.nix
Normal file
72
proto.nix
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
# Copyright 2019 Google LLC.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# This file provides derivations for the dependencies of a gRPC
|
||||||
|
# service in Go.
|
||||||
|
|
||||||
|
{ external }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (builtins) fetchGit map;
|
||||||
|
in rec {
|
||||||
|
goProto = external {
|
||||||
|
path = "github.com/golang/protobuf";
|
||||||
|
src = fetchGit {
|
||||||
|
url = "https://github.com/golang/protobuf";
|
||||||
|
rev = "ed6926b37a637426117ccab59282c3839528a700";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xnet = external {
|
||||||
|
path = "golang.org/x/net";
|
||||||
|
srcOnly = true;
|
||||||
|
deps = [ xtext ];
|
||||||
|
src = fetchGit {
|
||||||
|
url = "https://go.googlesource.com/net";
|
||||||
|
rev = "ffdde105785063a81acd95bdf89ea53f6e0aac2d";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xsys = external {
|
||||||
|
path = "golang.org/x/sys";
|
||||||
|
srcOnly = true;
|
||||||
|
src = fetchGit {
|
||||||
|
url = "https://go.googlesource.com/sys";
|
||||||
|
rev = "bd437916bb0eb726b873ee8e9b2dcf212d32e2fd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xtext = external {
|
||||||
|
path = "golang.org/x/text";
|
||||||
|
srcOnly = true;
|
||||||
|
src = fetchGit {
|
||||||
|
url = "https://go.googlesource.com/text";
|
||||||
|
rev = "cbf43d21aaebfdfeb81d91a5f444d13a3046e686";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
genproto = external {
|
||||||
|
path = "google.golang.org/genproto";
|
||||||
|
srcOnly = true;
|
||||||
|
src = fetchGit {
|
||||||
|
url = "https://github.com/google/go-genproto";
|
||||||
|
rev = "83cc0476cb11ea0da33dacd4c6354ab192de6fe6";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
goGrpc = external {
|
||||||
|
path = "google.golang.org/grpc";
|
||||||
|
deps = [ goProto xnet xsys genproto ];
|
||||||
|
|
||||||
|
src = fetchGit {
|
||||||
|
url = "https://github.com/grpc/grpc-go";
|
||||||
|
rev = "d8e3da36ac481ef00e510ca119f6b68177713689";
|
||||||
|
};
|
||||||
|
|
||||||
|
targets = [
|
||||||
|
"."
|
||||||
|
"codes"
|
||||||
|
"status"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue