mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH v3] procps: switch from procps to procps-ng
@ 2015-07-06 18:25 Clemens Gruber
  2015-07-06 18:38 ` Bernhard Walle
  0 siblings, 1 reply; 2+ messages in thread
From: Clemens Gruber @ 2015-07-06 18:25 UTC (permalink / raw)
  To: ptxdist; +Cc: Michael Olbrich

The procps package is unmaintained, therefore switch to procps-ng, which
is used by many major distributions.

Cc: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
---
Changes from v2:
- Use the correct SF URL to have a procps-ng version number
- The chrony change from V1 broke busybox pidof, fixed!

Changes from v1:
- Add ncurses select to sub options
- Replace Sourceforge with Gitlab URL
- Add autogen.sh
- Remove patches from old procps
- Select SYSTEMD and default to INITMETHOD_SYSTEMD
- Fix pidof call in chrony scripts (pidof moved to /usr/bin)
---
 patches/procps-3.2.8/0001-slabtop_once.patch       | 125 -----
 patches/procps-3.2.8/0002-free.1.patch             | 112 -----
 patches/procps-3.2.8/0003-output_sort_time.patch   | 102 ----
 patches/procps-3.2.8/0004-pmap.1.patch             |  57 ---
 patches/procps-3.2.8/0005-10_ps.1.patch            |  72 ---
 patches/procps-3.2.8/0006-skill.1.patch            | 125 -----
 patches/procps-3.2.8/0007-skill_perror.patch       |  25 -
 patches/procps-3.2.8/0008-slabtop_1.patch          | 106 ----
 patches/procps-3.2.8/0009-sysctl.8.patch           | 157 ------
 patches/procps-3.2.8/0010-sysctl_options.patch     |  57 ---
 patches/procps-3.2.8/0011-tload.1.patch            |  26 -
 patches/procps-3.2.8/0012-top_irix.patch           |  53 --
 patches/procps-3.2.8/0013-top_no_openproc.patch    |  30 --
 patches/procps-3.2.8/0014-top_stdin_eof.patch      |  29 --
 patches/procps-3.2.8/0015-top_uid_length.patch     |  26 -
 patches/procps-3.2.8/0016-uptime.1.patch           |  57 ---
 patches/procps-3.2.8/0017-vmstat.8.patch           | 119 -----
 patches/procps-3.2.8/0018-watch.1.patch            | 112 -----
 patches/procps-3.2.8/0019-w_time.patch             |  26 -
 patches/procps-3.2.8/0020-kill.1.patch             | 157 ------
 patches/procps-3.2.8/0021-kill_warncr.patch        |  35 --
 patches/procps-3.2.8/0022-module_mk_shared.patch   |  26 -
 patches/procps-3.2.8/0023-sysinfo_elfnote.patch    |  32 --
 patches/procps-3.2.8/0024-top.1.patch              | 427 ----------------
 patches/procps-3.2.8/0025-top_c_resize.patch       |  86 ----
 patches/procps-3.2.8/0026-w-bassman.patch          |  99 ----
 patches/procps-3.2.8/0027-top.1_cpustates.patch    |  60 ---
 patches/procps-3.2.8/0028-watch_8bitchar.patch     |  26 -
 .../procps-3.2.8/0029-library_map_freeproc.patch   |  26 -
 patches/procps-3.2.8/0030-pgrep_start_time.patch   |  27 -
 patches/procps-3.2.8/0031-readproc_c.patch         |  35 --
 patches/procps-3.2.8/0032-sysinfo_7_numbers.patch  |  46 --
 patches/procps-3.2.8/0033-tload_no_optargs.patch   |  27 -
 patches/procps-3.2.8/0034-w.1.patch                |  80 ---
 patches/procps-3.2.8/0035-w_columns.patch          |  41 --
 patches/procps-3.2.8/0036-watch_exec_beep.patch    | 271 ----------
 patches/procps-3.2.8/0037-path_max.patch           |  87 ----
 patches/procps-3.2.8/0038-w_envlength.patch        | 183 -------
 patches/procps-3.2.8/0039-gnu-kbsd-version.patch   |  47 --
 patches/procps-3.2.8/0040-pgrep_c_option.patch     |  96 ----
 patches/procps-3.2.8/0041-ps_cgroup_display.patch  | 175 -------
 .../procps-3.2.8/0042-watch_precision_time.patch   | 226 ---------
 patches/procps-3.2.8/0043-watch_unicode.patch      | 311 ------------
 .../0044-complain_unmounted_proc.patch             |  29 --
 patches/procps-3.2.8/0045-ps_supgid_display.patch  | 475 ------------------
 patches/procps-3.2.8/0046-makefile_dev_null.patch  |  25 -
 patches/procps-3.2.8/0047-pgrep.1.patch            | 218 --------
 patches/procps-3.2.8/0048-ps_size_sz.patch         |  40 --
 patches/procps-3.2.8/0049-top_mintime.patch        |  27 -
 patches/procps-3.2.8/0050-vmstat_headers.patch     | 159 ------
 .../procps-3.2.8/0051-pgrep_usage_exitcode.patch   |  26 -
 patches/procps-3.2.8/0052-ps_1_options.patch       | 557 ---------------------
 patches/procps-3.2.8/0053-top_highlight.patch      |  29 --
 patches/procps-3.2.8/0054-top_nohz.patch           |  25 -
 patches/procps-3.2.8/0055-vmstat_part_format.patch |  94 ----
 .../procps-3.2.8/0056-readproc_double_free.patch   |  32 --
 patches/procps-3.2.8/0057-vmstat_units.patch       |  70 ---
 patches/procps-3.2.8/0058-skill_null_argv.patch    |  25 -
 patches/procps-3.2.8/0059-skill_multiarg.patch     |  25 -
 .../0060-proc_version_constructor.patch            |  52 --
 patches/procps-3.2.8/0061-pmaps_smaps.patch        | 150 ------
 patches/procps-3.2.8/0062-top_numeric_args.patch   | 109 ----
 patches/procps-3.2.8/0063-top_1_swap.patch         |  34 --
 patches/procps-3.2.8/0064-w_userproc.patch         |  25 -
 .../procps-3.2.8/0065-sysinfo_kfreebsd_hertz.patch |  31 --
 patches/procps-3.2.8/0066-ps_1_flt_output.patch    |  40 --
 patches/procps-3.2.8/0067-watch_ansi_colour.patch  | 193 -------
 patches/procps-3.2.8/0068-top_username_parse.patch |  25 -
 ...69-don-t-install-stuff-that-was-not-built.patch |  31 --
 ...ame-registers-option-due-to-ICE-on-gcc-4..patch |  25 -
 .../0071-fix-build-with-make-3.82.patch            |  36 --
 patches/procps-3.2.8/series                        |  71 ---
 projectroot/etc/init.d/chrony                      |  10 +-
 projectroot/usr/bin/chrony_command                 |   2 +-
 projectroot/usr/bin/chrony_stat                    |   2 +-
 rules/procps.in                                    | 164 ++++--
 rules/procps.make                                  | 108 ++--
 77 files changed, 214 insertions(+), 6792 deletions(-)
 delete mode 100644 patches/procps-3.2.8/0001-slabtop_once.patch
 delete mode 100644 patches/procps-3.2.8/0002-free.1.patch
 delete mode 100644 patches/procps-3.2.8/0003-output_sort_time.patch
 delete mode 100644 patches/procps-3.2.8/0004-pmap.1.patch
 delete mode 100644 patches/procps-3.2.8/0005-10_ps.1.patch
 delete mode 100644 patches/procps-3.2.8/0006-skill.1.patch
 delete mode 100644 patches/procps-3.2.8/0007-skill_perror.patch
 delete mode 100644 patches/procps-3.2.8/0008-slabtop_1.patch
 delete mode 100644 patches/procps-3.2.8/0009-sysctl.8.patch
 delete mode 100644 patches/procps-3.2.8/0010-sysctl_options.patch
 delete mode 100644 patches/procps-3.2.8/0011-tload.1.patch
 delete mode 100644 patches/procps-3.2.8/0012-top_irix.patch
 delete mode 100644 patches/procps-3.2.8/0013-top_no_openproc.patch
 delete mode 100644 patches/procps-3.2.8/0014-top_stdin_eof.patch
 delete mode 100644 patches/procps-3.2.8/0015-top_uid_length.patch
 delete mode 100644 patches/procps-3.2.8/0016-uptime.1.patch
 delete mode 100644 patches/procps-3.2.8/0017-vmstat.8.patch
 delete mode 100644 patches/procps-3.2.8/0018-watch.1.patch
 delete mode 100644 patches/procps-3.2.8/0019-w_time.patch
 delete mode 100644 patches/procps-3.2.8/0020-kill.1.patch
 delete mode 100644 patches/procps-3.2.8/0021-kill_warncr.patch
 delete mode 100644 patches/procps-3.2.8/0022-module_mk_shared.patch
 delete mode 100644 patches/procps-3.2.8/0023-sysinfo_elfnote.patch
 delete mode 100644 patches/procps-3.2.8/0024-top.1.patch
 delete mode 100644 patches/procps-3.2.8/0025-top_c_resize.patch
 delete mode 100644 patches/procps-3.2.8/0026-w-bassman.patch
 delete mode 100644 patches/procps-3.2.8/0027-top.1_cpustates.patch
 delete mode 100644 patches/procps-3.2.8/0028-watch_8bitchar.patch
 delete mode 100644 patches/procps-3.2.8/0029-library_map_freeproc.patch
 delete mode 100644 patches/procps-3.2.8/0030-pgrep_start_time.patch
 delete mode 100644 patches/procps-3.2.8/0031-readproc_c.patch
 delete mode 100644 patches/procps-3.2.8/0032-sysinfo_7_numbers.patch
 delete mode 100644 patches/procps-3.2.8/0033-tload_no_optargs.patch
 delete mode 100644 patches/procps-3.2.8/0034-w.1.patch
 delete mode 100644 patches/procps-3.2.8/0035-w_columns.patch
 delete mode 100644 patches/procps-3.2.8/0036-watch_exec_beep.patch
 delete mode 100644 patches/procps-3.2.8/0037-path_max.patch
 delete mode 100644 patches/procps-3.2.8/0038-w_envlength.patch
 delete mode 100644 patches/procps-3.2.8/0039-gnu-kbsd-version.patch
 delete mode 100644 patches/procps-3.2.8/0040-pgrep_c_option.patch
 delete mode 100644 patches/procps-3.2.8/0041-ps_cgroup_display.patch
 delete mode 100644 patches/procps-3.2.8/0042-watch_precision_time.patch
 delete mode 100644 patches/procps-3.2.8/0043-watch_unicode.patch
 delete mode 100644 patches/procps-3.2.8/0044-complain_unmounted_proc.patch
 delete mode 100644 patches/procps-3.2.8/0045-ps_supgid_display.patch
 delete mode 100644 patches/procps-3.2.8/0046-makefile_dev_null.patch
 delete mode 100644 patches/procps-3.2.8/0047-pgrep.1.patch
 delete mode 100644 patches/procps-3.2.8/0048-ps_size_sz.patch
 delete mode 100644 patches/procps-3.2.8/0049-top_mintime.patch
 delete mode 100644 patches/procps-3.2.8/0050-vmstat_headers.patch
 delete mode 100644 patches/procps-3.2.8/0051-pgrep_usage_exitcode.patch
 delete mode 100644 patches/procps-3.2.8/0052-ps_1_options.patch
 delete mode 100644 patches/procps-3.2.8/0053-top_highlight.patch
 delete mode 100644 patches/procps-3.2.8/0054-top_nohz.patch
 delete mode 100644 patches/procps-3.2.8/0055-vmstat_part_format.patch
 delete mode 100644 patches/procps-3.2.8/0056-readproc_double_free.patch
 delete mode 100644 patches/procps-3.2.8/0057-vmstat_units.patch
 delete mode 100644 patches/procps-3.2.8/0058-skill_null_argv.patch
 delete mode 100644 patches/procps-3.2.8/0059-skill_multiarg.patch
 delete mode 100644 patches/procps-3.2.8/0060-proc_version_constructor.patch
 delete mode 100644 patches/procps-3.2.8/0061-pmaps_smaps.patch
 delete mode 100644 patches/procps-3.2.8/0062-top_numeric_args.patch
 delete mode 100644 patches/procps-3.2.8/0063-top_1_swap.patch
 delete mode 100644 patches/procps-3.2.8/0064-w_userproc.patch
 delete mode 100644 patches/procps-3.2.8/0065-sysinfo_kfreebsd_hertz.patch
 delete mode 100644 patches/procps-3.2.8/0066-ps_1_flt_output.patch
 delete mode 100644 patches/procps-3.2.8/0067-watch_ansi_colour.patch
 delete mode 100644 patches/procps-3.2.8/0068-top_username_parse.patch
 delete mode 100644 patches/procps-3.2.8/0069-don-t-install-stuff-that-was-not-built.patch
 delete mode 100644 patches/procps-3.2.8/0070-remove-frename-registers-option-due-to-ICE-on-gcc-4..patch
 delete mode 100644 patches/procps-3.2.8/0071-fix-build-with-make-3.82.patch
 delete mode 100644 patches/procps-3.2.8/series

diff --git a/patches/procps-3.2.8/0001-slabtop_once.patch b/patches/procps-3.2.8/0001-slabtop_once.patch
deleted file mode 100644
index 5d8a451..0000000
--- a/patches/procps-3.2.8/0001-slabtop_once.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From cc53eb8aee12e32861e6073d9e6bd7d015a15c55 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 01/70] slabtop_once
-
----
- slabtop.c |   45 ++++++++++++++++++++++++++-------------------
- 1 files changed, 26 insertions(+), 19 deletions(-)
-
-diff --git a/slabtop.c b/slabtop.c
-index 36025e2..5c9d31e 100644
---- a/slabtop.c
-+++ b/slabtop.c
-@@ -268,11 +268,13 @@ static void parse_input(char c)
- 	}
- }
- 
-+#define print_line(fmt, args...) if (run_once) printf(fmt, ## args); else printw(fmt, ## args)
- int main(int argc, char *argv[])
- {
- 	int o;
- 	unsigned short old_rows;
- 	struct slab_info *slab_list = NULL;
-+  int run_once=0;
- 
- 	struct option longopts[] = {
- 		{ "delay",	1, NULL, 'd' },
-@@ -306,6 +308,7 @@ int main(int argc, char *argv[])
- 			sort_func = set_sort_func(optarg[0]);
- 			break;
- 		case 'o':
-+      run_once=1;
- 			delay = 0;
- 			break;
- 		case 'V':
-@@ -322,11 +325,13 @@ int main(int argc, char *argv[])
- 	if (tcgetattr(0, &saved_tty) == -1)
- 		perror("tcgetattr");
- 
--	initscr();
--	term_size(0);
- 	old_rows = rows;
--	resizeterm(rows, cols);
--	signal(SIGWINCH, term_size);
-+	term_size(0);
-+  if (!run_once) {
-+    initscr();
-+	  resizeterm(rows, cols);
-+	  signal(SIGWINCH, term_size);
-+  }
- 	signal(SIGINT, sigint_handler);
- 
- 	do {
-@@ -340,13 +345,13 @@ int main(int argc, char *argv[])
- 		if (get_slabinfo(&slab_list, &stats))
- 			break;
- 
--		if (old_rows != rows) {
-+		if (!run_once && old_rows != rows) {
- 			resizeterm(rows, cols);
- 			old_rows = rows;
- 		}
- 
- 		move(0,0);
--		printw(	" Active / Total Objects (%% used)    : %d / %d (%.1f%%)\n"
-+		print_line(	" Active / Total Objects (%% used)    : %d / %d (%.1f%%)\n"
- 			" Active / Total Slabs (%% used)      : %d / %d (%.1f%%)\n"
- 			" Active / Total Caches (%% used)     : %d / %d (%.1f%%)\n"
- 			" Active / Total Size (%% used)       : %.2fK / %.2fK (%.1f%%)\n"
-@@ -361,14 +366,14 @@ int main(int argc, char *argv[])
- 		slab_list = slabsort(slab_list);
- 
- 		attron(A_REVERSE);
--		printw(	"%6s %6s %4s %8s %6s %8s %10s %-23s\n",
-+		print_line(	"%6s %6s %4s %8s %6s %8s %10s %-23s\n",
- 			"OBJS", "ACTIVE", "USE", "OBJ SIZE", "SLABS",
- 			"OBJ/SLAB", "CACHE SIZE", "NAME");
- 		attroff(A_REVERSE);
- 
- 		curr = slab_list;
- 		for (i = 0; i < rows - 8 && curr->next; i++) {
--			printw("%6u %6u %3u%% %7.2fK %6u %8u %9uK %-23s\n",
-+			print_line("%6u %6u %3u%% %7.2fK %6u %8u %9uK %-23s\n",
- 				curr->nr_objs, curr->nr_active_objs, curr->use,
- 				curr->obj_size / 1024.0, curr->nr_slabs,
- 				curr->objs_per_slab, (unsigned)(curr->cache_size / 1024),
-@@ -376,22 +381,24 @@ int main(int argc, char *argv[])
- 			curr = curr->next;
- 		}
- 
--		refresh();
- 		put_slabinfo(slab_list);
- 
--		FD_ZERO(&readfds);
--		FD_SET(0, &readfds);
--		tv.tv_sec = delay;
--		tv.tv_usec = 0;
--		if (select(1, &readfds, NULL, NULL, &tv) > 0) {
--			if (read(0, &c, 1) != 1)
--				break;
--			parse_input(c);
--		}
-+		if (!run_once) {
-+      refresh();
-+		  FD_ZERO(&readfds);
-+		  FD_SET(0, &readfds);
-+		  tv.tv_sec = delay;
-+		  tv.tv_usec = 0;
-+		  if (select(1, &readfds, NULL, NULL, &tv) > 0) {
-+			  if (read(0, &c, 1) != 1)
-+				  break;
-+			  parse_input(c);
-+		  }
-+    }
- 	} while (delay);
- 
- 	tcsetattr(0, TCSAFLUSH, &saved_tty);
- 	free_slabinfo(slab_list);
--	endwin();
-+	if (!run_once) endwin();
- 	return 0;
- }
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0002-free.1.patch b/patches/procps-3.2.8/0002-free.1.patch
deleted file mode 100644
index 14bcb0f..0000000
--- a/patches/procps-3.2.8/0002-free.1.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 5f41954db84ec43205b71f79a98c46d24d55cca9 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 02/70] free.1
-
----
- free.1 |   76 ++++++++++++++++++++++++++++++++++++++++-----------------------
- 1 files changed, 48 insertions(+), 28 deletions(-)
-
-diff --git a/free.1 b/free.1
-index 954c8d9..cae1241 100644
---- a/free.1
-+++ b/free.1
-@@ -1,47 +1,67 @@
- .\"             -*-Nroff-*-
- .\"  This page Copyright (C) 1993 Matt Welsh, mdw@sunsite.unc.edu.
- .\"  Freely distributable under the terms of the GPL
--.TH FREE 1 "20 Mar 1993 " "Cohesive Systems" "Linux User's Manual"
-+.TH FREE 1 "5 Oct 2009 " "Cohesive Systems" "Linux User's Manual"
- .SH NAME
- free \- Display amount of free and used memory in the system
- .SH SYNOPSIS
--.BR "free " [ "\-b" " | " "\-k" " | " "\-m" "] [" "\-o" "] [" "\-s"
--.I delay
--.RB "] [" "\-t" "] [" "\-V" ]
-+.B free
-+.RB [ \-b | \-k | \-m | \-g ]
-+.RB [ \-c
-+.IR count ]
-+.RB [ \-l ]
-+.RB [ \-o ]
-+.RB [ \-t ]
-+.RB [ \-s
-+.IR delay ]
-+.RB [ \-V ]
- .SH DESCRIPTION
- \fBfree\fP displays the total amount of free and used physical and swap 
- memory in the system, as well as the buffers used by the kernel.
- The shared memory column should be ignored; it is obsolete.
--.SS Options
--The \fB-b\fP switch displays the amount of memory in bytes; the 
--\fB-k\fP switch (set by default) displays it in kilobytes; the \fB-m\fP
--switch displays it in megabytes.
--.PP
--The \fB-t\fP switch displays a line containing the totals.
--.PP
--The \fB-o\fP switch disables the display of a "buffer adjusted" line.
--If the -o option is not specified, \fBfree\fP subtracts buffer memory
--from the used memory and adds it to the free memory reported.
--.PP
--The \fB-s\fP switch activates continuous polling \fIdelay\fP seconds apart. You
-+.SS OPTIONS
-+.TP
-+\fB\-b\fR
-+Display the amount of memory in bytes.
-+.TP
-+\fB\-c\fR \fIcount\fR
-+Display the result \fIcount\fR times.  Requires the \fB\-s\fR option.
-+.TP
-+\fB\-g\fR
-+Display the amount of memory in gigabytes.
-+.TP
-+\fB\-k\fR
-+Display the amount of memory in kilobytes. This is the default.
-+.TP
-+\fB\-l\fR
-+Show detailed low and high memory statistics.
-+.TP
-+\fB\-m\fR
-+Display the amount of memory in megabytes.
-+.TP
-+\fB\-o\fR
-+Display the output in old format, the only difference being this option
-+will disable the display of the "buffer adjusted" line.
-+.TP
-+\fB\-s\fR
-+Continuously display the result \fIdelay\fP seconds apart. You
- may actually specify any floating point number for \fIdelay\fP, 
- .BR usleep (3)
- is used for microsecond resolution delay times.
--.PP
--The \fB\-V\fP displays version information.
-+.TP
-+\fB\-t\fR
-+Display a line showing the column totals.
-+.TP
-+\fB\-V\fR
-+Display version information.
- .SH FILES
--.ta
--.IR /proc/meminfo "\-\- memory information"
-+.nf
-+/proc/meminfo memory information
- .fi
--
--.SH "SEE ALSO"
--.BR ps (1),
--.BR slabtop (1),
--.BR vmstat (8),
--.BR top(1)
--
- .SH AUTHORS
- Written by Brian Edmonds. 
- 
- Send bug reports to <albert@users.sf.net>
--
-+.SH "SEE ALSO"
-+.BR ps "(1), " slabtop "(1), " top "(1), " vmstat (8).
-+.\"{{{}}}
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0003-output_sort_time.patch b/patches/procps-3.2.8/0003-output_sort_time.patch
deleted file mode 100644
index 91b4c45..0000000
--- a/patches/procps-3.2.8/0003-output_sort_time.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 42fd812b1fde2aa3c05cd67282f7cdfcf8f7e7b8 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 03/70] output_sort_time
-
-===================================================================
----
- ps/output.c |   29 +++++++++++++++++++++++------
- 1 files changed, 23 insertions(+), 6 deletions(-)
-
-diff --git a/ps/output.c b/ps/output.c
-index 87bf9de..b4fb3df 100644
---- a/ps/output.c
-+++ b/ps/output.c
-@@ -110,6 +110,20 @@ static int sr_ ## NAME (const proc_t* P, const proc_t* Q) { \
-     return (int)(P->NAME) - (int)(Q->NAME); \
- }
- 
-+#define cook_time(P) (P->utime + P->stime) / Hertz
-+
-+#define cook_etime(P) seconds_since_boot - (unsigned long)(P->start_time / Hertz)
-+
-+#define CMP_COOKED_TIME(NAME) \
-+static int sr_ ## NAME (const proc_t* P, const proc_t* Q) { \
-+    unsigned long p_time,q_time; \
-+    p_time=cook_ ##NAME (P); \
-+    q_time=cook_ ##NAME (Q); \
-+    if (p_time < q_time) return -1; \
-+    if (p_time > q_time) return 1; \
-+    return 0; \
-+}
-+
- CMP_INT(rtprio)
- CMP_SMALL(sched)
- CMP_INT(cutime)
-@@ -185,6 +199,9 @@ CMP_SMALL(pcpu)
- 
- CMP_SMALL(state)
- 
-+CMP_COOKED_TIME(time)
-+CMP_COOKED_TIME(etime)
-+
- /* approximation to: kB of address space that could end up in swap */
- static int sr_swapable(const proc_t* P, const proc_t* Q) {
-   unsigned long p_swapable = P->vm_data + P->vm_stack;
-@@ -408,7 +425,7 @@ static int pr_etime(char *restrict const outbuf, const proc_t *restrict const pp
-   unsigned long t;
-   unsigned dd,hh,mm,ss;
-   char *cp = outbuf;
--  t = seconds_since_boot - (unsigned long)(pp->start_time / Hertz);
-+  t = cook_etime(pp);
-   ss = t%60;
-   t /= 60;
-   mm = t%60;
-@@ -476,7 +493,7 @@ static int pr_time(char *restrict const outbuf, const proc_t *restrict const pp)
-   unsigned long t;
-   unsigned dd,hh,mm,ss;
-   int c;
--  t = (pp->utime + pp->stime) / Hertz;
-+  t = cook_time(pp);
-   ss = t%60;
-   t /= 60;
-   mm = t%60;
-@@ -1286,7 +1303,7 @@ static const format_struct format_array[] = {
- {"alarm",     "ALARM",   pr_alarm,    sr_alarm,   5,   0,    LNX, AN|RIGHT},
- {"argc",      "ARGC",    pr_nop,      sr_nop,     4,   0,    LNX, PO|RIGHT},
- {"args",      "COMMAND", pr_args,     sr_cmd,    27, ARG,    U98, PO|UNLIMITED}, /*command*/
--{"atime",     "TIME",    pr_time,     sr_nop,     8,   0,    SOE, ET|RIGHT}, /*cputime*/ /* was 6 wide */
-+{"atime",     "TIME",    pr_time,     sr_time,     8,   0,    SOE, ET|RIGHT}, /*cputime*/ /* was 6 wide */
- {"blocked",   "BLOCKED", pr_sigmask,  sr_nop,     9,   0,    BSD, TO|SIGNAL}, /*sigmask*/
- {"bnd",       "BND",     pr_nop,      sr_nop,     1,   0,    AIX, TO|RIGHT},
- {"bsdstart",  "START",   pr_bsdstart, sr_nop,     6,   0,    LNX, ET|RIGHT},
-@@ -1305,7 +1322,7 @@ static const format_struct format_array[] = {
- {"cp",        "CP",      pr_cp,       sr_pcpu,    3,   0,    DEC, ET|RIGHT}, /*cpu*/
- {"cpu",       "CPU",     pr_nop,      sr_nop,     3,   0,    BSD, AN|RIGHT}, /* FIXME ... HP-UX wants this as the CPU number for SMP? */
- {"cpuid",     "CPUID",   pr_psr,      sr_nop,     5,   0,    BSD, TO|RIGHT}, // OpenBSD: 8 wide!
--{"cputime",   "TIME",    pr_time,     sr_nop,     8,   0,    DEC, ET|RIGHT}, /*time*/
-+{"cputime",   "TIME",    pr_time,     sr_time,     8,   0,    DEC, ET|RIGHT}, /*time*/
- {"cstime",    "-",       pr_nop,      sr_cstime,  1,   0,    LNX, AN|RIGHT},
- {"ctid",      "CTID",    pr_nop,      sr_nop,     5,   0,    SUN, ET|RIGHT}, // resource contracts?
- {"cursig",    "CURSIG",  pr_nop,      sr_nop,     6,   0,    DEC, AN|RIGHT},
-@@ -1320,7 +1337,7 @@ static const format_struct format_array[] = {
- {"end_code",  "E_CODE",  pr_nop,      sr_end_code, 8,  0,    LNx, PO|RIGHT},
- {"environ","ENVIRONMENT",pr_nop,      sr_nop,    11, ENV,    LNx, PO|UNLIMITED},
- {"esp",       "ESP",     pr_esp,      sr_kstk_esp, 8,  0,    LNX, TO|RIGHT},
--{"etime",     "ELAPSED", pr_etime,    sr_nop,    11,   0,    U98, ET|RIGHT}, /* was 7 wide */
-+{"etime",     "ELAPSED", pr_etime,    sr_etime,    11,   0,    U98, ET|RIGHT}, /* was 7 wide */
- {"euid",      "EUID",    pr_euid,     sr_euid,    5,   0,    LNX, ET|RIGHT},
- {"euser",     "EUSER",   pr_euser,    sr_euser,   8, USR,    LNX, ET|USER},
- {"f",         "F",       pr_flag,     sr_flags,   1,   0,    XXX, ET|RIGHT}, /*flags*/
-@@ -1463,7 +1480,7 @@ static const format_struct format_array[] = {
- {"tdev",      "TDEV",    pr_nop,      sr_nop,     4,   0,    XXX, AN|RIGHT},
- {"thcount",   "THCNT",   pr_nlwp,     sr_nlwp,    5,   0,    AIX, PO|RIGHT},
- {"tid",       "TID",     pr_thread,   sr_tid,     5,   0,    AIX, TO|PIDMAX|RIGHT},
--{"time",      "TIME",    pr_time,     sr_nop,     8,   0,    U98, ET|RIGHT}, /*cputime*/ /* was 6 wide */
-+{"time",      "TIME",    pr_time,     sr_time,     8,   0,    U98, ET|RIGHT}, /*cputime*/ /* was 6 wide */
- {"timeout",   "TMOUT",   pr_nop,      sr_nop,     5,   0,    LNX, AN|RIGHT}, // 2.0.xx era
- {"tmout",     "TMOUT",   pr_nop,      sr_nop,     5,   0,    LNX, AN|RIGHT}, // 2.0.xx era
- {"tname",     "TTY",     pr_tty8,     sr_tty,     8,   0,    DEC, PO|LEFT},
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0004-pmap.1.patch b/patches/procps-3.2.8/0004-pmap.1.patch
deleted file mode 100644
index c47f1c4..0000000
--- a/patches/procps-3.2.8/0004-pmap.1.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 2dc52f7e8cd2779504b9d2d361c25144695e65b5 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 04/70] pmap.1
-
-===================================================================
----
- pmap.1 |   24 ++++++++++++++----------
- 1 files changed, 14 insertions(+), 10 deletions(-)
-
-diff --git a/pmap.1 b/pmap.1
-index a91d0e8..de03e87 100644
---- a/pmap.1
-+++ b/pmap.1
-@@ -10,25 +10,29 @@
- pmap \- report memory map of a process
- 
- .SH SYNOPSIS
--.nf
--pmap [ -x | -d ] [ -q ] pids...
--pmap -V
--.fi
-+.B pmap
-+.RB [ \-x | \-d ]
-+.RB [ \-q ]
-+.I pid
-+\& ...
-+.br
-+.B pmap \-V
- 
- .SH DESCRIPTION
- The pmap command reports the memory map of a process or processes.
- 
- .SH "GENERAL OPTIONS"
- .TS
--l l l.
---x	extended	Show the extended format.
---d	device	Show the device format.
---q	quiet	Do not display some header/footer lines.
---V	show version	Displays version of program.
-+lB l l.
-+\-x	extended	Show the extended format.
-+\-d	device	Show the device format.
-+\-q	quiet	Do not display some header/footer lines.
-+\-V	show version	Displays version of program.
- .TE
- 
- .SH "SEE ALSO"
--ps(1) pgrep(1)
-+.BR ps(1),
-+.BR pgrep(1)
- 
- .SH STANDARDS
- No standards apply, but pmap looks an awful lot like a SunOS command.
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0005-10_ps.1.patch b/patches/procps-3.2.8/0005-10_ps.1.patch
deleted file mode 100644
index 6cc3657..0000000
--- a/patches/procps-3.2.8/0005-10_ps.1.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From bc20fbffd9fd7f94ef02ad570dd697c4b6b75a16 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 05/70] 10_ps.1
-
-pri field explained
---no-heading comment is an alias for --no-headers
-Removed setproctitle(1) reference
-Bug-Debian: http://bugs.debian.org/465761
-Bug-Debian: http://bugs.debian.org/529045
----
- ps/ps.1 |   17 ++++++++---------
- 1 files changed, 8 insertions(+), 9 deletions(-)
-
-diff --git a/ps/ps.1 b/ps/ps.1
-index 64953d5..0f896bf 100644
---- a/ps/ps.1
-+++ b/ps/ps.1
-@@ -18,19 +18,13 @@
- .nh
- .if n .ss 12 0
- .\"
--.\" See /usr/share/groff/current/tmac/an-old.tmac for what these do.
--.\" Setting them to zero provides extra space, but only do that for
--.\" plain text output. PostScript and such will remain indented.
--.if n .nr IN 0n
--.if n .nr an-prevailing-indent 0n
--.\"
- .\"
- .\" ColSize is used for the format spec table.
- .\" It's the left margin, minus the right, minus
- .\" the space needed for the 1st two columns.
- .\" Making it messy: inches, ens, points, scaled points...
- .\"
--.nr ColSize ((\n(.lu-\n(.iu/\n(.Hu-20u)n)
-+.nr ColSize ((\n(.lu-\n(.iu/\n(.Hu-26u)n)
- .\"
- .\" This is for command options
- .nr OptSize (16u)
-@@ -499,7 +493,7 @@ parent process repeatedly forks off short\-lived children to do work.
- .opt c
- Show the true command name. This is derived from the name of the
- executable file, rather than from the argv value. Command arguments
--and any modifications to them (see\ \fIsetproctitle\fR(3)) are
-+and any modifications to them  are
- thus not shown. This option
- effectively turns the \fBargs\fR format keyword into the \fBcomm\fR
- format keyword; it is useful with the \fB\-f\fR format option and with
-@@ -588,7 +582,8 @@ ASCII art process tree
- repeat header lines, one per page of output
- 
- .opt \-\-no\-headers
--print no header line at all
-+print no header line at all. \-\-no\-heading is an alias for this
-+option.
- 
- .opt \-\-lines \ n
- set screen height
-@@ -1159,6 +1154,10 @@ ppid	PPID	T{
- parent process ID.
- T}
- 
-+pri	PRI	T{
-+priority of the process. Higher number means lower priority
-+T}
-+
- psr	PSR	T{
- processor that process is currently assigned to.
- T}
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0006-skill.1.patch b/patches/procps-3.2.8/0006-skill.1.patch
deleted file mode 100644
index 3896e5b..0000000
--- a/patches/procps-3.2.8/0006-skill.1.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 25e97f620d09a704305bd42042f69b76c58cd64a Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 06/70] skill.1
-
-===================================================================
----
- skill.1 |   63 ++++++++++++++++++++++++++++++++++-----------------------------
- 1 files changed, 34 insertions(+), 29 deletions(-)
-
-diff --git a/skill.1 b/skill.1
-index a4fc274..a56b969 100644
---- a/skill.1
-+++ b/skill.1
-@@ -11,37 +11,38 @@
- skill, snice \- send a signal or report process status
- 
- .SH SYNOPSIS
--.nf
--skill [signal to send] [options] process selection criteria
--snice [new priority] [options] process selection criteria
--.fi
-+.B skill
-+.RI [ "signal to send" ]
-+.RI [ options ]
-+.I process selection criteria
-+.br
-+.B snice
-+.RI [ "new priority" ]
-+.RI [ options ]
-+.I process selection criteria
- 
- .SH DESCRIPTION
- These tools are probably obsolete and unportable. The command
- syntax is poorly defined. Consider using the killall, pkill,
- and pgrep commands instead.
- 
--The default signal for skill is TERM. Use -l or -L to list available signals.
-+The default signal for skill is TERM. Use \-l or \-L to list available signals.
- Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.
--Alternate signals may be specified in three ways: -9 -SIGKILL -KILL.
-+Alternate signals may be specified in three ways: \-9 \-SIGKILL \-KILL.
- 
- The default priority for snice is +4. (snice +4 ...)
--Priority numbers range from +20 (slowest) to -20 (fastest).
-+Priority numbers range from +20 (slowest) to \-20 (fastest).
- Negative priority numbers are restricted to administrative users.
- 
- .SH "GENERAL OPTIONS"
- .TS
--l l l.
---f	fast mode	This is not currently useful.
---i	interactive use	T{
--You will be asked to approve each action.
--T}
---v	verbose output	T{
--Display information about selected processes.
--T}
---w	warnings enabled	This is not currently useful.
---n	no action	This only displays the process ID.
---V	show version	Displays version of program.
-+lB l l.
-+\-f	fast mode	This is not currently useful.
-+\-i	interactive use	You will be asked to approve each action.
-+\-v	verbose output	Display information about selected processes.
-+\-w	warnings enabled	This is not currently useful.
-+\-n	no action	This only displays the process ID.
-+\-V	show version	Displays version of program.
- .TE
- 
- .SH "PROCESS SELECTION OPTIONS"
-@@ -49,11 +50,11 @@ Selection criteria can be: terminal, user, pid, command.
- The options below may be used to ensure correct interpretation.
- Do not blame Albert for this interesting interface.
- .TS
--l l.
---t	The next argument is a terminal (tty or pty).
---u	The next argument is a username.
---p	The next argument is a process ID number.
---c	The next argument is a command name.
-+lB l.
-+\-t	The next argument is a terminal (tty or pty).
-+\-u	The next argument is a username.
-+\-p	The next argument is a process ID number.
-+\-c	The next argument is a command name.
- .TE
- 
- .SH SIGNALS
-@@ -63,7 +64,6 @@ When known, numbers and default behavior are shown.
- lB rB lB lB
- lfCW r l l.
- Name	Num	Action	Description
--.TH
- 0	0	n/a	exit code indicates if a signal may be sent
- ALRM	14	exit
- HUP	1	exit
-@@ -104,15 +104,20 @@ XFSZ		core	core dump may fail
- lB lB
- lfCW l.
- Command	Description
--.TC
- snice seti crack +7	Slow down seti and crack
--skill -KILL -v /dev/pts/*	Kill users on new-style PTY devices
--skill -STOP viro lm davem	Stop 3 users
--snice -17 root bash	Give priority to root's shell
-+skill \-KILL \-v /dev/pts/*	Kill users on new-style PTY devices
-+skill \-STOP viro lm davem	Stop 3 users
-+snice \-17 root bash	Give priority to root's shell
- .TE
- 
- .SH "SEE ALSO"
--killall(1) pkill(1) kill(1) renice(1) nice(1) signal(7) kill(2)
-+.BR killall (1),
-+.BR pkill (1),
-+.BR kill (1),
-+.BR renice (1),
-+.BR nice(1),
-+.BR kill(2),
-+.BR signal(7)
- 
- .SH STANDARDS
- No standards apply.
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0007-skill_perror.patch b/patches/procps-3.2.8/0007-skill_perror.patch
deleted file mode 100644
index c38ca2b..0000000
--- a/patches/procps-3.2.8/0007-skill_perror.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 680328798808b3d7201341a63e00c89e9d1bdb1a Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 07/70] skill_perror
-
-===================================================================
----
- skill.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/skill.c b/skill.c
-index 96cc386..54d4c48 100644
---- a/skill.c
-+++ b/skill.c
-@@ -317,6 +317,7 @@ no_more_args:
-       // The standard says we return non-zero if an error occurs. Thus if
-       // killing two processes gives 0 for one and EPERM for the other,
-       // we are required to return both zero and non-zero. Quantum kill???
-+      perror("kill");
-       exitvalue = 1;
-       continue;
-     }
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0008-slabtop_1.patch b/patches/procps-3.2.8/0008-slabtop_1.patch
deleted file mode 100644
index 2b62492..0000000
--- a/patches/procps-3.2.8/0008-slabtop_1.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 1900641c9966032ac791bfb53f045c5c298b6d32 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 08/70] slabtop_1
-
-===================================================================
----
- slabtop.1 |   35 ++++++++++++++++++++---------------
- 1 files changed, 20 insertions(+), 15 deletions(-)
-
-diff --git a/slabtop.1 b/slabtop.1
-index 11f277e..7e27980 100644
---- a/slabtop.1
-+++ b/slabtop.1
-@@ -7,36 +7,39 @@
- slabtop \- display kernel slab cache information in real time
- 
- .SH SYNOPSIS
--.BI "slabtop [ " options " ] "
-+.B slabtop
-+.RI [ options ]
- 
- .SH DESCRIPTION
--.BR slabtop (1)
-+.B slabtop
- displays detailed kernel slab cache information in real time.  It displays a
- listing of the top caches sorted by one of the listed sort criteria.  It also
- displays a statistics header filled with slab layer information.
- 
- .SH OPTIONS
- Normal invocation of 
--.BR slabtop (1)
-+.B slabtop
- does not require any options.  The behavior, however, can be fine-tuned by
- specifying one or more of the following flags:
- .TP
--.B \-\^\-delay=n, \-d n
--Refresh the display every n seconds.  By default,
--.BR slabtop (1)
-+.B \-\-delay=\fIn\fR, \fB\-d \fIn
-+Refresh the display every
-+.I n
-+in seconds.  By default,
-+.B slabtop
- refreshes the display every three seconds.  To exit the program, hit
- .BR q.
- .TP
--.B \-\^\-sort=S, \-s S
--Sort by S, where S is one of the sort criteria.
-+.B \-\-sort=\fIS\fR, \fB\-s\fR \fIS
-+Sort by \fIS\fR, where \fIS\fR is one of the sort criteria.
- .TP
--.B \-\^\-once, \-o
-+.B \-\-once\fR, \fB\-o
- Display the output once and then exit.
- .TP
--.B \-\^\-version, \-V
-+.B \-\-version\fR, \fB\-V
- Display version information and exit.
- .TP
--.B \-\^\-help
-+.B \-\-help
- Display usage information and exit.
- 
- .SH SORT CRITERIA
-@@ -78,7 +81,7 @@ sort by object size
- sort by cache utilization
- 
- .SH COMMANDS
--.BR slabtop (1)
-+.B slabtop
- accepts keyboard commands from the user during use.  The following are
- supported.  In the case of letters, both cases are accepted.
- 
-@@ -94,7 +97,9 @@ Refresh the screen.
- Quit the program.
- 
- .SH FILES
--.IR /proc/slabinfo " \-\- slab information"
-+.TP
-+.I /proc/slabinfo
-+slab information
- 
- .SH "SEE ALSO"
- .BR free (1),
-@@ -104,7 +109,7 @@ Quit the program.
- 
- .SH NOTES
- Currently,
--.BR slabtop (1)
-+.B slabtop
- requires a 2.4 or later kernel (specifically, a version 1.1 or later
- .IR /proc/slabinfo ).
- Kernel 2.2 should be supported in the future.
-@@ -116,7 +121,7 @@ file is tracking information about used slab physical memory.
- .SH AUTHORS
- Written by Chris Rivera and Robert Love.
- 
--.BR slabtop (1)
-+.B slabtop
- was inspired by Martin Bligh's perl script,
- .BR vmtop .
- The procps package is maintained by Albert Cahalan <albert@users.sf.net>.
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0009-sysctl.8.patch b/patches/procps-3.2.8/0009-sysctl.8.patch
deleted file mode 100644
index 73322e4..0000000
--- a/patches/procps-3.2.8/0009-sysctl.8.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-From 9dc2b36cc4ac6e49f0eeb2cc701376a7ce33fa13 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 09/70] sysctl.8
-
-cleanup sysctl man page
-Bug-Debian: http://bugs.debian.org/297144
-Bug-Debian: http://bugs.debian.org/282168
----
- sysctl.8 |   90 ++++++++++++++++++++++++++++++++++++++++++--------------------
- 1 files changed, 61 insertions(+), 29 deletions(-)
-
-diff --git a/sysctl.8 b/sysctl.8
-index e26c4fb..3bb46d7 100644
---- a/sysctl.8
-+++ b/sysctl.8
-@@ -10,76 +10,108 @@
- .SH NAME
- sysctl \- configure kernel parameters at runtime
- .SH SYNOPSIS
--.B "sysctl [-n] [-e] variable ..."
-+.B sysctl
-+.RB [ \-n ]
-+.RB [ \-e ]
-+.I variable
-+\&...
- .br
--.B "sysctl [-n] [-e] [-q] -w variable=value ..."
-+.B sysctl
-+.RB [ \-n ]
-+.RB [ \-e ]
-+.RB [ \-q ]
-+.B \-w
-+.IR variable = value
-+\&...
- .br
--.B "sysctl [-n] [-e] [-q] -p <filename>"
-+.B sysctl
-+.RB [ \-n ]
-+.RB [ \-e ]
-+.RB [ \-q ]
-+.B \-p
-+.RI [ filename ]
- .br
--.B "sysctl [-n] [-e] -a"
-+.B sysctl
-+.RB [ \-n ]
-+.RB [ \-e ]
-+.B \-a
- .br
--.B "sysctl [-n] [-e] -A"
-+.B sysctl
-+.RB [ \-n ]
-+.RB [ \-e ]
-+.B \-A
- .SH DESCRIPTION
- .B sysctl
- is used to modify kernel parameters at runtime.  The parameters available
- are those listed under /proc/sys/.  Procfs is required for 
--.B sysctl(8)
-+.B sysctl
- support in Linux.  You can use
--.B sysctl(8)
-+.B sysctl
- to both read and write sysctl data.
- .SH PARAMETERS
- .TP
--.B "variable"
-+.I variable
- The name of a key to read from.  An example is kernel.ostype.  The '/'
- separator is also accepted in place of a '.'.
- .TP
--.B "variable=value"
--To set a key, use the form variable=value, where variable is the key and
--value is the value to set it to.  If the value contains quotes or characters
-+.IR  variable = value
-+To set a key, use the form
-+.IR  variable = value
-+where
-+.I variable
-+is the key and
-+.I value
-+is the value to set it to.  If the value contains quotes or characters
- which are parsed by the shell, you may need to enclose the value in double
--quotes.  This requires the -w parameter to use.
-+quotes.  This requires the
-+.B \-w
-+parameter to use.
- .TP
--.B "-n"
-+.B \-n
- Use this option to disable printing of the key name when printing values.
- .TP
--.B "-e"
-+.B \-e
- Use this option to ignore errors about unknown keys.
- .TP
--.B "-N"
-+.B \-N
- Use this option to only print the names. It may be useful with shells that
- have programmable completion.
- .TP
--.B "-q"
-+.B \-q
- Use this option to not display the values set to stdout.
- .TP
--.B "-w"
-+.B \-w
- Use this option when you want to change a sysctl setting.
- .TP
--.B "-p"
-+.B \-p
- Load in sysctl settings from the file specified or /etc/sysctl.conf if none given.
- Specifying \- as filename means reading data from standard input.
- .TP
--.B "-a"
-+.B \-a
- Display all values currently available.
- .TP
--.B "-A"
-+.B \-A
- Display all values currently available in table form.
- .SH EXAMPLES
--.TP
--/sbin/sysctl -a
--.TP
--/sbin/sysctl -n kernel.hostname
--.TP
--/sbin/sysctl -w kernel.domainname="example.com"
--.TP
--/sbin/sysctl -p /etc/sysctl.conf 
-+/sbin/sysctl \-a
-+.br
-+/sbin/sysctl \-n kernel.hostname
-+.br
-+/sbin/sysctl \-w kernel.domainname="example.com"
-+.br
-+/sbin/sysctl \-p /etc/sysctl.conf
- .SH FILES
- .I /proc/sys
-+.br
- .I /etc/sysctl.conf
- .SH SEE ALSO
- .BR sysctl.conf (5)
- .SH BUGS
--The -A parameter behaves just as -a does.
-+The
-+.B \-A
-+parameter behaves just as
-+.B \-a
-+does.
- .SH AUTHOR
- George Staikos, <staikos@0wned.org>
- 
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0010-sysctl_options.patch b/patches/procps-3.2.8/0010-sysctl_options.patch
deleted file mode 100644
index ae896ce..0000000
--- a/patches/procps-3.2.8/0010-sysctl_options.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 70cba9b7a33e2ce32045324b3fbe8fa901cfe9d2 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 10/70] sysctl_options
-
-===================================================================
----
- sysctl.c |   12 ++++++++++--
- 1 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/sysctl.c b/sysctl.c
-index 1470df9..4024f71 100644
---- a/sysctl.c
-+++ b/sysctl.c
-@@ -421,6 +421,7 @@ int main(int argc, char *argv[]) {
-    const char *me = (const char *)basename(argv[0]);
-    bool SwitchesAllowed = true;
-    bool WriteMode = false;
-+   bool DisplayAllOpt = false;
-    int ReturnCode = 0;
-    const char *preloadfile = DEFAULT_PRELOAD;
- 
-@@ -486,8 +487,8 @@ int main(int argc, char *argv[]) {
-          case 'a': // string and integer values (for Linux, all of them)
-          case 'A': // same as -a -o
-          case 'X': // same as -a -x
--              SwitchesAllowed = false;
--              return DisplayAll(PROC_PATH);
-+              DisplayAllOpt = true;
-+              break;
-          case 'V':
-               fprintf(stdout, "sysctl (%s)\n",procps_version);
-               exit(0);
-@@ -502,6 +503,8 @@ int main(int argc, char *argv[]) {
-       } else {
-          if (NameOnly && Quiet)   // nonsense
-             return Usage(me);
-+         if (DisplayAllOpt)    // We cannot have values with -a
-+             return Usage(me);
-          SwitchesAllowed = false;
-          if (WriteMode || index(*argv, '='))
-             ReturnCode = WriteSetting(*argv);
-@@ -509,6 +512,11 @@ int main(int argc, char *argv[]) {
-             ReturnCode = ReadSetting(*argv);
-       }
-    }
-+   if (DisplayAllOpt) {
-+       if (Quiet)
-+           return Usage(me);
-+       return DisplayAll(PROC_PATH);
-+   }
- 
-    return ReturnCode;
- }
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0011-tload.1.patch b/patches/procps-3.2.8/0011-tload.1.patch
deleted file mode 100644
index abee2e8..0000000
--- a/patches/procps-3.2.8/0011-tload.1.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 151b90caee59a7e1d4d5cf3cd6c38515e0cdac21 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 11/70] tload.1
-
-===================================================================
----
- tload.1 |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/tload.1 b/tload.1
-index ef82b01..8ec8c43 100644
---- a/tload.1
-+++ b/tload.1
-@@ -39,7 +39,7 @@ The
- .BI "\-d" " delay"
- option sets the time argument for an
- .BR alarm (2);
--if -d 0 is specified, the alarm is set to 0, which will never send the
-+if \-d 0 is specified, the alarm is set to 0, which will never send the
- .B SIGALRM
- and update the display.
- 
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0012-top_irix.patch b/patches/procps-3.2.8/0012-top_irix.patch
deleted file mode 100644
index 334798e..0000000
--- a/patches/procps-3.2.8/0012-top_irix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 8d8c23f4cae6eb9de188d7261a23adff0b14954c Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 12/70] top_irix
-
-===================================================================
----
- top.c |   15 +++++++++++++--
- 1 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/top.c b/top.c
-index 6d4a7cc..c7e7553 100644
---- a/top.c
-+++ b/top.c
-@@ -1783,7 +1783,8 @@ static void configs_read (void)
-       confighlp(Winstk[i].rc.fieldscur);
-    }
- 
--   if(Rc.mode_irixps && smp_num_cpus>1){
-+   if(Rc.mode_irixps && smp_num_cpus>1 &&
-+      !(CHKw(Curwin, Show_THREADS))) {
-       // good for 100 CPUs per process
-       pcpu_max_value = 9999.0;
-       Fieldstab[P_CPU].fmts = " %4.0f";
-@@ -2570,6 +2571,15 @@ static void do_key (unsigned c)
-       case 'H':
-          if (VIZCHKc) {
-             TOGw(Curwin, Show_THREADS);
-+            if(Rc.mode_irixps && smp_num_cpus>1 &&
-+               !(CHKw(Curwin, Show_THREADS))){
-+               // good for 100 CPUs per process
-+               pcpu_max_value = 9999.0;
-+               Fieldstab[P_CPU].fmts = " %4.0f";
-+            } else {
-+               pcpu_max_value = 99.9;
-+               Fieldstab[P_CPU].fmts = " %#4.1f";
-+            }
-             show_msg(fmtmk("Show threads %s"
-                , CHKw(Curwin, Show_THREADS) ? "On" : "Off"));
-          }
-@@ -2626,7 +2636,8 @@ static void do_key (unsigned c)
-          Rc.mode_irixps = !Rc.mode_irixps;
-          show_msg(fmtmk("Irix mode %s", Rc.mode_irixps ? "On" : "Off"));
- #endif
--         if(Rc.mode_irixps && smp_num_cpus>1){
-+         if(Rc.mode_irixps && smp_num_cpus>1 &&
-+            !(CHKw(Curwin, Show_THREADS))){
-             // good for 100 CPUs per process
-             pcpu_max_value = 9999.0;
-             Fieldstab[P_CPU].fmts = " %4.0f";
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0013-top_no_openproc.patch b/patches/procps-3.2.8/0013-top_no_openproc.patch
deleted file mode 100644
index 4b953ed..0000000
--- a/patches/procps-3.2.8/0013-top_no_openproc.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 9b25ed7c35e2c33e585b893052bcf6d8283b5eca Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 13/70] top_no_openproc
-
-===================================================================
----
- top.c |    6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/top.c b/top.c
-index c7e7553..72056a1 100644
---- a/top.c
-+++ b/top.c
-@@ -1106,6 +1106,12 @@ static proc_t **procs_refresh (proc_t **table, int flags)
-    else
-       PT = openproc(flags);
- 
-+    if (PT==NULL) {
-+        std_err(strerror(errno));
-+        exit(1);
-+    }
-+
-+
-    // i) Allocated Chunks:  *Existing* table;  refresh + reuse
-    if (!(CHKw(Curwin, Show_THREADS))) {
-       while (curmax < savmax) {
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0014-top_stdin_eof.patch b/patches/procps-3.2.8/0014-top_stdin_eof.patch
deleted file mode 100644
index e09a1e4..0000000
--- a/patches/procps-3.2.8/0014-top_stdin_eof.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 694d025649a5536d0d30ed6e91d0a87ec85dc7aa Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 14/70] top_stdin_eof
-
-===================================================================
----
- top.c |    5 ++---
- 1 files changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/top.c b/top.c
-index 72056a1..beaca0a 100644
---- a/top.c
-+++ b/top.c
-@@ -3408,9 +3408,8 @@ int main (int dont_care_argc, char *argv[])
-          // check 1st, in case tv zeroed (by sig handler) before it got set
-          rc = chin(0, &c, 1);
-          if (rc <= 0) {
--            // EOF is pretty much a "can't happen" except for a kernel bug.
--            // We should quickly die via SIGHUP, and thus not spin here.
--            // if (rc == 0) end_pgm(0); /* EOF from terminal */
-+            if (rc == 0) end_pgm(0); /* EOF from terminal, may happen if top
-+                                      * erroneously gets detached from it. */
-             fcntl(STDIN_FILENO, F_SETFL, file_flags);
-             select(1, &fs, NULL, NULL, &tv);
-             fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK|file_flags);
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0015-top_uid_length.patch b/patches/procps-3.2.8/0015-top_uid_length.patch
deleted file mode 100644
index de5a0ff..0000000
--- a/patches/procps-3.2.8/0015-top_uid_length.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 2bd08f4ab9b3e6b5dcd1a0d7d7dfd25a5355bc92 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 15/70] top_uid_length
-
-===================================================================
----
- top.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/top.c b/top.c
-index beaca0a..53cab05 100644
---- a/top.c
-+++ b/top.c
-@@ -1237,7 +1237,7 @@ static FLD_t Fieldstab[] = {
-    { "AaAa", "   PID",      " %5u",     -1,    -1, SF(PID), "Process Id",           L_NONE   },
-    { "BbBb", "  PPID",      " %5u",     -1,    -1, SF(PPD), "Parent Process Pid",   L_EITHER },
-    { "CcQq", " RUSER   ",   " %-8.8s",  -1,    -1, SF(URR), "Real user name",       L_RUSER  },
--   { "DdCc", "  UID",       " %4u",     -1,    -1, SF(UID), "User Id",              L_NONE   },
-+   { "DdCc", "   UID",       " %5u",     -1,    -1, SF(UID), "User Id",              L_NONE   },
-    { "EeDd", " USER    ",   " %-8.8s",  -1,    -1, SF(URE), "User Name",            L_EUSER  },
-    { "FfNn", " GROUP   ",   " %-8.8s",  -1,    -1, SF(GRP), "Group Name",           L_GROUP  },
-    { "GgGg", " TTY     ",   " %-8.8s",   8,    -1, SF(TTY), "Controlling Tty",      L_stat   },
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0016-uptime.1.patch b/patches/procps-3.2.8/0016-uptime.1.patch
deleted file mode 100644
index 9c2da06..0000000
--- a/patches/procps-3.2.8/0016-uptime.1.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From b79e4c42592ff040817fd722c6083b2ebe40c289 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 16/70] uptime.1
-
-===================================================================
----
- uptime.1 |   23 ++++++++++++++++++-----
- 1 files changed, 18 insertions(+), 5 deletions(-)
-
-diff --git a/uptime.1 b/uptime.1
-index 3aae739..a3da7c7 100644
---- a/uptime.1
-+++ b/uptime.1
-@@ -6,7 +6,8 @@ uptime \- Tell how long the system has been running.
- .SH SYNOPSIS
- .B uptime
- .br
--.BR uptime " [" "\-V" ]
-+.B uptime
-+.RB [ \-V ]
- .SH DESCRIPTION
- .B uptime
- gives a one line display of the following information.
-@@ -14,13 +15,25 @@ The current time,
- how long the system has been running,
- how many users are currently logged on,
- and the system load averages for the past 1, 5, and 15 minutes.
--.sp
-+
- This is the same information contained in the header line displayed by 
- .BR w (1).
-+.sp
-+System load averages is the average number of processes that are either
-+in a runnable or uninterruptable state.  A process in a runnable state is
-+either using the CPU or waiting to use the CPU. A process in
-+uninterruptable state is waiting for some I/O access, eg waiting for
-+disk.  The averages are taken over the three time intervals.
-+Load averages are not normalized for the number of CPUs in a system, so
-+a load average of 1 means a single CPU system is loaded all the time
-+while on a 4 CPU system it means it was idle 75% of the time.
- .SH FILES
--.IR /var/run/utmp "	information about who is currently logged on"
--.br
--.IR /proc "	process information"
-+.TP
-+.I /var/run/utmp
-+information about who is currently logged on
-+.TP
-+.I /proc
-+process information
- .SH AUTHORS
- .B uptime
- was written by Larry Greenfield <greenfie@gauss.rutgers.edu> and
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0017-vmstat.8.patch b/patches/procps-3.2.8/0017-vmstat.8.patch
deleted file mode 100644
index af404a7..0000000
--- a/patches/procps-3.2.8/0017-vmstat.8.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From e0d2fe1828af05117a04e167cf77a26f7dcf1209 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 17/70] vmstat.8
-
-Removes pslab as it doesnt appear
----
- vmstat.8 |   37 ++++++++++++++++++++-----------------
- 1 files changed, 20 insertions(+), 17 deletions(-)
-
-diff --git a/vmstat.8 b/vmstat.8
-index c059ec0..c97826f 100644
---- a/vmstat.8
-+++ b/vmstat.8
-@@ -1,6 +1,6 @@
- .\"  This page Copyright (C) 1994 Henry Ware <al172@yfn.ysu.edu>
- .\"  Distributed under the GPL, Copyleft 1994.
--.TH VMSTAT 8 "27 July 1994 " "Throatwobbler Ginkgo Labs" "Linux Administrator's Manual"
-+.TH VMSTAT 8 "2009 Jan 9" "Throatwobbler Ginkgo Labs" "Linux Administrator's Manual"
- .SH NAME
- vmstat \- Report virtual memory statistics
- .SH SYNOPSIS
-@@ -22,32 +22,35 @@ vmstat \- Report virtual memory statistics
- .RB [ "\-d"]
- .br
- .B vmstat
-+.RB [ "\-D"]
-+.br
-+.B vmstat
- .RB [ "\-p disk partition"]
- .br
- .B vmstat
- .RB [ "\-V" ]
- .SH DESCRIPTION
- \fBvmstat\fP reports information about processes, memory, paging,
--block IO, traps, and cpu activity.
-+block IO, traps, disks and cpu activity.
- 
- The first report produced gives averages since the last reboot.  Additional
- reports give information on a sampling period of length \fIdelay\fP.
- The process and memory reports are instantaneous in either case.
- 
- .SS Options
--The \fB-a\fP switch displays active/inactive memory, given a 2.5.41 kernel or better.
-+The \fB\-a\fP switch displays active/inactive memory, given a 2.5.41 kernel or better.
- .PP
--The \fB-f\fP switch displays the number of forks since boot.
-+The \fB\-f\fP switch displays the number of forks since boot.
- This includes the fork, vfork, and clone system calls, and is
- equivalent to the total number of tasks created. Each process
- is represented by one or more tasks, depending on thread usage.
- This display does not repeat.
- .PP
--The \fB-m\fP displays slabinfo.
-+The \fB\-m\fP displays slabinfo.
- .PP
--The \fB-n\fP switch causes the header to be displayed only once rather than periodically.
-+The \fB\-n\fP switch causes the header to be displayed only once rather than periodically.
- .PP
--The \fB-s\fP switch displays a table of various event counters
-+The \fB\-s\fP switch displays a table of various event counters
- and memory statistics. This display does not repeat.
- .PP
- .I delay
-@@ -58,13 +61,15 @@ only one report is printed with the average values since boot.
- is the number of updates.  If no count is specified and delay is
- defined, \fIcount\fP defaults to infinity.
- .PP
--The \fB-d\fP reports disk statistics (2.5.70 or above required) 
-+The \fB\-d\fP reports disk statistics (2.5.70 or above required)
-+.PP
-+The \fB-D\fP reports some summary statistics about disk activity.
- .PP
--The \fB-p\fP followed by some partition name for detailed statistics (2.5.70 or above required) 
-+The \fB\-p\fP followed by some partition name for detailed statistics (2.5.70 or above required)
- .PP
--The \fB-S\fP followed by k or K or m or M switches outputs between 1000, 1024, 1000000, or 1048576 bytes 
-+The \fB\-S\fP followed by k or K or m or M switches outputs between 1000, 1024, 1000000, or 1048576 bytes
- .PP
--The \fB-V\fP switch results in displaying version information.
-+The \fB\-V\fP switch results in displaying version information.
- .PP
- .SH FIELD DESCRIPTION FOR VM MODE
- .SS
-@@ -81,8 +86,8 @@ swpd: the amount of virtual memory used.
- free: the amount of idle memory.
- buff: the amount of memory used as buffers.
- cache: the amount of memory used as cache.
--inact: the amount of inactive memory. (-a option)
--active: the amount of active memory. (-a option)
-+inact: the amount of inactive memory. (\-a option)
-+active: the amount of active memory. (\-a option)
- .fi
- .PP
- .SS
-@@ -110,9 +115,9 @@ cs: The number of context switches per second.
- .B "CPU "
- These are percentages of total CPU time.
- .nf
--us: Time spent running non-kernel code. (user time, including nice time)
-+us: Time spent running non\-kernel code. (user time, including nice time)
- sy: Time spent running kernel code. (system time)
--id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
-+id: Time spent idle. Prior to Linux 2.5.41, this includes IO\-wait time.
- wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.
- st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
- 
-@@ -161,8 +166,6 @@ num: Number of currently active objects
- total: Total number of available objects
- size: Size of each object
- pages: Number of pages with at least one active object
--totpages: Total number of allocated pages
--pslab: Number of pages per slab
- .fi
- 
- .SH NOTES
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0018-watch.1.patch b/patches/procps-3.2.8/0018-watch.1.patch
deleted file mode 100644
index 43a7901..0000000
--- a/patches/procps-3.2.8/0018-watch.1.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 61e92daf921b7a85ac8693341f8890658c61f047 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 18/70] watch.1
-
-===================================================================
----
- watch.1 |   47 ++++++++++++++++++++++++++++-------------------
- 1 files changed, 28 insertions(+), 19 deletions(-)
-
-diff --git a/watch.1 b/watch.1
-index 41323f4..1616794 100644
---- a/watch.1
-+++ b/watch.1
-@@ -1,45 +1,54 @@
--.TH WATCH 1 "1999 Apr 3" " " "Linux User's Manual"
-+.TH WATCH 1 "2009 May 11" " " "Linux User's Manual"
- .SH NAME
- watch \- execute a program periodically, showing output fullscreen
- .SH SYNOPSIS
-+.na
- .B watch
--.I [\-dhvt] [\-n <seconds>] [\-\-differences[=cumulative]] [\-\-help] [\-\-interval=<seconds>] [\-\-no\-title] [\-\-version] <command>
-+.RB [ \-dhvt ]
-+.RB [ \-n
-+.IR seconds ]
-+.RB [ \-\-differences[=\fIcumulative\fP]]
-+.RB [ \-\-help ]
-+.RB [ \-\-interval=\fIseconds\fP]
-+.RB [ \-\-no\-title ]
-+.RB [ \-\-version ]
-+.I command
- .SH DESCRIPTION
--.BR watch
-+.B watch
- runs
- .I command
- repeatedly, displaying its output (the first screenfull).  This allows you to
- watch the program output change over time.  By default, the program is run
- every 2 seconds; use 
--.I -n
-+.B \-n
- or
--.I --interval
-+.B \-\-interval
- to specify a different interval.
- .PP
- The
--.I -d
-+.B \-d
- or
--.I --differences
--flag will highlight the differences between successive updates.  The 
--.I --cumulative
--option makes highlighting "sticky", presenting a running display of all
-+.B \-\-differences
-+flag will highlight the differences between successive updates.  Using
-+.B \-\-differences=\fIcumulative\fP
-+makes highlighting "sticky", presenting a running display of all
- positions that have ever changed.  The
--.I -t
-+.B \-t
- or
--.I --no-title
-+.B \-\-no\-title
- option turns off the header showing the interval, command, and current
- time at the top of the display, as well as the following blank line.
- .PP
--.BR watch
-+.B watch
- will run until interrupted.
- .SH NOTE
- Note that
- .I command
--is given to "sh -c"
-+is given to "sh \-c"
- which means that you may need to use extra quoting to get the desired effect.
- .PP
- Note that POSIX option processing is used (i.e., option processing stops at
--the first non-option argument).  This means that flags after
-+the first non\-option argument).  This means that flags after
- .I command
- don't get interpreted by
- .BR watch
-@@ -61,20 +70,20 @@ watch \-d 'ls \-l | fgrep joe'
- To see the effects of quoting, try these out
- .IP
- watch echo $$
--.IP
-+.br
- watch echo '$$'
--.IP
-+.br
- watch echo "'"'$$'"'"
- .PP
- You can watch for your administrator to install the latest kernel with
- .IP
--watch uname -r
-+watch uname \-r
- .PP
- (Just kidding.)
- .SH BUGS
- Upon terminal resize, the screen will not be correctly repainted until the
- next scheduled update.  All
--.I --differences
-+.B \-\-differences
- highlighting is lost on that update as well.
- .PP
- Non-printing characters are stripped from program output.  Use "cat -v" as
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0019-w_time.patch b/patches/procps-3.2.8/0019-w_time.patch
deleted file mode 100644
index 1320cbe..0000000
--- a/patches/procps-3.2.8/0019-w_time.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 57506edfb12bcb7b14d8614d9e79872beeca05a9 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:45 +0100
-Subject: [PATCH 19/70] w_time
-
-===================================================================
----
- w.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/w.c b/w.c
-index 1b2a0fc..a6b1b25 100644
---- a/w.c
-+++ b/w.c
-@@ -83,7 +83,7 @@ static void print_time_ival7(time_t t, int centi_sec, FILE* fout) {
-     else if (t > 60)				/* > 1 minute */
- 	fprintf(fout, " %2lu:%02u ", t/60, (unsigned) t%60);
-     else
--	fprintf(fout, " %2lu.%02us", t, centi_sec);
-+    fprintf(fout, " %2lu.%02us", t, centi_sec);
- }
- 
- /**** stat the device file to get an idle time */
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0020-kill.1.patch b/patches/procps-3.2.8/0020-kill.1.patch
deleted file mode 100644
index 217a549..0000000
--- a/patches/procps-3.2.8/0020-kill.1.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-From 05403f8eb1a2fb4d0c03034633e8626fffb33687 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 20/70] kill.1
-
-Changed may to cannot or might
-Bug-Debian: http://bugs.debian.org/375739
----
- kill.1 |   86 +++++++++++++++++++++++++++------------------------------------
- 1 files changed, 37 insertions(+), 49 deletions(-)
-
-diff --git a/kill.1 b/kill.1
-index aef9dbf..df1bdd7 100644
---- a/kill.1
-+++ b/kill.1
-@@ -10,23 +10,18 @@
- kill \- send a signal to a process
- 
- .SH SYNOPSIS
--.TS
--l l.
--kill pid ...	Send SIGTERM to every process listed.
--kill -signal pid ...	Send a signal to every process listed.
--kill -s signal pid ...	Send a signal to every process listed.
--kill -l	List all signal names.
--kill -L	List all signal names in a nice table.
--kill -l signal	Convert a signal number into a name.
--kill -V,--version	Show version of program
--.TE
-+\fBkill\fR [ \-\fBsignal\fR | \-s \fBsignal\fR ] \fBpid\fR ...
-+.br
-+\fBkill\fR [ \-L | -V, \-\-version ]
-+.br
-+\fBkill\fR \-l  [ \fBsignal\fR ]
- 
- .SH DESCRIPTION
--The default signal for kill is TERM. Use -l or -L to list available signals.
-+The default signal for kill is TERM. Use \-l or \-L to list available signals.
- Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.
--Alternate signals may be specified in three ways: -9 -SIGKILL -KILL.
-+Alternate signals may be specified in three ways: \-9 \-SIGKILL \-KILL.
- Negative PID values may be used to choose whole process groups; see the
--PGID column in ps command output. A PID of -1 is special; it indicates
-+PGID column in ps command output. A PID of \-1 is special; it indicates
- all processes except the kill process itself and init.
- 
- .SH SIGNALS
-@@ -37,12 +32,11 @@ When known constant, numbers and default behavior are shown.
- lB rB lB lB
- lfCW r l l.
- Name	Num	Action	Description
--.TH
- 0	0	n/a	exit code indicates if a signal may be sent
- ALRM	14	exit
- HUP	1	exit
- INT	2	exit
--KILL	9	exit	this signal may not be blocked
-+KILL	9	exit	cannot be blocked
- PIPE	13	exit
- POLL		exit
- PROF		exit
-@@ -50,15 +44,15 @@ TERM	15	exit
- USR1		exit
- USR2		exit
- VTALRM		exit
--STKFLT		exit	may not be implemented
--PWR		ignore	may exit on some systems
-+STKFLT		exit	might not be implemented
-+PWR		ignore	might exit on some systems
- WINCH		ignore
- CHLD		ignore
- URG		ignore
--TSTP		stop	may interact with the shell
--TTIN		stop	may interact with the shell
--TTOU		stop	may interact with the shell
--STOP		stop	this signal may not be blocked
-+TSTP		stop	might interact with the shell
-+TTIN		stop	might interact with the shell
-+TTOU		stop	might interact with the shell
-+STOP		stop	cannot be blocked
- CONT		restart	continue if stopped, otherwise ignore
- ABRT	6	core
- FPE	8	core
-@@ -66,11 +60,11 @@ ILL	4	core
- QUIT	3	core
- SEGV	11	core
- TRAP	5	core
--SYS		core	may not be implemented
--EMT		core	may not be implemented
--BUS		core	core dump may fail
--XCPU		core	core dump may fail
--XFSZ		core	core dump may fail
-+SYS		core	might not be implemented
-+EMT		core	might not be implemented
-+BUS		core	core dump might fail
-+XCPU		core	core dump might fail
-+XFSZ		core	core dump might fail
- .TE
- 
- .SH NOTES
-@@ -79,36 +73,30 @@ You may need to run the command described here as /bin/kill to solve
- the conflict.
- 
- .SH EXAMPLES
--
--.SS
--.B "kill -9 -1"
--.nf
-+.TP
-+.B kill \-9 \-1
- Kill all processes you can kill.
--.fi
--.PP
--.SS
--.B "kill -l 11"
--.nf
-+.TP
-+.B kill \-l 11
- Translate number 11 into a signal name.
--.fi
--.PP
--.SS
--.B "kill -L"
--.nf
-+.TP
-+.B kill -L
- List the available signal choices in a nice table.
--.fi
--.PP
--.SS
--.B "kill 123 543 2341 3453"
--.nf
-+.TP
-+.B kill 123 543 2341 3453
- Send the default signal, SIGTERM, to all those processes.
--.fi
--.PP
-+
- .SH "SEE ALSO"
--pkill(1) skill(1) kill(2) renice(1) nice(1) signal(7) killall(1)
-+.BR pkill (1),
-+.BR skill (1),
-+.BR kill (2),
-+.BR renice (1),
-+.BR nice (1),
-+.BR signal (7),
-+.BR killall (1).
- 
- .SH STANDARDS
--This command meets appropriate standards. The -L flag is Linux-specific.
-+This command meets appropriate standards. The \-L flag is Linux-specific.
- 
- .SH AUTHOR
- Albert Cahalan <albert@users.sf.net> wrote kill in 1999 to replace a
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0021-kill_warncr.patch b/patches/procps-3.2.8/0021-kill_warncr.patch
deleted file mode 100644
index f48ba80..0000000
--- a/patches/procps-3.2.8/0021-kill_warncr.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 07d93d1f2f5a299d4279a0fe3b69efeb943509dd Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 21/70] kill_warncr
-
-===================================================================
----
- skill.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/skill.c b/skill.c
-index 54d4c48..c8af9fd 100644
---- a/skill.c
-+++ b/skill.c
-@@ -128,7 +128,7 @@ static void check_proc(int pid){
-   sprintf(buf, "/proc/%d/stat", pid); /* pid (cmd) state ppid pgrp session tty */
-   fd = open(buf,O_RDONLY);
-   if(fd==-1){  /* process exited maybe */
--    if(pids && w_flag) printf("WARNING: process %d could not be found.",pid);
-+    if(pids && w_flag) printf("WARNING: process %d could not be found.\n",pid);
-     return;
-   }
-   fstat(fd, &statbuf);
-@@ -342,7 +342,7 @@ static void skillsnice_usage(void){
-   }else{
-     fprintf(stderr,
-       "Usage:   snice [new priority] [options] process selection criteria\n"
--      "Example: snice netscape crack +7\n"
-+      "Example: snice +7 netscape crack \n"
-       "\n"
-       "The default priority is +4. (snice +4 ...)\n"
-       "Priority numbers range from +20 (slowest) to -20 (fastest).\n"
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0022-module_mk_shared.patch b/patches/procps-3.2.8/0022-module_mk_shared.patch
deleted file mode 100644
index 975e291..0000000
--- a/patches/procps-3.2.8/0022-module_mk_shared.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 20aef92ce98efb9afc8da15135a11dc84e311d54 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 22/70] module_mk_shared
-
-===================================================================
----
- proc/module.mk |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/proc/module.mk b/proc/module.mk
-index af20334..c4e85b4 100644
---- a/proc/module.mk
-+++ b/proc/module.mk
-@@ -17,7 +17,7 @@
- # numbers for future use, the ELF soname can be set equal to the
- # file name until some future date when a stable ABI is declared.
- 
--SHARED     := 1
-+SHARED     ?= 1
- 
- # for lib$(NAME).so and /usr/include/($NAME) and such
- NAME       :=  proc
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0023-sysinfo_elfnote.patch b/patches/procps-3.2.8/0023-sysinfo_elfnote.patch
deleted file mode 100644
index ec03cd4..0000000
--- a/patches/procps-3.2.8/0023-sysinfo_elfnote.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8df7dcb845f80d7ebb46a5942a684164577b5bee Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 23/70] sysinfo_elfnote
-
-===================================================================
----
- proc/sysinfo.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/proc/sysinfo.c b/proc/sysinfo.c
-index cd59534..473634f 100644
---- a/proc/sysinfo.c
-+++ b/proc/sysinfo.c
-@@ -221,12 +221,13 @@ static void init_libproc(void){
-   // _SC_NPROCESSORS_ONLN returns 1, which should work OK
-   smp_num_cpus = sysconf(_SC_NPROCESSORS_ONLN);
-   if(smp_num_cpus<1) smp_num_cpus=1; /* SPARC glibc is buggy */
--
-+#ifdef __linux__
-   if(linux_version_code > LINUX_VERSION(2, 4, 0)){ 
-     Hertz = find_elf_note(AT_CLKTCK);
-     if(Hertz!=NOTE_NOT_FOUND) return;
-     fputs("2.4+ kernel w/o ELF notes? -- report this\n", stderr);
-   }
-+#endif
-   old_Hertz_hack();
- }
- 
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0024-top.1.patch b/patches/procps-3.2.8/0024-top.1.patch
deleted file mode 100644
index b636ff4..0000000
--- a/patches/procps-3.2.8/0024-top.1.patch
+++ /dev/null
@@ -1,427 +0,0 @@
-From 12fb3382a3002090ab811a779556522560f2669d Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 24/70] top.1
-
-Fix page fault description because storage may not be disk
-Author: Craig Small <csmall@debian.org>
----
- top.1 |  110 ++++++++++++++++++++++++++++++++---------------------------------
- 1 files changed, 54 insertions(+), 56 deletions(-)
-
-diff --git a/top.1 b/top.1
-index aeee3c9..b0cec2d 100644
---- a/top.1
-+++ b/top.1
-@@ -42,7 +42,7 @@
- .ds EM \ \fB\-\-\ \fR
- \#                          - these two are for chuckles, makes great grammar
- .ds Me top
--.ds ME \fBtop\fR
-+.ds NE \fBtop\fR
- \#                          - other misc strings for consistent usage/emphasis
- .ds F \fIOff\fR
- .ds O \fIOn\fR
-@@ -85,7 +85,7 @@ top \- display Linux tasks
- .\" ----------------------------------------------------------------------
- .SH SYNOPSIS
- .\" ----------------------------------------------------------------------
--\*(ME \-\fBhv\fR | \-\fBbcHisS\fR \-\fBd\fI delay\fR \-\fBn\fI
-+\*(NE \-\fBhv\fR | \-\fBbcHisS\fR \-\fBd\fI delay\fR \-\fBn\fI
- iterations\fR \-\fBp\fI pid\fR [,\fI pid\fR ...]
- 
- The traditional switches '-' and whitespace are optional.
-@@ -94,7 +94,7 @@ The traditional switches '-' and whitespace are optional.
- .\" ----------------------------------------------------------------------
- .SH DESCRIPTION
- .\" ----------------------------------------------------------------------
--The \*(ME program provides a dynamic real-time view of a running system.
-+The \*(NE program provides a dynamic real-time view of a running system.
- It can display\fB system\fR summary information as well as a list of\fB
- tasks\fR currently being managed by the Linux kernel.
- The types of system summary information shown and the types, order and
-@@ -104,7 +104,7 @@ that configuration can be made persistent across restarts.
- The program provides a limited interactive interface for process
- manipulation as well as a much more extensive interface for personal
- configuration \*(EM encompassing every aspect of its operation.
--And while \*(ME is referred to throughout this document, you are free
-+And while \*(NE is referred to throughout this document, you are free
- to name the program anything you wish.
- That new name, possibly an alias, will then be reflected on \*(Me's display
- and used when reading and writing a \*(CF.
-@@ -190,7 +190,7 @@ command-line.
-        'I' - Irix mode        On\ \ (no, 'solaris' smp)
-      * 'p' - PID monitoring   Off
-      * 's' - Secure mode      Off (unsecured)
--       'B' - Bold disable     Off
-+       'B' - Bold enable      Off
-     \fISummary_Area_defaults\fR
-        'l' - Load Avg/Uptime  On\ \ (thus program name)
-        't' - Task/Cpu states  On\ \ (1+1 lines, see '1')
-@@ -413,16 +413,14 @@ The swapped out portion of a task's total \*(MV image.
- q:\fB RES\fR \*(EM Resident size (kb)
- The non-swapped \*(MP a task has used.
- 
--RES = CODE + DATA.
--
- .TP 3
- r:\fB CODE\fR \*(EM Code size (kb)
--The amount of \*(MP devoted to executable code, also known as
-+The amount of \*(MV devoted to executable code, also known as
- the 'text resident set' size or TRS.
- 
- .TP 3
- s:\fB DATA\fR \*(EM Data+Stack size (kb)
--The amount of \*(MP devoted to other than executable code, also known as
-+The amount of \*(MV devoted to other than executable code, also known as
- the 'data resident set' size or DRS.
- 
- .TP 3
-@@ -436,8 +434,8 @@ u:\fB nFLT\fR \*(EM Page Fault count
- The number of\fB major\fR page faults that have occurred for a task.
- A page fault occurs when a process attempts to read from or write to a virtual
- page that is not currently present in its address space.
--A major page fault is when disk access is involved in making that
--page available.
-+A major page fault is when backing storage access (such as a disk) is involved
-+in making that page available.
- 
- .TP 3
- v:\fB nDRT\fR \*(EM Dirty Pages count
-@@ -504,7 +502,7 @@ and 'Order fields' screens.
- .\" ......................................................................
- .SS 2b. SELECTING and ORDERING Columns
- .\" ----------------------------------------------------------------------
--After pressing the \*(CIs 'f' (Fields select) or \'o' (Order fields) you will
-+After pressing the \*(CIs 'f' (Fields select) or 'o' (Order fields) you will
- be shown a screen containing the current \fBfields string\fR followed by names
- and descriptions for all fields.
- 
-@@ -580,7 +578,7 @@ Use either of these keys if you have a large delay interval and wish to
- see current status,
- 
- .TP 7
--\ \ \'\fB?\fR\' or \'\fBh\fR\' :\fIHelp\fR
-+\ \ \<\fB?\fR\> or \<\fBh\fR\> :\fIHelp\fR
- There are two help levels available.
- The first will provide a reminder of all the basic \*(CIs.
- If \*(Me is\fI secured\fR, that screen will be abbreviated.
-@@ -589,7 +587,7 @@ Typing 'h' or '?' on that help screen will take you to help for those \*(CIs
- applicable to \*(AM.
- 
- .TP 7
--\ \ \'\fB=\fR\' :\fIExit_Task_Limits\fR
-+\ \ \<\fB=\fR\> :\fIExit_Task_Limits\fR
- Removes restrictions on which tasks are shown.
- This command will reverse any 'i' (idle tasks) and 'n' (max tasks) commands
- that might be active.
-@@ -599,13 +597,13 @@ See the '-p' \*(CO for a discussion of PID monitoring.
- When operating in \*(AM this command has a slightly broader meaning.
- 
- .TP 7
--\ \ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
-+\ \ \<\fBA\fR\> :\fIAlternate_Display_Mode_toggle\fR
- This command will switch between \*(FM and \*(AM.
--\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
--\*(CWs and field groups.
-+\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight
-+into \*(CWs and field groups.
- 
- .TP 7
--\ \ \'\fBB\fR\' :\fIBold_Disable/Enable_toggle\fR
-+\ \ \<\fBB\fR\> :\fIBold_Disable/Enable_toggle\fR
- This command will influence use of the 'bold' terminfo capability and
- alters\fB both\fR the \*(SA and \*(TA for the \*(CW.
- While it is intended primarily for use with dumb terminals, it can be
-@@ -617,7 +615,7 @@ Thus, unless the 'x' and/or 'y' toggles are using reverse for emphasis,
- there will be no visual confirmation that they are even on.
- 
- .TP 7
--*\ \'\fBd\fR\' or \'\fBs\fR\' :\fIChange_Delay_Time_interval\fR
-+*\ \<\fBd\fR\> or \<\fBs\fR\> :\fIChange_Delay_Time_interval\fR
- You will be prompted to enter the delay time, in seconds, between
- display updates.
- 
-@@ -631,32 +629,32 @@ If at any time you wish to know the current delay time, simply ask for help
- and view the system summary on the second line.
- 
- .TP 7
--\ \ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
-+\ \ \<\fBG\fR\> :\fIChoose_Another_Window/Field_Group\fR
- You will be prompted to enter a number between 1 and 4 designating the
- window/field group which should be made the \*(CW.
- You will soon grow comfortable with these 4 windows, especially after
- experimenting with \*(AM.
- 
- .TP 7
--\ \ \'\fBI\fR\' :\fIIrix/Solaris_Mode_toggle\fR
-+\ \ \<\fBI\fR\> :\fIIrix/Solaris_Mode_toggle\fR
- When operating in 'Solaris mode' ('I' toggled \*F), a task's \*(Pu usage
- will be divided by the total number of \*(PUs.
- After issuing this command, you'll be informed of the new state of this toggle.
- 
- .TP 7
--\ \ \'\fBu\fR\' :\fIselect a user\fR
-+\ \ \<\fBu\fR\> :\fIselect a user\fR
- You will be prompted for a UID or username. Only processes
- belonging to the selected user will be displayed. This option
- matches on the effective UID.
- 
- .TP 7
--\ \ \'\fBU\fR\' :\fIselect a user\fR
-+\ \ \<\fBU\fR\> :\fIselect a user\fR
- You will be prompted for a UID or username. Only processes
- belonging to the selected user will be displayed. This option
- matches on the real, effective, saved, and filesystem UID.
- 
- .TP 7
--*\ \'\fBk\fR\' :\fIKill_a_task\fR
-+*\ \<\fBk\fR\> :\fIKill_a_task\fR
- You will be prompted for a PID and then the signal to send.
- The default signal, as reflected in the prompt, is SIGTERM.
- However, you can send any signal, via number or name.
-@@ -667,24 +665,24 @@ depending on your progress:
-    2) at the signal prompt, type 0
- 
- .TP 7
--\ \ \'\fBq\fR\' :\fIQuit\fR
-+\ \ \<\fBq\fR\> :\fIQuit\fR
- 
- .TP 7
--*\ \'\fBr\fR\' :\fIRenice_a_Task\fR
-+*\ \<\fBr\fR\> :\fIRenice_a_Task\fR
- You will be prompted for a PID and then the value to nice it to.
- Entering a positive value will cause a process to lose priority.
- Conversely, a negative value will cause a process to be viewed more
- favorably by the kernel.
- 
- .TP 7
--\ \ \'\fBW\fR\' :\fIWrite_the_Configuration_File\fR
-+\ \ \<\fBW\fR\> :\fIWrite_the_Configuration_File\fR
- This will save all of your options and toggles plus the current
- display mode and delay time.
- By issuing this command just before quitting \*(Me, you will be able restart
- later in exactly that same state.
- 
- .TP 7
--\ \ \'\fBZ\fR\' :\fIChange_Color_Mapping
-+\ \ \<\fBZ\fR\> :\fIChange_Color_Mapping
- This key will take you to a separate screen where you can change the
- colors for the \*(CW, or for all windows.
- For details regarding this \*(CI \*(Xt 3d. COLOR Mapping.
-@@ -700,25 +698,25 @@ They affect the beginning lines of your display and will determine the position
- of messages and prompts.
- 
- These commands always impact just the \*(CW/field group.
--\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
--\*(CWs and field groups.
-+\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight
-+into \*(CWs and field groups.
- 
- .TP 7
--\ \ \'\fBl\fR\' :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
-+\ \ \<\fBl\fR\> :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
- This is also the line containing the program name (possibly an alias) when
- operating in \*(FM or the \*(CW name when operating in \*(AM.
- 
- .TP 7
--\ \ \'\fBm\fR\' :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
-+\ \ \<\fBm\fR\> :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
- This command affects two \*(SA lines.
- 
- .TP 7
--\ \ \'\fBt\fR\' :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
-+\ \ \<\fBt\fR\> :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
- This command affects from 2 to many \*(SA lines, depending on the state
- of the '1' toggle and whether or not \*(Me is running under true SMP.
- 
- .TP 7
--\ \ \'\fB1\fR\' :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
-+\ \ \<\fB1\fR\> :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
- This command affects how the 't' command's Cpu States portion is shown.
- Although this toggle exists primarily to serve massively-parallel SMP machines,
- it is not restricted to solely SMP environments.
-@@ -750,12 +748,12 @@ global 'B' (bold disable) toggle.
- .in
- 
- .TP 7
--\ \ \'\fBb\fR\' :\fIBold/Reverse_toggle\fR
-+\ \ \<\fBb\fR\> :\fIBold/Reverse_toggle\fR
- This command will impact how the 'x' and 'y' toggles are displayed.
- Further, it will only be available when at least one of those toggles is \*O.
- 
- .TP 7
--\ \ \'\fBx\fR\' :\fIColumn_Highlight_toggle\fR
-+\ \ \<\fBx\fR\> :\fIColumn_Highlight_toggle\fR
- Changes highlighting for the current sort field.
- You probably don't need a constant visual reminder of the sort field and
- \*(Me hopes that you always run with 'column highlight' \*F, due to the cost
-@@ -765,7 +763,7 @@ If you forget which field is being sorted this command can serve as a quick
- visual reminder.
- 
- .TP 7
--\ \ \'\fBy\fR\' :\fIRow_Highlight_toggle\fR
-+\ \ \<\fBy\fR\> :\fIRow_Highlight_toggle\fR
- Changes highlighting for "running" tasks.
- For additional insight into this task state, \*(Xt 2a. DESCRIPTIONS of Fields,
- Process Status.
-@@ -774,7 +772,7 @@ Use of this provision provides important insight into your system's health.
- The only costs will be a few additional tty escape sequences.
- 
- .TP 7
--\ \ \'\fBz\fR\' :\fIColor/Monochrome_toggle\fR
-+\ \ \<\fBz\fR\> :\fIColor/Monochrome_toggle\fR
- Switches the \*(CW between your last used color scheme and the older form
- of black-on-white or white-on-black.
- This command will alter\fB both\fR the \*(SA and \*(TA but does not affect the
-@@ -785,20 +783,20 @@ state of the 'x', 'y' or 'b' toggles.
- .B CONTENT\fR of \*(TW
- .PD 0
- .TP 7
--\ \ \'\fBc\fR\' :\fICommand_Line/Program_Name_toggle\fR
-+\ \ \<\fBc\fR\> :\fICommand_Line/Program_Name_toggle\fR
- This command will be honored whether or not the 'Command' column
- is currently visible.
- Later, should that field come into view, the change you applied will be seen.
- 
- .TP 7
--\ \ \'\fBf\fR\' and \'\fBo\fR\' :\fIFields_select\fR or \fIOrder_fields\fR
-+\ \ \<\fBf\fR\> and \<\fBo\fR\> :\fIFields_select\fR or \fIOrder_fields\fR
- These keys display separate screens where you can change which
- fields are displayed and their order.
- For additional information on these \*(CIs
- \*(Xt 2b. SELECTING and ORDERING Columns.
- 
- .TP 7
--\ \ \'\fBH\fR\' :\fIThreads_toggle\fR
-+\ \ \<\fBS\fR\> :\fICumulative_Time_Mode_toggle\fR
- When this toggle is \*O, all individual threads will be displayed.  Otherwise, \*(Me displays a summation of all threads in a process.
- 
- .TP 7
-@@ -818,7 +816,7 @@ If you wish to know in advance whether or not 'Cumulative mode' is in
- effect, simply ask for help and view the window summary on the second line.
- 
- .TP 7
--\ \ \'\fBu\fR\' :\fIShow_Specific_User_Only\fR
-+\ \ \<\fBu\fR\> :\fIShow_Specific_User_Only\fR
- You will be prompted to enter the name of the user to display.
- Thereafter, in that \*(TW only matching User ID's will be shown, or possibly
- no tasks will be shown.
-@@ -831,7 +829,7 @@ just press <Enter> at the prompt, without providing a name.
- .B SIZE\fR of \*(TW
- .PD 0
- .TP 7
--\ \ \'\fBi\fR\' :\fIIdle_Processes_toggle\fR
-+\ \ \<\fBi\fR\> :\fIIdle_Processes_toggle\fR
- Displays all tasks or just active tasks.
- When this toggle is \*F, idled or zombied processes will not be displayed.
- 
-@@ -839,7 +837,7 @@ If this command is applied to the last \*(TD when in \*(AM, then it will not
- affect the window's size, as all prior \*(TDs will have already been painted.
- 
- .TP 7
--\ \ \'\fBn\fR\' or \'#\' :\fISet_Maximum_Tasks\fR
-+\ \ \<\fBn\fR\> or \<\fB#\fR\> :\fISet_Maximum_Tasks\fR
- You will be prompted to enter the number of tasks to display.
- The lessor of your number and available screen rows will be used.
- 
-@@ -878,12 +876,12 @@ The sort field might\fI not\fR be visible because:
- .in
- 
- .TP 7
--\ \ \'\fB<\fR\' :\fIMove_Sort_Field_Left\fR
-+\ \ \<\fB<\fR\> :\fIMove_Sort_Field_Left\fR
- Moves the sort column to the left unless the current sort field is
- the first field being displayed.
- 
- .TP 7
--\ \ \'\fB>\fR\' :\fIMove_Sort_Field_Right\fR
-+\ \ \<\fB>\fR\> :\fIMove_Sort_Field_Right\fR
- Moves the sort column to the right unless the current sort field is
- the last field being displayed.
- 
-@@ -894,7 +892,7 @@ the current sort field is visible.
- .in
- 
- .TP 7
--\ \ \'\fBF\fR\' or \'\fBO\fR\' :\fISelect_Sort_Field\fR
-+\ \ \<\fBF\fR\> or \<\fBO\fR\> :\fISelect_Sort_Field\fR
- These keys display a separate screen where you can change which field
- is used as the sort column.
- 
-@@ -907,7 +905,7 @@ This \*(CI can be a convenient way to simply verify the current sort field,
- when running \*(Me with column highlighting turned \*F.
- 
- .TP 7
--\ \ \'\fBR\fR\' :\fIReverse/Normal_Sort_Field_toggle\fR
-+\ \ \<\fBR\fR\> :\fIReverse/Normal_Sort_Field_toggle\fR
- Using this \*(CI you can alternate between high-to-low and low-to-high sorts.
- 
- .PP
-@@ -984,7 +982,7 @@ know what window is the \*(CW.
- .\" ......................................................................
- .SS 4b. COMMANDS for Windows
- .TP 7
--\ \ \'\fB-\fR\' and \'\fB_\fR\' :\fIShow/Hide_Window(s)_toggles\fR
-+\ \ \<\fB-\fR\> and \<\fB_\fR\> :\fIShow/Hide_Window(s)_toggles\fR
- The '-' key turns the \*(CW's \*(TD \*O and \*F.
- When \*O, that \*(TA will show a minimum of the columns header you've
- established with the 'f' and 'o' commands.
-@@ -998,7 +996,7 @@ If all 4 \*(TDs are currently visible, this \*(CI will leave the \*(SA
- as the only display element.
- 
- .TP 7
--*\ \'\fB=\fR\' and \'\fB+\fR\' :\fIEqualize_(re-balance)_Window(s)\fR
-+*\ \<\fB=\fR\> and \<\fB+\fR\> :\fIEqualize_(re-balance)_Window(s)\fR
- The '=' key forces the \*(CW's \*(TD to be visible.
- It also reverses any 'i' (idle tasks) and 'n' (max tasks) commands that might
- be active.
-@@ -1009,7 +1007,7 @@ They will also have retained any customizations you had previously applied,
- except for the 'i' (idle tasks) and 'n' (max tasks) commands.
- 
- .TP 7
--*\ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
-+*\ \<\fBA\fR\> :\fIAlternate_Display_Mode_toggle\fR
- This command will switch between \*(FM and \*(AM.
- 
- The first time you issue this command, all four \*(TDs will be shown.
-@@ -1017,7 +1015,7 @@ Thereafter when you switch modes, you will see only the \*(TD(s) you've
- chosen to make visible.
- 
- .TP 7
--*\ \'\fBa\fR\' and \'\fBw\fR\' :\fINext_Window_Forward/Backward\fR
-+*\ \<\fBa\fR\> and \<\fBw\fR\> :\fINext_Window_Forward/Backward\fR
- This will change the \*(CW, which in turn changes the window to which
- commands are directed.
- These keys act in a circular fashion so you can reach any desired \*(CW
-@@ -1028,7 +1026,7 @@ whenever the \*(CW name loses its emphasis/color, that's a reminder
- the \*(TD is \*F and many commands will be restricted.
- 
- .TP 7
--*\ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
-+*\ \<\fBG\fR\> :\fIChoose_Another_Window/Field_Group\fR
- You will be prompted to enter a number between 1 and 4 designating the
- window/field group which should be made the \*(CW.
- 
-@@ -1037,15 +1035,15 @@ In \*(AM, it is simply a less convenient alternative to the 'a' and 'w'
- commands.
- 
- .TP 7
--\ \ \'\fBg\fR\' :\fIChange_Window/Field_Group_Name\fR
-+\ \ \<\fBg\fR\> :\fIChange_Window/Field_Group_Name\fR
- You will be prompted for a new name to be applied to the \*(CW.
- It does not require that the window name be visible
- (the 'l' toggle to be \*O).
- 
- .IP "*" 3
- The \*(CIs shown with an \*(AS have use beyond \*(AM.
--    \'=', 'A', 'G'  are always available
--    \'a', 'w'       act the same when color mapping
-+    '=', 'A', 'G'  are always available
-+    'a', 'w'       act the same when color mapping
- 
- 
- .\" ----------------------------------------------------------------------
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0025-top_c_resize.patch b/patches/procps-3.2.8/0025-top_c_resize.patch
deleted file mode 100644
index 38a58df..0000000
--- a/patches/procps-3.2.8/0025-top_c_resize.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 6a2fce1a2b052f033f8f8c36c76aa4530b2887b1 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 25/70] top_c_resize
-
-a few (read: 3 or less) lines.
----
- top.c |    9 ++++++---
- top.h |   13 +++++++++++--
- 2 files changed, 17 insertions(+), 5 deletions(-)
-
-diff --git a/top.c b/top.c
-index 53cab05..6cc1a93 100644
---- a/top.c
-+++ b/top.c
-@@ -140,7 +140,7 @@ static int   Cap_can_goto = 0;
-            are exploited in a macro and represent 90% of our optimization.
-            The Stdout_buf is transparent to our code and regardless of whose
-            buffer is used, stdout is flushed at frame end or if interactive. */
--static char *Pseudo_scrn;
-+static PSEUDO_SCREEN_t Pseudo_scrn;
- static int   Pseudo_row, Pseudo_cols, Pseudo_size;
- #ifndef STDOUT_IOLBF
-         // less than stdout's normal buffer but with luck mostly '\n' anyway
-@@ -2431,7 +2431,10 @@ static void wins_resize (void)
-    Pseudo_cols = Screen_cols + CLRBUFSIZ + 1;
-    if (Batch) Pseudo_size = ROWBUFSIZ + 1;
-    else       Pseudo_size = Pseudo_cols * Screen_rows;
--   Pseudo_scrn = alloc_r(Pseudo_scrn, Pseudo_size);
-+   if( Pseudo_scrn.buf == NULL || Pseudo_size > Pseudo_scrn.mem_size ) {
-+      Pseudo_scrn.buf = alloc_r(Pseudo_scrn.buf, Pseudo_size);
-+      Pseudo_scrn.mem_size = Pseudo_size;
-+   }
- 
-    // force rebuild of column headers AND libproc/readproc requirements
-    Frames_libflags = 0;
-@@ -3315,7 +3318,7 @@ static void frame_make (void)
-    //       reframewins(), who also builds each window's column headers
-    if (!Frames_libflags) {
-       reframewins();
--      memset(Pseudo_scrn, '\0', Pseudo_size);
-+      memset(Pseudo_scrn.buf, '\0', Pseudo_size);
-    }
-    Pseudo_row = Msg_row = scrlins = 0;
-    ppt = summary_show();
-diff --git a/top.h b/top.h
-index b4ac079..8cf8538 100644
---- a/top.h
-+++ b/top.h
-@@ -135,7 +135,7 @@ do {                                                     \
-    int _len = 1 + snprintf(_str, sizeof(_str), fmt, ## arg);   \
-    putp ( Batch ? _str :                                   \
-    ({                                                 \
--      char *restrict const _pse = &Pseudo_scrn[Pseudo_row++ * Pseudo_cols];  \
-+      char *restrict const _pse = &Pseudo_scrn.buf[Pseudo_row++ * Pseudo_cols];  \
-       memcmp(_pse, _str, _len) ? memcpy(_pse, _str, _len) : "\n";  \
-    })                                \
-    );                   \
-@@ -149,7 +149,11 @@ do {                                                     \
-    int _len = 1 + snprintf(_str, sizeof(_str), fmt, ## arg);   \
-    if (Batch) _ptr = _str;                                   \
-    else {                                                 \
--      _ptr = &Pseudo_scrn[Pseudo_row++ * Pseudo_cols];  \
-+      if (Pseudo_row * Pseudo_cols + _len > Pseudo_size) { \
-+         Pseudo_scrn.buf = realloc(Pseudo_scrn.buf, Pseudo_row * Pseudo_cols + _len); \
-+	 Pseudo_scrn.mem_size = Pseudo_size = Pseudo_row * Pseudo_cols + _len; \
-+      } \
-+      _ptr = &Pseudo_scrn.buf[Pseudo_row++ * Pseudo_cols];  \
-       if (memcmp(_ptr, _str, _len)) {                \
-          memcpy(_ptr, _str, _len);                \
-       } else {                                 \
-@@ -237,6 +241,11 @@ typedef struct RCF_t {  // the complete rcfile (new style)
-    RCW_t  win [4];              // a 'WIN_t.rc' for each of the 4 windows
- } RCF_t;
- 
-+typedef struct PSEUDO_SCREEN_t {
-+   char *buf;
-+   int	mem_size;
-+} PSEUDO_SCREEN_t;
-+
- // The scaling 'type' used with scale_num() -- this is how
- // the passed number is interpreted should scaling be necessary
- enum scale_num {
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0026-w-bassman.patch b/patches/procps-3.2.8/0026-w-bassman.patch
deleted file mode 100644
index f82be15..0000000
--- a/patches/procps-3.2.8/0026-w-bassman.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 651c5b2622859ce190a6bee53dc6abfd491fa380 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 26/70] w-bassman
-
-===================================================================
----
- w.1 |    5 ++++-
- w.c |   16 +++++++++++++++-
- 2 files changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/w.1 b/w.1
-index d57a9b5..84786e6 100644
---- a/w.1
-+++ b/w.1
-@@ -5,7 +5,7 @@
- w \- Show who is logged on and what they are doing.
- .SH SYNOPSIS
- .B w \-
--.RB [ husfV ]
-+.RB [ husfVo ]
- .RI [ user ]
- .SH DESCRIPTION
- .B "w "
-@@ -55,6 +55,9 @@ field is shown by default.
- .B "\-V "
- Display version information.
- .TP 0.5i
-+.B "\-o "
-+Old style output. Prints blank space for idle times less than one minute.
-+.TP 0.5i
- .B "user "
- Show information about the specified user only.
- 
-diff --git a/w.c b/w.c
-index a6b1b25..91fe8b1 100644
---- a/w.c
-+++ b/w.c
-@@ -30,6 +30,7 @@
- #include <termios.h>
- 
- static int ignoreuser = 0;	/* for '-u' */
-+static int oldstyle = 0;	/* for '-o' */
- static proc_t **procs;		/* our snapshot of the process table */
- 
- typedef struct utmp utmp_t;
-@@ -76,6 +77,16 @@ static void print_time_ival7(time_t t, int centi_sec, FILE* fout) {
-       printf("   ?   ");
-       return;
-     }
-+    if (oldstyle) {
-+      if (t >= 48*60*60)               /* > 2 days */
-+        fprintf(fout, " %2ludays", t/(24*60*60));
-+      else if (t >= 60*60)            /* > 1 hour */
-+        fprintf(fout, " %2lu:%02u ", t/(60*60), (unsigned) ((t/60)%60));
-+      else if (t > 60)               /* > 1 minute */
-+        fprintf(fout, " %2lu:%02um", t/60, (unsigned) t%60);
-+      else
-+        fprintf(fout, "       ");
-+    } else {
-     if (t >= 48*60*60)				/* > 2 days */
- 	fprintf(fout, " %2ludays", t/(24*60*60));
-     else if (t >= 60*60)			/* > 1 hour */
-@@ -84,6 +95,7 @@ static void print_time_ival7(time_t t, int centi_sec, FILE* fout) {
- 	fprintf(fout, " %2lu:%02u ", t/60, (unsigned) t%60);
-     else
-     fprintf(fout, " %2lu.%02us", t, centi_sec);
-+    }
- }
- 
- /**** stat the device file to get an idle time */
-@@ -239,7 +251,7 @@ int main(int argc, char **argv) {
- #endif
- 
-     setlocale(LC_ALL, "");
--    for (args=0; (ch = getopt(argc, argv, "hlusfV")) != EOF; args++)
-+    for (args=0; (ch = getopt(argc, argv, "hlusfVo")) != EOF; args++)
- 	switch (ch) {
- 	  case 'h': header = 0;		break;
- 	  case 'l': longform = 1;	break;
-@@ -247,6 +259,7 @@ int main(int argc, char **argv) {
- 	  case 'f': from = !from;	break;
- 	  case 'V': display_version();	exit(0);
- 	  case 'u': ignoreuser = 1;	break;
-+	  case 'o': oldstyle = 1;	break;
- 	  default:
- 	    printf("usage: w -hlsufV [user]\n"
- 		   "    -h    skip header\n"
-@@ -254,6 +267,7 @@ int main(int argc, char **argv) {
- 		   "    -s    short listing\n"
- 		   "    -u    ignore uid of processes\n"
- 		   "    -f    toggle FROM field (default %s)\n"
-+		   "    -o    old-style output\n"
- 		   "    -V    display version\n", FROM_STRING);
- 	    exit(1);
- 	}
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0027-top.1_cpustates.patch b/patches/procps-3.2.8/0027-top.1_cpustates.patch
deleted file mode 100644
index ce3374e..0000000
--- a/patches/procps-3.2.8/0027-top.1_cpustates.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From e7c71a7a9f743f102e01f2e1104ab0e5417f8f34 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 27/70] top.1_cpustates
-
-===================================================================
----
- top.1 |   36 ++++++++++++++++++++++++++++++++++++
- 1 files changed, 36 insertions(+), 0 deletions(-)
-
-diff --git a/top.1 b/top.1
-index b0cec2d..0ce1c62 100644
---- a/top.1
-+++ b/top.1
-@@ -537,6 +537,42 @@ You\fI move\fR a field to the\fB left\fR by pressing the corresponding\fB
- upper case\fR letter and to the\fB right\fR with the\fB lower case\fR
- letter.
- 
-+.\" ......................................................................
-+.SS 2c. CPU States
-+.\" ----------------------------------------------------------------------
-+The CPU states are shown in the Summary Area. They are always shown as a
-+percentage and are for the time between now and the last refresh.
-+
-+.TP 3
-+\fB us\fR \*(EM User CPU time
-+The time the CPU has spent running users' processes that are not
-+niced.
-+
-+.TP 3
-+\fB sy\fR \*(EM System CPU time
-+The time the CPU has spent running the kernel and its processes.
-+
-+.TP 3
-+\fB ni\fR \*(EM Nice CPU time
-+The time the CPU has spent running users' proccess that have been
-+niced.
-+
-+.TP 3
-+\fB wa\fR \*(EM iowait
-+Amount of time the CPU has been waiting for I/O to complete.
-+
-+.TP 3
-+\fB hi\fR \*(EM Hardware IRQ
-+The amount of time the CPU has been servicing hardware interrupts.
-+
-+.TP 3
-+\fB si\fR \*(EM Software Interrupts
-+The amount of time the CPU has been servicing software interrupts.
-+
-+.TP 3
-+\fB st\fR \*(EM Steal Time
-+The amount of CPU 'stolen' from this virtual machine by the hypervisor
-+for other tasks (such as running another virtual machine).
- 
- .\" ----------------------------------------------------------------------
- .SH 3. INTERACTIVE Commands
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0028-watch_8bitchar.patch b/patches/procps-3.2.8/0028-watch_8bitchar.patch
deleted file mode 100644
index 2b3c473..0000000
--- a/patches/procps-3.2.8/0028-watch_8bitchar.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a91e6470c2f1f6bbe481988fbf2a6af6bb87fd6c Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 28/70] watch_8bitchar
-
-===================================================================
----
- watch.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/watch.c b/watch.c
-index 5841168..eb5ce92 100644
---- a/watch.c
-+++ b/watch.c
-@@ -297,7 +297,7 @@ main(int argc, char *argv[])
- 				move(y, x);
- 				if (option_differences) {
- 					chtype oldch = inch();
--					char oldc = oldch & A_CHARTEXT;
-+					unsigned char oldc = oldch & A_CHARTEXT;
- 					attr = !first_screen
- 					    && ((char)c != oldc
- 						||
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0029-library_map_freeproc.patch b/patches/procps-3.2.8/0029-library_map_freeproc.patch
deleted file mode 100644
index a949d44..0000000
--- a/patches/procps-3.2.8/0029-library_map_freeproc.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 9dc737cb6dfc072605c3c4e0afb02fa85d2b0b14 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 29/70] library_map_freeproc
-
-===================================================================
----
- proc/library.map |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/proc/library.map b/proc/library.map
-index a38627b..154061b 100644
---- a/proc/library.map
-+++ b/proc/library.map
-@@ -7,7 +7,7 @@ global:
- 
-   readproc; readtask; readproctab; readproctab2; look_up_our_self; escape_command;
-   escape_str; escape_strlist;
--  openproc; closeproc;
-+  openproc; closeproc; freeproc;
-   tty_to_dev; dev_to_tty; open_psdb_message; open_psdb; lookup_wchan;
-   display_version; procps_version; linux_version_code;
-   Hertz; smp_num_cpus; have_privs;
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0030-pgrep_start_time.patch b/patches/procps-3.2.8/0030-pgrep_start_time.patch
deleted file mode 100644
index d97c076..0000000
--- a/patches/procps-3.2.8/0030-pgrep_start_time.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 5206f75b80699216ad3677f500a93e3d2323b623 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 30/70] pgrep_start_time
-
-===================================================================
----
- pgrep.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/pgrep.c b/pgrep.c
-index bbb7cd1..609cabd 100644
---- a/pgrep.c
-+++ b/pgrep.c
-@@ -430,7 +430,8 @@ static union el * select_procs (int *num)
- 	preg = do_regcomp();
- 
- 	if (opt_newest) saved_start_time =  0ULL;
--	if (opt_oldest) saved_start_time = ~0ULL;
-+    else
-+	    saved_start_time = ~0ULL;
- 	if (opt_newest) saved_pid = 0;
- 	if (opt_oldest) saved_pid = INT_MAX;
- 	
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0031-readproc_c.patch b/patches/procps-3.2.8/0031-readproc_c.patch
deleted file mode 100644
index 89c9455..0000000
--- a/patches/procps-3.2.8/0031-readproc_c.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 49aba46c22ec4af297566165dda611fe6c3c792b Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 31/70] readproc_c
-
-return if unable to open /proc
----
- proc/readproc.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/proc/readproc.c b/proc/readproc.c
-index 4fad11d..0386a63 100644
---- a/proc/readproc.c
-+++ b/proc/readproc.c
-@@ -173,7 +173,7 @@ ENTER(0x220);
-         // examine a field name (hash and compare)
-     base:
-         if(unlikely(!*S)) break;
--        entry = table[63 & (asso[S[3]] + asso[S[2]] + asso[S[0]])];
-+        entry = table[63 & (asso[(int)S[3]] + asso[(int)S[2]] + asso[(int)S[0]])];
-         colon = strchr(S, ':');
-         if(unlikely(!colon)) break;
-         if(unlikely(colon[1]!='\t')) break;
-@@ -942,6 +942,8 @@ proc_t** readproctab(int flags, ...) {
-     else
- 	PT = openproc(flags);
-     va_end(ap);
-+    if (!PT)
-+      return 0;
-     do {					/* read table: */
- 	tab = xrealloc(tab, (n+1)*sizeof(proc_t*));/* realloc as we go, using */
- 	tab[n] = readproc_direct(PT, NULL);     /* final null to terminate */
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0032-sysinfo_7_numbers.patch b/patches/procps-3.2.8/0032-sysinfo_7_numbers.patch
deleted file mode 100644
index 9d7da0e..0000000
--- a/patches/procps-3.2.8/0032-sysinfo_7_numbers.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 6f469982d7c74ca22b7345f5bc8b956f583a9783 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 32/70] sysinfo_7_numbers
-
-===================================================================
----
- proc/sysinfo.c |    7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/proc/sysinfo.c b/proc/sysinfo.c
-index 473634f..8dbabdf 100644
---- a/proc/sysinfo.c
-+++ b/proc/sysinfo.c
-@@ -124,24 +124,25 @@ int uptime(double *restrict uptime_secs, double *restrict idle_secs) {
- unsigned long long Hertz;
- 
- static void old_Hertz_hack(void){
--  unsigned long long user_j, nice_j, sys_j, other_j;  /* jiffies (clock ticks) */
-+  unsigned long long user_j, nice_j, sys_j, other_j, wait_j, hirq_j, sirq_j, stol_j;  /* jiffies (clock ticks) */
-   double up_1, up_2, seconds;
-   unsigned long long jiffies;
-   unsigned h;
-   char *restrict savelocale;
- 
-+  wait_j = hirq_j = sirq_j = stol_j = 0;
-   savelocale = setlocale(LC_NUMERIC, NULL);
-   setlocale(LC_NUMERIC, "C");
-   do{
-     FILE_TO_BUF(UPTIME_FILE,uptime_fd);  sscanf(buf, "%lf", &up_1);
-     /* uptime(&up_1, NULL); */
-     FILE_TO_BUF(STAT_FILE,stat_fd);
--    sscanf(buf, "cpu %Lu %Lu %Lu %Lu", &user_j, &nice_j, &sys_j, &other_j);
-+    sscanf(buf, "cpu %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu", &user_j, &nice_j, &sys_j, &other_j, &wait_j, &hirq_j, &sirq_j, &stol_j);
-     FILE_TO_BUF(UPTIME_FILE,uptime_fd);  sscanf(buf, "%lf", &up_2);
-     /* uptime(&up_2, NULL); */
-   } while((long long)( (up_2-up_1)*1000.0/up_1 )); /* want under 0.1% error */
-   setlocale(LC_NUMERIC, savelocale);
--  jiffies = user_j + nice_j + sys_j + other_j;
-+  jiffies = user_j + nice_j + sys_j + other_j + wait_j + hirq_j + sirq_j + stol_j ;
-   seconds = (up_1 + up_2) / 2;
-   h = (unsigned)( (double)jiffies/seconds/smp_num_cpus );
-   /* actual values used by 2.4 kernels: 32 64 100 128 1000 1024 1200 */
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0033-tload_no_optargs.patch b/patches/procps-3.2.8/0033-tload_no_optargs.patch
deleted file mode 100644
index 4f8283d..0000000
--- a/patches/procps-3.2.8/0033-tload_no_optargs.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From baaed0489bc1273633e918e085ff28b85e41a3c6 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 33/70] tload_no_optargs
-
-===================================================================
----
- tload.c |    3 ---
- 1 files changed, 0 insertions(+), 3 deletions(-)
-
-diff --git a/tload.c b/tload.c
-index 1d346bb..cece48c 100644
---- a/tload.c
-+++ b/tload.c
-@@ -30,9 +30,6 @@ static int fd=1;
- static int dly=5;
- static jmp_buf jb;
- 
--extern int optind;
--extern char *optarg;
--
- static void alrm(int signo)
- {
-     (void)signo;
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0034-w.1.patch b/patches/procps-3.2.8/0034-w.1.patch
deleted file mode 100644
index 6d9aa03..0000000
--- a/patches/procps-3.2.8/0034-w.1.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From ee43ea4717fd1629956fa6b7968f134ef1fdf236 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 34/70] w.1
-
-Make note of the time formats
-Bug-Debian: http://bugs.debian.org/414906
----
- w.1 |   27 ++++++++++++++++++++-------
- 1 files changed, 20 insertions(+), 7 deletions(-)
-
-diff --git a/w.1 b/w.1
-index 84786e6..a13cc81 100644
---- a/w.1
-+++ b/w.1
-@@ -4,26 +4,26 @@
- .SH NAME
- w \- Show who is logged on and what they are doing.
- .SH SYNOPSIS
--.B w \-
--.RB [ husfVo ]
-+.B w
-+.RB [ \-husfVo ]
- .RI [ user ]
- .SH DESCRIPTION
--.B "w "
-+.B w
- displays information about the users currently on the machine,
- and their processes.
- The header shows, in this order,  the current time,
- how long the system has been running,
- how many users are currently logged on,
- and the system load averages for the past 1, 5, and 15 minutes.
--.sp
-+
- The following entries are displayed for each user:
- login name, the tty name, the remote host, login time, idle time, JCPU, PCPU,
- and the command line of their current process.
--.sp
-+
- The JCPU time is the time used by all processes attached to the tty.  It
- does not include past background jobs, but does include currently
- running background jobs.
--.sp
-+
- The PCPU time is the time used by the current process, named in the "what"
- field.
- 
-@@ -35,7 +35,7 @@ Don't print the header.
- .TP 0.5i
- .B "\-u "
- Ignores the username while figuring out the current process and cpu
--times.  To demonstrate this, do a "su" and do a "w" and a "w -u".
-+times.  To demonstrate this, do a "su" and do a "w" and a "w \-u".
- .TP 0.5i
- .B "\-s "
- Use the short format.
-@@ -70,6 +70,19 @@ information about who is currently logged on
- process information
- .PP
- 
-+.SH NOTES
-+The output for Idle, JCPU and PCPU times vaires depending on if you use
-+the \-o (old style) option or not. These formats can be confusing if you
-+switch between the old style and standard.  In the following paragraphs
-+days are DD, hours HH, minutes MM, seconds SS and 100ths of seconds CC.
-+
-+The standard format is DDdays, HH:MMm, MM:SS or SS.CC if the times are
-+greater than 2 days, 1hour, or 1 minute respectively.
-+
-+For the \-o option, the output will be either  DDdays, HH:MM, MM:SSm or
-+blank if the times are greater than 2 days, 1 hour or 1 minute
-+respectively.
-+
- .SH "SEE ALSO"
- .BR free (1),
- .BR ps (1),
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0035-w_columns.patch b/patches/procps-3.2.8/0035-w_columns.patch
deleted file mode 100644
index 1ad19bd..0000000
--- a/patches/procps-3.2.8/0035-w_columns.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 6b8ebd31ac38cd8465f9d9a4c5a335b1d76e04bf Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 35/70] w_columns
-
-===================================================================
----
- w.c |    8 ++++++--
- 1 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/w.c b/w.c
-index 91fe8b1..2077338 100644
---- a/w.c
-+++ b/w.c
-@@ -241,10 +241,10 @@ static void showinfo(utmp_t *u, int formtype, int maxcmd, int from) {
- 
- /***** main */
- int main(int argc, char **argv) {
--    char *user = NULL;
-+    char *user = NULL, *p;
-     utmp_t *u;
-     struct winsize win;
--    int header=1, longform=1, from=1, args, maxcmd=80, ch;
-+    int header=1, longform=1, from=1, args, maxcmd, ch;
- 
- #ifndef W_SHOWFROM
-     from = 0;
-@@ -277,6 +277,10 @@ int main(int argc, char **argv) {
- 
-     if (ioctl(1, TIOCGWINSZ, &win) != -1 && win.ws_col > 0)
- 	maxcmd = win.ws_col;
-+    else if (p = getenv("COLUMNS"))
-+        maxcmd = atoi(p);
-+    else
-+	maxcmd = 80;
-     if (maxcmd < 71) {
- 	fprintf(stderr, "%d column window is too narrow\n", maxcmd);
- 	exit(1);
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0036-watch_exec_beep.patch b/patches/procps-3.2.8/0036-watch_exec_beep.patch
deleted file mode 100644
index 8099e4a..0000000
--- a/patches/procps-3.2.8/0036-watch_exec_beep.patch
+++ /dev/null
@@ -1,271 +0,0 @@
-From 42dd0d6fabd0e3bb134afaddc07a1c02905ecc36 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 36/70] watch_exec_beep
-
-Adds -errexit flag now too #183346
-Author: Mordechai T. Abzug <morty@frakir.org>
-Bug-Debian: http://bugs.debian.org/410967
-Bug-Debian: http://bugs.debian.org/183346
-Reviewed-by: Craig Small <csmall@debian.org>
----
- watch.1 |   33 +++++++++++++++++++---
- watch.c |   93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
- 2 files changed, 116 insertions(+), 10 deletions(-)
-
-diff --git a/watch.1 b/watch.1
-index 1616794..802ab84 100644
---- a/watch.1
-+++ b/watch.1
-@@ -4,10 +4,13 @@ watch \- execute a program periodically, showing output fullscreen
- .SH SYNOPSIS
- .na
- .B watch
--.RB [ \-dhvt ]
-+.RB [ \-bdehvtx ]
- .RB [ \-n
- .IR seconds ]
-+.RB [ \-\-beep ]
- .RB [ \-\-differences[=\fIcumulative\fP]]
-+.RB [ \-\-errexit ]
-+.RB [ \-\-exec ]
- .RB [ \-\-help ]
- .RB [ \-\-interval=\fIseconds\fP]
- .RB [ \-\-no\-title ]
-@@ -17,7 +20,8 @@ watch \- execute a program periodically, showing output fullscreen
- .B watch
- runs
- .I command
--repeatedly, displaying its output (the first screenfull).  This allows you to
-+repeatedly, displaying its output and errors (the first screenfull).  This
-+allows you to
- watch the program output change over time.  By default, the program is run
- every 2 seconds; use 
- .B \-n
-@@ -37,15 +41,33 @@ positions that have ever changed.  The
- or
- .B \-\-no\-title
- option turns off the header showing the interval, command, and current
--time at the top of the display, as well as the following blank line.
-+time at the top of the display, as well as the following blank line.  The
-+.I \-b
-+or
-+.I \-\-beep
-+option causes the command to beep if it has a non-zero exit.
- .PP
- .B watch
--will run until interrupted.
-+will normally run until interrupted. If you want
-+.B watch
-+to exit on an error from the program running use the
-+.I \-e
-+or
-+.I \-\-errexit
-+options, which will cause
-+.B watch
-+to exit if the return value from the program is non-zero.
-+
- .SH NOTE
- Note that
- .I command
- is given to "sh \-c"
- which means that you may need to use extra quoting to get the desired effect.
-+You can disable this with the
-+.I -x
-+or
-+.I --exec
-+option, which passes the command to exec(2) instead.
- .PP
- Note that POSIX option processing is used (i.e., option processing stops at
- the first non\-option argument).  This means that flags after
-@@ -93,4 +115,5 @@ The original
- .B watch
- was written by Tony Rems <rembo@unisoft.com> in 1991, with mods and
- corrections by Francois Pinard.  It was reworked and new features added by
--Mike Coleman <mkc@acm.org> in 1999.
-+Mike Coleman <mkc@acm.org> in 1999.  The beep, exec, and error handling
-+features were added by Morty Abzug <morty@frakir.org> in 2008.
-diff --git a/watch.c b/watch.c
-index eb5ce92..acb152f 100644
---- a/watch.c
-+++ b/watch.c
-@@ -8,6 +8,7 @@
-  * Mike Coleman <mkc@acm.org>.
-  *
-  * Changes by Albert Cahalan, 2002-2003.
-+ * stderr handling, exec, and beep option added by Morty Abzug, 2008
-  */
- 
- #define VERSION "0.2.0"
-@@ -35,13 +36,16 @@ static struct option longopts[] = {
- 	{"differences", optional_argument, 0, 'd'},
- 	{"help", no_argument, 0, 'h'},
- 	{"interval", required_argument, 0, 'n'},
-+	{"beep", no_argument, 0, 'b'},
-+	{"errexit", no_argument, 0, 'e'},
-+	{"exec", no_argument, 0, 'x'},
- 	{"no-title", no_argument, 0, 't'},
- 	{"version", no_argument, 0, 'v'},
- 	{0, 0, 0, 0}
- };
- 
- static char usage[] =
--    "Usage: %s [-dhntv] [--differences[=cumulative]] [--help] [--interval=<n>] [--no-title] [--version] <command>\n";
-+    "Usage: %s [-bdhntvx] [--beep] [--differences[=cumulative]] [--exec] [--help] [--interval=<n>] [--no-title] [--version] <command>\n";
- 
- static char *progname;
- 
-@@ -140,28 +144,44 @@ main(int argc, char *argv[])
- 	int optc;
- 	int option_differences = 0,
- 	    option_differences_cumulative = 0,
-+			option_exec = 0,
-+			option_beep = 0,
-+        option_errexit = 0,
- 	    option_help = 0, option_version = 0;
- 	double interval = 2;
- 	char *command;
-+	char **command_argv;
- 	int command_length = 0;	/* not including final \0 */
-+	int pipefd[2];
-+	int status;
-+	pid_t child;
- 
- 	setlocale(LC_ALL, "");
- 	progname = argv[0];
- 
--	while ((optc = getopt_long(argc, argv, "+d::hn:vt", longopts, (int *) 0))
-+	while ((optc = getopt_long(argc, argv, "+bed::hn:vtx", longopts, (int *) 0))
- 	       != EOF) {
- 		switch (optc) {
-+		case 'b':
-+			option_beep = 1;
-+			break;
- 		case 'd':
- 			option_differences = 1;
- 			if (optarg)
- 				option_differences_cumulative = 1;
- 			break;
-+        case 'e':
-+            option_errexit = 1;
-+            break;
- 		case 'h':
- 			option_help = 1;
- 			break;
- 		case 't':
- 			show_title = 0;
- 			break;
-+		case 'x':
-+		  option_exec = 1;
-+			break;
- 		case 'n':
- 			{
- 				char *str;
-@@ -191,18 +211,23 @@ main(int argc, char *argv[])
- 
- 	if (option_help) {
- 		fprintf(stderr, usage, progname);
-+		fputs("  -b, --beep\t\t\t\tbeep if the command has a non-zero exit\n", stderr);
- 		fputs("  -d, --differences[=cumulative]\thighlight changes between updates\n", stderr);
- 		fputs("\t\t(cumulative means highlighting is cumulative)\n", stderr);
-+		fputs("  -e, --errexit\t\t\t\texit watch if the command has a non-zero exit\n", stderr);
- 		fputs("  -h, --help\t\t\t\tprint a summary of the options\n", stderr);
- 		fputs("  -n, --interval=<seconds>\t\tseconds to wait between updates\n", stderr);
- 		fputs("  -v, --version\t\t\t\tprint the version number\n", stderr);
- 		fputs("  -t, --no-title\t\t\tturns off showing the header\n", stderr);
-+		fputs("  -x, --exec\t\t\t\tpass command to exec instead of sh\n", stderr);
- 		exit(0);
- 	}
- 
- 	if (optind >= argc)
- 		do_usage();
- 
-+	command_argv=&(argv[optind]); /* save for later */
-+
- 	command = strdup(argv[optind++]);
- 	command_length = strlen(command);
- 	for (; optind < argc; optind++) {
-@@ -261,11 +286,57 @@ main(int argc, char *argv[])
- 			free(header);
- 		}
- 
--		if (!(p = popen(command, "r"))) {
--			perror("popen");
-+		/* allocate pipes */
-+		if (pipe(pipefd)<0) {
-+		  perror("pipe");
-+			do_exit(7);
-+	  }
-+
-+		/* flush stdout and stderr, since we're about to do fd stuff */
-+		fflush(stdout);
-+		fflush(stderr);
-+
-+		/* fork to prepare to run command */
-+		child=fork();
-+
-+		if (child<0) { /* fork error */
-+		  perror("fork");
- 			do_exit(2);
-+		} else if (child==0) { /* in child */
-+			close (pipefd[0]); /* child doesn't need read side of pipe */
-+			close (1); /* prepare to replace stdout with pipe */
-+			if (dup2 (pipefd[1], 1)<0) { /* replace stdout with write side of pipe */
-+			  perror("dup2");
-+				exit(3);
-+			}
-+			dup2(1, 2); /* stderr should default to stdout */
-+
-+			if (option_exec) { /* pass command to exec instead of system */
-+			  if (execvp(command_argv[0], command_argv)==-1) {
-+				  perror("exec");
-+				  exit(4);
-+				}
-+			} else {
-+		    status=system(command); /* watch manpage promises sh quoting */
-+
-+			  /* propagate command exit status as child exit status */
-+			  if (!WIFEXITED(status)) { /* child exits nonzero if command does */
-+			    exit(1);
-+			  } else {
-+			    exit(WEXITSTATUS(status));
-+		    }
-+			}
-+
-+		}
-+
-+		/* otherwise, we're in parent */
-+		close(pipefd[1]); /* close write side of pipe */
-+		if ((p=fdopen(pipefd[0], "r"))==NULL) {
-+		  perror("fdopen");
-+			do_exit(5);
- 		}
- 
-+
- 		for (y = show_title; y < height; y++) {
- 			int eolseen = 0, tabpending = 0;
- 			for (x = 0; x < width; x++) {
-@@ -313,7 +384,19 @@ main(int argc, char *argv[])
- 			oldeolseen = eolseen;
- 		}
- 
--		pclose(p);
-+		fclose(p);
-+
-+		/* harvest child process and get status, propagated from command */
-+		if (waitpid(child, &status, 0)<0) {
-+		  perror("waitpid");
-+			do_exit(8);
-+		};
-+
-+		/* if child process exited in error, beep if option_beep is set */
-+		if ((!WIFEXITED(status) || WEXITSTATUS(status))) {
-+          if (option_beep) beep();
-+          if (option_errexit) do_exit(8);
-+		}
- 
- 		first_screen = 0;
- 		refresh();
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0037-path_max.patch b/patches/procps-3.2.8/0037-path_max.patch
deleted file mode 100644
index 986846c..0000000
--- a/patches/procps-3.2.8/0037-path_max.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 3bf20a04ddbdf435e20a190dc45cabb5d02c7b68 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 37/70] path_max
-
-===================================================================
----
- proc/readproc.c |    2 +-
- pwdx.c          |   20 ++++++++++++++++----
- 2 files changed, 17 insertions(+), 5 deletions(-)
-
-diff --git a/proc/readproc.c b/proc/readproc.c
-index 0386a63..d3e85a3 100644
---- a/proc/readproc.c
-+++ b/proc/readproc.c
-@@ -1036,7 +1036,7 @@ proc_data_t *readproctab2(int(*want_proc)(proc_t *buf), int(*want_task)(proc_t *
-  * and filled out proc_t structure.
-  */
- proc_t * get_proc_stats(pid_t pid, proc_t *p) {
--	static char path[PATH_MAX], sbuf[1024];
-+	static char path[32], sbuf[1024];
- 	struct stat statbuf;
- 
- 	sprintf(path, "/proc/%d", pid);
-diff --git a/pwdx.c b/pwdx.c
-index cb96a52..3e88f3c 100644
---- a/pwdx.c
-+++ b/pwdx.c
-@@ -35,7 +35,6 @@ static void version(void)
- 
- int main(int argc, char* argv[])
- {
--     char buf[PATH_MAX+1];
-      regex_t re;
-      int i;
- 
-@@ -59,6 +58,7 @@ int main(int argc, char* argv[])
- 
-      for (i = 1; i < argc; i++) {
-           if (regexec(&re, argv[i], 0, NULL, 0) != 0) {
-+               char buf[27 + strlen (argv[i]) + 1];  // Constant 27 is the length of the error string "pwdx: ... "
-                snprintf(buf, sizeof buf, "pwdx: invalid process id: %s\n", argv[i]);
-                die(buf);
-           }
-@@ -68,9 +68,13 @@ int main(int argc, char* argv[])
- 
-      regfree(&re);
- 
-+     int alloclen = 128;
-+     char *pathbuf = malloc(alloclen);
-+
-      for (i = 1; i < argc; i++) {
--          char * s = buf;
-+          char * s;
-           int len;
-+          char buf[10 + strlen(argv[i]) + 1]; // Constant 10 is the length of strings "/proc/" + "/cwd" + 1
-           
-           // At this point, all arguments are in the form /proc/nnnn
-           // or nnnn, so a simple check based on the first char is
-@@ -82,14 +86,22 @@ int main(int argc, char* argv[])
- 
-           // buf contains /proc/nnnn/cwd symlink name on entry, the
-           // target of that symlink on return
--          if ((len = readlink(buf, buf, PATH_MAX)) < 0) {
-+          while ((len = readlink(buf, pathbuf, alloclen)) == alloclen) {
-+               alloclen *= 2;
-+               pathbuf = realloc(pathbuf, alloclen);
-+          }
-+
-+          if (len < 0) {
-                s = strerror(errno == ENOENT ? ESRCH : errno);
-           } else {
--               buf[len] = 0;
-+               pathbuf[len] = 0;
-+               s = pathbuf;
-           }
- 
-           printf("%s: %s\n", argv[i], s);
-      }
- 
-+     free(pathbuf);
-+
-      return 0;
- }
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0038-w_envlength.patch b/patches/procps-3.2.8/0038-w_envlength.patch
deleted file mode 100644
index 501e86a..0000000
--- a/patches/procps-3.2.8/0038-w_envlength.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-From fcc63581dff12b8d5603c0787091af1a1f1d7c89 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 38/70] w_envlength
-
-===================================================================
----
- w.1 |   10 +++++++++-
- w.c |   53 ++++++++++++++++++++++++++++++++++++-----------------
- 2 files changed, 45 insertions(+), 18 deletions(-)
-
-diff --git a/w.1 b/w.1
-index a13cc81..d51e490 100644
---- a/w.1
-+++ b/w.1
-@@ -1,6 +1,6 @@
- .\"             -*-Nroff-*-
- .\"
--.TH W 1 "8 Dec 1993 " " " "Linux User's Manual"
-+.TH W 1 "5 October 2009 " " " "Linux User's Manual"
- .SH NAME
- w \- Show who is logged on and what they are doing.
- .SH SYNOPSIS
-@@ -61,6 +61,14 @@ Old style output. Prints blank space for idle times less than one minute.
- .B "user "
- Show information about the specified user only.
- 
-+.SH ENVIRONMENT
-+.TP
-+PROCPS_USERLEN
-+Override the default width of the username column. Defaults to 8.
-+.TP
-+PROCPS_FROMLEN
-+Override the default width of the from column. Defaults to 16.
-+
- .SH FILES
- .TP
- .I /var/run/utmp
-diff --git a/w.c b/w.c
-index 2077338..48a02be 100644
---- a/w.c
-+++ b/w.c
-@@ -44,20 +44,19 @@ typedef struct utmp utmp_t;
- /* Uh... same thing as UT_NAMESIZE */
- #define USERSZ (sizeof u->ut_user)
- 
-+/* Arbitary setting, not too big for the screen, max host size */
-+#define HOSTSZ 40
-+
- 
- /* This routine is careful since some programs leave utmp strings
-- * unprintable.  Always outputs at least 16 chars padded with spaces
-+ * unprintable.  Always outputs at least fromlen chars padded with spaces
-  * on the right if necessary.
-  */
--static void print_host(const char *restrict host, int len) {
-+static void print_host(const char *restrict host, int len, const int fromlen) {
-     const char *last;
-     int width = 0;
- 
--    /* FIXME: there should really be a way to configure this... */
--    /* for now, we'll just limit it to the 16 that the libc5 version
--     * of utmp uses.
--     */
--    if (len > 16) len = 16;
-+    if (len > fromlen) len = fromlen;
-     last = host + len;
-     for ( ; host < last ; host++){
-         if (isprint(*host) && *host != ' ') {
-@@ -68,7 +67,8 @@ static void print_host(const char *restrict host, int len) {
- 	}
-     }
-     // space-fill, and a '-' too if needed to ensure the column exists
--    if(width < 16) fputs("-               "+width, stdout);
-+	while(width++ < fromlen)
-+	  fputc(' ',stdout);
- }
- 
- /***** compact 7 char format for time intervals (belongs in libproc?) */
-@@ -180,7 +180,7 @@ static const proc_t *getproc(const utmp_t *restrict const u, const char *restric
- 
- 
- /***** showinfo */
--static void showinfo(utmp_t *u, int formtype, int maxcmd, int from) {
-+static void showinfo(utmp_t *u, int formtype, int maxcmd, int from, const int userlen, const int fromlen) {
-     unsigned long long jcpu;
-     int ut_pid_found;
-     unsigned i;
-@@ -205,9 +205,9 @@ static void showinfo(utmp_t *u, int formtype, int maxcmd, int from) {
- 
-     strncpy(uname, u->ut_user, USERSZ);		/* force NUL term for printf */
-     if (formtype) {
--	printf("%-9.8s%-9.8s", uname, u->ut_line);
-+	printf("%-*.*s%-9.8s", userlen+1, userlen, uname, u->ut_line);
- 	if (from)
--	    print_host(u->ut_host, sizeof u->ut_host);
-+	    print_host(u->ut_host, sizeof u->ut_host, fromlen);
- 	print_logintime(u->ut_time, stdout);
- 	if (*u->ut_line == ':')			/* idle unknown for xdm logins */
- 	    printf(" ?xdm? ");
-@@ -220,9 +220,9 @@ static void showinfo(utmp_t *u, int formtype, int maxcmd, int from) {
- 	} else
- 	    printf("   ?   ");
-     } else {
--	printf("%-9.8s%-9.8s", u->ut_user, u->ut_line);
-+	printf("%-*.*s%-9.8s", userlen+1, userlen, u->ut_user, u->ut_line);
- 	if (from)
--	    print_host(u->ut_host, sizeof u->ut_host);
-+	    print_host(u->ut_host, sizeof u->ut_host, fromlen);
- 	if (*u->ut_line == ':')			/* idle unknown for xdm logins */
- 	    printf(" ?xdm? ");
- 	else
-@@ -245,6 +245,9 @@ int main(int argc, char **argv) {
-     utmp_t *u;
-     struct winsize win;
-     int header=1, longform=1, from=1, args, maxcmd, ch;
-+    int userlen = 8;
-+    int fromlen = 16;
-+	char *env_var;
- 
- #ifndef W_SHOWFROM
-     from = 0;
-@@ -275,6 +278,22 @@ int main(int argc, char **argv) {
-     if ((argv[optind]))
- 	user = (argv[optind]);
- 
-+	/* Get user field length from environment */
-+	if ( (env_var = getenv("PROCPS_USERLEN")) != NULL) {
-+        userlen = atoi(env_var);
-+        if (userlen < 8 || userlen > USERSZ) {
-+            fprintf(stderr, "User length environment PROCPS_USERLEN must be between 8 and %d, ignoring.\n", USERSZ);
-+			userlen=8;
-+        }
-+	}
-+	/* Get from field length from environment */
-+	if ( (env_var = getenv("PROCPS_FROMLEN")) != NULL) {
-+        fromlen = atoi(env_var);
-+        if (fromlen < 8 || fromlen > HOSTSZ) {
-+            fprintf(stderr, "From length environment PROCPS_FROMLEN must be between 8 and %d, ignoring.\n", HOSTSZ);
-+			fromlen=16;
-+        }
-+	}
-     if (ioctl(1, TIOCGWINSZ, &win) != -1 && win.ws_col > 0)
- 	maxcmd = win.ws_col;
-     else if (p = getenv("COLUMNS"))
-@@ -285,7 +304,7 @@ int main(int argc, char **argv) {
- 	fprintf(stderr, "%d column window is too narrow\n", maxcmd);
- 	exit(1);
-     }
--    maxcmd -= 29 + (from ? 16 : 0) + (longform ? 20 : 0);
-+    maxcmd -= 21 + userlen + (from ? fromlen : 0) + (longform ? 20 : 0);
-     if (maxcmd < 3)
- 	fprintf(stderr, "warning: screen width %d suboptimal.\n", win.ws_col);
- 
-@@ -293,7 +312,7 @@ int main(int argc, char **argv) {
- 
-     if (header) {				/* print uptime and headers */
- 	print_uptime();
--	printf("USER     TTY      ");
-+	printf("%-*s TTY      ",userlen,"USER");
- 	if (from)
- 	    printf("FROM            ");
- 	if (longform)
-@@ -309,14 +328,14 @@ int main(int argc, char **argv) {
- 	    u = getutent();
- 	    if (unlikely(!u)) break;
- 	    if (u->ut_type != USER_PROCESS) continue;
-- 	    if (!strncmp(u->ut_user, user, USERSZ)) showinfo(u, longform, maxcmd, from);
-+ 	    if (!strncmp(u->ut_user, user, USERSZ)) showinfo(u, longform, maxcmd, from, userlen, fromlen);
- 	}
-     } else {
- 	for (;;) {
- 	    u = getutent();
- 	    if (unlikely(!u)) break;
- 	    if (u->ut_type != USER_PROCESS) continue;
-- 	    if (*u->ut_user) showinfo(u, longform, maxcmd, from);
-+ 	    if (*u->ut_user) showinfo(u, longform, maxcmd, from, userlen, fromlen);
- 	}
-     }
-     endutent();
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0039-gnu-kbsd-version.patch b/patches/procps-3.2.8/0039-gnu-kbsd-version.patch
deleted file mode 100644
index 01f0417..0000000
--- a/patches/procps-3.2.8/0039-gnu-kbsd-version.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 9f1caa3ae8d638b24356f4d4e12b3c88aa2451a9 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 39/70] gnu-kbsd-version
-
-===================================================================
----
- proc/version.c |   20 ++++++++++++++------
- 1 files changed, 14 insertions(+), 6 deletions(-)
-
-diff --git a/proc/version.c b/proc/version.c
-index 69bae4f..96ffb7f 100644
---- a/proc/version.c
-+++ b/proc/version.c
-@@ -35,15 +35,23 @@ int linux_version_code;
- 
- static void init_Linux_version(void) __attribute__((constructor));
- static void init_Linux_version(void) {
--    static struct utsname uts;
-     int x = 0, y = 0, z = 0;	/* cleared in case sscanf() < 3 */
-+    FILE *fp;
-+    char buf[256];
-     
--    if (uname(&uts) == -1)	/* failure implies impending death */
--	exit(1);
--    if (sscanf(uts.release, "%d.%d.%d", &x, &y, &z) < 3)
-+    if ( (fp=fopen("/proc/version","r")) == NULL) /* failure implies impending death */
-+      exit(1);
-+    if (fgets(buf, 256, fp) == NULL) {
-+      fprintf(stderr, "Cannot read kernel version from /proc/version\n");
-+      fclose(fp);
-+      exit(1);
-+    }
-+    fclose(fp);
-+    if (sscanf(buf, "Linux version %d.%d.%d", &x, &y, &z) < 3)
- 	fprintf(stderr,		/* *very* unlikely to happen by accident */
- 		"Non-standard uts for running kernel:\n"
--		"release %s=%d.%d.%d gives version code %d\n",
--		uts.release, x, y, z, LINUX_VERSION(x,y,z));
-+        "release %s=%d.%d.%d gives version code %d\n",
-+        buf,
-+        x, y, z, LINUX_VERSION(x,y,z));
-     linux_version_code = LINUX_VERSION(x, y, z);
- }
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0040-pgrep_c_option.patch b/patches/procps-3.2.8/0040-pgrep_c_option.patch
deleted file mode 100644
index 76f2bb6..0000000
--- a/patches/procps-3.2.8/0040-pgrep_c_option.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 1eddc716164481ece7fd1c00850e9891b4d55269 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 40/70] pgrep_c_option
-
-===================================================================
----
- pgrep.1 |    5 ++++-
- pgrep.c |   20 ++++++++++++++------
- 2 files changed, 18 insertions(+), 7 deletions(-)
-
-diff --git a/pgrep.1 b/pgrep.1
-index ae2edc2..9152799 100644
---- a/pgrep.1
-+++ b/pgrep.1
-@@ -7,7 +7,7 @@
- pgrep, pkill \- look up or signal processes based on name and other attributes
- 
- .SH SYNOPSIS
--pgrep [\-flvx] [\-d \fIdelimiter\fP] [\-n|\-o] [\-P \fIppid\fP,...] [\-g \fIpgrp\fP,...]
-+pgrep [\-cflvx] [\-d \fIdelimiter\fP] [\-n|\-o] [\-P \fIppid\fP,...] [\-g \fIpgrp\fP,...]
- .br
- 	[\-s \fIsid\fP,...] [\-u \fIeuid\fP,...] [\-U \fIuid\fP,...] [\-G \fIgid\fP,...]
- .br
-@@ -38,6 +38,9 @@ to each process instead of listing them on stdout.
- 
- .SH OPTIONS
- .TP
-+\-c
-+Suppress normal output; instead print a count of matching processes.
-+.TP
- \-d \fIdelimiter\fP
- Sets the string used to delimit each process ID in the output (by
- default a newline).  (\fBpgrep\fP only.)
-diff --git a/pgrep.c b/pgrep.c
-index 609cabd..33cbed8 100644
---- a/pgrep.c
-+++ b/pgrep.c
-@@ -54,6 +54,7 @@ static int opt_oldest = 0;
- static int opt_newest = 0;
- static int opt_negate = 0;
- static int opt_exact = 0;
-+static int opt_count = 0;
- static int opt_signal = SIGTERM;
- static int opt_lock = 0;
- static int opt_case = 0;
-@@ -79,7 +80,7 @@ static int usage (int opt)
- 	if (i_am_pkill)
- 		fprintf (fp, "Usage: pkill [-SIGNAL] [-fvx] ");
- 	else
--		fprintf (fp, "Usage: pgrep [-flvx] [-d DELIM] ");
-+		fprintf (fp, "Usage: pgrep [-cflvx] [-d DELIM] ");
- 	fprintf (fp, "[-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]\n"
- 		 "\t[-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] "
- 		 "[PATTERN]\n");
-@@ -565,7 +566,7 @@ static void parse_opts (int argc, char **argv)
- 		strcat (opts, "ld:");
- 	}
- 			
--	strcat (opts, "LF:fnovxP:g:s:u:U:G:t:?V");
-+	strcat (opts, "LF:cfnovxP:g:s:u:U:G:t:?V");
- 	
- 	while ((opt = getopt (argc, argv, opts)) != -1) {
- 		switch (opt) {
-@@ -613,6 +614,9 @@ static void parse_opts (int argc, char **argv)
- 			exit(EXIT_SUCCESS);
- //		case 'c':   // Solaris: match by contract ID
- //			break;
-+        case 'c':
-+            opt_count = 1;
-+            break;
- 		case 'd':   // Solaris: change the delimiter
- 			opt_delim = strdup (optarg);
- 			break;
-@@ -724,10 +728,14 @@ int main (int argc, char *argv[])
- 				 procs[i].num, strerror (errno));
- 		}
- 	} else {
--		if (opt_long)
--			output_strlist(procs,num);
--		else
--			output_numlist(procs,num);
-+		if (opt_count) {
-+			fprintf(stdout, "%ld\n", num);
-+		} else {
-+			if (opt_long)
-+				output_strlist (procs,num);
-+			else
-+				output_numlist (procs,num);
-+		}
- 	}
- 	return !num; // exit(EXIT_SUCCESS) if match, otherwise exit(EXIT_FAILURE)
- }
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0041-ps_cgroup_display.patch b/patches/procps-3.2.8/0041-ps_cgroup_display.patch
deleted file mode 100644
index 3e1a346..0000000
--- a/patches/procps-3.2.8/0041-ps_cgroup_display.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-From e4eb468ea41f912a0d76c194c06549449e21ea8c Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 41/70] ps_cgroup_display
-
-===================================================================
----
- proc/readproc.c |   15 ++++++++++++++-
- proc/readproc.h |    3 +++
- ps/display.c    |   11 +++++++----
- ps/output.c     |   23 ++++++++++++++++++++++-
- 4 files changed, 46 insertions(+), 6 deletions(-)
-
-diff --git a/proc/readproc.c b/proc/readproc.c
-index d3e85a3..19d99b2 100644
---- a/proc/readproc.c
-+++ b/proc/readproc.c
-@@ -598,6 +598,17 @@ static proc_t* simple_readproc(PROCTAB *restrict const PT, proc_t *restrict cons
- 	p->environ = file2strvec(path, "environ");
-     else
-         p->environ = NULL;
-+
-+    if(linux_version_code>=LINUX_VERSION(2,6,24) && (flags & PROC_FILLCGROUP)) {
-+	p->cgroup = file2strvec(path, "cgroup"); 	/* read /proc/#/cgroup */
-+    	if(p->cgroup && *p->cgroup) {
-+		int i = strlen(*p->cgroup);
-+		if( (*p->cgroup)[i-1]=='\n' )
-+			(*p->cgroup)[i-1] = ' '; //little hack to remove trailing \n
-+	}
-+    }
-+    else
-+	p->cgroup = NULL;
-     
-     return p;
- next_proc:
-@@ -686,7 +697,7 @@ static proc_t* simple_readtask(PROCTAB *restrict const PT, const proc_t *restric
-     t->cmdline = p->cmdline;  // better not free these until done with all threads!
-     t->environ = p->environ;
- #endif
--
-+    t->cgroup = p->cgroup;
-     t->ppid = p->ppid;  // ought to put the per-task ppid somewhere
- 
-     return t;
-@@ -896,6 +907,8 @@ void freeproc(proc_t* p) {
- 	free((void*)*p->cmdline);
-     if (p->environ)
- 	free((void*)*p->environ);
-+    if (p->cgroup)
-+	free((void*)*p->cgroup);
-     free(p);
- }
- 
-diff --git a/proc/readproc.h b/proc/readproc.h
-index a953b29..3a9aecf 100644
---- a/proc/readproc.h
-+++ b/proc/readproc.h
-@@ -139,6 +139,7 @@ typedef struct proc_t {
- 	tpgid,		// stat            terminal process group id
- 	exit_signal,	// stat            might not be SIGCHLD
- 	processor;      // stat            current (or most recent?) CPU
-+    	char **cgroup;  // cgroup	   current cgroup, looks like a classic filepath
- } proc_t;
- 
- // PROCTAB: data structure holding the persistent information readproc needs
-@@ -239,6 +240,8 @@ extern proc_t * get_proc_stats(pid_t pid, proc_t *p);
- 
- #define PROC_LOOSE_TASKS     0x0200 // threat threads as if they were processes
- 
-+#define PROC_FILLCGROUP      0x0400 // alloc and fill in `cgroup`
-+
- // Obsolete, consider only processes with one of the passed:
- #define PROC_PID             0x1000  // process id numbers ( 0   terminated)
- #define PROC_UID             0x4000  // user id numbers    ( length needed )
-diff --git a/ps/display.c b/ps/display.c
-index 4574b9c..3d6bbde 100644
---- a/ps/display.c
-+++ b/ps/display.c
-@@ -223,8 +223,7 @@ static unsigned task_format_needs;
- 
- #define needs_for_format (proc_format_needs|task_format_needs)
- 
--#define PROC_ONLY_FLAGS (PROC_FILLENV|PROC_FILLARG|PROC_FILLCOM|PROC_FILLMEM)
--
-+#define PROC_ONLY_FLAGS (PROC_FILLENV|PROC_FILLARG|PROC_FILLCOM|PROC_FILLMEM|PROC_FILLCGROUP)
- /***** munge lists and determine openproc() flags */
- static void lists_and_needs(void){
-   check_headers();
-@@ -342,6 +341,7 @@ static void simple_spew(void){
-       }
-       if(buf.cmdline) free((void*)*buf.cmdline); // ought to reuse
-       if(buf.environ) free((void*)*buf.environ); // ought to reuse
-+      if(buf.cgroup)  free((void*)*buf.cgroup);
-     }
-     break;
-   case TF_show_proc|TF_loose_tasks:    // H option
-@@ -354,6 +354,7 @@ static void simple_spew(void){
-       }
-       if(buf.cmdline) free((void*)*buf.cmdline); // ought to reuse
-       if(buf.environ) free((void*)*buf.environ); // ought to reuse
-+      if(buf.cgroup)  free((void*)*buf.cgroup);
-     }
-     break;
-   case TF_show_proc|TF_show_task:      // m and -m options
-@@ -366,7 +367,8 @@ static void simple_spew(void){
-       }
-       if(buf.cmdline) free((void*)*buf.cmdline); // ought to reuse
-       if(buf.environ) free((void*)*buf.environ); // ought to reuse
--    }
-+      if(buf.cgroup)  free((void*)*buf.cgroup);
-+     }
-     break;
-   case TF_show_task:                   // -L and -T options
-     while(readproc(ptp,&buf)){
-@@ -377,7 +379,8 @@ static void simple_spew(void){
-       }
-       if(buf.cmdline) free((void*)*buf.cmdline); // ought to reuse
-       if(buf.environ) free((void*)*buf.environ); // ought to reuse
--    }
-+      if(buf.cgroup)  free((void*)*buf.cgroup);
-+   }
-     break;
-   }
-   closeproc(ptp);
-diff --git a/ps/output.c b/ps/output.c
-index b4fb3df..a165ed5 100644
---- a/ps/output.c
-+++ b/ps/output.c
-@@ -376,6 +376,26 @@ static int pr_args(char *restrict const outbuf, const proc_t *restrict const pp)
-   return max_rightward-rightward;
- }
- 
-+static int pr_cgroup(char *restrict const outbuf,const proc_t *restrict const pp) {
-+ if(pp->cgroup && *pp->cgroup) {
-+   char *endp = outbuf;
-+   int rightward=max_rightward;
-+   if(forest_prefix){
-+       int fh = forest_helper(outbuf);
-+       endp += fh;
-+       rightward -= fh;
-+   }
-+   if(rightward>1){
-+     *endp++ = ' ';
-+     rightward--;
-+     endp += escape_str(endp, *pp->cgroup, OUTBUF_SIZE, &rightward);
-+   }
-+   return max_rightward-rightward;
-+ }
-+ else
-+   return pr_nop(outbuf,pp);
-+}
-+
- /* "ucomm" is the same thing: short unless -f */
- static int pr_comm(char *restrict const outbuf, const proc_t *restrict const pp){
-   char *endp = outbuf;
-@@ -1274,7 +1294,7 @@ static int pr_t_left2(char *restrict const outbuf, const proc_t *restrict const
- #define GRP PROC_FILLGRP     /* gid_t -> group names */
- #define WCH PROC_FILLWCHAN   /* do WCHAN lookup */
- 
--
-+#define CGRP PROC_FILLCGROUP /* read cgroup */
- /* TODO
-  *      pull out annoying BSD aliases into another table (to macro table?)
-  *      add sorting functions here (to unify names)
-@@ -1310,6 +1330,7 @@ static const format_struct format_array[] = {
- {"bsdtime",   "TIME",    pr_bsdtime,  sr_nop,     6,   0,    LNX, ET|RIGHT},
- {"c",         "C",       pr_c,        sr_pcpu,    2,   0,    SUN, ET|RIGHT},
- {"caught",    "CAUGHT",  pr_sigcatch, sr_nop,     9,   0,    BSD, TO|SIGNAL}, /*sigcatch*/
-+{"cgroup",    "CGROUP",  pr_cgroup,     sr_nop,     27, CGRP,  LNX, PO|UNLIMITED},
- {"class",     "CLS",     pr_class,    sr_sched,   3,   0,    XXX, TO|LEFT},
- {"cls",       "CLS",     pr_class,    sr_sched,   3,   0,    HPU, TO|RIGHT}, /*says HPUX or RT*/
- {"cmaj_flt",  "-",       pr_nop,      sr_cmaj_flt, 1,  0,    LNX, AN|RIGHT},
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0042-watch_precision_time.patch b/patches/procps-3.2.8/0042-watch_precision_time.patch
deleted file mode 100644
index a5c047d..0000000
--- a/patches/procps-3.2.8/0042-watch_precision_time.patch
+++ /dev/null
@@ -1,226 +0,0 @@
-From 6c6919c283c78b453320c344889de5892449b11c Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 42/70] watch_precision_time
-
-===================================================================
----
- watch.1 |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
- watch.c |   31 +++++++++++++++++++++++++++++--
- 2 files changed, 80 insertions(+), 5 deletions(-)
-
-diff --git a/watch.1 b/watch.1
-index 802ab84..40e6c8e 100644
---- a/watch.1
-+++ b/watch.1
-@@ -4,7 +4,7 @@ watch \- execute a program periodically, showing output fullscreen
- .SH SYNOPSIS
- .na
- .B watch
--.RB [ \-bdehvtx ]
-+.RB [ \-bdehpvtx ]
- .RB [ \-n
- .IR seconds ]
- .RB [ \-\-beep ]
-@@ -14,6 +14,7 @@ watch \- execute a program periodically, showing output fullscreen
- .RB [ \-\-help ]
- .RB [ \-\-interval=\fIseconds\fP]
- .RB [ \-\-no\-title ]
-+.RB [ \-\-precise ]
- .RB [ \-\-version ]
- .I command
- .SH DESCRIPTION
-@@ -27,7 +28,24 @@ every 2 seconds; use
- .B \-n
- or
- .B \-\-interval
--to specify a different interval.
-+to specify a different interval. Normally, this interval is interpreted
-+as the amout of time between the completion of one run of
-+.I command
-+and the beginning of the next run. However, with the
-+.I \-p
-+or
-+.I \-\-precise
-+option, you can make
-+.BR watch
-+attempt to run
-+.I command
-+every
-+.I interval
-+seconds. Try it with
-+.B ntptime
-+and notice how the fractional seconds stays
-+(nearly) the same, as opposed to normal mode where they continuously
-+increase.
- .PP
- The
- .B \-d
-@@ -97,11 +115,21 @@ watch echo '$$'
- .br
- watch echo "'"'$$'"'"
- .PP
-+To see the effect of precision time keeping, try adding
-+.I \-p
-+to
-+.IP
-+watch \-n 10 sleep 1
-+.PP
- You can watch for your administrator to install the latest kernel with
- .IP
- watch uname \-r
- .PP
--(Just kidding.)
-+(Note that
-+.I \-p
-+isn't guaranteed to work across reboots, especially in the face of
-+.B ntpdate
-+or other bootup time-changing mechanisms)
- .SH BUGS
- Upon terminal resize, the screen will not be correctly repainted until the
- next scheduled update.  All
-@@ -110,6 +138,22 @@ highlighting is lost on that update as well.
- .PP
- Non-printing characters are stripped from program output.  Use "cat -v" as
- part of the command pipeline if you want to see them.
-+.PP
-+.I \-\-precise
-+mode doesn't yet have advanced temporal distortion technology to
-+compensate for a
-+.I command
-+that takes more than
-+.I interval
-+seconds to execute.
-+.B watch
-+also can get into a state where it rapid-fires as many executions of
-+.I command
-+as it can to catch up from a previous executions running longer than
-+.I interval
-+(for example,
-+.B netstat
-+taking ages on a DNS lookup).
- .SH AUTHORS
- The original
- .B watch
-@@ -117,3 +161,7 @@ was written by Tony Rems <rembo@unisoft.com> in 1991, with mods and
- corrections by Francois Pinard.  It was reworked and new features added by
- Mike Coleman <mkc@acm.org> in 1999.  The beep, exec, and error handling
- features were added by Morty Abzug <morty@frakir.org> in 2008.
-+On a not so dark and stormy morning
-+in March of 2003, Anthony DeRobertis <asd@suespammers.org> got sick of
-+his watches that should update every minute eventually updating many
-+seconds after the minute started, and added microsecond precision.
-diff --git a/watch.c b/watch.c
-index acb152f..c7369b6 100644
---- a/watch.c
-+++ b/watch.c
-@@ -21,6 +21,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <sys/ioctl.h>
-+#include <sys/time.h>
- #include <time.h>
- #include <unistd.h>
- #include <termios.h>
-@@ -39,13 +40,14 @@ static struct option longopts[] = {
- 	{"beep", no_argument, 0, 'b'},
- 	{"errexit", no_argument, 0, 'e'},
- 	{"exec", no_argument, 0, 'x'},
-+	{"precise", no_argument, 0, 'p'},
- 	{"no-title", no_argument, 0, 't'},
- 	{"version", no_argument, 0, 'v'},
- 	{0, 0, 0, 0}
- };
- 
- static char usage[] =
--    "Usage: %s [-bdhntvx] [--beep] [--differences[=cumulative]] [--exec] [--help] [--interval=<n>] [--no-title] [--version] <command>\n";
-+    "Usage: %s [-bdhnptvx] [--beep] [--differences[=cumulative]] [--exec] [--help] [--interval=<n>] [--no-title] [--version] <command>\n";
- 
- static char *progname;
- 
-@@ -54,6 +56,7 @@ static int height = 24, width = 80;
- static int screen_size_changed = 0;
- static int first_screen = 1;
- static int show_title = 2;  // number of lines used, 2 or 0
-+static int precise_timekeeping = 0;
- 
- #define min(x,y) ((x) > (y) ? (y) : (x))
- 
-@@ -138,6 +141,15 @@ get_terminal_size(void)
- 	}
- }
- 
-+/* get current time in usec */
-+typedef unsigned long long watch_usec_t;
-+#define USECS_PER_SEC (1000000ull)
-+watch_usec_t get_time_usec() {
-+	struct timeval now;
-+	gettimeofday(&now, NULL);
-+	return USECS_PER_SEC*now.tv_sec + now.tv_usec;
-+}
-+
- int
- main(int argc, char *argv[])
- {
-@@ -152,6 +164,8 @@ main(int argc, char *argv[])
- 	char *command;
- 	char **command_argv;
- 	int command_length = 0;	/* not including final \0 */
-+    watch_usec_t next_loop; /* next loop time in us, used for precise time
-+                               keeping only */
- 	int pipefd[2];
- 	int status;
- 	pid_t child;
-@@ -159,7 +173,7 @@ main(int argc, char *argv[])
- 	setlocale(LC_ALL, "");
- 	progname = argv[0];
- 
--	while ((optc = getopt_long(argc, argv, "+bed::hn:vtx", longopts, (int *) 0))
-+	while ((optc = getopt_long(argc, argv, "+bed::hn:pvtx", longopts, (int *) 0))
- 	       != EOF) {
- 		switch (optc) {
- 		case 'b':
-@@ -194,6 +208,9 @@ main(int argc, char *argv[])
- 					interval = ~0u/1000000;
- 			}
- 			break;
-+		case 'p':
-+			precise_timekeeping = 1;
-+			break;
- 		case 'v':
- 			option_version = 1;
- 			break;
-@@ -217,6 +234,7 @@ main(int argc, char *argv[])
- 		fputs("  -e, --errexit\t\t\t\texit watch if the command has a non-zero exit\n", stderr);
- 		fputs("  -h, --help\t\t\t\tprint a summary of the options\n", stderr);
- 		fputs("  -n, --interval=<seconds>\t\tseconds to wait between updates\n", stderr);
-+        fputs("  -p, --precise\t\t\t\tprecise timing, ignore command run time\n", stderr);
- 		fputs("  -v, --version\t\t\t\tprint the version number\n", stderr);
- 		fputs("  -t, --no-title\t\t\tturns off showing the header\n", stderr);
- 		fputs("  -x, --exec\t\t\t\tpass command to exec instead of sh\n", stderr);
-@@ -256,6 +274,9 @@ main(int argc, char *argv[])
- 	noecho();
- 	cbreak();
- 
-+	if (precise_timekeeping)
-+		next_loop = get_time_usec();
-+
- 	for (;;) {
- 		time_t t = time(NULL);
- 		char *ts = ctime(&t);
-@@ -400,6 +421,12 @@ main(int argc, char *argv[])
- 
- 		first_screen = 0;
- 		refresh();
-+		if (precise_timekeeping) {
-+			watch_usec_t cur_time = get_time_usec();
-+			next_loop += USECS_PER_SEC*interval;
-+			if (cur_time < next_loop)
-+				usleep(next_loop - cur_time);
-+		} else
- 		usleep(interval * 1000000);
- 	}
- 
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0043-watch_unicode.patch b/patches/procps-3.2.8/0043-watch_unicode.patch
deleted file mode 100644
index 734eba6..0000000
--- a/patches/procps-3.2.8/0043-watch_unicode.patch
+++ /dev/null
@@ -1,311 +0,0 @@
-From 82851661382a9411a8b288ffb374488ab4a13649 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 43/70] watch_unicode
-
----
- AUTHORS  |    1 +
- Makefile |    5 +-
- watch.1  |   12 +++++
- watch.c  |  142 ++++++++++++++++++++++++++++++++++++++++++++++++++++----------
- 4 files changed, 135 insertions(+), 25 deletions(-)
-
-diff --git a/AUTHORS b/AUTHORS
-index 0860b24..d861b4b 100644
---- a/AUTHORS
-+++ b/AUTHORS
-@@ -47,4 +47,5 @@ Charles Blake
- watch:
- Tony Rems <rembo@unisoft.com>
- Mike Coleman <mkc@acm.org>
-+Jarrod Lowe <procps@rrod.net>
- 
-diff --git a/Makefile b/Makefile
-index 09fb3ed..06728fc 100644
---- a/Makefile
-+++ b/Makefile
-@@ -68,6 +68,7 @@ TARFILES := AUTHORS BUGS NEWS README TODO COPYING COPYING.LIB \
- _TARFILES := Makefile
- 
- CURSES := -lncurses
-+CURSESW := -lncursesw
- 
- # This seems about right for the dynamic library stuff.
- # Something like this is probably needed to make the SE Linux
-@@ -119,7 +120,7 @@ ifneq ($(MAKECMDGOALS),beta)
- # Unlike the kernel one, this check_gcc goes all the way to
- # producing an executable. There might be a -m64 that works
- # until you go looking for a 64-bit curses library.
--check_gcc = $(shell if $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) dummy.c $(ALL_LDFLAGS) $(1) -o /dev/null $(CURSES) > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
-+check_gcc = $(shell if $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) dummy.c $(ALL_LDFLAGS) $(1) -o /dev/null $(CURSES) $(CURSESW) > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
- 
- # Be 64-bit if at all possible. In a cross-compiling situation, one may
- # do "make m64=-m32 lib64=lib" to produce 32-bit executables. DO NOT
-@@ -250,7 +251,7 @@ slabtop top: % : %.o $(LIBPROC)
- 	$(CC) $(ALL_CFLAGS) $^ $(ALL_LDFLAGS) -o $@ $(CURSES)
- 
- watch: % : %.o
--	$(CC) $(ALL_CFLAGS) $^ $(ALL_LDFLAGS) -o $@ $(CURSES)
-+	$(CC) $(ALL_CFLAGS) $^ $(ALL_LDFLAGS) -o $@ $(CURSESW)
- 
- ############ progX --> progY
- 
-diff --git a/watch.1 b/watch.1
-index 40e6c8e..c5f17c4 100644
---- a/watch.1
-+++ b/watch.1
-@@ -139,6 +139,17 @@ highlighting is lost on that update as well.
- Non-printing characters are stripped from program output.  Use "cat -v" as
- part of the command pipeline if you want to see them.
- .PP
-+Combining Characters that are supposed to display on the character at the
-+last column on the screen may display one column early, or they may not
-+display at all.
-+.PP
-+Combining Characters never count as different in
-+.I \-\-differences
-+mode. Only the base character counts.
-+.PP
-+Blank lines directly after a line which ends in the last column do not
-+display.
-+.PP
- .I \-\-precise
- mode doesn't yet have advanced temporal distortion technology to
- compensate for a
-@@ -165,3 +176,4 @@ On a not so dark and stormy morning
- in March of 2003, Anthony DeRobertis <asd@suespammers.org> got sick of
- his watches that should update every minute eventually updating many
- seconds after the minute started, and added microsecond precision.
-+Unicode support was added in 2009 by Jarrod Lowe <procps@rrod.net>.
-diff --git a/watch.c b/watch.c
-index c7369b6..7ab57ab 100644
---- a/watch.c
-+++ b/watch.c
-@@ -9,14 +9,16 @@
-  *
-  * Changes by Albert Cahalan, 2002-2003.
-  * stderr handling, exec, and beep option added by Morty Abzug, 2008
-+ * Unicode Support added by Jarrod Lowe <procps@rrod.net> in 2009.
-  */
- 
--#define VERSION "0.2.0"
-+#define VERSION "0.3.0"
- 
-+#include <wchar.h>
- #include <ctype.h>
- #include <getopt.h>
- #include <signal.h>
--#include <ncurses.h>
-+#include <ncursesw/ncurses.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -27,6 +29,7 @@
- #include <termios.h>
- #include <locale.h>
- #include "proc/procps.h"
-+#include <errno.h>
- 
- #ifdef FORCE_8BIT
- #undef isprint
-@@ -150,6 +153,32 @@ watch_usec_t get_time_usec() {
- 	return USECS_PER_SEC*now.tv_sec + now.tv_usec;
- }
- 
-+// read a wide character from a popen'd stream
-+#define MAX_ENC_BYTES 16
-+wint_t my_getwc(FILE *s);
-+wint_t my_getwc(FILE *s) {
-+	char i[MAX_ENC_BYTES]; //assuming no encoding ever consumes more than 16 bytes
-+	int byte = 0;
-+	int convert;
-+	int x;
-+	wchar_t rval;
-+	while(1) {
-+		i[byte] = getc(s);
-+		if (i[byte]==EOF) { return WEOF; }
-+		byte++;
-+		errno = 0;
-+		mbtowc(NULL, NULL, 0);
-+		convert = mbtowc(&rval, i, byte);
-+		x = errno;
-+		if(convert > 0) { return rval; } //legal conversion
-+		if(byte == MAX_ENC_BYTES) {
-+		while(byte > 1) { ungetc(i[--byte], s); } //at least *try* to fix up
-+		errno = -EILSEQ;
-+		return WEOF;
-+		}
-+	}
-+}
-+
- int
- main(int argc, char *argv[])
- {
-@@ -162,8 +191,11 @@ main(int argc, char *argv[])
- 	    option_help = 0, option_version = 0;
- 	double interval = 2;
- 	char *command;
-+	wchar_t *wcommand = NULL;
- 	char **command_argv;
- 	int command_length = 0;	/* not including final \0 */
-+	int wcommand_columns = 0;	/* not including final \0 */
-+	int wcommand_characters = 0; /* not including final \0 */
-     watch_usec_t next_loop; /* next loop time in us, used for precise time
-                                keeping only */
- 	int pipefd[2];
-@@ -259,6 +291,23 @@ main(int argc, char *argv[])
- 		command[command_length] = '\0';
- 	}
- 
-+	// convert to wide for printing purposes
-+	//mbstowcs(NULL, NULL, 0);
-+	wcommand_characters = mbstowcs(NULL, command, 0);
-+	if(wcommand_characters < 0) {
-+		fprintf(stderr, "Unicode Handling Error\n");
-+		exit(1);
-+	}
-+	wcommand = (wchar_t*)malloc((wcommand_characters+1) * sizeof(wcommand));
-+	if(wcommand == NULL) {
-+		fprintf(stderr, "Unicode Handling Error (malloc)\n");
-+		exit(1);
-+	}
-+	mbstowcs(wcommand, command, wcommand_characters+1);
-+	wcommand_columns = wcswidth(wcommand, -1);
-+
-+
-+
- 	get_terminal_size();
- 
- 	/* Catch keyboard interrupts so we can put tty back in a sane state.  */
-@@ -298,12 +347,44 @@ main(int argc, char *argv[])
- 		if (show_title) {
- 			// left justify interval and command,
- 			// right justify time, clipping all to fit window width
--			asprintf(&header, "Every %.1fs: %.*s",
--				interval, min(width - 1, command_length), command);
--			mvaddstr(0, 0, header);
--			if (strlen(header) > (size_t) (width - tsl - 1))
--				mvaddstr(0, width - tsl - 4, "...  ");
--			mvaddstr(0, width - tsl + 1, ts);
-+
-+			int hlen = asprintf(&header, "Every %.1fs: ", interval);
-+
-+			// the rules:
-+			//   width < tsl : print nothing
-+			//   width < tsl + hlen + 1: print ts
-+			//   width = tsl + hlen + 1: print header, ts
-+			//   width < tsl + hlen + 4: print header, ..., ts
-+			//   width < tsl + hlen + wcommand_columns: print header, truncated wcommand, ..., ts
-+			//   width > "": print header, wcomand, ts
-+			// this is slightly different from how it used to be
-+			if(width >= tsl) {
-+				if(width >= tsl + hlen + 1) {
-+					mvaddstr(0, 0, header);
-+					if(width >= tsl + hlen + 2) {
-+						if(width < tsl + hlen + 4) {
-+							mvaddstr(0, width - tsl - 4, "...  ");
-+						}else{
-+							if(width < tsl + hlen + wcommand_columns) {
-+								// print truncated
-+								int avail_columns = width - tsl - hlen;
-+								int using_columns = wcommand_columns;
-+								int using_characters = wcommand_characters;
-+								while(using_columns > avail_columns - 4) {
-+									using_characters--;
-+								using_columns = wcswidth(wcommand, using_characters);
-+								}
-+								mvaddnwstr(0, hlen, wcommand, using_characters);
-+								mvaddstr(0, width - tsl - 4, "... ");
-+							}else{
-+								mvaddwstr(0, hlen, wcommand);
-+							}
-+						}
-+					}
-+				}
-+				mvaddstr(0, width - tsl + 1, ts);
-+			}
-+
- 			free(header);
- 		}
- 
-@@ -360,47 +441,62 @@ main(int argc, char *argv[])
- 
- 		for (y = show_title; y < height; y++) {
- 			int eolseen = 0, tabpending = 0;
-+			wint_t carry = WEOF;
- 			for (x = 0; x < width; x++) {
--				int c = ' ';
-+				wint_t c = L' ';
- 				int attr = 0;
- 
- 				if (!eolseen) {
- 					/* if there is a tab pending, just spit spaces until the
- 					   next stop instead of reading characters */
- 					if (!tabpending)
--						do
--							c = getc(p);
--						while (c != EOF && !isprint(c)
--						       && c != '\n'
--						       && c != '\t');
--					if (c == '\n')
-+						do {
-+							if(carry == WEOF) {
-+								c = my_getwc(p);
-+							}else{
-+								c = carry;
-+								carry = WEOF;
-+							}
-+						}while (c != WEOF && !isprint(c) && c<128
-+						       && wcwidth(c) == 0
-+						       && c != L'\n'
-+						       && c != L'\t');
-+					if (c == L'\n')
- 						if (!oldeolseen && x == 0) {
- 							x = -1;
- 							continue;
- 						} else
- 							eolseen = 1;
--					else if (c == '\t')
-+					else if (c == L'\t')
- 						tabpending = 1;
--					if (c == EOF || c == '\n' || c == '\t')
--						c = ' ';
-+					if (x==width-1 && wcwidth(c)==2) {
-+						y++;
-+						x = -1; //process this double-width
-+						carry = c; //character on the next line
-+						continue; //because it won't fit here
-+					}
-+					if (c == WEOF || c == L'\n' || c == L'\t')
-+						c = L' ';
- 					if (tabpending && (((x + 1) % 8) == 0))
- 						tabpending = 0;
- 				}
- 				move(y, x);
- 				if (option_differences) {
--					chtype oldch = inch();
--					unsigned char oldc = oldch & A_CHARTEXT;
-+						cchar_t oldc;
-+					in_wch(&oldc);
- 					attr = !first_screen
--					    && ((char)c != oldc
-+					    && ((wchar_t)c != oldc.chars[0]
- 						||
- 						(option_differences_cumulative
--						 && (oldch & A_ATTRIBUTES)));
-+						 && (oldc.attr & A_ATTRIBUTES)));
- 				}
- 				if (attr)
- 					standout();
--				addch(c);
-+				addnwstr((wchar_t*)&c,1);
- 				if (attr)
- 					standend();
-+				if(wcwidth(c) == 0) { x--; }
-+				if(wcwidth(c) == 2) { x++; }
- 			}
- 			oldeolseen = eolseen;
- 		}
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0044-complain_unmounted_proc.patch b/patches/procps-3.2.8/0044-complain_unmounted_proc.patch
deleted file mode 100644
index 113a103..0000000
--- a/patches/procps-3.2.8/0044-complain_unmounted_proc.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From daae1481360c99edbabcf87a544eedd0dda14cc6 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 44/70] complain_unmounted_proc
-
-exiting silently.
----
- proc/version.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/proc/version.c b/proc/version.c
-index 96ffb7f..7930367 100644
---- a/proc/version.c
-+++ b/proc/version.c
-@@ -39,8 +39,10 @@ static void init_Linux_version(void) {
-     FILE *fp;
-     char buf[256];
-     
--    if ( (fp=fopen("/proc/version","r")) == NULL) /* failure implies impending death */
-+    if ( (fp=fopen("/proc/version","r")) == NULL) {
-+      fprintf(stderr, "Cannot find /proc/version - is /proc mounted?\n");
-       exit(1);
-+    }
-     if (fgets(buf, 256, fp) == NULL) {
-       fprintf(stderr, "Cannot read kernel version from /proc/version\n");
-       fclose(fp);
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0045-ps_supgid_display.patch b/patches/procps-3.2.8/0045-ps_supgid_display.patch
deleted file mode 100644
index 749ed53..0000000
--- a/patches/procps-3.2.8/0045-ps_supgid_display.patch
+++ /dev/null
@@ -1,475 +0,0 @@
-From 3fb4f51883525e888571d72d30929dd2b912154d Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 45/70] ps_supgid_display
-
-===================================================================
----
- proc/library.map |    2 +-
- proc/readproc.c  |  135 ++++++++++++++++++++++++++++++++++++++----------------
- proc/readproc.h  |   12 ++++-
- ps/display.c     |   34 ++++++++++++--
- ps/output.c      |   47 +++++++++++++++++++
- ps/ps.1          |   10 ++++
- 6 files changed, 195 insertions(+), 45 deletions(-)
-
-diff --git a/proc/library.map b/proc/library.map
-index 154061b..8d69cd5 100644
---- a/proc/library.map
-+++ b/proc/library.map
-@@ -7,7 +7,7 @@ global:
- 
-   readproc; readtask; readproctab; readproctab2; look_up_our_self; escape_command;
-   escape_str; escape_strlist;
--  openproc; closeproc; freeproc;
-+  openproc; closeproc; freeproc; allocsupgrp; freesupgrp;
-   tty_to_dev; dev_to_tty; open_psdb_message; open_psdb; lookup_wchan;
-   display_version; procps_version; linux_version_code;
-   Hertz; smp_num_cpus; have_privs;
-diff --git a/proc/readproc.c b/proc/readproc.c
-index 19d99b2..9660799 100644
---- a/proc/readproc.c
-+++ b/proc/readproc.c
-@@ -20,6 +20,7 @@
- #include <errno.h>
- #include <stdarg.h>
- #include <string.h>
-+#include <limits.h>
- #include <unistd.h>
- #include <signal.h>
- #include <fcntl.h>
-@@ -85,63 +86,68 @@ static void status2proc(char *S, proc_t *restrict P, int is_proc){
-     long Threads = 0;
-     long Tgid = 0;
-     long Pid = 0;
-+    int hash = 0;
-+    int isupgid = 0;
- 
--  static const unsigned char asso[] =
-+    static const unsigned char asso[] =
-     {
--      61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
--      61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
--      61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
--      61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
--      61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
--      61, 61, 61, 61, 61, 61, 61, 61, 15, 61,
--      61, 61, 61, 61, 61, 61, 30,  3,  5,  5,
--      61,  5, 61,  8, 61, 61,  3, 61, 10, 61,
--       6, 61, 13,  0, 30, 25,  0, 61, 61, 61,
--      61, 61, 61, 61, 61, 61, 61,  3, 61, 13,
--       0,  0, 61, 30, 61, 25, 61, 61, 61,  0,
--      61, 61, 61, 61,  5, 61,  0, 61, 61, 61,
--       0, 61, 61, 61, 61, 61, 61, 61
-+      66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
-+      66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
-+      66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
-+      66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
-+      66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
-+      66, 66, 66, 66, 66, 66, 66, 66,  0, 66,
-+      66, 66, 66, 66, 66, 66,  3, 30, 20, 30,
-+      66, 25, 66, 20, 66, 66, 30, 66, 25, 66,
-+       0, 66,  8, 10,  3, 18,  5, 66, 66, 66,
-+      66, 66, 66, 66, 66, 66, 66,  3, 66, 10,
-+       0,  0, 66, 25, 66,  5, 66, 66, 66, 25,
-+      66,  5, 66, 66,  0, 66,  0,  0, 66, 66,
-+      25, 66, 66, 66, 66, 66, 66, 66
-     };
- 
-     static const status_table_struct table[] = {
--      F(VmStk)
-+      F(Pid)
-       NUL NUL
--      F(State)
-+      F(Threads)
-+      NUL
-+      F(PPid)
-+      NUL NUL
-+      F(Tgid)
-       NUL
--      F(VmExe)
-       F(ShdPnd)
-+      NUL NUL
-+      F(State)
-       NUL
--      F(VmData)
-+      F(VmStk)
-+      NUL NUL
-+      F(Uid)
-       NUL
--      F(Name)
-+      F(VmSize)
-       NUL NUL
-       F(VmRSS)
--      NUL NUL
--      F(VmLck)
--      NUL NUL NUL
-+      NUL
-       F(Gid)
--      F(Pid)
--      NUL NUL NUL
--      F(VmSize)
-       NUL NUL
--      F(VmLib)
--      NUL NUL
--      F(PPid)
--      NUL
--      F(SigCgt)
-+      F(VmData)
-       NUL
--      F(Threads)
-+      F(Groups)
-+      NUL NUL NUL NUL
-       F(SigPnd)
-+      NUL NUL
-+      F(SigBlk)
-       NUL
-+      F(VmLib)
-+      NUL NUL NUL NUL
-+      F(VmLck)
-+      NUL NUL NUL NUL
-+      F(Name)
-+      NUL NUL NUL NUL
-       F(SigIgn)
--      NUL
--      F(Uid)
--      NUL NUL NUL NUL NUL NUL NUL NUL NUL
--      NUL NUL NUL NUL NUL
--      F(Tgid)
-       NUL NUL NUL NUL
--      F(SigBlk)
--      NUL NUL NUL
-+      F(VmExe)
-+      NUL NUL NUL NUL
-+      F(SigCgt)
-     };
- 
- #undef F
-@@ -157,6 +163,9 @@ ENTER(0x220);
-     P->vm_exe  = 0;
-     P->vm_lib  = 0;
-     P->nlwp    = 0;
-+    P->nsupgid = 0;
-+    P->supgid = NULL;
-+    P->supgrp = NULL;
-     P->signal[0] = '\0';  // so we can detect it as missing for very old kernels
- 
-     goto base;
-@@ -173,7 +182,9 @@ ENTER(0x220);
-         // examine a field name (hash and compare)
-     base:
-         if(unlikely(!*S)) break;
--        entry = table[63 & (asso[(int)S[3]] + asso[(int)S[2]] + asso[(int)S[0]])];
-+        hash = asso[S[3]] + asso[S[2]] + asso[S[0]];
-+        if (hash > 65) continue;
-+        entry = table[hash];
-         colon = strchr(S, ':');
-         if(unlikely(!colon)) break;
-         if(unlikely(colon[1]!='\t')) break;
-@@ -271,6 +282,21 @@ ENTER(0x220);
-         P->sgid = strtol(S,&S,10);
-         P->fgid = strtol(S,&S,10);
-         continue;
-+    case_Groups:
-+        isupgid = 0;
-+        if (*S != '\n'){ // Is there any supplementary group ?
-+          P->supgid = (int *) xmalloc(0x0004 * sizeof(int));
-+          int vctsize = 0x0004;
-+          while (S[1] != '\n' && isupgid<INT_MAX){ // There is one blank before '\n'
-+            if (isupgid == vctsize){
-+              vctsize *= 2;
-+              P->supgid = (int *)xrealloc(P->supgid,vctsize * sizeof(int));
-+            }
-+            P->supgid[isupgid++] = strtol(S,&S,10);
-+            P->nsupgid++;
-+          }
-+        }
-+        continue;
-     case_VmData:
-         P->vm_data = strtol(S,&S,10);
-         continue;
-@@ -589,6 +615,13 @@ static proc_t* simple_readproc(PROCTAB *restrict const PT, proc_t *restrict cons
-         }
-     }
- 
-+    if (flags & PROC_FILLSUPGRP && p->nsupgid > 0){
-+        allocsupgrp(p);
-+        int i;
-+        for (i=0; i < p->nsupgid; i++)
-+            memcpy(p->supgrp[i], group_from_gid(p->supgid[i]), P_G_SZ);
-+    }
-+
-     if ((flags & PROC_FILLCOM) || (flags & PROC_FILLARG))	/* read+parse /proc/#/cmdline */
- 	p->cmdline = file2strvec(path, "cmdline");
-     else
-@@ -683,6 +716,13 @@ static proc_t* simple_readtask(PROCTAB *restrict const PT, const proc_t *restric
-         }
-     }
- 
-+    if (flags & PROC_FILLSUPGRP && t->nsupgid > 0){
-+        allocsupgrp(t);
-+        int i;
-+        for (i=0; i < t->nsupgid; i++)
-+            memcpy(t->supgrp[i], group_from_gid(t->supgid[i]), P_G_SZ);
-+    }
-+
- #if 0
-     if ((flags & PROC_FILLCOM) || (flags & PROC_FILLARG))	/* read+parse /proc/#/cmdline */
- 	t->cmdline = file2strvec(path, "cmdline");
-@@ -897,6 +937,23 @@ void closeproc(PROCTAB* PT) {
-     }
- }
- 
-+// allocate memory for supgrp
-+void allocsupgrp(proc_t *p) {
-+    if (!p || p->nsupgid == 0) return;
-+    p->supgrp = (char**)xmalloc(p->nsupgid * sizeof(char*));
-+    int i;
-+    for (i=0; i<p->nsupgid; i++)
-+      p->supgrp[i] = (char*)xmalloc(P_G_SZ * sizeof(char));
-+}
-+
-+// free memory allocated for supgrp
-+void freesupgrp(proc_t *p) {
-+    int i;
-+    for (i=0; i<p->nsupgid; i++)
-+      if (p->supgrp[i]) free(p->supgrp[i]);
-+    free(p->supgrp);
-+}
-+
- // deallocate the space allocated by readproc if the passed rbuf was NULL
- void freeproc(proc_t* p) {
-     if (!p)	/* in case p is NULL */
-diff --git a/proc/readproc.h b/proc/readproc.h
-index 3a9aecf..ac166ca 100644
---- a/proc/readproc.h
-+++ b/proc/readproc.h
-@@ -122,6 +122,7 @@ typedef struct proc_t {
-     	egroup[P_G_SZ],	// status          effective group name
-     	sgroup[P_G_SZ],	// status          saved group name
-     	fgroup[P_G_SZ],	// status          filesystem group name
-+    	**supgrp, // status        supplementary groups
-     	cmd[16];	// stat,status     basename of executable file in call to exec(2)
-     struct proc_t
- 	*ring,		// n/a             thread group ring
-@@ -137,6 +138,8 @@ typedef struct proc_t {
-         suid, sgid,     // status          saved
-         fuid, fgid,     // status          fs (used for file access only)
- 	tpgid,		// stat            terminal process group id
-+	nsupgid,	// status        number of supplementary groups
-+	*supgid,	// status        supplementary gid's
- 	exit_signal,	// stat            might not be SIGCHLD
- 	processor;      // stat            current (or most recent?) CPU
-     	char **cgroup;  // cgroup	   current cgroup, looks like a classic filepath
-@@ -198,6 +201,12 @@ extern proc_t** readproctab(int flags, ... /* same as openproc */ );
- // clean-up open files, etc from the openproc()
- extern void closeproc(PROCTAB* PT);
- 
-+// allocate memory for supgrp
-+extern void allocsupgrp(proc_t *p);
-+
-+// free memory allocated for supgrp
-+extern void freesupgrp(proc_t *p);
-+
- // retrieve the next process matching the criteria set by the openproc()
- extern proc_t* readproc(PROCTAB *restrict const PT, proc_t *restrict p);
- extern proc_t* readtask(PROCTAB *restrict const PT, const proc_t *restrict const p, proc_t *restrict t);
-@@ -237,8 +246,9 @@ extern proc_t * get_proc_stats(pid_t pid, proc_t *p);
- #define PROC_FILLSTAT        0x0040 // read stat -- currently unconditional
- #define PROC_FILLWCHAN       0x0080 // look up WCHAN name
- #define PROC_FILLARG         0x0100 // alloc and fill in `cmdline'
-+#define PROC_FILLSUPGRP      0x0200 // resolve supplementary group id number -> group name
- 
--#define PROC_LOOSE_TASKS     0x0200 // threat threads as if they were processes
-+#define PROC_LOOSE_TASKS     0x0400 // threat threads as if they were processes
- 
- #define PROC_FILLCGROUP      0x0400 // alloc and fill in `cgroup`
- 
-diff --git a/ps/display.c b/ps/display.c
-index 3d6bbde..6ef5d58 100644
---- a/ps/display.c
-+++ b/ps/display.c
-@@ -342,6 +342,8 @@ static void simple_spew(void){
-       if(buf.cmdline) free((void*)*buf.cmdline); // ought to reuse
-       if(buf.environ) free((void*)*buf.environ); // ought to reuse
-       if(buf.cgroup)  free((void*)*buf.cgroup);
-+      if(buf.nsupgid > 0 && buf.supgid) free(buf.supgid);
-+      if((ptp->flags & PROC_FILLSUPGRP) && buf.nsupgid>0 && buf.supgrp) freesupgrp(&buf);
-     }
-     break;
-   case TF_show_proc|TF_loose_tasks:    // H option
-@@ -349,12 +351,16 @@ static void simple_spew(void){
-       proc_t buf2;
-       // must still have the process allocated
-       while(readtask(ptp,&buf,&buf2)){
--        if(!want_this_proc(&buf)) continue;
--        show_one_proc(&buf2, task_format_list);
-+        if(want_this_proc(&buf)) show_one_proc(&buf2, task_format_list);
-+        if(buf2.nsupgid > 0 && buf2.supgid && buf.supgid!=buf2.supgid) free(buf2.supgid);
-+        if((ptp->flags & PROC_FILLSUPGRP) && buf2.nsupgid>0 && buf2.supgrp && buf.supgrp!=buf2.supgrp)
-+          freesupgrp(&buf2);
-       }
-       if(buf.cmdline) free((void*)*buf.cmdline); // ought to reuse
-       if(buf.environ) free((void*)*buf.environ); // ought to reuse
-       if(buf.cgroup)  free((void*)*buf.cgroup);
-+      if(buf.nsupgid > 0 && buf.supgid) free(buf.supgid);
-+      if((ptp->flags & PROC_FILLSUPGRP) && buf.nsupgid>0 && buf.supgrp) freesupgrp(&buf);
-     }
-     break;
-   case TF_show_proc|TF_show_task:      // m and -m options
-@@ -363,11 +369,18 @@ static void simple_spew(void){
-         proc_t buf2;
-         show_one_proc(&buf, proc_format_list);
-         // must still have the process allocated
--        while(readtask(ptp,&buf,&buf2)) show_one_proc(&buf2, task_format_list);
-+        while(readtask(ptp,&buf,&buf2)){
-+          show_one_proc(&buf2, task_format_list);
-+          if(buf2.nsupgid > 0 && buf2.supgid && buf.supgid!=buf2.supgid) free(buf2.supgid);
-+          if(ptp->flags & PROC_FILLSUPGRP && buf2.nsupgid>0 && buf2.supgrp && buf.supgrp!=buf2.supgrp)
-+            freesupgrp(&buf2);
-+        }
-       }
-       if(buf.cmdline) free((void*)*buf.cmdline); // ought to reuse
-       if(buf.environ) free((void*)*buf.environ); // ought to reuse
-       if(buf.cgroup)  free((void*)*buf.cgroup);
-+      if(buf.nsupgid > 0 && buf.supgid) free(buf.supgid);
-+      if((ptp->flags & PROC_FILLSUPGRP) && buf.nsupgid>0 && buf.supgrp) freesupgrp(&buf);
-      }
-     break;
-   case TF_show_task:                   // -L and -T options
-@@ -375,11 +388,18 @@ static void simple_spew(void){
-       if(want_this_proc(&buf)){
-         proc_t buf2;
-         // must still have the process allocated
--        while(readtask(ptp,&buf,&buf2)) show_one_proc(&buf2, task_format_list);
-+        while(readtask(ptp,&buf,&buf2)){
-+          show_one_proc(&buf2, task_format_list);
-+          if(buf2.nsupgid > 0 && buf2.supgid && buf.supgid!=buf2.supgid) free(buf2.supgid);
-+          if(ptp->flags & PROC_FILLSUPGRP && buf2.nsupgid>0 && buf2.supgrp && buf.supgrp!=buf2.supgrp)
-+            freesupgrp(&buf2);
-+        }
-       }
-       if(buf.cmdline) free((void*)*buf.cmdline); // ought to reuse
-       if(buf.environ) free((void*)*buf.environ); // ought to reuse
-       if(buf.cgroup)  free((void*)*buf.cgroup);
-+      if(buf.nsupgid > 0 && buf.supgid) free(buf.supgid);
-+      if((ptp->flags & PROC_FILLSUPGRP) && buf.nsupgid>0 && buf.supgrp) freesupgrp(&buf);
-    }
-     break;
-   }
-@@ -542,6 +562,12 @@ static void fancy_spew(void){
-   qsort(processes, n, sizeof(proc_t*), compare_two_procs);
-   if(forest_type) show_forest(n);
-   else show_proc_array(ptp,n);
-+  int i;
-+  for (i=0; i<n; i++)
-+    if (processes[i]->nsupgid>0 && processes[i]->supgid) free(processes[i]->supgid);
-+  if (ptp->flags & PROC_FILLSUPGRP)
-+    for (i=0; i<n; i++)
-+      if (processes[i]->nsupgid>0 && processes[i]->supgrp) freesupgrp(processes[i]);
-   closeproc(ptp);
- }
- 
-diff --git a/ps/output.c b/ps/output.c
-index a165ed5..1a196ff 100644
---- a/ps/output.c
-+++ b/ps/output.c
-@@ -211,6 +211,32 @@ static int sr_swapable(const proc_t* P, const proc_t* Q) {
-   return 0;
- }
- 
-+static int sr_supgid(const proc_t* P, const proc_t* Q){
-+  int i;
-+  for (i = 0; i < INT_MAX; i++){
-+    if (P->nsupgid == i){
-+      if (Q->nsupgid == i) return 0;
-+      else return -1;
-+    }
-+    if (Q->nsupgid == i) return 1;
-+	if (P->supgid[i] != Q->supgid[i]) return P->supgid[i] - Q->supgid[i];
-+  }
-+  return 0;
-+}
-+
-+static int sr_supgrp(const proc_t* P, const proc_t* Q){
-+  int i;
-+  for (i = 0; i < INT_MAX; i++){
-+    if (P->nsupgid == i){
-+      if (Q->nsupgid == i) return 0;
-+      else return -1;
-+    }
-+    if (Q->nsupgid == i) return 1;
-+    int cmp = strncmp(P->supgrp[i],Q->supgrp[i],P_G_SZ);
-+    if (cmp != 0) return cmp;
-+  }
-+  return 0;
-+}
- 
- /***************************************************************************/
- /************ Lots of format functions, starting with the NOP **************/
-@@ -1062,6 +1088,24 @@ static int pr_fuid(char *restrict const outbuf, const proc_t *restrict const pp)
-   return snprintf(outbuf, COLWID, "%d", pp->fuid);
- }
- 
-+static int pr_supgid(char *restrict const outbuf, const proc_t *restrict const pp){
-+  if (pp->nsupgid == 0) return snprintf(outbuf,2,"-");
-+  int rest = COLWID;
-+  int i = 0;
-+  for (i = 0; i < pp->nsupgid && rest > 5; i++)
-+    rest-= snprintf(outbuf+COLWID-rest, rest, "%d ", pp->supgid[i]);
-+  return COLWID-rest;
-+}
-+
-+static int pr_supgrp(char *restrict const outbuf, const proc_t *restrict const pp){
-+  if (pp->nsupgid == 0) return snprintf(outbuf,2,"-");
-+  int rest = COLWID;
-+  int i = 0;
-+  for (i = 0; i < pp->nsupgid && rest > sizeof( pp->supgrp[i] ) + 1; i++)
-+    rest-= snprintf(outbuf+COLWID-rest, rest, "%s ", pp->supgrp[i]);
-+  return COLWID-rest;
-+}
-+
- // The Open Group Base Specifications Issue 6 (IEEE Std 1003.1, 2004 Edition)
- // requires that user and group names print as decimal numbers if there is
- // not enough room in the column, so tough luck if you don't like it.
-@@ -1293,6 +1337,7 @@ static int pr_t_left2(char *restrict const outbuf, const proc_t *restrict const
- #define USR PROC_FILLUSR     /* uid_t -> user names */
- #define GRP PROC_FILLGRP     /* gid_t -> group names */
- #define WCH PROC_FILLWCHAN   /* do WCHAN lookup */
-+#define SUPGRP PROC_FILLSUPGRP      /* supgid -> supplementary group names */
- 
- #define CGRP PROC_FILLCGROUP /* read cgroup */
- /* TODO
-@@ -1490,6 +1535,8 @@ static const format_struct format_array[] = {
- {"status",    "STATUS",  pr_nop,      sr_nop,     6,   0,    DEC, AN|RIGHT},
- {"stime",     "STIME",   pr_stime,    sr_stime,   5,   0,    XXX, ET|RIGHT}, /* was 6 wide */
- {"suid",      "SUID",    pr_suid,     sr_suid,    5,   0,    LNx, ET|RIGHT},
-+{"supgid",    "SUPGID",  pr_supgid,   sr_supgid,  27,   0,    LNX, PO|UNLIMITED},
-+{"supgrp",    "SUPGRP",  pr_supgrp,   sr_supgrp,  27, SUPGRP, LNX, PO|UNLIMITED},
- {"suser",     "SUSER",   pr_suser,    sr_suser,   8, USR,    LNx, ET|USER},
- {"svgid",     "SVGID",   pr_sgid,     sr_sgid,    5,   0,    XXX, ET|RIGHT},
- {"svgroup",   "SVGROUP", pr_sgroup,   sr_sgroup,  8, GRP,    LNX, ET|USER},
-diff --git a/ps/ps.1 b/ps/ps.1
-index 0f896bf..90fabbc 100644
---- a/ps/ps.1
-+++ b/ps/ps.1
-@@ -1303,6 +1303,16 @@ suid	SUID	T{
- saved user\ ID.  (alias\ \fBsvuid\fR).
- T}
- 
-+supgid	SUPGID	T{
-+gid of supplementary groups, see
-+.BR getgroups (2).
-+T}
-+
-+supgrp	SUPGRP	T{
-+names of supplementary groups, see
-+.BR getgroups (2).
-+T}
-+
- suser	SUSER	T{
- saved user name.  This will be the textual user\ ID,
- if\ it can be obtained and the field width permits,
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0046-makefile_dev_null.patch b/patches/procps-3.2.8/0046-makefile_dev_null.patch
deleted file mode 100644
index 4d8e92c..0000000
--- a/patches/procps-3.2.8/0046-makefile_dev_null.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 817acf1db736315bcc89082fe12fe41a4a9492d2 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 46/70] makefile_dev_null
-
----
- Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 06728fc..abddb6e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -120,7 +120,7 @@ ifneq ($(MAKECMDGOALS),beta)
- # Unlike the kernel one, this check_gcc goes all the way to
- # producing an executable. There might be a -m64 that works
- # until you go looking for a 64-bit curses library.
--check_gcc = $(shell if $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) dummy.c $(ALL_LDFLAGS) $(1) -o /dev/null $(CURSES) $(CURSESW) > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
-+check_gcc = $(shell if $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) dummy.c $(ALL_LDFLAGS) $(1) -o will_this_file_really_exist.tmp $(CURSES) $(CURSESW) > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ; rm -f will_this_file_really_exist.tmp)
- 
- # Be 64-bit if at all possible. In a cross-compiling situation, one may
- # do "make m64=-m32 lib64=lib" to produce 32-bit executables. DO NOT
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0047-pgrep.1.patch b/patches/procps-3.2.8/0047-pgrep.1.patch
deleted file mode 100644
index 7df5d69..0000000
--- a/patches/procps-3.2.8/0047-pgrep.1.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-From c55f0fd0d7758cc170ef72fce0d4a66d3200906f Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 47/70] pgrep.1
-
-Uses .BR for see also section #437678
----
- pgrep.1 |   98 +++++++++++++++++++++++++++++++++++++-------------------------
- 1 files changed, 58 insertions(+), 40 deletions(-)
-
-diff --git a/pgrep.1 b/pgrep.1
-index 9152799..257a6ce 100644
---- a/pgrep.1
-+++ b/pgrep.1
-@@ -2,35 +2,39 @@
- .\" Licensed under version 2 of the GNU General Public License.
- .\" Copyright 2000 Kjetil Torgrim Homme
- .\"
--.TH PGREP 1 "June 25, 2000" "Linux" "Linux User's Manual"
-+.TH PGREP 1 "October 5, 2007" "Linux" "Linux User's Manual"
- .SH NAME
- pgrep, pkill \- look up or signal processes based on name and other attributes
- 
- .SH SYNOPSIS
--pgrep [\-cflvx] [\-d \fIdelimiter\fP] [\-n|\-o] [\-P \fIppid\fP,...] [\-g \fIpgrp\fP,...]
--.br
--	[\-s \fIsid\fP,...] [\-u \fIeuid\fP,...] [\-U \fIuid\fP,...] [\-G \fIgid\fP,...]
--.br
--	[\-t \fIterm\fP,...] [\fIpattern\fP]
--
--pkill [\-\fIsignal\fP] [\-fvx] [\-n|\-o] [\-P \fIppid\fP,...] [\-g \fIpgrp\fP,...]
--.br
--	[\-s \fIsid\fP,...] [\-u \fIeuid\fP,...] [\-U \fIuid\fP,...] [\-G \fIgid\fP,...]
--.br
--	[\-t \fIterm\fP,...] [\fIpattern\fP]
-+.na
-+\fBpgrep\fR [\fB\-cflvx\fR] [\fB\-d\ \fIdelimiter\fR] [\fB\-n\fR|\fB\-o\fR] \
-+[\fB\-P\ \fIppid\fR,...] [\fB\-g\ \fIpgrp\fR,...] [\fB\-s\ \fIsid\fR,...] \
-+[\fB\-u\ \fIeuid\fR,...] [\fB\-U\ \fIuid\fR,...] [\fB\-G\ \fIgid\fR,...] \
-+[\fB\-t\ \fIterm\fR,...] [\fIpattern\fR]
-+
-+.HP
-+\fBpkill\fR [\fB\-\fIsignal\fR] [\fB\-fvx\fR] [\fB\-n\fR|\fB\-o\fR] \
-+[\fB\-P\ \fIppid\fR,...] [\fB\-g\ \fIpgrp\fR,...] [\fB\-s\ \fIsid\fR,...] \
-+[\fB\-u\ \fIeuid\fR,...] [\fB\-U\ \fIuid\fR,...] [\fB\-G\ \fIgid\fR,...] \
-+[\fB\-t\ \fIterm\fR,...] [\fIpattern\fR]
- 
- .SH DESCRIPTION
- \fBpgrep\fP looks through the currently running processes and lists the
- process IDs which matches the selection criteria to stdout.  All
- the criteria have to match.  For example,
- 
--pgrep -u root sshd
-+.IP
-+$ pgrep \-u root sshd
- 
-+.PP
- will only list the processes called \fBsshd\fP AND owned by \fBroot\fP.
- On the other hand,
- 
--pgrep -u root,daemon
-+.IP
-+$ pgrep \-u root,daemon
- 
-+.PP
- will list the processes owned by \fBroot\fP OR \fBdaemon\fP.
- 
- \fBpkill\fP will send the specified signal (by default \fBSIGTERM\fP)
-@@ -38,18 +42,18 @@ to each process instead of listing them on stdout.
- 
- .SH OPTIONS
- .TP
--\-c
-+\fB\-c\fR
- Suppress normal output; instead print a count of matching processes.
- .TP
--\-d \fIdelimiter\fP
-+\fB\-d \fIdelimiter\fP
- Sets the string used to delimit each process ID in the output (by
- default a newline).  (\fBpgrep\fP only.)
- .TP
--\-f
-+\fB\-f\fR
- The \fIpattern\fP is normally only matched against the process name.
--When \-f is set, the full command line is used.
-+When \fB\-f\fR is set, the full command line is used.
- .TP
--\-g \fIpgrp\fP,...
-+\fB\-g \fIpgrp\fP,...
- Only match processes in the process group IDs listed.  Process group 0
- is translated into \fBpgrep\fP's or \fBpkill\fP's own process group.
- .TP
-@@ -57,40 +61,40 @@ is translated into \fBpgrep\fP's or \fBpkill\fP's own process group.
- Only match processes whose real group ID is listed.  Either the
- numerical or symbolical value may be used.
- .TP
--\-l
-+\fB\-l\fR
- List the process name as well as the process ID. (\fBpgrep\fP only.)
- .TP
--\-n
-+\fB\-n\fR
- Select only the newest (most recently started) of the matching
- processes.
- .TP
--\-o
-+\fB\-o\fR
- Select only the oldest (least recently started) of the matching
- processes.
- .TP
--\-P \fIppid\fP,...
-+\fB\-P \fIppid\fP,...
- Only match processes whose parent process ID is listed.
- .TP
--\-s \fIsid\fP,...
-+\fB\-s \fIsid\fP,...
- Only match processes whose process session ID is listed.  Session ID 0
- is translated into \fBpgrep\fP's or \fBpkill\fP's own session ID.
- .TP
--\-t \fIterm\fP,...
-+\fB\-t \fIterm\fP,...
- Only match processes whose controlling terminal is listed.  The
- terminal name should be specified without the "/dev/" prefix.
- .TP
--\-u \fIeuid\fP,...
-+\fB\-u \fIeuid\fP,...
- Only match processes whose effective user ID is listed.  Either the
- numerical or symbolical value may be used.
- .TP
--\-U \fIuid\fP,...
-+\fB\-U \fIuid\fP,...
- Only match processes whose real user ID is listed.  Either the
- numerical or symbolical value may be used.
- .TP
--\-v
-+\fB\-v\fR
- Negates the matching.
- .TP
--\-x
-+\fB\-x\fR
- Only match processes whose name (or command line if \-f is specified)
- \fBexactly\fP match the \fIpattern\fP.
- .TP
-@@ -107,32 +111,40 @@ process names or command lines.
- .SH EXAMPLES
- Example 1: Find the process ID of the \fBnamed\fP daemon:
- 
--unix$ pgrep \-u root named
-+.IP
-+$ pgrep \-u root named
- 
-+.PP
- Example 2: Make \fBsyslog\fP reread its configuration file:
- 
--unix$ pkill \-HUP syslogd
-+.IP
-+$ pkill \-HUP syslogd
- 
-+.PP
- Example 3: Give detailed information on all \fBxterm\fP processes:
- 
--unix$ ps \-fp $(pgrep \-d, \-x xterm)
-+.IP
-+$ ps \-fp $(pgrep \-d, \-x xterm)
- 
-+.PP
- Example 4: Make all \fBnetscape\fP processes run nicer:
- 
--unix$ renice +4 `pgrep netscape`
-+.IP
-+$ renice +4 `pgrep netscape`
- 
- .SH "EXIT STATUS"
-+.PD 0
- .TP
--.I "0"
-+.I 0
- One or more processes matched the criteria.
- .TP
--.I "1"
-+.I 1
- No processes matched.
- .TP
--.I "2"
-+.I 2
- Syntax error in the command line.
- .TP
--.I "3"
-+.I 3
- Fatal error: out of memory etc.
- 
- .SH NOTES
-@@ -144,13 +156,19 @@ The running \fBpgrep\fP or \fBpkill\fP process will never report
- itself as a match.
- 
- .SH BUGS
--The options \-n and \-o and \-v can not be combined.  Let me know if
--you need to do this.
-+The options \fB\-n\fP and \fB\-o\fP and \fB\-v\fP can not be combined.
-+Let me know if you need to do this.
- 
- Defunct processes are reported.
- 
- .SH "SEE ALSO"
--ps(1) regex(7) signal(7) killall(1) skill(1) kill(1) kill(2)
-+.BR ps (1),
-+.BR regex (7),
-+.BR signal (7),
-+.BR killall (1),
-+.BR skill (1),
-+.BR kill (1),
-+.BR kill (2)
- 
- .SH STANDARDS
- \fBpkill\fP and \fBpgrep\fP were introduced in Sun's Solaris 7.  This
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0048-ps_size_sz.patch b/patches/procps-3.2.8/0048-ps_size_sz.patch
deleted file mode 100644
index e75c732..0000000
--- a/patches/procps-3.2.8/0048-ps_size_sz.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 941c8bea2133a9155df6fddb3666d528cab2034e Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 48/70] ps_size_sz
-
-===================================================================
----
- ps/output.c |    2 +-
- ps/ps.1     |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/ps/output.c b/ps/output.c
-index 1a196ff..f9a29ce 100644
---- a/ps/output.c
-+++ b/ps/output.c
-@@ -1522,7 +1522,7 @@ static const format_struct format_array[] = {
- {"sigcatch",  "CAUGHT",  pr_sigcatch, sr_nop,     9,   0,    XXX, TO|SIGNAL}, /*caught*/
- {"sigignore", "IGNORED", pr_sigignore,sr_nop,     9,   0,    XXX, TO|SIGNAL}, /*ignored*/
- {"sigmask",   "BLOCKED", pr_sigmask,  sr_nop,     9,   0,    XXX, TO|SIGNAL}, /*blocked*/
--{"size",      "SZ",      pr_swapable, sr_swapable, 5,  0,    SCO, PO|RIGHT},
-+{"size",      "SIZE",      pr_swapable, sr_swapable, 5,  0,    SCO, PO|RIGHT},
- {"sl",        "SL",      pr_nop,      sr_nop,     3,   0,    XXX, AN|RIGHT},
- {"spid",      "SPID",    pr_thread,   sr_tid,     5,   0,    SGI, TO|PIDMAX|RIGHT},
- {"stackp",    "STACKP",  pr_stackp,   sr_start_stack, 8, 0,  LNX, PO|RIGHT}, /*start_stack*/
-diff --git a/ps/ps.1 b/ps/ps.1
-index 90fabbc..ad347ad 100644
---- a/ps/ps.1
-+++ b/ps/ps.1
-@@ -1254,7 +1254,7 @@ sigmask	BLOCKED	T{
- see\ \fBblocked\fR.  (alias\ \fBblocked\fR,\ \fBsig_block\fR).
- T}
- 
--size	SZ	T{
-+size	SIZE	T{
- approximate amount of swap space that would be required
- if the process were to dirty all writable pages and then
- be swapped out.
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0049-top_mintime.patch b/patches/procps-3.2.8/0049-top_mintime.patch
deleted file mode 100644
index 9909d3b..0000000
--- a/patches/procps-3.2.8/0049-top_mintime.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From cf99e9bb004f6c6eb649d34bea8221bc7501d106 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 49/70] top_mintime
-
-===================================================================
----
- top.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/top.c b/top.c
-index 6cc1a93..f6880b5 100644
---- a/top.c
-+++ b/top.c
-@@ -2552,7 +2552,8 @@ static void do_key (unsigned c)
-          else {
-             float tmp =
-                get_float(fmtmk("Change delay from %.1f to", Rc.delay_time));
--            if (tmp > -1) Rc.delay_time = tmp;
-+            if (tmp == 0.0) show_msg("\aNot valid");
-+            else if (tmp > 0) Rc.delay_time = tmp;
-          }
-          break;
- 
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0050-vmstat_headers.patch b/patches/procps-3.2.8/0050-vmstat_headers.patch
deleted file mode 100644
index 8434d24..0000000
--- a/patches/procps-3.2.8/0050-vmstat_headers.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-From a45013a749f144819a9a10cb5b5bb2455ca04703 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 50/70] vmstat_headers
-
-getopt replacement
-Author: Liu Xing <liuxing@cn.fujitsu.com>
-Author: Michael Tokarev <mjt@corpit.ru>
-Bug-Debian: http://bugs.debian.org/436805
-Bug-Debian: http://bugs.debian.org/408088
----
- vmstat.c |   80 ++++++++++++++++++++++++++-----------------------------------
- 1 files changed, 34 insertions(+), 46 deletions(-)
-
-diff --git a/vmstat.c b/vmstat.c
-index f022928..e0d3c23 100644
---- a/vmstat.c
-+++ b/vmstat.c
-@@ -29,14 +29,15 @@
- #include "proc/sysinfo.h"
- #include "proc/version.h"
- 
--static unsigned long dataUnit=1024;
--static char szDataUnit [16];
- #define UNIT_B        1
- #define UNIT_k        1000
- #define UNIT_K        1024
- #define UNIT_m        1000000
- #define UNIT_M        1048576
- 
-+static unsigned long dataUnit=UNIT_K;
-+static char szDataUnit[3] = "K";
-+
- #define VMSTAT        0
- #define DISKSTAT      0x00000001
- #define VMSUMSTAT     0x00000002
-@@ -354,6 +355,7 @@ static void diskformat(void){
-   if ((fDiskstat=fopen("/proc/diskstats", "rb"))){
-     fclose(fDiskstat);
-     ndisks=getdiskstat(&disks,&partitions);
-+    if (!moreheaders) diskheader();
-     for(k=0; k<ndisks; k++){
-       if (moreheaders && ((k%height)==0)) diskheader();
-       printf(format,
-@@ -424,6 +426,7 @@ static void slabformat (void){
-     return;
-   }
- 
-+  if (!moreheaders) slabheader();
-   nSlab = getslabinfo(&slabs);
-   for(k=0; k<nSlab; k++){
-     if (moreheaders && ((k%height)==0)) slabheader();
-@@ -582,12 +585,10 @@ static int winhi(void) {
- ////////////////////////////////////////////////////////////////////////////
- 
- int main(int argc, char *argv[]) {
--  char partition[16];
--  argc=0; /* redefined as number of integer arguments */
--  for (argv++;*argv;argv++) {
--    if ('-' ==(**argv)) {
--      switch (*(++(*argv))) {
--    
-+  char *partition = NULL;
-+  int c;
-+
-+  while((c = getopt(argc, argv, "VdafmDnp:S:s")) != EOF) switch(c) {
-       case 'V':
- 	display_version();
- 	exit(0);
-@@ -603,7 +604,7 @@ int main(int argc, char *argv[]) {
- 	fork_format();
-         exit(0);
-       case 'm':
--        statMode |= SLABSTAT; 	
-+        statMode |= SLABSTAT;
- 	break;
-       case 'D':
-         statMode |= DISKSUMSTAT; 	
-@@ -614,53 +615,40 @@ int main(int argc, char *argv[]) {
-         break;
-       case 'p':
-         statMode |= PARTITIONSTAT;
--	if (argv[1]){
--	  char *cp = *++argv;
--	  if(!memcmp(cp,"/dev/",5)) cp += 5;
--	  snprintf(partition, sizeof partition, "%s", cp);
--	}else{
--	  fprintf(stderr, "-p requires an argument\n");
--          exit(EXIT_FAILURE);
--	}
-+	partition = optarg;
-+	if (memcmp(partition, "/dev/", 5) == 0) partition += 5;
-         break;
-       case 'S':
--	if (argv[1]){
--	      ++argv;
--	 	if (!strcmp(*argv, "k")) dataUnit=UNIT_k;
--	 	else if (!strcmp(*argv, "K")) dataUnit=UNIT_K;
--	 	else if (!strcmp(*argv, "m")) dataUnit=UNIT_m;
--	 	else if (!strcmp(*argv, "M")) dataUnit=UNIT_M;
--		else {fprintf(stderr, "-S requires k, K, m or M (default is kb)\n");
--		     exit(EXIT_FAILURE);
--		}
--		strcpy(szDataUnit, *argv);
--	 }else {fprintf(stderr, "-S requires an argument\n");
--		exit(EXIT_FAILURE);
--	 }
-+	switch(optarg[0]) {
-+	case 'b': case 'B': dataUnit = UNIT_B; break;
-+	case 'k': dataUnit = UNIT_k; break;
-+	case 'K': dataUnit = UNIT_K; break;
-+	case 'm': dataUnit = UNIT_m; break;
-+	case 'M': dataUnit = UNIT_M; break;
-+	default:
-+	  fprintf(stderr, "-S requires k, K, m or M (default is kb)\n");
-+	  exit(EXIT_FAILURE);
-+	}
-+	szDataUnit[0] = optarg[0];
- 	break;
-       case 's':
--        statMode |= VMSUMSTAT; 	
-+        statMode |= VMSUMSTAT;
- 	break;
-       default:
- 	/* no other aguments defined yet. */
- 	usage();
--      }
--   }else{
--      argc++;
--      switch (argc) {
--      case 1:
--        if ((sleep_time = atoi(*argv)) == 0)
-+  }
-+
-+  if (optind < argc) {
-+    if ((sleep_time = atoi(argv[optind++])) == 0)
-          usage();
--       num_updates = ULONG_MAX;
--       break;
--      case 2:
--        num_updates = atol(*argv);
--       break;
--      default:
--       usage();
--      } /* switch */
-+    num_updates = ULONG_MAX;
-   }
--}
-+  if (optind < argc)
-+    num_updates = atol(argv[optind++]);
-+  if (optind < argc)
-+     usage();
-+
-   if (moreheaders) {
-       int tmp=winhi()-3;
-       height=((tmp>0)?tmp:22);
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0051-pgrep_usage_exitcode.patch b/patches/procps-3.2.8/0051-pgrep_usage_exitcode.patch
deleted file mode 100644
index 19e6aae..0000000
--- a/patches/procps-3.2.8/0051-pgrep_usage_exitcode.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a8346dc7b4d1da04928b2885a5a9564234eb025e Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 51/70] pgrep_usage_exitcode
-
-===================================================================
----
- pgrep.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/pgrep.c b/pgrep.c
-index 33cbed8..36eccb6 100644
---- a/pgrep.c
-+++ b/pgrep.c
-@@ -681,7 +681,7 @@ static void parse_opts (int argc, char **argv)
- //		case 'z':   // Solaris: match by zone ID
- //			break;
- 		case '?':
--			usage (opt);
-+			usage (optopt?optopt:opt);
- 			break;
- 		}
- 	}
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0052-ps_1_options.patch b/patches/procps-3.2.8/0052-ps_1_options.patch
deleted file mode 100644
index 2ebd0c0..0000000
--- a/patches/procps-3.2.8/0052-ps_1_options.patch
+++ /dev/null
@@ -1,557 +0,0 @@
-From 19b2d182a4b75edaeb9c8ee163d7abb30a5cd0e9 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 52/70] ps_1_options
-
-===================================================================
----
- ps/ps.1 |  335 ++++++++++++++++++++++++++++++++-------------------------------
- 1 files changed, 169 insertions(+), 166 deletions(-)
-
-diff --git a/ps/ps.1 b/ps/ps.1
-index ad347ad..6ba31dc 100644
---- a/ps/ps.1
-+++ b/ps/ps.1
-@@ -158,20 +158,6 @@ Print only the name of PID 42:
- .PP
- .\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- .SH "SIMPLE PROCESS SELECTION"
--.opt \-A
--Select all processes.  Identical to \fB\-e\fR.
--
--.opt \-N
--Select all processes except those that fulfill the specified conditions.
--(negates the selection) Identical to \fB\-\-deselect\fR.
--
--.opt T
--Select all processes associated with this terminal.  Identical to the
--\fBt\fR option without any argument.
--
--.opt \-a
--Select all processes except both session leaders (see \fIgetsid\fR(2)) and
--processes not associated with a terminal.
- 
- .opt a
- Lift the BSD\-style "only yourself" restriction, which is imposed upon
-@@ -183,9 +169,20 @@ An alternate description is that this option causes \fBps\fR to
- list all processes with a terminal (tty),
- or to list all processes when used together with the \fBx\fR option.
- 
-+.opt \-A
-+Select all processes.  Identical to \fB\-e\fR.
-+
-+.opt \-a
-+Select all processes except both session leaders (see \fIgetsid\fR(2)) and
-+processes not associated with a terminal.
-+
- .opt \-d
- Select all processes except session leaders.
- 
-+.opt \-\-deselect
-+Select all processes except those that fulfill the specified conditions.
-+(negates the selection) Identical to \fB\-N\fR.
-+
- .opt \-e
- Select all processes.  Identical to \fB\-A\fR.
- 
-@@ -194,11 +191,20 @@ Select all processes.  Identical to \fB\-A\fR.
- .\" add in the group leaders -- at least according to the SunOS 4
- .\" man page on the FreeBSD site. Uh oh. I think I had tested SunOS
- .\" though, so maybe the code is correct.
-+
- .opt g
- Really all, even session leaders.  This flag is obsolete and may be
- discontinued in a future release. It is normally implied by the \fBa\fR flag,
- and is only useful when operating in the sunos4 personality.
- 
-+.opt \-N
-+Select all processes except those that fulfill the specified conditions.
-+(negates the selection) Identical to \fB\-\-deselect\fR.
-+
-+.opt T
-+Select all processes associated with this terminal.  Identical to the
-+\fBt\fR option without any argument.
-+
- .opt r
- Restrict the selection to only running processes.
- 
-@@ -212,10 +218,6 @@ An alternate description is that this option causes \fBps\fR to
- list all processes owned by you (same EUID as \fBps\fR),
- or to list all processes when used together with the \fBa\fR option.
- 
--.opt \-\-deselect
--Select all processes except those that fulfill the specified conditions.
--(negates the selection) Identical to \fB\-N\fR.
--
- .\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- .PD
- .PP
-@@ -224,6 +226,13 @@ These options accept a single argument in the form of a blank\-separated
- or comma\-separated list.  They can be used multiple times.
- For\ example:\ \fBps\ \-p\ "1\ 2"\ \-p\ 3,4\fR
- .P
-+
-+.opt \-\fI123\fR
-+Identical to \fB\-\-sid\ \fI123\fR.
-+
-+.opt \fI123\fR
-+Identical to \fB\-\-pid\ \fI123\fR.
-+
- .opt \-C \ cmdlist
- Select by command name.
- .br
-@@ -237,24 +246,6 @@ This selects the processes whose real group name or ID is in the
- \fIgrplist\fR list.  The real group ID identifies the group of the user
- who created the process, see \fIgetgid\fR(2).
- 
--.opt U \ userlist
--Select by effective user ID (EUID) or name.
--.br
--This selects the processes whose effective user name
--or ID is in \fIuserlist\fR.
--The effective user\ ID describes the user whose file
--access permissions are used by the process
--(see\ \fIgeteuid\fR(2)).
--Identical to \fB\-u\fR and\ \fB\-\-user\fR.
--
--.opt \-U \ userlist
--select by real user ID (RUID) or name.
--.br
--It selects the processes whose real user name or ID is in the
--\fIuserlist\fR list.
--The real user ID identifies the user who created the process,
--see\ \fIgetuid\fR(2).
--
- .opt \-g \ grplist
- Select by session OR by effective group name.
- .br
-@@ -266,6 +257,17 @@ is completely numeric (as\ sessions\ are).
- Group ID numbers will work only when some group names are also specified.
- See the \fB\-s\fR and \fB\-\-group\fR options.
- 
-+.opt \-\-Group \ grplist
-+Select by real group ID (RGID) or name.  Identical to \fB\-G\fR.
-+
-+.opt \-\-group \ grplist
-+Select by effective group ID (EGID) or name.
-+.br
-+This selects the processes whose effective group name or ID is in
-+\fIgrouplist\fR.  The effective group ID describes the group whose file
-+access permissions are used by the process (see\ \fIgeteuid\fR(2)).
-+The \fB\-g\fR option is often an alternative to\ \fB\-\-group\fR.
-+
- .opt p \ pidlist
- Select by process ID.  Identical to \fB\-p\fR and\ \fB\-\-pid\fR.
- 
-@@ -275,12 +277,25 @@ Select by PID.
- This selects the processes whose process ID numbers appear in
- \fIpidlist\fR.  Identical to \fBp\fR and\ \fB\-\-pid\fR.
- 
-+.opt \-\-pid \ pidlist
-+Select by process\ ID.  Identical to \fB\-p\fR\ and\ \fBp\fR.
-+
-+.opt \-\-ppid \ pidlist
-+Select by parent process\ ID.
-+This selects the processes
-+with a parent\ process\ ID in \fRpidlist\fR.
-+That\ is, it selects processes that are children
-+of those listed in \fRpidlist\fR.
-+
- .opt \-s \ sesslist
- Select by session ID.
- .br
- This selects the processes
- with a session ID specified in\ \fIsesslist\fR.
- 
-+.opt \-\-sid \ sesslist
-+Select by session\ ID.  Identical to\ \fB\-s\fR.
-+
- .opt t \ ttylist
- Select by tty.  Nearly identical to \fB\-t\fR and \fB\-\-tty\fR,
- but can also be used with an empty \fIttylist\fR to indicate
-@@ -297,6 +312,27 @@ Terminals (ttys, or screens for text output) can be specified in several
- forms: /dev/ttyS1, ttyS1, S1.
- A\ plain "\-" may be used to select processes not attached to any terminal.
- 
-+.opt \-\-tty \ ttylist
-+Select by terminal.  Identical to \fB\-t\fR and\ \fBt\fR.
-+
-+.opt U \ userlist
-+Select by effective user ID (EUID) or name.
-+.br
-+This selects the processes whose effective user name
-+or ID is in \fIuserlist\fR.
-+The effective user\ ID describes the user whose file
-+access permissions are used by the process
-+(see\ \fIgeteuid\fR(2)).
-+Identical to \fB\-u\fR and\ \fB\-\-user\fR.
-+
-+.opt \-U \ userlist
-+select by real user ID (RUID) or name.
-+.br
-+It selects the processes whose real user name or ID is in the
-+\fIuserlist\fR list.
-+The real user ID identifies the user who created the process,
-+see\ \fIgetuid\fR(2).
-+
- .opt \-u \ userlist
- Select by effective user ID (EUID) or name.
- .br
-@@ -305,46 +341,13 @@ This selects the processes whose effective user name or ID is in
- access permissions are used by the process (see\ \fIgeteuid\fR(2)).
- Identical to \fBU\fR and \fB\-\-user\fR.
- 
--.opt \-\-Group \ grplist
--Select by real group ID (RGID) or name.  Identical to \fB\-G\fR.
--
- .opt \-\-User \ userlist
- Select by real user ID (RUID) or name.  Identical to \fB\-U\fR.
- 
--.opt \-\-group \ grplist
--Select by effective group ID (EGID) or name.
--.br
--This selects the processes whose effective group name or ID is in
--\fIgrouplist\fR.  The effective group ID describes the group whose file
--access permissions are used by the process (see\ \fIgeteuid\fR(2)).
--The \fB\-g\fR option is often an alternative to\ \fB\-\-group\fR.
--
--.opt \-\-pid \ pidlist
--Select by process\ ID.  Identical to \fB\-p\fR\ and\ \fBp\fR.
--
--.opt \-\-ppid \ pidlist
--Select by parent process\ ID.
--This selects the processes
--with a parent\ process\ ID in \fRpidlist\fR.
--That\ is, it selects processes that are children
--of those listed in \fRpidlist\fR.
--
--.opt \-\-sid \ sesslist
--Select by session\ ID.  Identical to\ \fB\-s\fR.
--
--.opt \-\-tty \ ttylist
--Select by terminal.  Identical to \fB\-t\fR and\ \fBt\fR.
--
- .opt \-\-user \ userlist
- Select by effective user ID (EUID) or name.
- Identical to \fB\-u\fR and\ \fBU\fR.
- 
--.opt \-\fI123\fR
--Identical to \fB\-\-sid\ \fI123\fR.
--
--.opt \fI123\fR
--Identical to \fB\-\-pid\ \fI123\fR.
--
- .\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- .PD
- .PP
-@@ -353,38 +356,12 @@ These options are used to choose the information displayed by \fBps\fR.
- The output may differ by personality.
- .PP
- 
--.opt \-F
--extra full format. See the \fB\-f\fR option, which \fB\-F\fR implies.
--
--.opt \-O \ format
--is like \fB\-o\fR, but preloaded with some default columns.
--Identical to \fB\-o\ pid,\fIformat\fB,state,tname,time,command\fR
--or \fB\-o\ pid,\fIformat\fB,tname,time,cmd\fR, see\ \fB\-o\fR\ below.
--
--.opt O \ format
--is preloaded \fBo\fR (overloaded).
--.br
--The BSD \fBO\fR option can act like \fB\-O\fR (user\-defined output
--format with some common fields predefined) or can be used to specify
--sort order.  Heuristics are used to determine the behavior of this
--option. To ensure that the desired behavior is obtained (sorting or
--formatting), specify the option in some other way
--(e.g. with \fB\-O\fR or \fB\-\-sort\fR).
--When used as a formatting option, it is identical to \fB\-O\fR, with the
--BSD\ personality.
--
--.opt \-M
--Add a column of security data. Identical to \fBZ\fR. (for\ SE\ Linux)
--
--.opt X
--Register format.
--
--.opt Z
--Add a column of security data. Identical to \fB\-M\fR. (for\ SE\ Linux)
--
- .opt \-c
- Show different scheduler information for the \fB\-l\fR option.
- 
-+.opt \-\-context
-+Display security context format. (for\ SE\ Linux)
-+
- .opt \-f
- does full\-format listing. This option can be combined with many
- other UNIX\-style options to add additional columns. It also causes
-@@ -393,6 +370,12 @@ NLWP (number of threads) and LWP (thread ID) columns will be added.
- See the \fBc\fR option, the format keyword \fBargs\fR, and the
- format keyword \fBcomm\fR.
- 
-+.opt \-F
-+extra full format. See the \fB\-f\fR option, which \fB\-F\fR implies.
-+
-+.opt \-\-format \ format
-+user\-defined format.  Identical to \fB\-o\fR and \fBo\fR.
-+
- .opt j
- BSD job control format.
- 
-@@ -405,6 +388,26 @@ display BSD long format.
- .opt \-l
- long format. The \fB\-y\fR option is often useful with this.
- 
-+.opt \-M
-+Add a column of security data. Identical to \fBZ\fR. (for\ SE\ Linux)
-+
-+.opt O \ format
-+is preloaded \fBo\fR (overloaded).
-+.br
-+The BSD \fBO\fR option can act like \fB\-O\fR (user\-defined output
-+format with some common fields predefined) or can be used to specify
-+sort order.  Heuristics are used to determine the behavior of this
-+option. To ensure that the desired behavior is obtained (sorting or
-+formatting), specify the option in some other way
-+(e.g. with \fB\-O\fR or \fB\-\-sort\fR).
-+When used as a formatting option, it is identical to \fB\-O\fR, with the
-+BSD\ personality.
-+
-+.opt \-O \ format
-+is like \fB\-o\fR, but preloaded with some default columns.
-+Identical to \fB\-o\ pid,\fIformat\fB,state,tname,time,command\fR
-+or \fB\-o\ pid,\fIformat\fB,tname,time,cmd\fR, see\ \fB\-o\fR\ below.
-+
- .opt o \ format
- specify user\-defined format.  Identical to \fB\-o\fR and
- \fB\-\-format\fR.
-@@ -440,15 +443,15 @@ display user\-oriented format
- .opt v
- display virtual memory format
- 
-+.opt X
-+Register format.
-+
- .opt \-y
- Do not show flags; show rss in place of addr.
- This option can only be used with \fB\-l\fR.
- 
--.opt \-\-format \ format
--user\-defined format.  Identical to \fB\-o\fR and \fBo\fR.
--
--.opt \-\-context
--Display security context format. (for\ SE\ Linux)
-+.opt Z
-+Add a column of security data. Identical to \fB\-M\fR. (for\ SE\ Linux)
- 
- .\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- .PD
-@@ -459,37 +462,6 @@ Display security context format. (for\ SE\ Linux)
- .\"  .B C
- .\"  use raw CPU time for %CPU instead of decaying average
- 
--.opt \-H
--show process hierarchy (forest)
--
--.opt N \ namelist
--Specify namelist file.  Identical to \fB\-n\fR, see \fB\-n\fR above.
--
--.opt O \ order
--Sorting order. (overloaded)
--.br
--The BSD \fBO\fR option can act like \fB\-O\fR (user\-defined output
--format with some common fields predefined) or can be used to specify
--sort order.  Heuristics are used to determine the behavior of this
--option. To ensure that the desired behavior is obtained (sorting or
--formatting), specify the option in some other way (e.g. with \fB\-O\fR
--or \fB\-\-sort\fR).
--
--For sorting, obsolete BSD \fBO\fR option syntax is
--\fBO\fR[\fB+\fR|\fB\-\fR]\fIk1\fR[,[\fB+\fR|\fB\-\fR]\fIk2\fR[,...]].
--It orders the processes listing according to the multilevel sort specified by
--the sequence of one\-letter short keys \fIk1\fR, \fIk2\fR, ... described
--in the \fBOBSOLETE SORT KEYS\fR section below.
--The\ "+" is currently optional,
--merely re\-iterating the default direction on a key,
--but may help to distinguish an \fBO\fR sort from an \fBO\fR format.
--The\ "\-" reverses direction only on the key it precedes.
--
--.opt S
--Sum up some information, such as CPU usage, from dead child processes
--into their parent. This is useful for examining a system where a
--parent process repeatedly forks off short\-lived children to do work.
--
- .opt c
- Show the true command name. This is derived from the name of the
- executable file, rather than from the argv value. Command arguments
-@@ -502,12 +474,24 @@ display the command arguments.
- See the \fB\-f\fR option, the format keyword \fBargs\fR, and the
- format keyword \fBcomm\fR.
- 
-+.opt \-\-cols \ n
-+set screen width
-+
-+.opt \-\-columns \ n
-+set screen width
-+
-+.opt \-\-cumulative
-+include some dead child process data (as a sum with the parent)
-+
- .opt e
- Show the environment after the command.
- 
- .opt f
- ASCII\-art process hierarchy (forest)
- 
-+.opt \-\-forest
-+ASCII art process tree
-+
- .opt h
- No header. (or, one header per screen in the BSD personality)
- .br
-@@ -521,6 +505,12 @@ current personality, you can use the long options \fB\-\-headers\fR
- and \fB\-\-no\-headers\fR to enable printing headers each page or
- disable headers entirely, respectively.
- 
-+.opt \-H
-+show process hierarchy (forest)
-+
-+.opt \-\-headers
-+repeat header lines, one per page of output
-+
- .opt k \ spec
- specify sorting order. Sorting syntax is
- [\fB+\fR|\fB\-\fR]\fIkey\fR[,[\fB+\fR|\fB\-\fR]\fIkey\fR[,...]]
-@@ -557,40 +547,47 @@ Without this option, the default search path for the namelist is:
- .br
- 	/System.map
- 
-+.opt \-\-lines \ n
-+set screen height
-+
- .opt n
- Numeric output for WCHAN and USER. (including all types of UID and GID)
- 
--.opt \-w
--Wide output. Use this option twice for unlimited width.
--
--.opt w
--Wide output. Use this option twice for unlimited width.
--
--.opt \-\-cols \ n
--set screen width
--
--.opt \-\-columns \ n
--set screen width
--
--.opt \-\-cumulative
--include some dead child process data (as a sum with the parent)
-+.opt N \ namelist
-+Specify namelist file.  Identical to \fB\-n\fR, see \fB\-n\fR above.
- 
--.opt \-\-forest
--ASCII art process tree
-+.opt O \ order
-+Sorting order. (overloaded)
-+.br
-+The BSD \fBO\fR option can act like \fB\-O\fR (user\-defined output
-+format with some common fields predefined) or can be used to specify
-+sort order.  Heuristics are used to determine the behavior of this
-+option. To ensure that the desired behavior is obtained (sorting or
-+formatting), specify the option in some other way (e.g. with \fB\-O\fR
-+or \fB\-\-sort\fR).
- 
--.opt \-\-headers
--repeat header lines, one per page of output
-+For sorting, obsolete BSD \fBO\fR option syntax is
-+\fBO\fR[\fB+\fR|\fB\-\fR]\fIk1\fR[,[\fB+\fR|\fB\-\fR]\fIk2\fR[,...]].
-+It orders the processes listing according to the multilevel sort specified by
-+the sequence of one\-letter short keys \fIk1\fR, \fIk2\fR, ... described
-+in the \fBOBSOLETE SORT KEYS\fR section below.
-+The\ "+" is currently optional,
-+merely re\-iterating the default direction on a key,
-+but may help to distinguish an \fBO\fR sort from an \fBO\fR format.
-+The\ "\-" reverses direction only on the key it precedes.
- 
- .opt \-\-no\-headers
- print no header line at all. \-\-no\-heading is an alias for this
- option.
- 
--.opt \-\-lines \ n
--set screen height
--
- .opt \-\-rows \ n
- set screen height
- 
-+.opt S
-+Sum up some information, such as CPU usage, from dead child processes
-+into their parent. This is useful for examining a system where a
-+parent process repeatedly forks off short\-lived children to do work.
-+
- .opt \-\-sort \ spec
- specify sorting order. Sorting syntax is
- [\fB+\fR|\fB\-\fR]\fIkey\fR[,[\fB+\fR|\fB\-\fR]\fIkey\fR[,...]]
-@@ -599,6 +596,12 @@ The\ "+" is optional since default direction is increasing numerical or
- lexicographic order. Identical to\ \fBk\fR.
- For example: \fBps\ jax\ \-\-sort=uid,\-ppid,+pid\fR
- 
-+.opt w
-+Wide output. Use this option twice for unlimited width.
-+
-+.opt \-w
-+Wide output. Use this option twice for unlimited width.
-+
- .opt \-\-width \ n
- set screen width
- 
-@@ -614,35 +617,35 @@ Show threads as if they were processes
- .opt \-L
- Show threads, possibly with LWP and NLWP columns
- 
--.opt \-T
--Show threads, possibly with SPID column
--
- .opt m
- Show threads after processes
- 
- .opt \-m
- Show threads after processes
- 
-+.opt \-T
-+Show threads, possibly with SPID column
-+
- .\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- .PD
- .PP
- .SH "OTHER INFORMATION"
- .PD 0
- 
-+.opt \-\-help
-+Print a help message.
-+
-+.opt \-\-info
-+Print debugging info.
-+
- .opt L
- List all format specifiers.
- 
--.opt \-V
--Print the procps version.
--
- .opt V
- Print the procps version.
- 
--.opt \-\-help
--Print a help message.
--
--.opt \-\-info
--Print debugging info.
-+.opt \-V
-+Print the procps version.
- 
- .opt \-\-version
- Print the procps version.
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0053-top_highlight.patch b/patches/procps-3.2.8/0053-top_highlight.patch
deleted file mode 100644
index 2621f17..0000000
--- a/patches/procps-3.2.8/0053-top_highlight.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 8408efa4ad9bf469b957b3e84c13593499d9ed64 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 53/70] top_highlight
-
-===================================================================
----
- top.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/top.c b/top.c
-index f6880b5..d86a311 100644
---- a/top.c
-+++ b/top.c
-@@ -3054,9 +3054,10 @@ static proc_t **summary_show (void)
-       snprintf(_z, sizeof(_z), f, ## va);                                    \
-       snprintf(cbuf, sizeof(cbuf), "%s%s%s",                                 \
-          q->capclr_rowhigh,                                                  \
--         _z,                                                                 \
-+         _z+advance,                                                         \
-          !(CHKw(q, Show_HIROWS) && 'R' == p->state) ? q->capclr_rownorm : "" \
-       );                                                                     \
-+      advance=0;                                                             \
-       pad += q->len_rowhigh;                                                 \
-       if (!(CHKw(q, Show_HIROWS) && 'R' == p->state)) pad += q->len_rownorm; \
-    }                                                                         \
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0054-top_nohz.patch b/patches/procps-3.2.8/0054-top_nohz.patch
deleted file mode 100644
index 2b6ec5a..0000000
--- a/patches/procps-3.2.8/0054-top_nohz.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From c09814258383e1c032c6df12ae96d5e56386daef Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 54/70] top_nohz
-
-===================================================================
----
- top.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/top.c b/top.c
-index d86a311..ea33989 100644
---- a/top.c
-+++ b/top.c
-@@ -2916,6 +2916,7 @@ static void summaryhlp (CPU_t *cpu, const char *pfx)
-    s_frme = cpu->s - cpu->s_sav;
-    n_frme = cpu->n - cpu->n_sav;
-    i_frme = TRIMz(cpu->i - cpu->i_sav);
-+   if ((u_frme == 0) && (i_frme == 0)) i_frme = 100.0;
-    w_frme = cpu->w - cpu->w_sav;
-    x_frme = cpu->x - cpu->x_sav;
-    y_frme = cpu->y - cpu->y_sav;
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0055-vmstat_part_format.patch b/patches/procps-3.2.8/0055-vmstat_part_format.patch
deleted file mode 100644
index 3146ac8..0000000
--- a/patches/procps-3.2.8/0055-vmstat_part_format.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From f619f8629a5915c900f984c1caf44241ff077f32 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 55/70] vmstat_part_format
-
----
- proc/sysinfo.c |   22 +++++++++++++++++++---
- proc/sysinfo.h |    2 +-
- vmstat.c       |    2 +-
- 3 files changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/proc/sysinfo.c b/proc/sysinfo.c
-index 8dbabdf..444ee5b 100644
---- a/proc/sysinfo.c
-+++ b/proc/sysinfo.c
-@@ -796,6 +796,18 @@ unsigned int getpartitions_num(struct disk_stat *disks, int ndisks){
- }
- 
- /////////////////////////////////////////////////////////////////////////////
-+static int is_disk(char *dev)
-+{
-+  char syspath[PATH_MAX];
-+  char *slash;
-+
-+  while ((slash = strchr(dev, '/')))
-+    *slash = '!';
-+  snprintf(syspath, sizeof(syspath), "/sys/block/%s", dev);
-+  return !(access(syspath, F_OK));
-+}
-+
-+/////////////////////////////////////////////////////////////////////////////
- 
- unsigned int getdiskstat(struct disk_stat **disks, struct partition_stat **partitions){
-   FILE* fd;
-@@ -803,6 +815,7 @@ unsigned int getdiskstat(struct disk_stat **disks, struct partition_stat **parti
-   int cPartition = 0;
-   int fields;
-   unsigned dummy;
-+  char devname[PATH_MAX];
- 
-   *disks = NULL;
-   *partitions = NULL;
-@@ -815,8 +828,9 @@ unsigned int getdiskstat(struct disk_stat **disks, struct partition_stat **parti
-       fclose(fd);
-       break;
-     }
--    fields = sscanf(buff, " %*d %*d %*s %*u %*u %*u %*u %*u %*u %*u %*u %*u %*u %u", &dummy);
--    if (fields == 1){
-+    fields = sscanf(buff, " %*d %*d %15s %*u %*u %*u %*u %*u %*u %*u %*u %*u %*u %u",
-+            &devname, &dummy);
-+    if (fields == 2 && is_disk(devname)){
-       (*disks) = realloc(*disks, (cDisk+1)*sizeof(struct disk_stat));
-       sscanf(buff,  "   %*d    %*d %15s %u %u %llu %u %u %u %llu %u %u %u %u",
-         //&disk_major,
-@@ -839,7 +853,9 @@ unsigned int getdiskstat(struct disk_stat **disks, struct partition_stat **parti
-     }else{
-       (*partitions) = realloc(*partitions, (cPartition+1)*sizeof(struct partition_stat));
-       fflush(stdout);
--      sscanf(buff,  "   %*d    %*d %15s %u %llu %u %u",
-+      sscanf(buff,  (fields == 2)
-+          ? "   %*d    %*d %15s %u %*u %llu %*u %u %*u %llu %*u %*u %*u %*u"
-+          : "   %*d    %*d %15s %u %llu %u %llu",
-         //&part_major,
-         //&part_minor,
-         (*partitions)[cPartition].partition_name,
-diff --git a/proc/sysinfo.h b/proc/sysinfo.h
-index e30a38b..494c4b3 100644
---- a/proc/sysinfo.h
-+++ b/proc/sysinfo.h
-@@ -113,7 +113,7 @@ typedef struct partition_stat{
- 	unsigned           parent_disk;  // index into a struct disk_stat array
- 	unsigned           reads;
- 	unsigned           writes;
--	unsigned           requested_writes;
-+	unsigned long long requested_writes;
- }partition_stat;
- 
- extern unsigned int getpartitions_num(struct disk_stat *disks, int ndisks);
-diff --git a/vmstat.c b/vmstat.c
-index e0d3c23..e81a4ac 100644
---- a/vmstat.c
-+++ b/vmstat.c
-@@ -286,7 +286,7 @@ static int diskpartition_format(const char* partition_name){
-     struct disk_stat *disks;
-     struct partition_stat *partitions, *current_partition=NULL;
-     unsigned long ndisks, j, k, npartitions;
--    const char format[] = "%20u %10llu %10u %10u\n";
-+    const char format[] = "%20u %10llu %10u %10llu\n";
- 
-     fDiskstat=fopen("/proc/diskstats","rb");
-     if(!fDiskstat){
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0056-readproc_double_free.patch b/patches/procps-3.2.8/0056-readproc_double_free.patch
deleted file mode 100644
index 8a3084b..0000000
--- a/patches/procps-3.2.8/0056-readproc_double_free.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 0a7cff0b81b32033591436d2bbc65f5c54e8fa3a Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 56/70] readproc_double_free
-
----
- proc/readproc.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/proc/readproc.c b/proc/readproc.c
-index 9660799..4203071 100644
---- a/proc/readproc.c
-+++ b/proc/readproc.c
-@@ -828,6 +828,7 @@ proc_t* readproc(PROCTAB *restrict const PT, proc_t *restrict p) {
- 
-   saved_p = p;
-   if(!p) p = xcalloc(p, sizeof *p); /* passed buf or alloced mem */
-+  else memset(p, 0, sizeof *p);
- 
-   for(;;){
-     // fills in the path, plus p->tid and p->tgid
-@@ -856,6 +857,7 @@ proc_t* readtask(PROCTAB *restrict const PT, const proc_t *restrict const p, pro
- 
-   saved_t = t;
-   if(!t) t = xcalloc(t, sizeof *t); /* passed buf or alloced mem */
-+  else memset(t, 0, sizeof *t);
- 
-   // 1. got to fake a thread for old kernels
-   // 2. for single-threaded processes, this is faster (but must patch up stuff that differs!)
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0057-vmstat_units.patch b/patches/procps-3.2.8/0057-vmstat_units.patch
deleted file mode 100644
index ef2bb3e..0000000
--- a/patches/procps-3.2.8/0057-vmstat_units.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From cc3d82aca91e1910e5dacb56f2b50e23eab66d73 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 57/70] vmstat_units
-
-to stop some overflows of some kernel variables
-Bug-Debian: http://bugs.debian.org/558134
-Bug-Debian: http://bugs.debian.org/558361
----
- proc/sysinfo.c |    2 +-
- vmstat.8       |    3 ++-
- vmstat.c       |    8 ++++----
- 3 files changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/proc/sysinfo.c b/proc/sysinfo.c
-index 444ee5b..382c8dc 100644
---- a/proc/sysinfo.c
-+++ b/proc/sysinfo.c
-@@ -606,7 +606,7 @@ void meminfo(void){
-     );
-     head = tail+1;
-     if(!found) goto nextline;
--    *(found->slot) = strtoul(head,&tail,10);
-+    *(found->slot) = (unsigned long)strtoull(head,&tail,10);
- nextline:
-     tail = strchr(head, '\n');
-     if(!tail) break;
-diff --git a/vmstat.8 b/vmstat.8
-index c97826f..486224b 100644
---- a/vmstat.8
-+++ b/vmstat.8
-@@ -67,7 +67,8 @@ The \fB-D\fP reports some summary statistics about disk activity.
- .PP
- The \fB\-p\fP followed by some partition name for detailed statistics (2.5.70 or above required)
- .PP
--The \fB\-S\fP followed by k or K or m or M switches outputs between 1000, 1024, 1000000, or 1048576 bytes
-+The \fB\-S\fP followed by k or K or m or M switches changes the units of
-+ouput from bytes to outputs between 1000, 1024, 1000000, or 1048576 bytes. Note this does not change the swap (si/so) or block (bi/bo) fields.
- .PP
- The \fB\-V\fP switch results in displaying version information.
- .PP
-diff --git a/vmstat.c b/vmstat.c
-index e81a4ac..cbbb094 100644
---- a/vmstat.c
-+++ b/vmstat.c
-@@ -209,8 +209,8 @@ static void new_format(void) {
- 	 unitConvert(kb_swap_used), unitConvert(kb_main_free),
- 	 unitConvert(a_option?kb_inactive:kb_main_buffers),
- 	 unitConvert(a_option?kb_active:kb_main_cached),
--	 (unsigned)( (*pswpin  * unitConvert(kb_per_page) * hz + divo2) / Div ),
--	 (unsigned)( (*pswpout * unitConvert(kb_per_page) * hz + divo2) / Div ),
-+	 (unsigned)( (*pswpin  * kb_per_page * hz + divo2) / Div ),
-+	 (unsigned)( (*pswpout * kb_per_page * hz + divo2) / Div ),
- 	 (unsigned)( (*pgpgin                * hz + divo2) / Div ),
- 	 (unsigned)( (*pgpgout               * hz + divo2) / Div ),
- 	 (unsigned)( (*intr                  * hz + divo2) / Div ),
-@@ -258,8 +258,8 @@ static void new_format(void) {
- 	   unitConvert(kb_swap_used),unitConvert(kb_main_free),
- 	   unitConvert(a_option?kb_inactive:kb_main_buffers),
- 	   unitConvert(a_option?kb_active:kb_main_cached),
--	   (unsigned)( ( (pswpin [tog] - pswpin [!tog])*unitConvert(kb_per_page)+sleep_half )/sleep_time ), /*si*/
--	   (unsigned)( ( (pswpout[tog] - pswpout[!tog])*unitConvert(kb_per_page)+sleep_half )/sleep_time ), /*so*/
-+	   (unsigned)( ( (pswpin [tog] - pswpin [!tog])*kb_per_page+sleep_half )/sleep_time ), /*si*/
-+	   (unsigned)( ( (pswpout[tog] - pswpout[!tog])*kb_per_page+sleep_half )/sleep_time ), /*so*/
- 	   (unsigned)( (  pgpgin [tog] - pgpgin [!tog]             +sleep_half )/sleep_time ), /*bi*/
- 	   (unsigned)( (  pgpgout[tog] - pgpgout[!tog]             +sleep_half )/sleep_time ), /*bo*/
- 	   (unsigned)( (  intr   [tog] - intr   [!tog]             +sleep_half )/sleep_time ), /*in*/
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0058-skill_null_argv.patch b/patches/procps-3.2.8/0058-skill_null_argv.patch
deleted file mode 100644
index 69b0029..0000000
--- a/patches/procps-3.2.8/0058-skill_null_argv.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 52ec990a0823501e28015c2e9607dc6cfc7542ba Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 58/70] skill_null_argv
-
----
- skill.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/skill.c b/skill.c
-index c8af9fd..d9a1af9 100644
---- a/skill.c
-+++ b/skill.c
-@@ -307,7 +307,7 @@ no_more_args:
-     long pid;
-     char *endp;
-     pid = strtol(argv[argc],&endp,10);
--    if(!*endp){
-+    if(!*endp && (endp != argv[argc])){
-       if(!kill((pid_t)pid,signo)) continue;
-       // The UNIX standard contradicts itself. If at least one process
-       // is matched for each PID (as if processes could share PID!) and
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0059-skill_multiarg.patch b/patches/procps-3.2.8/0059-skill_multiarg.patch
deleted file mode 100644
index 32a3ada..0000000
--- a/patches/procps-3.2.8/0059-skill_multiarg.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 26cd8eee99742fd69b006b4b8467aefc230ae61d Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 59/70] skill_multiarg
-
----
- skill.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/skill.c b/skill.c
-index d9a1af9..2d90ad0 100644
---- a/skill.c
-+++ b/skill.c
-@@ -464,6 +464,8 @@ selection_collection:
-     switch(force){ /* fall through each data type */
-     default: skillsnice_usage();
-     case 0: /* not forced */
-+      if (argptr && argptr[0] == '-') /* its the next argument not a parameter */
-+        continue;
-     case 't':
-       if(argc){
-         struct stat sbuf;
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0060-proc_version_constructor.patch b/patches/procps-3.2.8/0060-proc_version_constructor.patch
deleted file mode 100644
index 5a4d271..0000000
--- a/patches/procps-3.2.8/0060-proc_version_constructor.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 5b7bf25c0b54723789abfd5f46779ae6ae49e2c3 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 60/70] proc_version_constructor
-
----
- proc/sysinfo.c |    1 +
- proc/version.c |    3 +--
- proc/version.h |    1 +
- 3 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/proc/sysinfo.c b/proc/sysinfo.c
-index 382c8dc..c804f49 100644
---- a/proc/sysinfo.c
-+++ b/proc/sysinfo.c
-@@ -213,6 +213,7 @@ static int check_for_privs(void){
- static void init_libproc(void) __attribute__((constructor));
- static void init_libproc(void){
-   have_privs = check_for_privs();
-+  init_Linux_version(); /* Must be called before we check code */
-   // ought to count CPUs in /proc/stat instead of relying
-   // on glibc, which foolishly tries to parse /proc/cpuinfo
-   //
-diff --git a/proc/version.c b/proc/version.c
-index 7930367..cc215bc 100644
---- a/proc/version.c
-+++ b/proc/version.c
-@@ -33,8 +33,7 @@ void display_version(void) {
- 
- int linux_version_code;
- 
--static void init_Linux_version(void) __attribute__((constructor));
--static void init_Linux_version(void) {
-+void init_Linux_version(void) {
-     int x = 0, y = 0, z = 0;	/* cleared in case sscanf() < 3 */
-     FILE *fp;
-     char buf[256];
-diff --git a/proc/version.h b/proc/version.h
-index 3769b84..04a75e9 100644
---- a/proc/version.h
-+++ b/proc/version.h
-@@ -14,6 +14,7 @@
- 
- EXTERN_C_BEGIN
- 
-+void init_Linux_version(void);    /* Get Linux version */
- extern void display_version(void);	/* display suite version */
- extern const char procps_version[];		/* global buf for suite version */
- 
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0061-pmaps_smaps.patch b/patches/procps-3.2.8/0061-pmaps_smaps.patch
deleted file mode 100644
index fde2358..0000000
--- a/patches/procps-3.2.8/0061-pmaps_smaps.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From 37502350f47277ad647ed77ad75e345b76e313c5 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 61/70] pmaps_smaps
-
----
- pmap.c |   86 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
- 1 files changed, 68 insertions(+), 18 deletions(-)
-
-diff --git a/pmap.c b/pmap.c
-index 6b865fc..3dcb81e 100644
---- a/pmap.c
-+++ b/pmap.c
-@@ -126,24 +126,37 @@ static int one_proc(proc_t *p){
-   char buf[32];
-   char mapbuf[9600];
-   char cmdbuf[512];
-+  FILE *fp;
-   unsigned long total_shared = 0ul;
-   unsigned long total_private_readonly = 0ul;
-   unsigned long total_private_writeable = 0ul;
- 
-+  char *cp2=NULL;
-+  unsigned long long rss = 0ull;
-+  unsigned long long private_dirty = 0ull;
-+  unsigned long long shared_dirty = 0ull;
-+  unsigned long long total_rss = 0ull;
-+  unsigned long long total_private_dirty = 0ull;
-+  unsigned long long total_shared_dirty = 0ull;
-+
-   // Overkill, but who knows what is proper? The "w" prog
-   // uses the tty width to determine this.
-   int maxcmd = 0xfffff;
- 
-   sprintf(buf,"/proc/%u/maps",p->tgid);
--  if(!freopen(buf, "r", stdin)) return 1;
-+  if ( (fp = fopen(buf, "r")) == NULL) return 1;
-+  if (x_option) {
-+    sprintf(buf,"/proc/%u/smaps",p->tgid);
-+    if ( (fp = freopen(buf, "r", fp)) == NULL) return 1;
-+  }
- 
-   escape_command(cmdbuf, p, sizeof cmdbuf, &maxcmd, ESC_ARGS|ESC_BRACKETS);
-   printf("%u:   %s\n", p->tgid, cmdbuf);
- 
-   if(!q_option && (x_option|d_option)){
-     if(x_option){
--      if(sizeof(KLONG)==4) printf("Address   Kbytes     RSS    Anon  Locked Mode   Mapping\n");
--      else         printf("Address           Kbytes     RSS    Anon  Locked Mode   Mapping\n");
-+      if(sizeof(KLONG)==4) printf("Address   Kbytes     RSS   Dirty Mode   Mapping\n");
-+      else         printf("Address           Kbytes     RSS   Dirty Mode   Mapping\n");
-     }
-     if(d_option){
-       if(sizeof(KLONG)==4) printf("Address   Kbytes Mode  Offset           Device    Mapping\n");
-@@ -151,12 +164,54 @@ static int one_proc(proc_t *p){
-     }
-   }
- 
--  while(fgets(mapbuf,sizeof mapbuf,stdin)){
-+  while(fgets(mapbuf,sizeof mapbuf,fp)){
-     char flags[32];
-     char *tmp; // to clean up unprintables
--    unsigned KLONG start, end, diff;
-+    unsigned KLONG start, end, diff=0;
-     unsigned long long file_offset, inode;
-     unsigned dev_major, dev_minor;
-+    unsigned long long smap_value;
-+    char smap_key[20];
-+
-+    /* hex values are lower case or numeric, keys are upper */
-+    if (mapbuf[0] >= 'A' && mapbuf[0] <= 'Z') {
-+      /* Its a key */
-+      if (sscanf(mapbuf,"%20[^:]: %llu", smap_key, &smap_value) == 2) {
-+        if (strncmp("Rss", smap_key, 3) == 0) {
-+          rss = smap_value;
-+          total_rss += smap_value;
-+          continue;
-+        }
-+        if (strncmp("Shared_Dirty", smap_key, 12) == 0) {
-+          shared_dirty = smap_value;
-+          total_shared_dirty += smap_value;
-+          continue;
-+        }
-+        if (strncmp("Private_Dirty", smap_key, 13) == 0) {
-+          private_dirty = smap_value;
-+          total_private_dirty += smap_value;
-+          continue;
-+        }
-+        if (strncmp("Swap", smap_key, 4) == 0) { /*doesnt matter as long as last*/
-+          printf(
-+            (sizeof(KLONG)==8)
-+              ? "%016"KLF"x %7lu %7llu %7llu %s  %s\n"
-+              :      "%08lx %7lu %7llu %7llu %s  %s\n",
-+            start,
-+            (unsigned long)(diff>>10),
-+            rss,
-+            (private_dirty + shared_dirty),
-+            flags,
-+            cp2
-+          );
-+          /* reset some counters */
-+          rss = shared_dirty = private_dirty = 0ull;
-+          continue;
-+        }
-+        /* Other keys */
-+        continue;
-+      }
-+    }
-     sscanf(mapbuf,"%"KLF"x-%"KLF"x %31s %Lx %x:%x %Lu", &start, &end, flags, &file_offset, &dev_major, &dev_minor, &inode);
- 
-     if(start > range_high)
-@@ -186,16 +241,9 @@ static int one_proc(proc_t *p){
-     flags[5] = '\0';
- 
-     if(x_option){
--      const char *cp = mapping_name(p, start, diff, mapbuf, 0, dev_major, dev_minor, inode);
--      printf(
--        (sizeof(KLONG)==8)
--          ? "%016"KLF"x %7lu       -       -       - %s  %s\n"
--          :      "%08lx %7lu       -       -       - %s  %s\n",
--        start,
--        (unsigned long)(diff>>10),
--        flags,
--        cp
--      );
-+          cp2 = mapping_name(p, start, diff, mapbuf, 0, dev_major, dev_minor, inode);
-+      /* printed with the keys */
-+      continue;
-     }
-     if(d_option){
-       const char *cp = mapping_name(p, start, diff, mapbuf, 0, dev_major, dev_minor, inode);
-@@ -232,10 +280,12 @@ static int one_proc(proc_t *p){
-   if(!q_option){
-     if(x_option){
-       if(sizeof(KLONG)==8){
--        printf("----------------  ------  ------  ------  ------\n");
-+        printf("----------------  ------  ------  ------\n");
-         printf(
--          "total kB %15ld       -       -       -\n",
--          (total_shared + total_private_writeable + total_private_readonly) >> 10
-+          "total kB %15ld %7llu %7llu\n",
-+          (total_shared + total_private_writeable + total_private_readonly) >> 10,
-+          total_rss, (total_shared_dirty+total_private_dirty)
-+
-         );
-       }else{
-         printf("-------- ------- ------- ------- -------\n");
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0062-top_numeric_args.patch b/patches/procps-3.2.8/0062-top_numeric_args.patch
deleted file mode 100644
index d148774..0000000
--- a/patches/procps-3.2.8/0062-top_numeric_args.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 3742765f0bf30142c8f7d1510a86b0babe80e6e6 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 62/70] top_numeric_args
-
----
- top.c |   48 ++++++++++++++++++++++++++++++++++++------------
- 1 files changed, 36 insertions(+), 12 deletions(-)
-
-diff --git a/top.c b/top.c
-index ea33989..e194244 100644
---- a/top.c
-+++ b/top.c
-@@ -32,6 +32,7 @@
- #include <stdarg.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#include <math.h>
- #include <string.h>
- 
- // Foul POS defines all sorts of stuff...
-@@ -1825,8 +1826,12 @@ static void parse_args (char **args)
- 
-    while (*args) {
-       const char *cp = *(args++);
-+      if (*cp!='-') {
-+       std_err(fmtmk("unknown argument '%c'\nusage:\t%s%s" , *cp, Myname, usage));
-+      }
- 
--      while (*cp) {
-+      for(++cp; *cp; cp++) {
-+         char *end;
-          switch (*cp) {
-             case '\0':
-             case '-':
-@@ -1842,8 +1847,15 @@ static void parse_args (char **args)
-                else if (*args) cp = *args++;
-                else std_err("-d requires argument");
-                   /* a negative delay will be dealt with shortly... */
--               if (sscanf(cp, "%f", &tmp_delay) != 1)
--                  std_err(fmtmk("bad delay '%s'", cp));
-+               errno=0;
-+               if (( (fabs(tmp_delay=strtod(cp, &end))==HUGE_VAL &&
-+                               errno==ERANGE) ||
-+                           (tmp_delay==0 && errno!=0) ||
-+                           end==cp ||
-+                           end!=cp+strlen(cp))) {
-+                   std_err(fmtmk("bad delay '%s'", cp));
-+               }
-+               cp=-1+end;
-                break;
-             case 'H':
-                TOGw(Curwin, Show_THREADS);
-@@ -1859,8 +1871,15 @@ static void parse_args (char **args)
-                if (cp[1]) cp++;
-                else if (*args) cp = *args++;
-                else std_err("-n requires argument");
--               if (sscanf(cp, "%d", &Loops) != 1 || Loops < 1)
--                  std_err(fmtmk("bad iterations arg '%s'", cp));
-+               errno=0;
-+               if ((((Loops=strtol(cp, &end, 0))==LONG_MIN ||
-+                                               Loops==LONG_MAX) &&
-+                                       errno==ERANGE) ||
-+                               end==cp ||
-+                               end!=cp+strlen(cp) || Loops<1) {
-+                       std_err(fmtmk("bad iterations arg '%s'", cp));
-+               }
-+               cp=-1+end;
-                break;
-             case 'p':
-                do {
-@@ -1868,11 +1887,19 @@ static void parse_args (char **args)
-                   selection_type = 'p';
-                   if (cp[1]) cp++;
-                   else if (*args) cp = *args++;
--                  else std_err("-p argument missing");
-+                  else std_err("-p requires argument");
-                   if (Monpidsidx >= MONPIDMAX)
-                      std_err(fmtmk("pid limit (%d) exceeded", MONPIDMAX));
--                  if (sscanf(cp, "%d", &Monpids[Monpidsidx]) != 1 || Monpids[Monpidsidx] < 0)
--                     std_err(fmtmk("bad pid '%s'", cp));
-+                  errno=0;
-+                  if ((((Monpids[Monpidsidx]=strtol(cp, &end, 0))==LONG_MIN ||
-+                          Monpids[Monpidsidx]==LONG_MAX) &&
-+                        errno==ERANGE) ||
-+                      end==cp ||
-+                      Monpids[Monpidsidx]<1) {
-+                    std_err(fmtmk("bad pid '%s'", cp));
-+                  }
-+                  cp=-1+end;
-+
-                   if (!Monpids[Monpidsidx])
-                      Monpids[Monpidsidx] = getpid();
-                   Monpidsidx++;
-@@ -1918,10 +1945,7 @@ static void parse_args (char **args)
-                   , *cp, Myname, usage));
- 
-          } /* end: switch (*cp) */
--
--            /* advance cp and jump over any numerical args used above */
--         if (*cp) cp += strspn(&cp[1], "- ,.1234567890") + 1;
--      } /* end: while (*cp) */
-+      } /* end: for (; *cp) */
-    } /* end: while (*args) */
- 
-       /* fixup delay time, maybe... */
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0063-top_1_swap.patch b/patches/procps-3.2.8/0063-top_1_swap.patch
deleted file mode 100644
index e488385..0000000
--- a/patches/procps-3.2.8/0063-top_1_swap.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 6a4504ffe207c72f1f4646f46db4d4076e154c89 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 63/70] top_1_swap
-
----
- top.1 |    8 ++++----
- 1 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/top.1 b/top.1
-index 0ce1c62..5b44828 100644
---- a/top.1
-+++ b/top.1
-@@ -401,13 +401,13 @@ A task's currently used share of available \*(MP.
- o:\fB VIRT\fR \*(EM Virtual Image (kb)
- The total amount of \*(MV used by the task.
- It includes all code, data and shared libraries plus pages that have been
--swapped out.
--
--VIRT = SWAP + RES.
-+swapped out and pages that have been mapped but not used.
- 
- .TP 3
- p:\fB SWAP\fR \*(EM Swapped size (kb)
--The swapped out portion of a task's total \*(MV image.
-+Memory that is not resident but is present in a task.  This is memory that
-+has been swapped out but could include additional non-resident memory.
-+This column is calculated by subtracting \*(MP from \*(MV.
- 
- .TP 3
- q:\fB RES\fR \*(EM Resident size (kb)
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0064-w_userproc.patch b/patches/procps-3.2.8/0064-w_userproc.patch
deleted file mode 100644
index d16462f..0000000
--- a/patches/procps-3.2.8/0064-w_userproc.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 3350dba35edadb332e7e86baaa514c19c8067223 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 64/70] w_userproc
-
----
- w.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/w.c b/w.c
-index 48a02be..107b9fc 100644
---- a/w.c
-+++ b/w.c
-@@ -171,7 +171,7 @@ static const proc_t *getproc(const utmp_t *restrict const u, const char *restric
- 	    secondbest = tmp;
- 	}
- 	if(!ignoreuser && uid != tmp->euid && uid != tmp->ruid) continue;
--	if(tmp->tgid != tmp->tpgid) continue;
-+	if(tmp->pgrp != tmp->tpgid) continue;
- 	if(best && tmp->start_time <= best->start_time) continue;
-     	best = tmp;
-     }
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0065-sysinfo_kfreebsd_hertz.patch b/patches/procps-3.2.8/0065-sysinfo_kfreebsd_hertz.patch
deleted file mode 100644
index 7b79288..0000000
--- a/patches/procps-3.2.8/0065-sysinfo_kfreebsd_hertz.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From df11ed5cbcac1bcf18799bf5c4df7b0c6a26b639 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:46 +0100
-Subject: [PATCH 65/70] sysinfo_kfreebsd_hertz
-
----
- proc/sysinfo.c |    8 ++++++++
- 1 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/proc/sysinfo.c b/proc/sysinfo.c
-index c804f49..65d94d7 100644
---- a/proc/sysinfo.c
-+++ b/proc/sysinfo.c
-@@ -230,6 +230,14 @@ static void init_libproc(void){
-     fputs("2.4+ kernel w/o ELF notes? -- report this\n", stderr);
-   }
- #endif
-+#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__)
-+  /* On FreeBSD the Hertz hack is unrelaible, there is no ELF note and
-+   * Hertz isn't defined in asm/params.h 
-+   * See Debian Bug #460331
-+   */
-+    Hertz = 100;
-+    return;
-+#endif
-   old_Hertz_hack();
- }
- 
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0066-ps_1_flt_output.patch b/patches/procps-3.2.8/0066-ps_1_flt_output.patch
deleted file mode 100644
index a8e9e60..0000000
--- a/patches/procps-3.2.8/0066-ps_1_flt_output.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From bb71519ca889076afa450fcfd15229c49ba44442 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:47 +0100
-Subject: [PATCH 66/70] ps_1_flt_output
-
----
- ps/ps.1 |   10 +++++++++-
- 1 files changed, 9 insertions(+), 1 deletions(-)
-
-diff --git a/ps/ps.1 b/ps/ps.1
-index 6ba31dc..f07dc82 100644
---- a/ps/ps.1
-+++ b/ps/ps.1
-@@ -4,7 +4,7 @@
- .\" Quick hack conversion by Albert Cahalan, 1998.
- .\" Licensed under version 2 of the Gnu General Public License.
- .\"
--.TH PS 1 "July 28, 2004" "Linux" "Linux User's Manual"
-+.TH PS 1 "February 25, 2010" "Linux" "Linux User's Manual"
- .\"
- .\" To render this page:
- .\"    groff -t -b -man -X -P-resolution -P100 -Tps ps.1 &
-@@ -1084,6 +1084,14 @@ lwp (light weight process, or thread) ID of the lwp being reported.
- (alias\ \fBspid\fR,\ \fBtid\fR).
- T}
- 
-+maj_flt	MAJFLT	T{
-+The number of major page faults that have occured with this process.
-+T}
-+
-+min_flt	MINFLT	T{
-+The number of minor page faults that have occured with this process.
-+T}
-+
- ni	NI	T{
- nice value. This ranges from 19 (nicest) to \-20 (not\ nice to\ others),
- see\ \fInice\fR(1).  (alias\ \fBnice\fR).
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0067-watch_ansi_colour.patch b/patches/procps-3.2.8/0067-watch_ansi_colour.patch
deleted file mode 100644
index 3d0b01f..0000000
--- a/patches/procps-3.2.8/0067-watch_ansi_colour.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-From cda40ddb76fa6619d86bf675ae0cc816f16f26c9 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:47 +0100
-Subject: [PATCH 67/70] watch_ansi_colour
-
----
- watch.1 |    7 ++++-
- watch.c |   93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
- 2 files changed, 96 insertions(+), 4 deletions(-)
-
-diff --git a/watch.1 b/watch.1
-index c5f17c4..aecbfeb 100644
---- a/watch.1
-+++ b/watch.1
-@@ -1,4 +1,4 @@
--.TH WATCH 1 "2009 May 11" " " "Linux User's Manual"
-+.TH WATCH 1 "2010 Mar 01" " " "Linux User's Manual"
- .SH NAME
- watch \- execute a program periodically, showing output fullscreen
- .SH SYNOPSIS
-@@ -8,6 +8,7 @@ watch \- execute a program periodically, showing output fullscreen
- .RB [ \-n
- .IR seconds ]
- .RB [ \-\-beep ]
-+.RB [ \-\-color ]
- .RB [ \-\-differences[=\fIcumulative\fP]]
- .RB [ \-\-errexit ]
- .RB [ \-\-exec ]
-@@ -75,6 +76,10 @@ or
- options, which will cause
- .B watch
- to exit if the return value from the program is non-zero.
-+.PP
-+By default \fBwatch\fR will normally not pass escape characters, however
-+if you use the \fI\-\-c\fR or \fI\-\-color\fR option, then
-+\fBwatch\fR will interpret ANSI color sequences for the foreground.
- 
- .SH NOTE
- Note that
-diff --git a/watch.c b/watch.c
-index 7ab57ab..af7229e 100644
---- a/watch.c
-+++ b/watch.c
-@@ -37,6 +37,7 @@
- #endif
- 
- static struct option longopts[] = {
-+  {"color", no_argument, 0, 'c' },
- 	{"differences", optional_argument, 0, 'd'},
- 	{"help", no_argument, 0, 'h'},
- 	{"interval", required_argument, 0, 'n'},
-@@ -50,7 +51,7 @@ static struct option longopts[] = {
- };
- 
- static char usage[] =
--    "Usage: %s [-bdhnptvx] [--beep] [--differences[=cumulative]] [--exec] [--help] [--interval=<n>] [--no-title] [--version] <command>\n";
-+    "Usage: %s [-bcdhnptvx] [--beep] [--color] [--differences[=cumulative]] [--exec] [--help] [--interval=<n>] [--no-title] [--version] <command>\n";
- 
- static char *progname;
- 
-@@ -62,6 +63,74 @@ static int show_title = 2;  // number of lines used, 2 or 0
- static int precise_timekeeping = 0;
- 
- #define min(x,y) ((x) > (y) ? (y) : (x))
-+#define MAX_ANSIBUF 10
-+
-+static void init_ansi_colors(void)
-+{
-+  int i;
-+  short ncurses_colors[] = {
-+    COLOR_BLACK, COLOR_RED, COLOR_GREEN, COLOR_YELLOW, COLOR_BLUE,
-+    COLOR_MAGENTA, COLOR_CYAN, COLOR_WHITE };
-+
-+  for (i=0; i< 8; i++)
-+    init_pair(i+1, ncurses_colors[i], -1);
-+}
-+
-+static void set_ansi_attribute(const int attrib)
-+{
-+  switch (attrib)
-+  {
-+    case -1:
-+      return;
-+    case 0:
-+      standend();
-+      return;
-+    case 1:
-+      attrset(A_BOLD);
-+      return;
-+  }
-+  if (attrib >= 30 && attrib <= 37) {
-+    color_set(attrib-29,NULL);
-+    return;
-+  }
-+}
-+
-+static void process_ansi(FILE *fp)
-+{
-+  int i,c, num1, num2;
-+  char buf[MAX_ANSIBUF];
-+  char *nextnum;
-+
-+
-+  c= getc(fp);
-+  if (c != '[') {
-+    ungetc(c, fp);
-+    return;
-+  }
-+  for(i=0; i<MAX_ANSIBUF; i++)
-+  {
-+    c = getc(fp);
-+    if (c == 'm') //COLOUR SEQUENCE ENDS in 'm'
-+    {
-+      buf[i] = '\0';
-+      break;
-+    }
-+    if (c < '0' && c > '9' && c != ';')
-+    {
-+      while(--i >= 0)
-+        ungetc(buf[i],fp);
-+      return;
-+    }
-+    buf[i] = (char)c;
-+  }
-+  num1 = strtol(buf, &nextnum, 10);
-+  if (nextnum != buf && nextnum[0] != '\0')
-+    num2 = strtol(nextnum+1, NULL, 10);
-+  else
-+    num2 = -1;
-+  set_ansi_attribute(num1);
-+  set_ansi_attribute(num2);
-+}
- 
- static void do_usage(void) NORETURN;
- static void do_usage(void)
-@@ -187,6 +256,7 @@ main(int argc, char *argv[])
- 	    option_differences_cumulative = 0,
- 			option_exec = 0,
- 			option_beep = 0,
-+      option_color = 0,
-         option_errexit = 0,
- 	    option_help = 0, option_version = 0;
- 	double interval = 2;
-@@ -205,12 +275,15 @@ main(int argc, char *argv[])
- 	setlocale(LC_ALL, "");
- 	progname = argv[0];
- 
--	while ((optc = getopt_long(argc, argv, "+bed::hn:pvtx", longopts, (int *) 0))
-+	while ((optc = getopt_long(argc, argv, "+bced::hn:pvtx", longopts, (int *) 0))
- 	       != EOF) {
- 		switch (optc) {
- 		case 'b':
- 			option_beep = 1;
- 			break;
-+    case 'c':
-+      option_color = 1;
-+      break;
- 		case 'd':
- 			option_differences = 1;
- 			if (optarg)
-@@ -319,6 +392,14 @@ main(int argc, char *argv[])
- 	/* Set up tty for curses use.  */
- 	curses_started = 1;
- 	initscr();
-+  if (option_color) {
-+    if (has_colors()) {
-+      start_color();
-+      use_default_colors();
-+      init_ansi_colors();
-+    } else
-+      option_color = 0;
-+  }
- 	nonl();
- 	noecho();
- 	cbreak();
-@@ -460,7 +541,13 @@ main(int argc, char *argv[])
- 						}while (c != WEOF && !isprint(c) && c<128
- 						       && wcwidth(c) == 0
- 						       && c != L'\n'
--						       && c != L'\t');
-+						       && c != L'\t'
-+                   && (c != L'\033' || option_color != 1));
-+          if (c == L'\033' && option_color == 1) {
-+            x--;
-+            process_ansi(p);
-+            continue;
-+          }
- 					if (c == L'\n')
- 						if (!oldeolseen && x == 0) {
- 							x = -1;
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0068-top_username_parse.patch b/patches/procps-3.2.8/0068-top_username_parse.patch
deleted file mode 100644
index 0ebcf61..0000000
--- a/patches/procps-3.2.8/0068-top_username_parse.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 9c1f9f99a5826be5069fc0ef66a8d3ada4e488b2 Mon Sep 17 00:00:00 2001
-From: http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz <info@debian.org>
-Date: Fri, 19 Mar 2010 21:58:47 +0100
-Subject: [PATCH 68/70] top_username_parse
-
----
- top.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/top.c b/top.c
-index e194244..62f4077 100644
---- a/top.c
-+++ b/top.c
-@@ -1924,7 +1924,7 @@ static void parse_args (char **args)
-                   errmsg = parse_uid(cp, &selection_uid);
-                   if (errmsg) std_err(errmsg);
-                   selection_type = 'u';
--                  cp += snprintf(Curwin->colusrnam, USRNAMSIZ-1, "%s", cp); // FIXME: junk
-+                  cp += snprintf(Curwin->colusrnam, USRNAMSIZ-1, "%s", cp)-1; // FIXME: junk
-                } while(0);
-                break;
-             case 'U':
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0069-don-t-install-stuff-that-was-not-built.patch b/patches/procps-3.2.8/0069-don-t-install-stuff-that-was-not-built.patch
deleted file mode 100644
index b7f3a83..0000000
--- a/patches/procps-3.2.8/0069-don-t-install-stuff-that-was-not-built.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 97bc8fbfedfc3d823891ec6497c187cb8e1ace06 Mon Sep 17 00:00:00 2001
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Fri, 19 Mar 2010 21:59:28 +0100
-Subject: [PATCH 69/70] don't install stuff that was not built
-
-We don't built everything in ptxdist. This Patch makes sure that
-'make install' won't fail if 'skill' or 'pgrep' is not there.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- Makefile |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index abddb6e..5efabb3 100644
---- a/Makefile
-+++ b/Makefile
-@@ -229,8 +229,8 @@ $(MANFILES) : all
- 	$(install) --mode a=r $(notdir $@) $@
- 
- install: $(filter-out $(SKIP) $(addprefix $(DESTDIR),$(SKIP)),$(INSTALL))
--	cd $(usr/bin) && $(ln_f) skill snice
--	cd $(usr/proc/bin) && $(ln_f) pgrep pkill
-+	cd $(usr/bin) && test ! -f skill || $(ln_f) skill snice
-+	cd $(usr/proc/bin) && test ! -f pgrep || $(ln_f) pgrep pkill
- 
- ############ prog.c --> prog.o
- 
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0070-remove-frename-registers-option-due-to-ICE-on-gcc-4..patch b/patches/procps-3.2.8/0070-remove-frename-registers-option-due-to-ICE-on-gcc-4..patch
deleted file mode 100644
index fa5f509..0000000
--- a/patches/procps-3.2.8/0070-remove-frename-registers-option-due-to-ICE-on-gcc-4..patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 88fe43f463b9a2ad6ae5ac4be85de66af7b142ef Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Fri, 19 Mar 2010 22:03:13 +0100
-Subject: [PATCH 70/70] remove -frename-registers option, due to ICE on gcc-4.3.1
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- Makefile |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 5efabb3..a83df5e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -142,7 +142,6 @@ ALL_CFLAGS += $(call check_gcc,-Wstrict-aliasing,)
- # if not debugging, enable things that could confuse gdb
- ifeq (,$(findstring -g,$(filter -g%,$(CFLAGS))))
- ALL_CFLAGS += $(call check_gcc,-fweb,)
--ALL_CFLAGS += $(call check_gcc,-frename-registers,)
- ALL_CFLAGS += $(call check_gcc,-fomit-frame-pointer,)
- endif
- 
--- 
-1.7.0
-
diff --git a/patches/procps-3.2.8/0071-fix-build-with-make-3.82.patch b/patches/procps-3.2.8/0071-fix-build-with-make-3.82.patch
deleted file mode 100644
index 9a963fe..0000000
--- a/patches/procps-3.2.8/0071-fix-build-with-make-3.82.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 7d6a81c2324575ad7d6f394e98b5ae231e99ab5d Mon Sep 17 00:00:00 2001
-From: George McCollister <george.mccollister@gmail.com>
-Date: Tue, 23 Aug 2011 13:51:43 -0500
-Subject: [PATCH 71/71] fix build with make 3.82
-
-I pulled this patch from upstream.
-http://procps.cvs.sourceforge.net/viewvc/procps/procps/Makefile?r1=1.70&r2=1.71
-
-Revision 1.71
-Mon Feb 28 02:51:09 2011 UTC (5 months, 3 weeks ago) by albert
-Branch: MAIN
-CVS Tags: HEAD
-Changes since 1.70: +1 -1 lines
-possible to build with make 3.82    gen303120  -- thanks Elias Pipping
-
-Signed-off-by: George McCollister <george.mccollister@gmail.com>
----
- Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index a83df5e..c1bf8f3 100644
---- a/Makefile
-+++ b/Makefile
-@@ -174,7 +174,7 @@ INSTALL := $(BINFILES) $(MANFILES)
- # want this rule first, use := on ALL, and ALL not filled in yet
- all: do_all
- 
---include */module.mk
-+-include proc/module.mk ps/module.mk
- 
- do_all:    $(ALL)
- 
--- 
-1.7.6
-
diff --git a/patches/procps-3.2.8/series b/patches/procps-3.2.8/series
deleted file mode 100644
index 7bceef9..0000000
--- a/patches/procps-3.2.8/series
+++ /dev/null
@@ -1,71 +0,0 @@
-0001-slabtop_once.patch
-0002-free.1.patch
-0003-output_sort_time.patch
-0004-pmap.1.patch
-0005-10_ps.1.patch
-0006-skill.1.patch
-0007-skill_perror.patch
-0008-slabtop_1.patch
-0009-sysctl.8.patch
-0010-sysctl_options.patch
-0011-tload.1.patch
-0012-top_irix.patch
-0013-top_no_openproc.patch
-0014-top_stdin_eof.patch
-0015-top_uid_length.patch
-0016-uptime.1.patch
-0017-vmstat.8.patch
-0018-watch.1.patch
-0019-w_time.patch
-0020-kill.1.patch
-0021-kill_warncr.patch
-0022-module_mk_shared.patch
-0023-sysinfo_elfnote.patch
-0024-top.1.patch
-0025-top_c_resize.patch
-0026-w-bassman.patch
-0027-top.1_cpustates.patch
-0028-watch_8bitchar.patch
-0029-library_map_freeproc.patch
-0030-pgrep_start_time.patch
-0031-readproc_c.patch
-0032-sysinfo_7_numbers.patch
-0033-tload_no_optargs.patch
-0034-w.1.patch
-0035-w_columns.patch
-0036-watch_exec_beep.patch
-0037-path_max.patch
-0038-w_envlength.patch
-0039-gnu-kbsd-version.patch
-0040-pgrep_c_option.patch
-0041-ps_cgroup_display.patch
-0042-watch_precision_time.patch
-0043-watch_unicode.patch
-0044-complain_unmounted_proc.patch
-0045-ps_supgid_display.patch
-0046-makefile_dev_null.patch
-0047-pgrep.1.patch
-0048-ps_size_sz.patch
-0049-top_mintime.patch
-0050-vmstat_headers.patch
-0051-pgrep_usage_exitcode.patch
-0052-ps_1_options.patch
-0053-top_highlight.patch
-0054-top_nohz.patch
-0055-vmstat_part_format.patch
-0056-readproc_double_free.patch
-0057-vmstat_units.patch
-0058-skill_null_argv.patch
-0059-skill_multiarg.patch
-0060-proc_version_constructor.patch
-0061-pmaps_smaps.patch
-0062-top_numeric_args.patch
-0063-top_1_swap.patch
-0064-w_userproc.patch
-0065-sysinfo_kfreebsd_hertz.patch
-0066-ps_1_flt_output.patch
-0067-watch_ansi_colour.patch
-0068-top_username_parse.patch
-0069-don-t-install-stuff-that-was-not-built.patch
-0070-remove-frename-registers-option-due-to-ICE-on-gcc-4..patch
-0071-fix-build-with-make-3.82.patch
diff --git a/projectroot/etc/init.d/chrony b/projectroot/etc/init.d/chrony
index e7e937a..d112927 100644
--- a/projectroot/etc/init.d/chrony
+++ b/projectroot/etc/init.d/chrony
@@ -63,7 +63,7 @@ stop_proc() {
 
 set_online(){
         message_n "Setting NTP server ONLINE ... "
-	/bin/pidof chronyd > /dev/null || bailout " chronyd is not running "
+	pidof chronyd > /dev/null || bailout " chronyd is not running "
 	/usr/bin/chronyc <<-EOF
 	password $PASSWORD
 	online
@@ -76,7 +76,7 @@ set_online(){
 
 set_offline(){
         message_n "Setting NTP server OFFLINE ... "
-	/bin/pidof chronyd > /dev/null || bailout " chronyd is not running "
+	pidof chronyd > /dev/null || bailout " chronyd is not running "
 	/usr/bin/chronyc <<-EOF
 	password $PASSWORD
 	offline
@@ -86,7 +86,7 @@ set_offline(){
 }
 
 set_rtc(){
-	/bin/pidof chronyd > /dev/null || bailout " chronyd is not running "
+	pidof chronyd > /dev/null || bailout " chronyd is not running "
 	if [ "$RTC_IOCTL" == "incomplete" ] ; then 
 	# We are running on a system with limited rtc support,
 	# so we cannot let the ntp client do the job. 
@@ -109,7 +109,7 @@ set_rtc(){
 }
 
 status(){
-	/bin/pidof chronyd > /dev/null || bailout " chronyd is not running "
+	pidof chronyd > /dev/null || bailout " chronyd is not running "
 	cat <<-EOF | /usr/bin/chronyc
 	password $PASSWORD
 	tracking
@@ -118,7 +118,7 @@ status(){
 }
 
 statistics(){
-	/bin/pidof chronyd > /dev/null || bailout " chronyd is not running "
+	pidof chronyd > /dev/null || bailout " chronyd is not running "
 	cat <<-EOF | /usr/bin/chronyc
 	password $PASSWORD
 	sourcestats
diff --git a/projectroot/usr/bin/chrony_command b/projectroot/usr/bin/chrony_command
index 03a18d0..534bde3 100644
--- a/projectroot/usr/bin/chrony_command
+++ b/projectroot/usr/bin/chrony_command
@@ -19,7 +19,7 @@ bailout(){
 KEY=$(awk '$1 ~ /^commandkey$/ { print $2; exit}' /etc/chrony/chrony.conf)
 PASSWORD=`awk '$1 ~ /^'$KEY'$/ {print $2; exit}' /etc/chrony/chrony.keys`
 
-/bin/pidof chronyd > /dev/null || bailout " chronyd is not running "
+pidof chronyd > /dev/null || bailout " chronyd is not running "
 /usr/bin/chronyc <<-EOF
 password $PASSWORD
 $command
diff --git a/projectroot/usr/bin/chrony_stat b/projectroot/usr/bin/chrony_stat
index e86d396..942ea46 100644
--- a/projectroot/usr/bin/chrony_stat
+++ b/projectroot/usr/bin/chrony_stat
@@ -81,7 +81,7 @@ esac
 done
 }
 
-/bin/pidof chronyd > /dev/null || bailout " chronyd is not running "
+pidof chronyd > /dev/null || bailout " chronyd is not running "
 
 case $1 in 
 	--help)
diff --git a/rules/procps.in b/rules/procps.in
index baf6514..0c60e4b 100644
--- a/rules/procps.in
+++ b/rules/procps.in
@@ -4,31 +4,109 @@ menuconfig PROCPS
 	tristate
 	prompt "procps                        "
 	select GCCLIBS_GCC_S
-	select NCURSES		if PROCPS_TOP
-	select NCURSES		if PROCPS_SLABTOP
+	select NCURSES if PROCPS_USES_NCURSES
+	select PROCPS_USES_NCURSES if PROCPS_SLABTOP || PROCPS_TOP || PROCPS_WATCH
+	select SYSTEMD if PROCPS_WITH_SYSTEMD
 	help
-	  The procps package contains a set of system utilities that provide
-	   system information.
+	  Contains a set of system utilities that provide information out of the
+	  pseudo-filesystem most commonly located at /proc. The programs generally
+	  concentrate on the structures that describe the running processes.
+	  Note: procps-ng is used instead of the older and unmaintained procps.
 
 if PROCPS
 
-config PROCPS_TOP
+config PROCPS_USES_NCURSES
 	bool
-	prompt "top"
-	depends on !BUSYBOX_TOP || ALLYES
+
+config PROCPS_WITH_SYSTEMD
+	bool
+	prompt "Enable systemd support"
+	default INITMETHOD_SYSTEMD
+	select SYSTEMD
 	help
-	  The  top  program provides a dynamic real-time view of a running
-	  system.
-	  Note: This command enlarges your system by the ncurses library.
+	  Enable systemd support to show information about systemd units, slices
+	  and containers in tools like ps. Recommended when using systemd.
 
-comment "busybox' top is selected!"
-	depends on BUSYBOX_TOP
+config PROCPS_FREE
+	bool
+	prompt "free"
+	depends on !BUSYBOX_FREE || ALLYES
+	help
+	  The free program reports the amount of free and used memory.
+
+comment "busybox' free is selected!"
+	depends on BUSYBOX_FREE
+
+config PROCPS_PGREP
+	bool
+	prompt "pgrep"
+	depends on !BUSYBOX_PGREP || ALLYES
+	help
+	  The pgrep program can look up processes based on name and other
+	  attributes.
+
+comment "busybox' pgrep is selected!"
+	depends on BUSYBOX_PGREP
+
+config PROCPS_PIDOF
+	bool
+	prompt "pidof"
+	depends on !BUSYBOX_PIDOF || ALLYES
+	help
+	  The pidof program can list the pids of running processes.
+
+comment "busybox' pidof is selected!"
+	depends on BUSYBOX_PIDOF
+
+config PROCPS_PKILL
+	bool
+	prompt "pkill"
+	depends on !BUSYBOX_PKILL || ALLYES
+	help
+	  The pkill program can kill processes based on name and other
+	  attributes.
+
+comment "busybox' pkill is selected!"
+	depends on BUSYBOX_PKILL
+
+config PROCPS_PMAP
+	bool
+	prompt "pmap"
+	depends on !BUSYBOX_PMAP || ALLYES
+	help
+	  The pmap program reports the memory map of a process.
+
+comment "busybox' pmap is selected!"
+	depends on BUSYBOX_PMAP
+
+config PROCPS_PS
+	bool
+	prompt "ps"
+	depends on !BUSYBOX_PS || ALLYES
+	help
+	  The ps program can analyse the states of all processes running
+	  on the system. It stands for process status.
+
+comment "busybox' ps is selected!"
+	depends on BUSYBOX_PS
+
+config PROCPS_PWDX
+	bool
+	prompt "pwdx"
+	depends on !BUSYBOX_PWDX || ALLYES
+	help
+	  The pwdx program reports the current directory of a process.
+
+comment "busybox' pwdx is selected!"
+	depends on BUSYBOX_PWDX
 
 config PROCPS_SLABTOP
 	bool
 	prompt "slabtop"
+	select PROCPS_USES_NCURSES
 	help
-	  display kernel slab cache information in real time
+	  The slabtop program displays kernel slab cache information in
+	  real time.
 	  Note: This command enlarges your system by the ncurses library.
 
 config PROCPS_SYSCTL
@@ -36,22 +114,49 @@ config PROCPS_SYSCTL
 	prompt "sysctl"
 	depends on !BUSYBOX_BB_SYSCTL || ALLYES
 	help
-	  configure kernel parameters at runtime
+	  The sysctl program configures kernel parameters at runtime.
 
 comment "busybox' sysctl is selected!"
 	depends on BUSYBOX_BB_SYSCTL
 
-config PROCPS_PS
+config PROCPS_TOP
 	bool
-	prompt "ps"
-	depends on !BUSYBOX_PS || ALLYES
+	prompt "top"
+	select PROCPS_USES_NCURSES
+	depends on !BUSYBOX_TOP || ALLYES
 	help
-	  ps stands for process status. With this command you
-	  analyse current states of all processes running on
-	  the system
+	  The  top  program provides a dynamic real-time view of a running
+	  system.
+	  Note: This command enlarges your system by the ncurses library.
 
-comment "busybox' ps is selected!"
-	depends on BUSYBOX_PS
+config PROCPS_TOP_MODERN
+	bool
+	prompt "use modern startup defaults for top"
+	depends on PROCPS_TOP
+	help
+	  Use the modern color scheme defaults and the new CPU load representation
+	  for multiple cores.
+	  If this option is disabled, the original top layout is used.
+
+comment "busybox' top is selected!"
+	depends on BUSYBOX_TOP
+
+config PROCPS_UPTIME
+	bool
+	prompt "uptime"
+	depends on !BUSYBOX_UPTIME || ALLYES
+	help
+	  The uptime program displays the system uptime.
+
+comment "busybox' uptime is selected!"
+	depends on BUSYBOX_UPTIME
+
+config PROCPS_VMSTAT
+	bool
+	prompt "vmstat"
+	help
+	  vmstat reports information about processes, memory,
+	  paging, block IO, traps, disks and cpu activity.
 
 config PROCPS_W
 	bool
@@ -59,14 +164,17 @@ config PROCPS_W
 	help
 	  Show who is logged on and what they are doing.
 
-config PROCPS_PGREP
+config PROCPS_WATCH
 	bool
-	prompt "pgrep"
-	depends on !BUSYBOX_PGREP || ALLYES
+	prompt "watch"
+	select PROCPS_USES_NCURSES
+	depends on !BUSYBOX_WATCH || ALLYES
 	help
-	  look up processes based on name and other attributes
+	  The watch program can execute a program periodically, displaying the
+	  output fullscreen.
+	  Note: This command enlarges your system by the ncurses library.
 
-comment "busybox' pgrep is selected!"
-	depends on BUSYBOX_PGREP
+comment "busybox' watch is selected!"
+	depends on BUSYBOX_WATCH
 
 endif
diff --git a/rules/procps.make b/rules/procps.make
index 5d9c03a..bd6ec85 100644
--- a/rules/procps.make
+++ b/rules/procps.make
@@ -2,7 +2,8 @@
 #
 # Copyright (C) 2003 by Ixia Corporation, by Milan Bobde
 #		2007 by Pengutronix e.K.
-#               2009 by Marc Kleine-Budde <mkl@pengutronix.de>
+#		2009 by Marc Kleine-Budde <mkl@pengutronix.de>
+#		2015 by Clemens Gruber <clemens.gruber@pqgruber.com>
 #
 # See CREDITS for details about who has contributed to this project.
 #
@@ -18,43 +19,44 @@ PACKAGES-$(PTXCONF_PROCPS) += procps
 #
 # Paths and names
 #
-PROCPS_VERSION	:= 3.2.8
-PROCPS_MD5	:= 9532714b6846013ca9898984ba4cd7e0
-PROCPS		:= procps-$(PROCPS_VERSION)
-PROCPS_SUFFIX	:= tar.gz
-PROCPS_URL	:= http://procps.sourceforge.net/$(PROCPS).$(PROCPS_SUFFIX)
+PROCPS_VERSION	:= 3.3.10
+PROCPS_MD5	:= 1fb7f3f6bf92ce6c5c9ed9949ae858fe
+PROCPS		:= procps-ng-$(PROCPS_VERSION)
+PROCPS_SUFFIX	:= tar.xz
+PROCPS_URL	:= http://downloads.sourceforge.net/project/procps-ng/Production/$(PROCPS_VERSION).$(PROCPS_SUFFIX)
 PROCPS_SOURCE	:= $(SRCDIR)/$(PROCPS).$(PROCPS_SUFFIX)
 PROCPS_DIR	:= $(BUILDDIR)/$(PROCPS)
 PROCPS_LICENSE	:= GPLv2 (tools), LGPLv2 (libs)
 PROCPS_LICENSE_FILES := \
-	file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
-	file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812
+	file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+	file://COPYING.LIB;md5=4cf66a4984120007c9881cc871cf49db
 
 # ----------------------------------------------------------------------------
 # Prepare
 # ----------------------------------------------------------------------------
 
-# build only the required parts
-PROCPS_ALL-$(PTXCONF_PROCPS_TOP)	+= $(PROCPS_PKGDIR)/usr/bin/top
-PROCPS_ALL-$(PTXCONF_PROCPS_SLABTOP)	+= $(PROCPS_PKGDIR)/usr/bin/slabtop
-PROCPS_ALL-$(PTXCONF_PROCPS_SYSCTL)	+= $(PROCPS_PKGDIR)/sbin/sysctl
-PROCPS_ALL-$(PTXCONF_PROCPS_W)		+= $(PROCPS_PKGDIR)/usr/bin/w
-PROCPS_ALL-$(PTXCONF_PROCPS_PGREP)	+= $(PROCPS_PKGDIR)/usr/bin/pgrep
+PROCPS_CONF_ENV	:= \
+	$(CROSS_ENV) \
+	$(call ptx/ncurses, PTXCONF_PROCPS_USES_NCURSES)
 
-PROCPS_PATH	:= PATH=$(CROSS_PATH)
-PROCPS_MAKEVARS	:= \
-	CC="$(CROSS_CC)" \
-	CFLAGS=-O2 \
-	CPPFLAGS='$(CROSS_CPPFLAGS)' \
-	LDFLAGS='$(CROSS_LDFLAGS)' \
-	lib64=$(CROSS_LIB_DIR) \
-	ldconfig=true \
-	MANFILES="" \
-	BINFILES="$(PROCPS_ALL-y)"
+#
+# autoconf
+#
+PROCPS_CONF_TOOL	:= autoconf
+PROCPS_CONF_OPT	:= \
+	$(CROSS_AUTOCONF_USR) \
+	--enable-shared \
+	--disable-static \
+	--disable-nls \
+	--disable-rpath \
+	--disable-kill \
+	--$(call ptx/endis, PROCPS_TOP_MODERN)-modern-top \
+	--prefix=/ \
+	--without-libiconv-prefix \
+	--without-libintl-prefix \
+	--$(call ptx/wwo, PTXCONF_PROCPS_USES_NCURSES)-ncurses \
+	--$(call ptx/wwo, PTXCONF_PROCPS_WITH_SYSTEMD)-systemd
 
-$(STATEDIR)/procps.prepare:
-	@$(call targetinfo)
-	@$(call touch)
 
 # ----------------------------------------------------------------------------
 # Target-Install
@@ -66,14 +68,38 @@ $(STATEDIR)/procps.targetinstall:
 	@$(call install_init, procps)
 	@$(call install_fixup, procps,PRIORITY,optional)
 	@$(call install_fixup, procps,SECTION,base)
-	@$(call install_fixup, procps,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
+	@$(call install_fixup, procps,AUTHOR,"Clemens Gruber <clemens.gruber@pqgruber.com>")
 	@$(call install_fixup, procps,DESCRIPTION,missing)
 
-	@$(call install_lib, procps, 0, 0, 0644, libproc-3.2.8)
+	@$(call install_lib, procps, 0, 0, 0644, libprocps)
 
-ifdef PTXCONF_PROCPS_TOP
-	@$(call install_copy, procps, 0, 0, 0755, -,\
-		/usr/bin/top)
+ifdef PTXCONF_PROCPS_FREE
+	@$(call install_copy, procps, 0, 0, 0755, -, \
+		/usr/bin/free)
+endif
+ifdef PTXCONF_PROCPS_PGREP
+	@$(call install_copy, procps, 0, 0, 0755, -, \
+		/usr/bin/pgrep)
+endif
+ifdef PTXCONF_PROCPS_PIDOF
+	@$(call install_copy, procps, 0, 0, 0755, -, \
+		/usr/bin/pidof)
+endif
+ifdef PTXCONF_PROCPS_PKILL
+	@$(call install_copy, procps, 0, 0, 0755, -, \
+		/usr/bin/pkill)
+endif
+ifdef PTXCONF_PROCPS_PMAP
+	@$(call install_copy, procps, 0, 0, 0755, -, \
+		/usr/bin/pmap)
+endif
+ifdef PTXCONF_PROCPS_PS
+	@$(call install_copy, procps, 0, 0, 0755, -, \
+		/bin/ps)
+endif
+ifdef PTXCONF_PROCPS_PWDX
+	@$(call install_copy, procps, 0, 0, 0755, -, \
+		/usr/bin/pwdx)
 endif
 ifdef PTXCONF_PROCPS_SLABTOP
 	@$(call install_copy, procps, 0, 0, 0755, -, \
@@ -82,21 +108,29 @@ endif
 ifdef PTXCONF_PROCPS_SYSCTL
 	@$(call install_copy, procps, 0, 0, 0755, -, \
 		/sbin/sysctl)
-
 	@$(call install_alternative, procps, 0, 0, 0644, /etc/sysctl.conf, n)
 endif
-ifdef PTXCONF_PROCPS_PS
+ifdef PTXCONF_PROCPS_TOP
 	@$(call install_copy, procps, 0, 0, 0755, -, \
-		/bin/ps)
+		/usr/bin/top)
+endif
+ifdef PTXCONF_PROCPS_UPTIME
+	@$(call install_copy, procps, 0, 0, 0755, -, \
+		/usr/bin/uptime)
+endif
+ifdef PTXCONF_PROCPS_VMSTAT
+	@$(call install_copy, procps, 0, 0, 0755, -, \
+		/usr/bin/vmstat)
 endif
 ifdef PTXCONF_PROCPS_W
 	@$(call install_copy, procps, 0, 0, 0755, -, \
 		/usr/bin/w)
 endif
-ifdef PTXCONF_PROCPS_PGREP
+ifdef PTXCONF_PROCPS_WATCH
 	@$(call install_copy, procps, 0, 0, 0755, -, \
-		/usr/bin/pgrep)
+		/usr/bin/watch)
 endif
+
 	@$(call install_finish, procps)
 
 	@$(call touch)
-- 
2.4.5


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [ptxdist] [PATCH v3] procps: switch from procps to procps-ng
  2015-07-06 18:25 [ptxdist] [PATCH v3] procps: switch from procps to procps-ng Clemens Gruber
@ 2015-07-06 18:38 ` Bernhard Walle
  0 siblings, 0 replies; 2+ messages in thread
From: Bernhard Walle @ 2015-07-06 18:38 UTC (permalink / raw)
  To: ptxdist


Am 06.07.15 um 20:25 schrieb Clemens Gruber:
> - Use the correct SF URL to have a procps-ng version number

I think this is much better than using the auto-generated git snapshot.
Thanks!


Regards,
Bernhard

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-07-06 18:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-06 18:25 [ptxdist] [PATCH v3] procps: switch from procps to procps-ng Clemens Gruber
2015-07-06 18:38 ` Bernhard Walle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox