1{ lib, stdenv, fetchFromGitHub, perl }:
2
3stdenv.mkDerivation {
4 name = "perf-tools-20150723";
5
6 src = fetchFromGitHub {
7 owner = "brendangregg";
8 repo = "perf-tools";
9 rev = "80e25785e16acfbc0f048cae86a69006fa45148d";
10 sha256 = "13g98vqwy50yf2h0w6iav80kzwfz29mvnjw8akbjv4v36r9hcb69";
11 };
12
13 buildInputs = [ perl ];
14
15 patchPhase =
16 ''
17 for i in execsnoop iolatency iosnoop kernel/funcslower killsnoop opensnoop; do
18 substituteInPlace $i \
19 --replace /usr/bin/gawk "$(type -p gawk)" \
20 --replace /usr/bin/mawk /no-such-path \
21 --replace /usr/bin/getconf "$(type -p getconf)" \
22 --replace awk=awk "awk=$(type -p gawk)"
23 done
24
25 rm -rf examples deprecated
26 '';
27
28 installPhase =
29 ''
30 d=$out/libexec/perf-tools
31 mkdir -p $d $out/share
32 cp -prvd . $d/
33 ln -s $d/bin $out/bin
34 mv $d/man $out/share/
35 '';
36
37 meta = {
38 platforms = lib.platforms.linux;
39 homepage = https://github.com/brendangregg/perf-tools;
40 description = "Performance analysis tools based on Linux perf_events (aka perf) and ftrace";
41 maintainers = [ lib.maintainers.eelco ];
42 };
43}