nixpkgs/pkgs/os-specific/linux/exmap/default.nix
Ludovic Courtès 474ea2b7ee Add Exmap, a Linux-specific tool to examine process memory usage.
svn path=/nixpkgs/trunk/; revision=12857
2008-09-12 20:00:00 +00:00

57 lines
1.7 KiB
Nix

{ 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+";
};
}