1{ lib, stdenv, fetchFromGitHub, ncurses }:
2
3stdenv.mkDerivation rec {
4 pname = "pagemon";
5 version = "0.01.18";
6
7 src = fetchFromGitHub {
8 sha256 = "1aq1mq3k8n70h81s64w2zg4kksw1y05326bn4y8p94lpaypvxqfd";
9 rev = "V${version}";
10 repo = "pagemon";
11 owner = "ColinIanKing";
12 };
13
14 buildInputs = [ ncurses ];
15
16 makeFlags = [
17 "BINDIR=$(out)/bin"
18 "MANDIR=$(out)/share/man/man8"
19 ];
20
21 meta = with lib; {
22 inherit (src.meta) homepage;
23 description = "Interactive memory/page monitor for Linux";
24 mainProgram = "pagemon";
25 longDescription = ''
26 pagemon is an ncurses based interactive memory/page monitoring tool
27 allowing one to browse the memory map of an active running process
28 on Linux.
29 pagemon reads the PTEs of a given process and display the soft/dirty
30 activity in real time. The tool identifies the type of memory mapping
31 a page belongs to, so one can easily scan through memory looking at
32 pages of memory belonging data, code, heap, stack, anonymous mappings
33 or even swapped-out pages.
34 '';
35 license = licenses.gpl2Plus;
36 platforms = platforms.linux;
37 };
38}