hotspot: 1.4.1 -> 1.5.0

Staying on Qt5 for now, because Qt6 is missing features

K900 02e3075e 69724e0d

+39 -20
+39 -20
pkgs/development/tools/analysis/hotspot/default.nix
··· 1 1 { lib 2 - , mkDerivation 2 + , stdenv 3 + , binutils 3 4 , cmake 4 - , elfutils 5 5 , extra-cmake-modules 6 + , patchelfUnstable 7 + , wrapQtAppsHook 8 + , elfutils 6 9 , fetchFromGitHub 10 + , fetchpatch 7 11 , kconfigwidgets 12 + , kddockwidgets 8 13 , ki18n 9 14 , kio 10 15 , kitemmodels ··· 12 17 , kparts 13 18 , kwindowsystem 14 19 , libelf 20 + , linuxPackages 15 21 , qtbase 22 + , qtsvg 23 + , rustc-demangle 24 + , syntax-highlighting 16 25 , threadweaver 17 - , qtx11extras 18 26 , zstd 19 - , kddockwidgets 20 - , rustc-demangle 21 27 }: 22 28 23 - mkDerivation rec { 29 + stdenv.mkDerivation rec { 24 30 pname = "hotspot"; 25 - version = "1.4.1"; 31 + version = "1.5.0"; 26 32 27 33 src = fetchFromGitHub { 28 34 owner = "KDAB"; 29 35 repo = "hotspot"; 30 36 rev = "refs/tags/v${version}"; 31 - hash = "sha256-DW4R7+rnonmEMbCkNS7TGodw+3mEyHl6OlFK3kbG5HM="; 37 + hash = "sha256-FJkDPWqNwoWg/15tvMnwke7PVtWVuqT0gtJBFQE0qZ4="; 32 38 fetchSubmodules = true; 33 39 }; 34 40 41 + patches = [ 42 + # Backport stuck UI bug fix 43 + # FIXME: remove in next update 44 + (fetchpatch { 45 + url = "https://github.com/KDAB/hotspot/commit/7639dee8617dba9b88182c7ff4887e8d3714ac98.patch"; 46 + hash = "sha256-aAo9uEy+MBztMhnC5jB08moZBeRCENU22R39pqSBXOY="; 47 + }) 48 + ]; 49 + 35 50 nativeBuildInputs = [ 36 51 cmake 37 52 extra-cmake-modules 53 + # stable patchelf corrupts the binary 54 + patchelfUnstable 55 + wrapQtAppsHook 38 56 ]; 57 + 39 58 buildInputs = [ 40 59 (elfutils.override { enableDebuginfod = true; }) # perfparser needs to find debuginfod.h 41 60 kconfigwidgets 61 + kddockwidgets 42 62 ki18n 43 63 kio 44 64 kitemmodels ··· 47 67 kwindowsystem 48 68 libelf 49 69 qtbase 70 + qtsvg 71 + rustc-demangle 72 + syntax-highlighting 50 73 threadweaver 51 - qtx11extras 52 74 zstd 53 - kddockwidgets 54 - rustc-demangle 55 75 ]; 56 76 57 - # hotspot checks for the presence of third party libraries' 58 - # git directory to give a nice warning when you forgot to clone 59 - # submodules; but Nix clones them and removes .git (for reproducibility). 60 - # So we need to fake their existence here. 61 - postPatch = '' 62 - mkdir -p 3rdparty/{perfparser,PrefixTickLabels}/.git 63 - ''; 64 - 65 77 qtWrapperArgs = [ 66 - "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ rustc-demangle ]}" 78 + "--suffix PATH : ${lib.makeBinPath [ linuxPackages.perf binutils ]}" 67 79 ]; 80 + 81 + preFixup = '' 82 + patchelf \ 83 + --add-rpath ${lib.makeLibraryPath [ rustc-demangle ]} \ 84 + --add-needed librustc_demangle.so \ 85 + $out/libexec/hotspot-perfparser 86 + ''; 68 87 69 88 meta = with lib; { 70 89 description = "A GUI for Linux perf";