|
|
|
@ -1,18 +1,32 @@ |
|
|
|
|
{ stdenv, rustPlatform, fetchFromGitHub, lib}: |
|
|
|
|
{ stdenv, rustPlatform, fetchFromGitHub, lib, ruby, which}: |
|
|
|
|
rustPlatform.buildRustPackage rec { |
|
|
|
|
pname = "rbspy"; |
|
|
|
|
version = "0.11.1"; |
|
|
|
|
version = "0.12.1"; |
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = pname; |
|
|
|
|
repo = pname; |
|
|
|
|
rev = "v${version}"; |
|
|
|
|
sha256 = "sha256-9BeQHwwnirK5Wquj6Tal8yCU/NXZGaPjXZe3cy5m98s="; |
|
|
|
|
sha256 = "FnUUX7qQWVZMHtWvneTLzBL1YYwF8v4e1913Op4Lvbw="; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
cargoSha256 = "sha256-DHdfv6210wAkL9vXxLr76ejFWU/eV/q3lmgsYa5Rn54="; |
|
|
|
|
cargoSha256 = "98vmUoWSehX/9rMlHNSvKHJvJxW99pOhS08FI3OeLGo="; |
|
|
|
|
doCheck = true; |
|
|
|
|
|
|
|
|
|
# Tests in initialize.rs rely on specific PIDs being queried and attaching |
|
|
|
|
# tracing to forked processes, which don't work well with the isolated build. |
|
|
|
|
preCheck = '' |
|
|
|
|
substituteInPlace src/core/process.rs \ |
|
|
|
|
--replace /usr/bin/which '${which}/bin/which' |
|
|
|
|
substituteInPlace src/sampler/mod.rs \ |
|
|
|
|
--replace /usr/bin/which '${which}/bin/which' |
|
|
|
|
substituteInPlace src/core/initialize.rs \ |
|
|
|
|
--replace 'fn test_initialize_with_disallowed_process(' '#[ignore] fn test_initialize_with_disallowed_process(' \ |
|
|
|
|
--replace 'fn test_get_exec_trace(' '#[ignore] fn test_get_exec_trace(' \ |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ ruby which ]; |
|
|
|
|
|
|
|
|
|
meta = with lib; { |
|
|
|
|
broken = (stdenv.isLinux && stdenv.isAarch64); |
|
|
|
|
homepage = "https://rbspy.github.io/"; |
|
|
|
|