Add Exmap, a Linux-specific tool to examine process memory usage.

svn path=/nixpkgs/trunk/; revision=12857
This commit is contained in:
Ludovic Courtès 2008-09-12 20:00:00 +00:00
parent c9d9cfe6d4
commit 474ea2b7ee
2 changed files with 61 additions and 0 deletions

View file

@ -0,0 +1,56 @@
{ fetchurl, stdenv, kernel, pkgconfig, gtkmm, boost, pcre }:
stdenv.mkDerivation rec {
name = "exmap-0.10";
src = fetchurl {
url = "http://www.berthels.co.uk/exmap/download/${name}.tgz";
sha256 = "0z00dhl6bdmaz7p9wlvnj0izf0zlrlkv34fz449kxyislpzzxmgn";
};
patchPhase = ''
substituteInPlace "kernel/Makefile" \
--replace '/lib/modules/$(shell uname -r)/build' \
${kernel}/lib/modules/*/build
# The `proc_root' variable (the root of `/proc') is no longer exported
# since 2.6.26. Fortunately, one can pass `NULL' instead of `&proc_root'.
# See http://lkml.org/lkml/2008/3/30/57 .
substituteInPlace "kernel/exmap.c" \
--replace "&proc_root" "NULL"
substituteInPlace "src/Makefile" --replace "-Werror" ""
'';
buildInputs = [ kernel pkgconfig gtkmm boost pcre ];
buildPhase = "make build";
# XXX: The tests can only be run one the `exmap' module is loaded.
doCheck = false;
#checkPhase = "make test"
installPhase = ''
ensureDir "$out/share/${name}"
cp kernel/*.ko "$out/share/${name}"
ensureDir "$out/bin"
cp src/{gexmap,exmtool,elftool,showproc} "$out/bin"
'';
meta = {
description = "Exmap, a tool showing the physical memory usage of processes";
longDescription = ''
Exmap is a utility which takes a snapshot of how the physical
memory and swap space are currently used by all the processes on
your system. It examines which page of memory are shared between
which processes, so that it can share the cost of the pages
fairly when calculating usage totals.
'';
homepage = http://www.berthels.co.uk/exmap/;
license = "GPLv2+";
};
}

View file

@ -5229,6 +5229,11 @@ let
inherit fetchurl stdenv kernel;
};
exmap = import ../os-specific/linux/exmap {
inherit fetchurl stdenv kernel boost pcre pkgconfig;
inherit (gtkLibs) gtkmm;
};
iwlwifi = import ../os-specific/linux/iwlwifi {
inherit fetchurl stdenv kernel;
};