about summary refs log tree commit diff
path: root/pkgs/by-name/pe
diff options
context:
space:
mode:
authorNick Cao <nickcao@nichi.co>2024-03-16 21:05:26 -0700
committerGitHub <noreply@github.com>2024-03-16 21:05:26 -0700
commit6a4db7015c3ef0e02e19cded789fdcabbc7edd3c (patch)
tree41de76d36c3a322e2bf5e46133bbc5e4032d937d /pkgs/by-name/pe
parentba5492f3b7a484e156f0546d5cb5ca3c359f94fc (diff)
parent07224e8649edbf81c147c4ab5fa5a324642d04a0 (diff)
Merge pull request #296072 from hzeller/feature-20240312-add-perf-to-profile
perf_data_converter: init at unstable-2024-03-12
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;
+  };
+}