about summary refs log tree commit diff
path: root/pkgs/by-name/pe
diff options
context:
space:
mode:
authorHenner Zeller <h.zeller@acm.org>2024-03-12 18:20:25 -0700
committerHenner Zeller <h.zeller@acm.org>2024-03-16 19:16:01 -0700
commit07224e8649edbf81c147c4ab5fa5a324642d04a0 (patch)
treefecbe3bbb86b88b493d806b502e8373b1b02cec5 /pkgs/by-name/pe
parent1024f715b8724cc5135e4aab8cc0e7aef0424d6c (diff)
perf_data_converter: init at unstable-2024-03-12
perf data converter is a utility program used by pprof to be able
to read linux perf.data files (and then display as tree,
flamegraph, ...).
Diffstat (limited to 'pkgs/by-name/pe')
-rw-r--r--pkgs/by-name/pe/perf_data_converter/package.nix63
1 files changed, 63 insertions, 0 deletions
diff --git a/pkgs/by-name/pe/perf_data_converter/package.nix b/pkgs/by-name/pe/perf_data_converter/package.nix
new file mode 100644
index 0000000000000..18b6704877ec1
--- /dev/null
+++ b/pkgs/by-name/pe/perf_data_converter/package.nix
@@ -0,0 +1,63 @@
+{
+  lib,
+  stdenv,
+  buildBazelPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  bazel_6,
+  jdk,
+  elfutils,
+  libcap,
+}:
+
+buildBazelPackage rec {
+  pname = "perf_data_converter";
+  version = "0-unstable-2024-03-12";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "perf_data_converter";
+    rev = "e1cfe1e7e5d8cf3b728a166bf02d4227c82801eb";
+    hash = "sha256-Y3tBLH2jf1f28o6RK2inq9FulKc66qcqwKmxYdFC5tA=";
+  };
+
+  bazel = bazel_6;
+  bazelFlags = [
+    "--java_runtime_version=local_jdk"
+    "--tool_java_runtime_version=local_jdk"
+  ];
+
+  fetchAttrs = {
+    sha256 = "sha256-IauQ4zEn9YHppLgW+4XjPv4N5IZlEkp//tE/Dy7k28s=";
+  };
+
+  nativeBuildInputs = [ jdk ];
+
+  buildInputs = [
+    elfutils
+    libcap
+  ];
+
+  removeRulesCC = false;
+
+  bazelBuildFlags = [ "-c opt" ];
+  bazelTargets = [ "src:perf_to_profile" ];
+
+  bazelTestTargets = [ "src:all" ];
+
+  buildAttrs = {
+    installPhase = ''
+      runHook preInstall
+      install -Dm555 -t "$out/bin" bazel-bin/src/perf_to_profile
+      runHook postInstall
+    '';
+  };
+
+  meta = with lib; {
+    description = "Tool to convert Linux perf files to the profile.proto format used by pprof";
+    homepage = "https://github.com/google/perf_data_converter";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ hzeller ];
+    platforms = platforms.linux;
+  };
+}