python313Packages.traits: fix build (#373698)
[NixPkgs.git] / pkgs / development / tools / analysis / hotspot / default.nix
blobe5fda9a5927405a1c6b72f44d04cefadb2a41d2c
1 { lib
2 , stdenv
3 , binutils
4 , cmake
5 , extra-cmake-modules
6 , patchelfUnstable
7 , wrapQtAppsHook
8 , elfutils
9 , fetchFromGitHub
10 , kconfigwidgets
11 , kddockwidgets
12 , ki18n
13 , kio
14 , kitemmodels
15 , kitemviews
16 , konsole
17 , kparts
18 , kwindowsystem
19 , libelf
20 , linuxPackages
21 , qtbase
22 , qtsvg
23 , rustc-demangle
24 , syntax-highlighting
25 , threadweaver
26 , zstd
29 stdenv.mkDerivation rec {
30   pname = "hotspot";
31   version = "1.5.1";
33   src = fetchFromGitHub {
34     owner = "KDAB";
35     repo = "hotspot";
36     tag = "v${version}";
37     hash = "sha256-O2wp19scyHIwIY2AzKmPmorGXDH249/OhSg+KtzOYhI=";
38     fetchSubmodules = true;
39   };
41   nativeBuildInputs = [
42     cmake
43     extra-cmake-modules
44     # stable patchelf corrupts the binary
45     patchelfUnstable
46     wrapQtAppsHook
47   ];
49   buildInputs = [
50     (elfutils.override { enableDebuginfod = true; }) # perfparser needs to find debuginfod.h
51     kconfigwidgets
52     kddockwidgets
53     ki18n
54     kio
55     kitemmodels
56     kitemviews
57     konsole
58     kparts
59     kwindowsystem
60     libelf
61     qtbase
62     qtsvg
63     rustc-demangle
64     syntax-highlighting
65     threadweaver
66     zstd
67   ];
69   qtWrapperArgs = [
70     "--suffix PATH : ${lib.makeBinPath [ linuxPackages.perf binutils ]}"
71   ];
73   preFixup = ''
74     patchelf \
75       --add-rpath ${lib.makeLibraryPath [ rustc-demangle ]} \
76       --add-needed librustc_demangle.so \
77       $out/libexec/hotspot-perfparser
78   '';
80   meta = with lib; {
81     description = "GUI for Linux perf";
82     mainProgram = "hotspot";
83     longDescription = ''
84       hotspot is a GUI replacement for `perf report`.
85       It takes a perf.data file, parses and evaluates its contents and
86       then displays the result in a graphical way.
87     '';
88     homepage = "https://github.com/KDAB/hotspot";
89     changelog = "https://github.com/KDAB/hotspot/releases/tag/v${version}";
90     license = with licenses; [ gpl2Only gpl3Only ];
91     platforms = platforms.linux;
92     maintainers = with maintainers; [ nh2 ];
93   };