hotspot: Use Qt 6, move to by-name, add kgraphviewer and qcustomplot dependencies (#412125)

authored by Peder Bergebakken Sundt and committed by GitHub fd531410 a1496bee

+119 -115
+111
pkgs/by-name/ho/hotspot/package.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + binutils, 5 + cmake, 6 + patchelfUnstable, 7 + elfutils, 8 + fetchFromGitHub, 9 + fetchpatch, 10 + kddockwidgets, 11 + kdePackages, 12 + libelf, 13 + linuxPackages, 14 + qt6, 15 + rustc-demangle, 16 + zstd, 17 + }: 18 + 19 + stdenv.mkDerivation rec { 20 + pname = "hotspot"; 21 + version = "1.5.1"; 22 + 23 + src = fetchFromGitHub { 24 + owner = "KDAB"; 25 + repo = "hotspot"; 26 + tag = "v${version}"; 27 + hash = "sha256-O2wp19scyHIwIY2AzKmPmorGXDH249/OhSg+KtzOYhI="; 28 + fetchSubmodules = true; 29 + }; 30 + 31 + nativeBuildInputs = [ 32 + cmake 33 + kdePackages.extra-cmake-modules 34 + # stable patchelf corrupts the binary 35 + patchelfUnstable 36 + qt6.wrapQtAppsHook 37 + ]; 38 + 39 + patches = [ 40 + # Fix build issue with Qt 6.9, can be removed in next release 41 + (fetchpatch { 42 + url = "https://github.com/KDAB/hotspot/pull/694/commits/5ef04c1dd60846b0d1746132e7e63289ee25f259.patch"; 43 + hash = "sha256-WYMM1/CY05fztSiRNZQ2Q16n5erjY+AE6gSQgSlb3HA="; 44 + }) 45 + ]; 46 + 47 + cmakeFlags = [ (lib.strings.cmakeBool "QT6_BUILD" true) ]; 48 + 49 + buildInputs = 50 + [ 51 + (elfutils.override { enableDebuginfod = true; }) # perfparser needs to find debuginfod.h 52 + kddockwidgets 53 + libelf 54 + qt6.qtbase 55 + qt6.qtsvg 56 + rustc-demangle 57 + zstd 58 + ] 59 + ++ (with kdePackages; [ 60 + kconfig 61 + kconfigwidgets 62 + kgraphviewer 63 + ki18n 64 + kio 65 + kitemmodels 66 + kitemviews 67 + konsole 68 + kparts 69 + kwindowsystem 70 + qcustomplot 71 + syntax-highlighting 72 + threadweaver 73 + ]); 74 + 75 + qtWrapperArgs = [ 76 + "--suffix PATH : ${ 77 + lib.makeBinPath [ 78 + linuxPackages.perf 79 + binutils 80 + ] 81 + }" 82 + ]; 83 + 84 + preFixup = '' 85 + patchelf \ 86 + --add-rpath ${lib.makeLibraryPath [ rustc-demangle ]} \ 87 + --add-needed librustc_demangle.so \ 88 + $out/libexec/hotspot-perfparser 89 + ''; 90 + 91 + meta = with lib; { 92 + description = "GUI for Linux perf"; 93 + mainProgram = "hotspot"; 94 + longDescription = '' 95 + hotspot is a GUI replacement for `perf report`. 96 + It takes a perf.data file, parses and evaluates its contents and 97 + then displays the result in a graphical way. 98 + ''; 99 + homepage = "https://github.com/KDAB/hotspot"; 100 + changelog = "https://github.com/KDAB/hotspot/releases/tag/v${version}"; 101 + license = with licenses; [ 102 + gpl2Only 103 + gpl3Only 104 + ]; 105 + platforms = platforms.linux; 106 + maintainers = with maintainers; [ 107 + nh2 108 + tmarkus 109 + ]; 110 + }; 111 + }
+8 -8
pkgs/development/libraries/kddockwidgets/default.nix pkgs/by-name/kd/kddockwidgets/package.nix
··· 3 3 stdenv, 4 4 fetchFromGitHub, 5 5 cmake, 6 - qtbase, 7 - qtdeclarative, 8 - qtquickcontrols2, 9 - qtx11extras, 6 + qt6, 10 7 spdlog, 11 8 fmt, 12 9 nlohmann_json, ··· 29 26 fmt 30 27 nlohmann_json 31 28 ]; 32 - propagatedBuildInputs = [ 29 + propagatedBuildInputs = with qt6; [ 33 30 qtbase 34 31 qtdeclarative 35 - qtquickcontrols2 36 - qtx11extras 37 32 ]; 33 + 34 + cmakeFlags = [ (lib.strings.cmakeBool "KDDockWidgets_QT6" true) ]; 38 35 39 36 dontWrapQtApps = true; 40 37 ··· 45 42 gpl2Only 46 43 gpl3Only 47 44 ]; 48 - maintainers = with maintainers; [ _1000teslas ]; 45 + maintainers = with maintainers; [ 46 + _1000teslas 47 + tmarkus 48 + ]; 49 49 }; 50 50 }
-103
pkgs/development/tools/analysis/hotspot/default.nix
··· 1 - { 2 - lib, 3 - stdenv, 4 - binutils, 5 - cmake, 6 - extra-cmake-modules, 7 - patchelfUnstable, 8 - wrapQtAppsHook, 9 - elfutils, 10 - fetchFromGitHub, 11 - kconfigwidgets, 12 - kddockwidgets, 13 - ki18n, 14 - kio, 15 - kitemmodels, 16 - kitemviews, 17 - konsole, 18 - kparts, 19 - kwindowsystem, 20 - libelf, 21 - linuxPackages, 22 - qtbase, 23 - qtsvg, 24 - rustc-demangle, 25 - syntax-highlighting, 26 - threadweaver, 27 - zstd, 28 - }: 29 - 30 - stdenv.mkDerivation rec { 31 - pname = "hotspot"; 32 - version = "1.5.1"; 33 - 34 - src = fetchFromGitHub { 35 - owner = "KDAB"; 36 - repo = "hotspot"; 37 - tag = "v${version}"; 38 - hash = "sha256-O2wp19scyHIwIY2AzKmPmorGXDH249/OhSg+KtzOYhI="; 39 - fetchSubmodules = true; 40 - }; 41 - 42 - nativeBuildInputs = [ 43 - cmake 44 - extra-cmake-modules 45 - # stable patchelf corrupts the binary 46 - patchelfUnstable 47 - wrapQtAppsHook 48 - ]; 49 - 50 - buildInputs = [ 51 - (elfutils.override { enableDebuginfod = true; }) # perfparser needs to find debuginfod.h 52 - kconfigwidgets 53 - kddockwidgets 54 - ki18n 55 - kio 56 - kitemmodels 57 - kitemviews 58 - konsole 59 - kparts 60 - kwindowsystem 61 - libelf 62 - qtbase 63 - qtsvg 64 - rustc-demangle 65 - syntax-highlighting 66 - threadweaver 67 - zstd 68 - ]; 69 - 70 - qtWrapperArgs = [ 71 - "--suffix PATH : ${ 72 - lib.makeBinPath [ 73 - linuxPackages.perf 74 - binutils 75 - ] 76 - }" 77 - ]; 78 - 79 - preFixup = '' 80 - patchelf \ 81 - --add-rpath ${lib.makeLibraryPath [ rustc-demangle ]} \ 82 - --add-needed librustc_demangle.so \ 83 - $out/libexec/hotspot-perfparser 84 - ''; 85 - 86 - meta = with lib; { 87 - description = "GUI for Linux perf"; 88 - mainProgram = "hotspot"; 89 - longDescription = '' 90 - hotspot is a GUI replacement for `perf report`. 91 - It takes a perf.data file, parses and evaluates its contents and 92 - then displays the result in a graphical way. 93 - ''; 94 - homepage = "https://github.com/KDAB/hotspot"; 95 - changelog = "https://github.com/KDAB/hotspot/releases/tag/v${version}"; 96 - license = with licenses; [ 97 - gpl2Only 98 - gpl3Only 99 - ]; 100 - platforms = platforms.linux; 101 - maintainers = with maintainers; [ nh2 ]; 102 - }; 103 - }
-4
pkgs/top-level/all-packages.nix
··· 3306 3306 3307 3307 hotdoc = python3Packages.callPackage ../development/tools/hotdoc { }; 3308 3308 3309 - hotspot = libsForQt5.callPackage ../development/tools/analysis/hotspot { }; 3310 - 3311 3309 hpccm = with python3Packages; toPythonApplication hpccm; 3312 3310 3313 3311 hqplayer-desktop = qt6Packages.callPackage ../applications/audio/hqplayer-desktop { }; ··· 8573 8571 rust-jemalloc-sys-unprefixed = rust-jemalloc-sys.override { unprefixed = true; }; 8574 8572 8575 8573 json2yaml = haskell.lib.compose.justStaticExecutables haskellPackages.json2yaml; 8576 - 8577 - kddockwidgets = libsForQt5.callPackage ../development/libraries/kddockwidgets { }; 8578 8574 8579 8575 keybinder = callPackage ../development/libraries/keybinder { 8580 8576 automake = automake111x;