nixpkgs/pkgs/development/tools/async-profiler/default.nix

46 lines
1.4 KiB
Nix
Raw Normal View History

2021-03-11 12:26:08 +03:00
{ lib, stdenv, fetchFromGitHub, jdk8 }:
stdenv.mkDerivation rec {
pname = "async-profiler";
2021-04-04 19:04:48 +03:00
version = "1.8.5";
2021-03-11 12:26:08 +03:00
src = fetchFromGitHub {
owner = "jvm-profiling-tools";
repo = "async-profiler";
rev = "v${version}";
2021-04-04 19:04:48 +03:00
sha256 = "sha256-vSBueRNraMgLcaprPsBUriX3WZ7N0UrllnSVLL2F738=";
2021-03-11 12:26:08 +03:00
};
buildInputs = [ jdk8 ];
installPhase = ''
runHook preInstall
install -D "$src/profiler.sh" "$out/bin/async-profiler"
install -D build/jattach "$out/bin/jattach"
install -D build/libasyncProfiler.so "$out/lib/libasyncProfiler.so"
install -D -t "$out/share/java/" build/*.jar
runHook postInstall
'';
2021-05-08 02:55:37 +03:00
patches = [
# https://github.com/jvm-profiling-tools/async-profiler/pull/428
./0001-Fix-darwin-build.patch
];
2021-03-11 12:26:08 +03:00
fixupPhase = ''
substituteInPlace $out/bin/async-profiler \
--replace 'JATTACH=$SCRIPT_DIR/build/jattach' \
'JATTACH=${placeholder "out"}/bin/jattach' \
--replace 'PROFILER=$SCRIPT_DIR/build/libasyncProfiler.so' \
'PROFILER=${placeholder "out"}/lib/libasyncProfiler.so'
'';
meta = with lib; {
description = "A low overhead sampling profiler for Java that does not suffer from Safepoint bias problem";
homepage = "https://github.com/jvm-profiling-tools/async-profiler";
license = licenses.asl20;
maintainers = with maintainers; [ mschuwalow ];
platforms = platforms.all;
};
}