Unverified Commit 18bb485c authored by Aleksana's avatar Aleksana Committed by GitHub
Browse files

netdata: fix darwin; cleanup; 1.47.0 -> 1.47.1 (#341472)

parents 02e93845 f8726f98
Loading
Loading
Loading
Loading
+162 −87
Original line number Diff line number Diff line
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, makeWrapper
, CoreFoundation, IOKit, libossp_uuid
, nixosTests
, bash, curl, jemalloc, json_c, libuv, zlib, libyaml, libelf, libbpf
, libcap, libuuid, lm_sensors, protobuf
, go, buildGoModule, ninja
, withCups ? false, cups
, withDBengine ? true, lz4
, withIpmi ? (!stdenv.isDarwin), freeipmi
, withNetfilter ? (!stdenv.isDarwin), libmnl, libnetfilter_acct
, withCloud ? false
, withCloudUi ? false
, withConnPubSub ? false, google-cloud-cpp, grpc
, withConnPrometheus ? false, snappy
, withSsl ? true, openssl
, withSystemdJournal ? (!stdenv.isDarwin), systemd
, withDebug ? false
, withEbpf ? false
, withNetworkViewer ? (!stdenv.isDarwin)
{
  lib,
  stdenv,
  fetchFromGitHub,
  bash,
  buildGoModule,
  cmake,
  cups,
  curl,
  darwin,
  freeipmi,
  go,
  google-cloud-cpp,
  grpc,
  jemalloc,
  json_c,
  libbpf,
  libcap,
  libelf,
  libmnl,
  libnetfilter_acct,
  libossp_uuid,
  libuuid,
  libuv,
  libyaml,
  lm_sensors,
  lz4,
  makeWrapper,
  ninja,
  nixosTests,
  openssl,
  overrideSDK,
  pkg-config,
  protobuf,
  snappy,
  systemd,
  withCloud ? false,
  withCloudUi ? false,
  withConnPrometheus ? false,
  withConnPubSub ? false,
  withCups ? false,
  withDBengine ? true,
  withDebug ? false,
  withEbpf ? false,
  withIpmi ? (stdenv.isLinux),
  withNetfilter ? (stdenv.isLinux),
  withNetworkViewer ? (stdenv.isLinux),
  withSsl ? true,
  withSystemdJournal ? (stdenv.isLinux),
  zlib,
}:

stdenv.mkDerivation rec {
  version = "1.47.0";
let
  stdenv' = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
in
stdenv'.mkDerivation (finalAttrs: {
  version = "1.47.1";
  pname = "netdata";

  src = fetchFromGitHub {
    owner = "netdata";
    repo = "netdata";
    rev = "v${version}";
    hash = if withCloudUi
      then "sha256-eMapy4HQaEblDfZt2uVSfBWRlkstX7TxZDBgSv5bW/I="
    rev = "v${finalAttrs.version}";
    hash =
      if withCloudUi then
        "sha256-/iXmIjWpZ0s/LELZM7rYYQ9cjLNdfdisyOvDyLddSY4="
      # we delete the v2 GUI after fetching
      else "sha256-Gx7u3Owh/fVAnSw91xfdcmyx4m+bvQAvDaUxzXQ36/0=";
      else
        "sha256-pAqxxsWYgqbmF6wFBfTCYYc3x/Ufyz2Xs4bwB1ToHjo=";
    fetchSubmodules = true;

    # Remove v2 dashboard distributed under NCUL1. Make sure an empty
@@ -43,19 +78,53 @@ stdenv.mkDerivation rec {

  strictDeps = true;

  nativeBuildInputs = [ cmake pkg-config makeWrapper go ninja ]
    ++ lib.optionals withCups [ cups.dev ];
  nativeBuildInputs = [
    cmake
    pkg-config
    makeWrapper
    go
    ninja
  ] ++ lib.optionals withCups [ cups.dev ];
  # bash is only used to rewrite shebangs
  buildInputs = [ bash curl jemalloc json_c libuv zlib libyaml lm_sensors ]
    ++ lib.optionals stdenv.isDarwin [ CoreFoundation IOKit libossp_uuid ]
    ++ lib.optionals (!stdenv.isDarwin) [ libcap libuuid ]
  buildInputs =
    [
      bash
      curl
      jemalloc
      json_c
      libuv
      zlib
      libyaml
    ]
    ++ lib.optionals stdenv.isDarwin (
      with darwin.apple_sdk.frameworks;
      [
        CoreFoundation
        IOKit
        libossp_uuid
      ]
    )
    ++ lib.optionals (stdenv.isLinux) [
      libcap
      libuuid
      lm_sensors
    ]
    ++ lib.optionals withCups [ cups ]
    ++ lib.optionals withDBengine [ lz4 ]
    ++ lib.optionals withIpmi [ freeipmi ]
    ++ lib.optionals withNetfilter [ libmnl libnetfilter_acct ]
    ++ lib.optionals withConnPubSub [ google-cloud-cpp grpc ]
    ++ lib.optionals withNetfilter [
      libmnl
      libnetfilter_acct
    ]
    ++ lib.optionals withConnPubSub [
      google-cloud-cpp
      grpc
    ]
    ++ lib.optionals withConnPrometheus [ snappy ]
    ++ lib.optionals withEbpf [ libelf libbpf ]
    ++ lib.optionals withEbpf [
      libelf
      libbpf
    ]
    ++ lib.optionals (withCloud || withConnPrometheus) [ protobuf ]
    ++ lib.optionals withSystemdJournal [ systemd ]
    ++ lib.optionals withSsl [ openssl ];
@@ -79,10 +148,12 @@ stdenv.mkDerivation rec {
  donStrip = withDebug;
  env.NIX_CFLAGS_COMPILE = lib.optionalString withDebug "-O1 -ggdb -DNETDATA_INTERNAL_CHECKS=1";

  postInstall = ''
  postInstall =
    ''
      # Relocate one folder above.
      mv $out/usr/* $out/
  '' + lib.optionalString (!stdenv.isDarwin) ''
    ''
    + lib.optionalString (stdenv.isLinux) ''
      # rename this plugin so netdata will look for setuid wrapper
      mv $out/libexec/netdata/plugins.d/apps.plugin \
         $out/libexec/netdata/plugins.d/apps.plugin.org
@@ -112,7 +183,7 @@ stdenv.mkDerivation rec {
      ''}
    '';

  preConfigure = lib.optionalString (!stdenv.isDarwin) ''
  preConfigure = ''
    export GOCACHE=$TMPDIR/go-cache
    export GOPATH=$TMPDIR/go
    export GOSUMDB=off
@@ -120,7 +191,7 @@ stdenv.mkDerivation rec {
    substituteInPlace packaging/cmake/Modules/NetdataGoTools.cmake \
      --replace-fail \
        'GOPROXY=https://proxy.golang.org' \
        'GOPROXY=file://${passthru.netdata-go-modules}'
        'GOPROXY=file://${finalAttrs.passthru.netdata-go-modules}'

    # Prevent the path to be caught into the Nix store path.
    substituteInPlace CMakeLists.txt \
@@ -174,20 +245,25 @@ stdenv.mkDerivation rec {
  enableParallelBuild = true;

  passthru = rec {
    netdata-go-modules = (buildGoModule {
    netdata-go-modules =
      (buildGoModule {
        pname = "netdata-go-plugins";
      inherit version src;
        inherit (finalAttrs) version src;

      sourceRoot = "${src.name}/src/go/plugin/go.d";
        sourceRoot = "${finalAttrs.src.name}/src/go/plugin/go.d";

        vendorHash = "sha256-NZ1tg+lvXNgypqmjjb5f7dHH6DIA9VOa4PMM4eq11n0=";
        doCheck = false;
        proxyVendor = true;

      ldflags = [ "-s" "-w" "-X main.version=${version}" ];
        ldflags = [
          "-s"
          "-w"
          "-X main.version=${finalAttrs.version}"
        ];

        passthru.tests = tests;
      meta = meta // {
        meta = finalAttrs.meta // {
          description = "Netdata orchestrator for data collection modules written in Go";
          mainProgram = "godplugin";
          license = lib.licenses.gpl3Only;
@@ -198,13 +274,12 @@ stdenv.mkDerivation rec {
  };

  meta = with lib; {
    broken = stdenv.isDarwin || stdenv.buildPlatform != stdenv.hostPlatform || withEbpf;
    broken = stdenv.buildPlatform != stdenv.hostPlatform || withEbpf;
    description = "Real-time performance monitoring tool";
    homepage = "https://www.netdata.cloud/";
    changelog = "https://github.com/netdata/netdata/releases/tag/v${version}";
    license = [ licenses.gpl3Plus ]
      ++ lib.optionals (withCloudUi) [ licenses.ncul1 ];
    license = [ licenses.gpl3Plus ] ++ lib.optionals (withCloudUi) [ licenses.ncul1 ];
    platforms = platforms.unix;
    maintainers = [ ];
  };
}
})
+0 −1
Original line number Diff line number Diff line
@@ -9664,7 +9664,6 @@ with pkgs;
  nerdctl = callPackage ../applications/networking/cluster/nerdctl { };
  netdata = callPackage ../tools/system/netdata {
    inherit (darwin.apple_sdk.frameworks) CoreFoundation IOKit;
    protobuf = protobuf_21;
  };
  netdataCloud = netdata.override {