btrbk: add mainProgram
[NixPkgs.git] / pkgs / by-name / pp / pprof / package.nix
blob11dbc8595f1838552bdf4a1a189af6009bbd9050
1 { lib
2 , buildGoModule
3 , fetchFromGitHub
4 }:
6 buildGoModule rec {
7   pname = "pprof";
8   version = "0-unstable-2024-09-25";
10   src = fetchFromGitHub {
11     owner = "google";
12     repo = "pprof";
13     rev = "fa3061bff0bcf0d611f07dbdba73665bd2bbac97";
14     hash = "sha256-wUHCbgmJI3YTettVVrLnRPIexaHuAQDmbnHXPTLBBYM=";
15   };
17   postPatch = ''
18     rm -rf browsertests   # somewhat independent module to ignore.
19   '';
21   vendorHash = "sha256-oOjkjVb3OIGMwz3/85KTewXISpBZM3o1BfFG9aysFbo=";
23   meta = with lib; {
24     description = "Tool for visualization and analysis of profiling data";
25     homepage = "https://github.com/google/pprof";
26     license = licenses.asl20;
27     longDescription = ''
28       pprof reads a collection of profiling samples in profile.proto format and
29       generates reports to visualize and help analyze the data. It can generate
30       both text and graphical reports (through the use of the dot visualization
31       package).
33       profile.proto is a protocol buffer that describes a set of callstacks and
34       symbolization information. A common usage is to represent a set of sampled
35       callstacks from statistical profiling. The format is described on the
36       proto/profile.proto file. For details on protocol buffers, see
37       https://developers.google.com/protocol-buffers
39       Profiles can be read from a local file, or over http. Multiple profiles of
40       the same type can be aggregated or compared.
42       If the profile samples contain machine addresses, pprof can symbolize them
43       through the use of the native binutils tools (addr2line and nm).
45       This is not an official Google product.
46     '';
47     mainProgram = "pprof";
48     maintainers = with maintainers; [ hzeller ];
49   };