diff --git a/pkgs/os-specific/linux/trace-cmd/fix-kernel-shark-CMakeLists.txt.patch b/pkgs/os-specific/linux/trace-cmd/fix-kernel-shark-CMakeLists.txt.patch new file mode 100644 index 000000000000..249df0352045 --- /dev/null +++ b/pkgs/os-specific/linux/trace-cmd/fix-kernel-shark-CMakeLists.txt.patch @@ -0,0 +1,32 @@ +diff --git a/kernel-shark/build/ks.desktop.cmake b/kernel-shark/build/ks.desktop.cmake +index 10e3610..ba29ced 100644 +--- a/kernel-shark/build/ks.desktop.cmake ++++ b/kernel-shark/build/ks.desktop.cmake +@@ -5,6 +5,6 @@ Name=Kernel Shark + GenericName=Kernel Shark + Comment= + Exec=@_INSTALL_PREFIX@/bin/kernelshark +-Icon=@KS_DIR@/icons/ksharkicon.png ++Icon=@_INSTALL_PREFIX@/share/icons/kernelshark/ksharkicon.png + Categories=System; + Terminal=false +diff --git a/kernel-shark/src/CMakeLists.txt b/kernel-shark/src/CMakeLists.txt +index b7dbd7e..be633ce 100644 +--- a/kernel-shark/src/CMakeLists.txt ++++ b/kernel-shark/src/CMakeLists.txt +@@ -82,10 +82,13 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND) + LIBRARY DESTINATION ${_INSTALL_PREFIX}/lib/kshark/) + + install(FILES "${KS_DIR}/kernelshark.desktop" +- DESTINATION /usr/share/applications/) ++ DESTINATION ${_INSTALL_PREFIX}/share/applications/) ++ ++ install(FILES "${KS_DIR}/icons/ksharkicon.png" ++ DESTINATION ${_INSTALL_PREFIX}/share/icons/kernelshark) + + install(FILES "${KS_DIR}/org.freedesktop.kshark-record.policy" +- DESTINATION /usr/share/polkit-1/actions/) ++ DESTINATION ${_INSTALL_PREFIX}/share/polkit-1/actions/) + + install(PROGRAMS "${KS_DIR}/bin/kshark-su-record" + DESTINATION ${_INSTALL_PREFIX}/bin/) diff --git a/pkgs/os-specific/linux/trace-cmd/kernelshark.nix b/pkgs/os-specific/linux/trace-cmd/kernelshark.nix new file mode 100644 index 000000000000..e583f636387c --- /dev/null +++ b/pkgs/os-specific/linux/trace-cmd/kernelshark.nix @@ -0,0 +1,36 @@ +{ stdenv, mkDerivation, fetchgit, qtbase, cmake, json_c, mesa_glu, freeglut, trace-cmd }: +let + srcSpec = import ./src.nix; + shortRev = builtins.substring 0 7 srcSpec.rev; +in mkDerivation rec { + pname = "kernelshark"; + version = "0.9.8-${shortRev}"; + + src = fetchgit srcSpec; + + sourceRoot = "trace-cmd-${shortRev}/kernel-shark"; + + patches = [ ./fix-kernel-shark-CMakeLists.txt.patch ]; + patchFlags = [ "-p2" ]; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ qtbase json_c mesa_glu freeglut ]; + + cmakeFlags = [ + "-D_INSTALL_PREFIX=${placeholder "out"}" + "-DTRACECMD_BIN_DIR=${trace-cmd}/bin" + "-DTRACECMD_INCLUDE_DIR=${trace-cmd.dev}/include/trace-cmd" + "-DTRACECMD_LIBRARY_DIR=${trace-cmd.lib}/lib" + "-DTRACEEVENT_INCLUDE_DIR=${trace-cmd.dev}/include/trace-cmd" + "-DTRACEEVENT_LIBRARY_DIR=${trace-cmd.lib}/lib" + ]; + + meta = with stdenv.lib; { + description = "GUI for trace-cmd which is an interface for the Linux kernel ftrace subsystem"; + homepage = http://kernelshark.org/; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ basvandijk ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e40497eee0bf..9190b2862cdc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6389,6 +6389,8 @@ in trace-cmd = callPackage ../os-specific/linux/trace-cmd { }; + kernelshark = libsForQt5.callPackage ../os-specific/linux/trace-cmd/kernelshark.nix { }; + traceroute = callPackage ../tools/networking/traceroute { }; tracebox = callPackage ../tools/networking/tracebox { };