about summary refs log tree commit diff
path: root/pkgs/tools/networking/dd-agent
diff options
context:
space:
mode:
authorStanisław Pitucha <viraptor@gmail.com>2022-04-28 11:01:27 +1000
committerStanisław Pitucha <stan.pitucha@envato.com>2022-06-29 09:57:41 +1000
commit95a7f0244aa8b935d84e4a3b7ee8090ce9c00caa (patch)
tree807a01f8f8278827839b6c5155df48bd780fac1e /pkgs/tools/networking/dd-agent
parent1d6c1ed50733cacd5e667ab4b52d03ba2c366c44 (diff)
datadog-agent: make systemd optional
Allow compiling without systemd support and disable that by default on
non-Linux platforms. This allows compiling the agent on Darwin.
Diffstat (limited to 'pkgs/tools/networking/dd-agent')
-rw-r--r--pkgs/tools/networking/dd-agent/datadog-agent.nix48
1 files changed, 34 insertions, 14 deletions
diff --git a/pkgs/tools/networking/dd-agent/datadog-agent.nix b/pkgs/tools/networking/dd-agent/datadog-agent.nix
index 3d00596dd30ba..fa129b06a667e 100644
--- a/pkgs/tools/networking/dd-agent/datadog-agent.nix
+++ b/pkgs/tools/networking/dd-agent/datadog-agent.nix
@@ -1,4 +1,15 @@
-{ lib, buildGoModule, makeWrapper, fetchFromGitHub, pythonPackages, pkg-config, systemd, hostname, extraTags ? [] }:
+{ lib
+, stdenv
+, buildGoModule
+, makeWrapper
+, fetchFromGitHub
+, pythonPackages
+, pkg-config
+, systemd
+, hostname
+, withSystemd ? stdenv.isLinux
+, extraTags ? [ ]
+}:
 
 let
   # keep this in sync with github.com/DataDog/agent-payload dependency
@@ -30,19 +41,28 @@ in buildGoModule rec {
 
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
-  buildInputs = [ systemd ];
+  buildInputs = lib.optionals withSystemd [ systemd ];
   PKG_CONFIG_PATH = "${python}/lib/pkgconfig";
 
-  preBuild = let
-    ldFlags = lib.concatStringsSep " " [
-      "-X ${goPackagePath}/pkg/version.Commit=${src.rev}"
-      "-X ${goPackagePath}/pkg/version.AgentVersion=${version}"
-      "-X ${goPackagePath}/pkg/serializer.AgentPayloadVersion=${payloadVersion}"
-      "-X ${goPackagePath}/pkg/collector/py.pythonHome=${python}"
-      "-r ${python}/lib"
-    ];
-  in ''
-    buildFlagsArray=( "-tags" "ec2 systemd cpython process log secrets ${lib.concatStringsSep " " extraTags}" "-ldflags" "${ldFlags}")
+  tags = [
+    "ec2"
+    "cpython"
+    "process"
+    "log"
+    "secrets"
+  ]
+  ++ lib.optionals withSystemd [ "systemd" ]
+  ++ extraTags;
+
+  ldflags = [
+    "-X ${goPackagePath}/pkg/version.Commit=${src.rev}"
+    "-X ${goPackagePath}/pkg/version.AgentVersion=${version}"
+    "-X ${goPackagePath}/pkg/serializer.AgentPayloadVersion=${payloadVersion}"
+    "-X ${goPackagePath}/pkg/collector/py.pythonHome=${python}"
+    "-r ${python}/lib"
+  ];
+
+  preBuild = ''
     # Keep directories to generate in sync with tasks/go.py
     go generate ./pkg/status ./cmd/agent/gui
   '';
@@ -66,7 +86,7 @@ in buildGoModule rec {
     cp -R $src/pkg/status/templates $out/share/datadog-agent
 
     wrapProgram "$out/bin/agent" \
-      --set PYTHONPATH "$out/${python.sitePackages}" \
+      --set PYTHONPATH "$out/${python.sitePackages}"'' + lib.optionalString withSystemd '' \
       --prefix LD_LIBRARY_PATH : ${lib.getLib systemd}/lib
   '';
 
@@ -77,6 +97,6 @@ in buildGoModule rec {
     '';
     homepage    = "https://www.datadoghq.com";
     license     = licenses.bsd3;
-    maintainers = with maintainers; [ thoughtpolice domenkozar rvl ];
+    maintainers = with maintainers; [ thoughtpolice domenkozar rvl viraptor ];
   };
 }