diff options
author | Herwig Hochleitner <herwig@bendlas.net> | 2016-09-16 22:09:39 +0200 |
---|---|---|
committer | Herwig Hochleitner <herwig@bendlas.net> | 2016-09-16 22:24:49 +0200 |
commit | 59ccacbcd3adb5193329f412334b0017accb9d39 (patch) | |
tree | ec0ec9365077ed5a279477e0e39b29d43363d522 | |
parent | b019424e5da3eb499d0f910e6bf677a53ba37846 (diff) | |
download | nixlib-59ccacbcd3adb5193329f412334b0017accb9d39.tar nixlib-59ccacbcd3adb5193329f412334b0017accb9d39.tar.gz nixlib-59ccacbcd3adb5193329f412334b0017accb9d39.tar.bz2 nixlib-59ccacbcd3adb5193329f412334b0017accb9d39.tar.lz nixlib-59ccacbcd3adb5193329f412334b0017accb9d39.tar.xz nixlib-59ccacbcd3adb5193329f412334b0017accb9d39.tar.zst nixlib-59ccacbcd3adb5193329f412334b0017accb9d39.zip |
systemtap: clean up as per feedback
- shorter description - move systemtap into linuxPackages this is only necessary for the wrapper systemtap also has a dyninsn backend to instrument userspace apps we could experiment with other platforms, using this - get rid of stow build dependency - update version - minor cleanup steps
-rw-r--r-- | pkgs/development/tools/profiling/systemtap/default.nix | 50 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
2 files changed, 25 insertions, 29 deletions
diff --git a/pkgs/development/tools/profiling/systemtap/default.nix b/pkgs/development/tools/profiling/systemtap/default.nix index 615ad3464793..b78727802454 100644 --- a/pkgs/development/tools/profiling/systemtap/default.nix +++ b/pkgs/development/tools/profiling/systemtap/default.nix @@ -1,16 +1,17 @@ -{ fetchurl, linuxPackages, makeWrapper, runCommand, fetchgit -, elfutils, pkgconfig, gettext, stow, gnumake }: +{ fetchgit, pkgconfig, gettext, runCommand, makeWrapper +, elfutils, kernel, gnumake }: let ## fetchgit info url = git://sourceware.org/git/systemtap.git; - rev = "51b7cae3023adf137081059c7cc44a13f652ba4c"; - sha256 = "18m3lf11r99f4yr1m172548lghc0i22zqbys1fwlwakbczz0a2lz"; + rev = "a10bdceb7c9a7dc52c759288dd2e555afcc5184a"; + sha256 = "1kllzfnh4ksis0673rma5psglahl6rvy0xs5v05qkqn6kl7irmg1"; + version = "2016-09-16"; - inherit (linuxPackages) kernel; - version = kernel.stdenv.lib.substring 0 6 rev; + inherit (kernel) stdenv; + inherit (stdenv) lib; ## stap binaries - stapBuild = kernel.stdenv.mkDerivation { + stapBuild = stdenv.mkDerivation { name = "systemtap-${version}"; src = fetchgit { inherit url rev sha256; }; buildInputs = [ elfutils pkgconfig gettext ]; @@ -18,39 +19,34 @@ let }; ## a kernel build dir as expected by systemtap - kernelBuildDir = runCommand "kbuild-${kernel.version}-merged" { - buildInputs = [ stow ]; - } '' + kernelBuildDir = runCommand "kbuild-${kernel.version}-merged" { } '' mkdir -p $out - stowFrom () { - D="$(dirname $1)" - P="$(basename $1)" - shift - stow -d $D -t $out -v "$@" -S $P - } - stowFrom ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build --ignore=source - ln -s ${kernel.dev}/vmlinux $out/vmlinux - ln -s ${kernel}/System.map $out/System.map - ln -s ${kernel.dev}/lib/modules/${kernel.modDirVersion}/source $out/source + for f in \ + ${kernel}/System.map \ + ${kernel.dev}/vmlinux \ + ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build/{*,.*} + do + ln -s $(readlink -f $f) $out + done ''; in runCommand "systemtap-${kernel.version}-${version}" { inherit stapBuild kernelBuildDir; buildInputs = [ makeWrapper ]; - meta = with kernel.stdenv.lib; { + meta = { homepage = https://sourceware.org/systemtap/; - repositories.git = git://sourceware.org/git/systemtap.git; - description = "SystemTap provides a simple command line interface and scripting language for writing instrumentation for a live running kernel plus user-space applications."; - license = licenses.gpl2; - platforms = platforms.linux; + repositories.git = url; + description = "Provides a scripting language for instrumentation on a live kernel plus user-space"; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; }; } '' mkdir -p $out/bin for bin in $stapBuild/bin/*; do # hello emacs */ - ln -s $bin $out/bin/$(basename $bin) + ln -s $bin $out/bin done rm $out/bin/stap makeWrapper $stapBuild/bin/stap $out/bin/stap \ --add-flags "-r $kernelBuildDir" \ - --prefix PATH : ${kernel.stdenv.cc.cc}/bin:${elfutils}/bin:${gnumake}/bin + --prefix PATH : ${lib.makeBinPath [ stdenv.cc.cc elfutils gnumake ]} '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5c9f8de15dc3..dff536aa7f3b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11397,6 +11397,8 @@ in sysdig = callPackage ../os-specific/linux/sysdig {}; + systemtap = callPackage ../development/tools/profiling/systemtap { }; + tp_smapi = callPackage ../os-specific/linux/tp_smapi { }; v86d = callPackage ../os-specific/linux/v86d { }; @@ -14963,8 +14965,6 @@ in # linux only by now synergy = callPackage ../applications/misc/synergy { }; - systemtap = callPackage ../development/tools/profiling/systemtap { }; - tabbed = callPackage ../applications/window-managers/tabbed { # if you prefer a custom config, write the config.h in tabbed.config.h # and enable |