1{
2 lib,
3 buildGoModule,
4 fetchFromGitHub,
5}:
6buildGoModule rec {
7 pname = "ocb";
8 # Also update `pkgs/tools/misc/opentelemetry-collector/releases.nix`
9 # whenever that version changes.
10 version = "0.129.0";
11
12 src = fetchFromGitHub {
13 owner = "open-telemetry";
14 repo = "opentelemetry-collector";
15 rev = "cmd/builder/v${version}";
16 hash = "sha256-sKz4JWZUaprMY1kJNnX2Lrg4xM+y2MPulStKHfG/htg=";
17 };
18
19 sourceRoot = "${src.name}/cmd/builder";
20 vendorHash = "sha256-nKd+fq3wLT1Hebeu+VQhjs320xdykgJ95yhxKDuyVFY=";
21
22 env.CGO_ENABLED = 0;
23 ldflags = [
24 "-s"
25 "-w"
26 "-X go.opentelemetry.io/collector/cmd/builder/internal.version=${version}"
27 ];
28
29 # Some tests download new dependencies for a modified go.mod. Nix doesn't allow network access so skipping.
30 checkFlags = [
31 "-skip TestGenerateAndCompile|TestReplaceStatementsAreComplete|TestVersioning"
32 ];
33
34 # Rename to ocb (it's generated as "builder")
35 postInstall = ''
36 mv $out/bin/builder $out/bin/ocb
37 '';
38
39 meta = {
40 description = "OpenTelemetry Collector";
41 homepage = "https://github.com/open-telemetry/opentelemetry-collector.git";
42 changelog = "https://github.com/open-telemetry/opentelemetry-collector/blob/${src.rev}/CHANGELOG.md";
43 license = lib.licenses.asl20;
44 maintainers = with lib.maintainers; [ davsanchez ];
45 mainProgram = "ocb";
46 };
47}