diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2010-03-19 22:04:36 +0100 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2010-03-19 22:04:36 +0100 |
commit | 762f813a3bf8bb34c0dfb0fdb98f45bdf6801cbf (patch) | |
tree | dfbc9bfa4aea2ba084f22e6847591ed031ca7a81 | |
parent | d3a71c59004fea795a1c0789cdf088133f68fa2d (diff) | |
download | ptxdist-762f813a3bf8bb34c0dfb0fdb98f45bdf6801cbf.tar.gz ptxdist-762f813a3bf8bb34c0dfb0fdb98f45bdf6801cbf.tar.xz |
[procps] import recent debian patches
http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-8.debian.tar.gz
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
93 files changed, 3961 insertions, 1230 deletions
diff --git a/patches/procps-3.2.8/0001-slabtop_once.patch b/patches/procps-3.2.8/0001-slabtop_once.patch new file mode 100644 index 000000000..5d8a45195 --- /dev/null +++ b/patches/procps-3.2.8/0001-slabtop_once.patch @@ -0,0 +1,125 @@ +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 new file mode 100644 index 000000000..14bcb0f51 --- /dev/null +++ b/patches/procps-3.2.8/0002-free.1.patch @@ -0,0 +1,112 @@ +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/10_output_sort_time.dpatch b/patches/procps-3.2.8/0003-output_sort_time.patch index ca71b281f..91b4c4519 100644 --- a/patches/procps-3.2.8/10_output_sort_time.dpatch +++ b/patches/procps-3.2.8/0003-output_sort_time.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_output_sort_time.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: More ps time sorting #508435 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c ---- procps-3.2.7~/ps/output.c 2006-06-19 09:27:02.000000000 +1000 -+++ procps-3.2.7/ps/output.c 2009-01-07 17:52:09.000000000 +1100 -@@ -110,6 +110,20 @@ +=================================================================== +--- + 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); \ } @@ -29,7 +33,7 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c CMP_INT(rtprio) CMP_SMALL(sched) CMP_INT(cutime) -@@ -185,6 +199,9 @@ +@@ -185,6 +199,9 @@ CMP_SMALL(pcpu) CMP_SMALL(state) @@ -39,7 +43,7 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c /* 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 @@ +@@ -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; @@ -48,7 +52,7 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c ss = t%60; t /= 60; mm = t%60; -@@ -476,7 +493,7 @@ +@@ -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; @@ -57,7 +61,7 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c ss = t%60; t /= 60; mm = t%60; -@@ -1277,7 +1294,7 @@ +@@ -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*/ @@ -66,7 +70,7 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c {"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}, -@@ -1296,7 +1313,7 @@ +@@ -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! @@ -75,7 +79,7 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c {"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}, -@@ -1311,7 +1328,7 @@ +@@ -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}, @@ -84,7 +88,7 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c {"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*/ -@@ -1455,7 +1472,7 @@ +@@ -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}, @@ -93,3 +97,6 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c {"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/10_pmap.1.dpatch b/patches/procps-3.2.8/0004-pmap.1.patch index 10e9ae44f..c47f1c4c3 100644 --- a/patches/procps-3.2.8/10_pmap.1.dpatch +++ b/patches/procps-3.2.8/0004-pmap.1.patch @@ -1,13 +1,17 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_pmap.1.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Cleanup pmap.1 manual page #282168 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/pmap.1 procps-3.2.7/pmap.1 ---- procps-3.2.7~/pmap.1 2004-01-29 13:39:08.000000000 +1100 -+++ procps-3.2.7/pmap.1 2006-06-26 11:48:23.000000000 +1000 +=================================================================== +--- + 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 @@ -48,3 +52,6 @@ diff -urNad procps-3.2.7~/pmap.1 procps-3.2.7/pmap.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/10_ps.1.dpatch b/patches/procps-3.2.8/0005-10_ps.1.patch index 8f20d0df2..6cc3657b0 100644 --- a/patches/procps-3.2.8/10_ps.1.dpatch +++ b/patches/procps-3.2.8/0005-10_ps.1.patch @@ -1,17 +1,22 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_ps.1.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: ps.1 normal indent widths -## DP: pri field explained #465761 -## DP: --no-heading comment is an alias for --no-headers -## DP: Removed setproctitle(1) reference #529045 +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 -@DPATCH@ -diff -urNad procps-3.2.8~/ps/ps.1 procps-3.2.8/ps/ps.1 ---- procps-3.2.8~/ps/ps.1 2009-05-28 17:40:42.000000000 +1000 -+++ procps-3.2.8/ps/ps.1 2009-05-28 17:41:32.000000000 +1000 -@@ -18,12 +18,6 @@ +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 .\" @@ -24,7 +29,15 @@ diff -urNad procps-3.2.8~/ps/ps.1 procps-3.2.8/ps/ps.1 .\" .\" ColSize is used for the format spec table. .\" It's the left margin, minus the right, minus -@@ -499,7 +493,7 @@ + .\" 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 @@ -33,7 +46,7 @@ diff -urNad procps-3.2.8~/ps/ps.1 procps-3.2.8/ps/ps.1 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 @@ +@@ -588,7 +582,8 @@ ASCII art process tree repeat header lines, one per page of output .opt \-\-no\-headers @@ -43,7 +56,7 @@ diff -urNad procps-3.2.8~/ps/ps.1 procps-3.2.8/ps/ps.1 .opt \-\-lines \ n set screen height -@@ -1159,6 +1154,10 @@ +@@ -1159,6 +1154,10 @@ ppid PPID T{ parent process ID. T} @@ -54,3 +67,6 @@ diff -urNad procps-3.2.8~/ps/ps.1 procps-3.2.8/ps/ps.1 psr PSR T{ processor that process is currently assigned to. T} +-- +1.7.0 + diff --git a/patches/procps-3.2.8/10_skill.1.dpatch b/patches/procps-3.2.8/0006-skill.1.patch index 56ca5bc97..3896e5b7c 100644 --- a/patches/procps-3.2.8/10_skill.1.dpatch +++ b/patches/procps-3.2.8/0006-skill.1.patch @@ -1,13 +1,17 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_skill.1.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Cleanup man page #282168 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/skill.1 procps-3.2.7/skill.1 ---- procps-3.2.7~/skill.1 2008-04-07 11:12:27.000000000 +1000 -+++ procps-3.2.7/skill.1 2008-04-07 11:13:03.000000000 +1000 +=================================================================== +--- + 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 @@ -65,7 +69,7 @@ diff -urNad procps-3.2.7~/skill.1 procps-3.2.7/skill.1 .TE .SH "PROCESS SELECTION OPTIONS" -@@ -49,11 +50,11 @@ +@@ -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 @@ -82,7 +86,7 @@ diff -urNad procps-3.2.7~/skill.1 procps-3.2.7/skill.1 .TE .SH SIGNALS -@@ -63,7 +64,6 @@ +@@ -63,7 +64,6 @@ When known, numbers and default behavior are shown. lB rB lB lB lfCW r l l. Name Num Action Description @@ -90,7 +94,7 @@ diff -urNad procps-3.2.7~/skill.1 procps-3.2.7/skill.1 0 0 n/a exit code indicates if a signal may be sent ALRM 14 exit HUP 1 exit -@@ -104,15 +104,20 @@ +@@ -104,15 +104,20 @@ XFSZ core core dump may fail lB lB lfCW l. Command Description @@ -116,3 +120,6 @@ diff -urNad procps-3.2.7~/skill.1 procps-3.2.7/skill.1 .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 new file mode 100644 index 000000000..c38ca2ba7 --- /dev/null +++ b/patches/procps-3.2.8/0007-skill_perror.patch @@ -0,0 +1,25 @@ +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/10_slabtop.dpatch b/patches/procps-3.2.8/0008-slabtop_1.patch index 6aef08650..2b624927b 100644 --- a/patches/procps-3.2.8/10_slabtop.dpatch +++ b/patches/procps-3.2.8/0008-slabtop_1.patch @@ -1,13 +1,17 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_slabtop.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Cleanup slabtop man page #282168 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/slabtop.1 procps-3.2.7/slabtop.1 ---- procps-3.2.7~/slabtop.1 2006-06-18 15:10:24.000000000 +1000 -+++ procps-3.2.7/slabtop.1 2006-06-26 12:31:42.000000000 +1000 +=================================================================== +--- + 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 @@ -34,7 +38,7 @@ diff -urNad procps-3.2.7~/slabtop.1 procps-3.2.7/slabtop.1 -Refresh the display every n seconds. By default, -.BR slabtop (1) +.B \-\-delay=\fIn\fR, \fB\-d \fIn -+Refresh the display every ++Refresh the display every +.I n +in seconds. By default, +.B slabtop @@ -59,7 +63,7 @@ diff -urNad procps-3.2.7~/slabtop.1 procps-3.2.7/slabtop.1 Display usage information and exit. .SH SORT CRITERIA -@@ -78,7 +81,7 @@ +@@ -78,7 +81,7 @@ sort by object size sort by cache utilization .SH COMMANDS @@ -68,18 +72,18 @@ diff -urNad procps-3.2.7~/slabtop.1 procps-3.2.7/slabtop.1 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 @@ +@@ -94,7 +97,9 @@ Refresh the screen. Quit the program. .SH FILES -.IR /proc/slabinfo " \-\- slab information" +.TP -+.I /proc/slabinfo ++.I /proc/slabinfo +slab information .SH "SEE ALSO" .BR free (1), -@@ -104,7 +109,7 @@ +@@ -104,7 +109,7 @@ Quit the program. .SH NOTES Currently, @@ -88,7 +92,7 @@ diff -urNad procps-3.2.7~/slabtop.1 procps-3.2.7/slabtop.1 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 @@ +@@ -116,7 +121,7 @@ file is tracking information about used slab physical memory. .SH AUTHORS Written by Chris Rivera and Robert Love. @@ -97,3 +101,6 @@ diff -urNad procps-3.2.7~/slabtop.1 procps-3.2.7/slabtop.1 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/10_sysctl.8.dpatch b/patches/procps-3.2.8/0009-sysctl.8.patch index 7d9ec3e6f..73322e48a 100644 --- a/patches/procps-3.2.8/10_sysctl.8.dpatch +++ b/patches/procps-3.2.8/0009-sysctl.8.patch @@ -1,14 +1,19 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_sysctl_8.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: -p flag has OPTIONAL filename (#297144) -## DP: cleanup ssysctl man page #282168 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/sysctl.8 procps-3.2.7/sysctl.8 ---- procps-3.2.7~/sysctl.8 2006-06-26 09:44:20.000000000 +1000 -+++ procps-3.2.7/sysctl.8 2006-06-26 12:42:08.000000000 +1000 +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 @@ -130,7 +135,7 @@ diff -urNad procps-3.2.7~/sysctl.8 procps-3.2.7/sysctl.8 +.br +/sbin/sysctl \-w kernel.domainname="example.com" +.br -+/sbin/sysctl \-p /etc/sysctl.conf ++/sbin/sysctl \-p /etc/sysctl.conf .SH FILES .I /proc/sys +.br @@ -139,11 +144,14 @@ diff -urNad procps-3.2.7~/sysctl.8 procps-3.2.7/sysctl.8 .BR sysctl.conf (5) .SH BUGS -The -A parameter behaves just as -a does. -+The ++The +.B \-A -+parameter behaves just as ++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/10_sysctl_options.dpatch b/patches/procps-3.2.8/0010-sysctl_options.patch index 1616bdb7c..ae896cee2 100644 --- a/patches/procps-3.2.8/10_sysctl_options.dpatch +++ b/patches/procps-3.2.8/0010-sysctl_options.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_sysctl_options.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Fix up some option processing +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 -@DPATCH@ -diff -urNad procps-3.2.7~/sysctl.c procps-3.2.7/sysctl.c ---- procps-3.2.7~/sysctl.c 2008-08-10 10:57:23.000000000 +1000 -+++ procps-3.2.7/sysctl.c 2008-08-10 10:59:11.000000000 +1000 -@@ -421,6 +421,7 @@ +=================================================================== +--- + 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; @@ -16,7 +20,7 @@ diff -urNad procps-3.2.7~/sysctl.c procps-3.2.7/sysctl.c int ReturnCode = 0; const char *preloadfile = DEFAULT_PRELOAD; -@@ -486,8 +487,8 @@ +@@ -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 @@ -27,7 +31,7 @@ diff -urNad procps-3.2.7~/sysctl.c procps-3.2.7/sysctl.c case 'V': fprintf(stdout, "sysctl (%s)\n",procps_version); exit(0); -@@ -502,6 +503,8 @@ +@@ -502,6 +503,8 @@ int main(int argc, char *argv[]) { } else { if (NameOnly && Quiet) // nonsense return Usage(me); @@ -36,7 +40,7 @@ diff -urNad procps-3.2.7~/sysctl.c procps-3.2.7/sysctl.c SwitchesAllowed = false; if (WriteMode || index(*argv, '=')) ReturnCode = WriteSetting(*argv); -@@ -509,6 +512,11 @@ +@@ -509,6 +512,11 @@ int main(int argc, char *argv[]) { ReturnCode = ReadSetting(*argv); } } @@ -48,3 +52,6 @@ diff -urNad procps-3.2.7~/sysctl.c procps-3.2.7/sysctl.c 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 new file mode 100644 index 000000000..abee2e8cb --- /dev/null +++ b/patches/procps-3.2.8/0011-tload.1.patch @@ -0,0 +1,26 @@ +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/10_top_irix.dpatch b/patches/procps-3.2.8/0012-top_irix.patch index 0d3f49950..334798ee0 100644 --- a/patches/procps-3.2.8/10_top_irix.dpatch +++ b/patches/procps-3.2.8/0012-top_irix.patch @@ -1,24 +1,28 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_top_irix.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Change formal of IRix mode when showing threads #459890 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c ---- procps-3.2.7~/top.c 2008-04-07 08:43:08.000000000 +1000 -+++ procps-3.2.7/top.c 2008-04-07 08:45:23.000000000 +1000 -@@ -1774,7 +1774,8 @@ +=================================================================== +--- + 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 && ++ 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"; -@@ -2561,6 +2562,15 @@ +@@ -2570,6 +2571,15 @@ static void do_key (unsigned c) case 'H': if (VIZCHKc) { TOGw(Curwin, Show_THREADS); @@ -34,7 +38,7 @@ diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c show_msg(fmtmk("Show threads %s" , CHKw(Curwin, Show_THREADS) ? "On" : "Off")); } -@@ -2617,7 +2627,8 @@ +@@ -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 @@ -44,3 +48,6 @@ diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c // 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 new file mode 100644 index 000000000..4b953ed9e --- /dev/null +++ b/patches/procps-3.2.8/0013-top_no_openproc.patch @@ -0,0 +1,30 @@ +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/10_top_stdineof.dpatch b/patches/procps-3.2.8/0014-top_stdin_eof.patch index 2eb50b06e..e09a1e46e 100644 --- a/patches/procps-3.2.8/10_top_stdineof.dpatch +++ b/patches/procps-3.2.8/0014-top_stdin_eof.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_top_stdineof.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Check for stdin eof if term closes #458986 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c ---- procps-3.2.7~/top.c 2008-08-10 00:24:40.000000000 +1000 -+++ procps-3.2.7/top.c 2008-08-10 10:09:49.000000000 +1000 -@@ -3382,9 +3382,8 @@ +=================================================================== +--- + 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) { @@ -20,3 +24,6 @@ diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c 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/10_top_uid_length.dpatch b/patches/procps-3.2.8/0015-top_uid_length.patch index 77befc5e2..de5a0ff23 100644 --- a/patches/procps-3.2.8/10_top_uid_length.dpatch +++ b/patches/procps-3.2.8/0015-top_uid_length.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_top_uid_length.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Make the uid length 5 not 4 #426782 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c ---- procps-3.2.7~/top.c 2009-01-08 10:22:37.000000000 +1100 -+++ procps-3.2.7/top.c 2009-01-08 10:23:07.000000000 +1100 -@@ -1222,7 +1222,7 @@ +=================================================================== +--- + 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 }, @@ -17,3 +21,6 @@ diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c { "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/10_uptime.1.dpatch b/patches/procps-3.2.8/0016-uptime.1.patch index e9ae0064e..9c2da06dc 100644 --- a/patches/procps-3.2.8/10_uptime.1.dpatch +++ b/patches/procps-3.2.8/0016-uptime.1.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_uptime.1.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Cleanup uptime man page #282168 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/uptime.1 procps-3.2.7/uptime.1 ---- procps-3.2.7~/uptime.1 2006-06-26 09:37:50.000000000 +1000 -+++ procps-3.2.7/uptime.1 2006-06-26 12:45:06.000000000 +1000 -@@ -6,7 +6,8 @@ +=================================================================== +--- + 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 @@ -18,7 +22,7 @@ diff -urNad procps-3.2.7~/uptime.1 procps-3.2.7/uptime.1 .SH DESCRIPTION .B uptime gives a one line display of the following information. -@@ -14,13 +15,25 @@ +@@ -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. @@ -27,7 +31,7 @@ diff -urNad procps-3.2.7~/uptime.1 procps-3.2.7/uptime.1 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 ++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 @@ -43,8 +47,11 @@ diff -urNad procps-3.2.7~/uptime.1 procps-3.2.7/uptime.1 +.I /var/run/utmp +information about who is currently logged on +.TP -+.I /proc ++.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/10_vmstat.8.dpatch b/patches/procps-3.2.8/0017-vmstat.8.patch index f3cca9627..af404a7db 100644 --- a/patches/procps-3.2.8/10_vmstat.8.dpatch +++ b/patches/procps-3.2.8/0017-vmstat.8.patch @@ -1,14 +1,17 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_vmstat.8.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Fixes groff problems -## DP: Removes pslab as it doesnt appear +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 -@DPATCH@ -diff -urNad procps-3.2.7~/vmstat.8 procps-3.2.7/vmstat.8 ---- procps-3.2.7~/vmstat.8 2009-01-08 10:26:34.000000000 +1100 -+++ procps-3.2.7/vmstat.8 2009-01-09 12:23:21.000000000 +1100 +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. @@ -17,7 +20,7 @@ diff -urNad procps-3.2.7~/vmstat.8 procps-3.2.7/vmstat.8 .SH NAME vmstat \- Report virtual memory statistics .SH SYNOPSIS -@@ -22,32 +22,35 @@ +@@ -22,32 +22,35 @@ vmstat \- Report virtual memory statistics .RB [ "\-d"] .br .B vmstat @@ -59,27 +62,27 @@ diff -urNad procps-3.2.7~/vmstat.8 procps-3.2.7/vmstat.8 and memory statistics. This display does not repeat. .PP .I delay -@@ -58,13 +61,15 @@ +@@ -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) ++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-D\fP reports some summary statistics about disk activity. ++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\-p\fP followed by some partition name for detailed statistics (2.5.70 or above required) ++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\-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. .PP .SH FIELD DESCRIPTION FOR VM MODE .SS -@@ -81,8 +86,8 @@ +@@ -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. @@ -90,7 +93,7 @@ diff -urNad procps-3.2.7~/vmstat.8 procps-3.2.7/vmstat.8 .fi .PP .SS -@@ -110,9 +115,9 @@ +@@ -110,9 +115,9 @@ cs: The number of context switches per second. .B "CPU " These are percentages of total CPU time. .nf @@ -102,7 +105,7 @@ diff -urNad procps-3.2.7~/vmstat.8 procps-3.2.7/vmstat.8 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 @@ +@@ -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 @@ -111,3 +114,6 @@ diff -urNad procps-3.2.7~/vmstat.8 procps-3.2.7/vmstat.8 .fi .SH NOTES +-- +1.7.0 + diff --git a/patches/procps-3.2.8/10_watch.1.dpatch b/patches/procps-3.2.8/0018-watch.1.patch index d0666a7b5..43a790193 100644 --- a/patches/procps-3.2.8/10_watch.1.dpatch +++ b/patches/procps-3.2.8/0018-watch.1.patch @@ -1,14 +1,17 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_watch.1.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Cleanup of manual page -## DP: cumulative is a parameter not option #527193 +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 -@DPATCH@ -diff -urNad procps-3.2.8~/watch.1 procps-3.2.8/watch.1 ---- procps-3.2.8~/watch.1 2009-05-11 22:40:13.000000000 +1000 -+++ procps-3.2.8/watch.1 2009-05-11 22:46:33.000000000 +1000 +=================================================================== +--- + 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" @@ -79,7 +82,7 @@ diff -urNad procps-3.2.8~/watch.1 procps-3.2.8/watch.1 .I command don't get interpreted by .BR watch -@@ -61,20 +70,20 @@ +@@ -61,20 +70,20 @@ watch \-d 'ls \-l | fgrep joe' To see the effects of quoting, try these out .IP watch echo $$ @@ -104,3 +107,6 @@ diff -urNad procps-3.2.8~/watch.1 procps-3.2.8/watch.1 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 new file mode 100644 index 000000000..1320cbe19 --- /dev/null +++ b/patches/procps-3.2.8/0019-w_time.patch @@ -0,0 +1,26 @@ +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/20_kill.1.dpatch b/patches/procps-3.2.8/0020-kill.1.patch index 25727d7e2..217a5499a 100644 --- a/patches/procps-3.2.8/20_kill.1.dpatch +++ b/patches/procps-3.2.8/0020-kill.1.patch @@ -1,31 +1,18 @@ -#! /bin/sh -e -## 20_kill.1.dpatch by Craig Small <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Fix kill.1 manual page -## DP: Changed may to cannot or might #375739 +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 -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" +Changed may to cannot or might +Bug-Debian: http://bugs.debian.org/375739 +--- + kill.1 | 86 +++++++++++++++++++++++++++------------------------------------ + 1 files changed, 37 insertions(+), 49 deletions(-) -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argum -ent" - exit 1;; -esac - -exit 0 -@DPATCH@ -diff -urNad procps-3.2.7~/kill.1 procps-3.2.7/kill.1 ---- procps-3.2.7~/kill.1 2009-01-09 17:04:24.000000000 +1100 -+++ procps-3.2.7/kill.1 2009-01-09 17:11:37.000000000 +1100 +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 @@ -58,7 +45,7 @@ diff -urNad procps-3.2.7~/kill.1 procps-3.2.7/kill.1 all processes except the kill process itself and init. .SH SIGNALS -@@ -37,12 +32,11 @@ +@@ -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 @@ -72,7 +59,7 @@ diff -urNad procps-3.2.7~/kill.1 procps-3.2.7/kill.1 PIPE 13 exit POLL exit PROF exit -@@ -50,15 +44,15 @@ +@@ -50,15 +44,15 @@ TERM 15 exit USR1 exit USR2 exit VTALRM exit @@ -94,7 +81,7 @@ diff -urNad procps-3.2.7~/kill.1 procps-3.2.7/kill.1 CONT restart continue if stopped, otherwise ignore ABRT 6 core FPE 8 core -@@ -66,11 +60,11 @@ +@@ -66,11 +60,11 @@ ILL 4 core QUIT 3 core SEGV 11 core TRAP 5 core @@ -111,7 +98,7 @@ diff -urNad procps-3.2.7~/kill.1 procps-3.2.7/kill.1 .TE .SH NOTES -@@ -79,36 +73,30 @@ +@@ -79,36 +73,30 @@ You may need to run the command described here as /bin/kill to solve the conflict. .SH EXAMPLES @@ -165,3 +152,6 @@ diff -urNad procps-3.2.7~/kill.1 procps-3.2.7/kill.1 .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/20_kill_warncr.dpatch b/patches/procps-3.2.8/0021-kill_warncr.patch index 9efeff1e2..f48ba80d1 100644 --- a/patches/procps-3.2.8/20_kill_warncr.dpatch +++ b/patches/procps-3.2.8/0021-kill_warncr.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 20_kill_warncr.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Add CR to warning line #331419 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/skill.c procps-3.2.7/skill.c ---- procps-3.2.7~/skill.c 2004-09-09 23:49:38.000000000 +1000 -+++ procps-3.2.7/skill.c 2006-06-26 22:40:17.000000000 +1000 -@@ -128,7 +128,7 @@ +=================================================================== +--- + 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 */ @@ -17,7 +21,7 @@ diff -urNad procps-3.2.7~/skill.c procps-3.2.7/skill.c return; } fstat(fd, &statbuf); -@@ -333,7 +333,7 @@ +@@ -342,7 +342,7 @@ static void skillsnice_usage(void){ }else{ fprintf(stderr, "Usage: snice [new priority] [options] process selection criteria\n" @@ -26,3 +30,6 @@ diff -urNad procps-3.2.7~/skill.c procps-3.2.7/skill.c "\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 new file mode 100644 index 000000000..975e29104 --- /dev/null +++ b/patches/procps-3.2.8/0022-module_mk_shared.patch @@ -0,0 +1,26 @@ +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 new file mode 100644 index 000000000..ec03cd49d --- /dev/null +++ b/patches/procps-3.2.8/0023-sysinfo_elfnote.patch @@ -0,0 +1,32 @@ +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/20_top_manpage.dpatch b/patches/procps-3.2.8/0024-top.1.patch index 901f580f2..b636ff49f 100644 --- a/patches/procps-3.2.8/20_top_manpage.dpatch +++ b/patches/procps-3.2.8/0024-top.1.patch @@ -1,32 +1,18 @@ -#! /bin/sh -e -## 20_top_manpage by Randy Hron -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Fix bold in top manual page -## DP: Fix page fault description because storage may not be disk -## DP{ Used NE and not ME as a defined as it clashes wirh something +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 -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" +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(-) -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argum -ent" - exit 1;; -esac - -exit 0 -@DPATCH@ -diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 ---- procps-3.2.7~/top.1 2009-01-09 17:45:51.000000000 +1100 -+++ procps-3.2.7/top.1 2009-01-09 18:07:32.000000000 +1100 +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 @@ -36,7 +22,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 \# - other misc strings for consistent usage/emphasis .ds F \fIOff\fR .ds O \fIOn\fR -@@ -85,7 +85,7 @@ +@@ -85,7 +85,7 @@ top \- display Linux tasks .\" ---------------------------------------------------------------------- .SH SYNOPSIS .\" ---------------------------------------------------------------------- @@ -45,7 +31,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 iterations\fR \-\fBp\fI pid\fR [,\fI pid\fR ...] The traditional switches '-' and whitespace are optional. -@@ -94,7 +94,7 @@ +@@ -94,7 +94,7 @@ The traditional switches '-' and whitespace are optional. .\" ---------------------------------------------------------------------- .SH DESCRIPTION .\" ---------------------------------------------------------------------- @@ -54,7 +40,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -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. @@ -63,7 +49,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -190,7 +190,7 @@ command-line. 'I' - Irix mode On\ \ (no, 'solaris' smp) * 'p' - PID monitoring Off * 's' - Secure mode Off (unsecured) @@ -72,7 +58,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 \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 @@ +@@ -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. @@ -91,7 +77,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 the 'data resident set' size or DRS. .TP 3 -@@ -436,8 +434,8 @@ +@@ -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. @@ -102,7 +88,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 .TP 3 v:\fB nDRT\fR \*(EM Dirty Pages count -@@ -504,7 +502,7 @@ +@@ -504,7 +502,7 @@ and 'Order fields' screens. .\" ...................................................................... .SS 2b. SELECTING and ORDERING Columns .\" ---------------------------------------------------------------------- @@ -111,7 +97,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 be shown a screen containing the current \fBfields string\fR followed by names and descriptions for all fields. -@@ -580,7 +578,7 @@ +@@ -580,7 +578,7 @@ Use either of these keys if you have a large delay interval and wish to see current status, .TP 7 @@ -120,7 +106,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -589,7 +587,7 @@ Typing 'h' or '?' on that help screen will take you to help for those \*(CIs applicable to \*(AM. .TP 7 @@ -129,7 +115,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -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 @@ -147,7 +133,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -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 @@ -156,7 +142,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 You will be prompted to enter the delay time, in seconds, between display updates. -@@ -631,32 +629,32 @@ +@@ -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 @@ -194,7 +180,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -667,24 +665,24 @@ depending on your progress: 2) at the signal prompt, type 0 .TP 7 @@ -223,7 +209,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -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. @@ -255,7 +241,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -750,12 +748,12 @@ global 'B' (bold disable) toggle. .in .TP 7 @@ -270,7 +256,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -765,7 +763,7 @@ If you forget which field is being sorted this command can serve as a quick visual reminder. .TP 7 @@ -279,7 +265,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 Changes highlighting for "running" tasks. For additional insight into this task state, \*(Xt 2a. DESCRIPTIONS of Fields, Process Status. -@@ -774,7 +772,7 @@ +@@ -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 @@ -288,7 +274,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -785,20 +783,20 @@ state of the 'x', 'y' or 'b' toggles. .B CONTENT\fR of \*(TW .PD 0 .TP 7 @@ -312,7 +298,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -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 @@ -321,7 +307,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -831,7 +829,7 @@ just press <Enter> at the prompt, without providing a name. .B SIZE\fR of \*(TW .PD 0 .TP 7 @@ -330,7 +316,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 Displays all tasks or just active tasks. When this toggle is \*F, idled or zombied processes will not be displayed. -@@ -839,7 +837,7 @@ +@@ -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 @@ -339,7 +325,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -878,12 +876,12 @@ The sort field might\fI not\fR be visible because: .in .TP 7 @@ -354,7 +340,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 Moves the sort column to the right unless the current sort field is the last field being displayed. -@@ -894,7 +892,7 @@ +@@ -894,7 +892,7 @@ the current sort field is visible. .in .TP 7 @@ -363,7 +349,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 These keys display a separate screen where you can change which field is used as the sort column. -@@ -907,7 +905,7 @@ +@@ -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 @@ -372,7 +358,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 Using this \*(CI you can alternate between high-to-low and low-to-high sorts. .PP -@@ -984,7 +982,7 @@ +@@ -984,7 +982,7 @@ know what window is the \*(CW. .\" ...................................................................... .SS 4b. COMMANDS for Windows .TP 7 @@ -381,7 +367,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -998,7 +996,7 @@ If all 4 \*(TDs are currently visible, this \*(CI will leave the \*(SA as the only display element. .TP 7 @@ -390,7 +376,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -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 @@ -399,7 +385,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -1017,7 +1015,7 @@ Thereafter when you switch modes, you will see only the \*(TD(s) you've chosen to make visible. .TP 7 @@ -408,7 +394,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -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 @@ -417,7 +403,7 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 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 @@ +@@ -1037,15 +1035,15 @@ In \*(AM, it is simply a less convenient alternative to the 'a' and 'w' commands. .TP 7 @@ -436,3 +422,6 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 .\" ---------------------------------------------------------------------- +-- +1.7.0 + diff --git a/patches/procps-3.2.8/20_top_c_resize.dpatch b/patches/procps-3.2.8/0025-top_c_resize.patch index 4cc9c6c51..38a58df16 100644 --- a/patches/procps-3.2.8/20_top_c_resize.dpatch +++ b/patches/procps-3.2.8/0025-top_c_resize.patch @@ -1,13 +1,19 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 20top_resize_terminal.dpatch by <hesso@pool.math.tu-berlin.de> -## -## DP: Prevent top from segfaulting when the display is shrinked to only -## DP: a few (read: 3 or less) lines. +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 -@DPATCH@ ---- procps-3.2.7.orig/top.c 2006-06-25 08:41:48.000000000 +0200 -+++ procps-3.2.7/top.c 2007-08-06 03:27:28.000000000 +0200 -@@ -140,7 +140,7 @@ +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. */ @@ -16,7 +22,7 @@ static int Pseudo_row, Pseudo_cols, Pseudo_size; #ifndef STDOUT_IOLBF // less than stdout's normal buffer but with luck mostly '\n' anyway -@@ -2415,7 +2415,10 @@ +@@ -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; @@ -28,7 +34,7 @@ // force rebuild of column headers AND libproc/readproc requirements Frames_libflags = 0; -@@ -3289,7 +3292,7 @@ +@@ -3315,7 +3318,7 @@ static void frame_make (void) // reframewins(), who also builds each window's column headers if (!Frames_libflags) { reframewins(); @@ -37,9 +43,11 @@ } Pseudo_row = Msg_row = scrlins = 0; ppt = summary_show(); ---- procps-3.2.7.orig/top.h 2006-06-25 08:41:48.000000000 +0200 -+++ procps-3.2.7/top.h 2007-08-06 03:27:28.000000000 +0200 -@@ -135,7 +135,7 @@ +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 : \ ({ \ @@ -48,7 +56,7 @@ memcmp(_pse, _str, _len) ? memcpy(_pse, _str, _len) : "\n"; \ }) \ ); \ -@@ -149,7 +149,11 @@ +@@ -149,7 +149,11 @@ do { \ int _len = 1 + snprintf(_str, sizeof(_str), fmt, ## arg); \ if (Batch) _ptr = _str; \ else { \ @@ -61,7 +69,7 @@ if (memcmp(_ptr, _str, _len)) { \ memcpy(_ptr, _str, _len); \ } else { \ -@@ -237,6 +241,11 @@ +@@ -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; @@ -73,3 +81,6 @@ // 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/20_w-bassman.dpatch b/patches/procps-3.2.8/0026-w-bassman.patch index cc68ab72a..f82be150e 100644 --- a/patches/procps-3.2.8/20_w-bassman.dpatch +++ b/patches/procps-3.2.8/0026-w-bassman.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 20_w-bassman.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: w-bassman emulation with -o flag -## DP: Was from #45947, corrected for #414906 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/w.1 procps-3.2.7/w.1 ---- procps-3.2.7~/w.1 2009-01-09 16:24:17.000000000 +1100 -+++ procps-3.2.7/w.1 2009-01-09 16:24:55.000000000 +1100 +=================================================================== +--- + 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 @@ -18,7 +22,7 @@ diff -urNad procps-3.2.7~/w.1 procps-3.2.7/w.1 .RI [ user ] .SH DESCRIPTION .B "w " -@@ -55,6 +55,9 @@ +@@ -55,6 +55,9 @@ field is shown by default. .B "\-V " Display version information. .TP 0.5i @@ -28,9 +32,10 @@ diff -urNad procps-3.2.7~/w.1 procps-3.2.7/w.1 .B "user " Show information about the specified user only. -diff -urNad procps-3.2.7~/w.c procps-3.2.7/w.c ---- procps-3.2.7~/w.c 2009-01-09 16:24:54.000000000 +1100 -+++ procps-3.2.7/w.c 2009-01-09 16:25:39.000000000 +1100 +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> @@ -39,7 +44,7 @@ diff -urNad procps-3.2.7~/w.c procps-3.2.7/w.c static proc_t **procs; /* our snapshot of the process table */ typedef struct utmp utmp_t; -@@ -76,6 +77,16 @@ +@@ -76,6 +77,16 @@ static void print_time_ival7(time_t t, int centi_sec, FILE* fout) { printf(" ? "); return; } @@ -56,7 +61,7 @@ diff -urNad procps-3.2.7~/w.c procps-3.2.7/w.c 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 @@ +@@ -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); @@ -64,7 +69,7 @@ diff -urNad procps-3.2.7~/w.c procps-3.2.7/w.c } /**** stat the device file to get an idle time */ -@@ -239,7 +251,7 @@ +@@ -239,7 +251,7 @@ int main(int argc, char **argv) { #endif setlocale(LC_ALL, ""); @@ -73,7 +78,7 @@ diff -urNad procps-3.2.7~/w.c procps-3.2.7/w.c switch (ch) { case 'h': header = 0; break; case 'l': longform = 1; break; -@@ -247,6 +259,7 @@ +@@ -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; @@ -81,7 +86,7 @@ diff -urNad procps-3.2.7~/w.c procps-3.2.7/w.c default: printf("usage: w -hlsufV [user]\n" " -h skip header\n" -@@ -254,6 +267,7 @@ +@@ -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" @@ -89,3 +94,6 @@ diff -urNad procps-3.2.7~/w.c procps-3.2.7/w.c " -V display version\n", FROM_STRING); exit(1); } +-- +1.7.0 + diff --git a/patches/procps-3.2.8/30_top.1_cpustate.dpatch b/patches/procps-3.2.8/0027-top.1_cpustates.patch index 24f603ac8..ce3374e20 100644 --- a/patches/procps-3.2.8/30_top.1_cpustate.dpatch +++ b/patches/procps-3.2.8/0027-top.1_cpustates.patch @@ -1,21 +1,25 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 30_top.1_cpustate.dpatch by <csmall@localhost.localdomain> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: top CPU state descriptions +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 -@DPATCH@ -diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 ---- procps-3.2.7~/top.1 2007-10-04 22:35:09.000000000 +1000 -+++ procps-3.2.7/top.1 2007-10-04 22:36:45.000000000 +1000 -@@ -539,6 +539,42 @@ +=================================================================== +--- + 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 ++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 @@ -51,3 +55,6 @@ diff -urNad procps-3.2.7~/top.1 procps-3.2.7/top.1 .\" ---------------------------------------------------------------------- .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 new file mode 100644 index 000000000..2b3c47356 --- /dev/null +++ b/patches/procps-3.2.8/0028-watch_8bitchar.patch @@ -0,0 +1,26 @@ +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 new file mode 100644 index 000000000..a949d44b5 --- /dev/null +++ b/patches/procps-3.2.8/0029-library_map_freeproc.patch @@ -0,0 +1,26 @@ +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 new file mode 100644 index 000000000..d97c0768e --- /dev/null +++ b/patches/procps-3.2.8/0030-pgrep_start_time.patch @@ -0,0 +1,27 @@ +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 new file mode 100644 index 000000000..89c945516 --- /dev/null +++ b/patches/procps-3.2.8/0031-readproc_c.patch @@ -0,0 +1,35 @@ +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/30_sysinfo_7numbers.dpatch b/patches/procps-3.2.8/0032-sysinfo_7_numbers.patch index b3c95fb16..9d7da0e28 100644 --- a/patches/procps-3.2.8/30_sysinfo_7numbers.dpatch +++ b/patches/procps-3.2.8/0032-sysinfo_7_numbers.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 30_sysctl_7numbers.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Adds up 7 cpu numbers not 4; #460331 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/proc/sysinfo.c procps-3.2.7/proc/sysinfo.c ---- procps-3.2.7~/proc/sysinfo.c 2008-08-10 10:13:50.000000000 +1000 -+++ procps-3.2.7/proc/sysinfo.c 2008-08-10 10:13:50.000000000 +1000 -@@ -122,24 +122,25 @@ +=================================================================== +--- + 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){ @@ -37,3 +41,6 @@ diff -urNad procps-3.2.7~/proc/sysinfo.c procps-3.2.7/proc/sysinfo.c 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 new file mode 100644 index 000000000..4f8283df0 --- /dev/null +++ b/patches/procps-3.2.8/0033-tload_no_optargs.patch @@ -0,0 +1,27 @@ +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/30_w.1.dpatch b/patches/procps-3.2.8/0034-w.1.patch index f92b89ea4..6d9aa0330 100644 --- a/patches/procps-3.2.8/30_w.1.dpatch +++ b/patches/procps-3.2.8/0034-w.1.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 30_w.1.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Cleaned up the w man page -## DP: Make note of the time formats #414906 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/w.1 procps-3.2.7/w.1 ---- procps-3.2.7~/w.1 2009-01-09 16:26:36.000000000 +1100 -+++ procps-3.2.7/w.1 2009-01-09 16:33:16.000000000 +1100 +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. @@ -42,7 +46,7 @@ diff -urNad procps-3.2.7~/w.1 procps-3.2.7/w.1 The PCPU time is the time used by the current process, named in the "what" field. -@@ -35,7 +35,7 @@ +@@ -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 @@ -51,17 +55,17 @@ diff -urNad procps-3.2.7~/w.1 procps-3.2.7/w.1 .TP 0.5i .B "\-s " Use the short format. -@@ -70,6 +70,19 @@ +@@ -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 ++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 ++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 @@ -71,3 +75,6 @@ diff -urNad procps-3.2.7~/w.1 procps-3.2.7/w.1 .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 new file mode 100644 index 000000000..1ad19bdcb --- /dev/null +++ b/patches/procps-3.2.8/0035-w_columns.patch @@ -0,0 +1,41 @@ +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/30_watch_exec_beep.dpatch b/patches/procps-3.2.8/0036-watch_exec_beep.patch index 481445a99..8099e4ae9 100644 --- a/patches/procps-3.2.8/30_watch_exec_beep.dpatch +++ b/patches/procps-3.2.8/0036-watch_exec_beep.patch @@ -1,15 +1,23 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 30_watch_exec_beep.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Adds -exec and -beep flags and has better quoting #410967 -## DP: Adds -errexit flag now too #183346 +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 -@DPATCH@ -diff -urNad procps-3.2.8~/watch.1 procps-3.2.8/watch.1 ---- procps-3.2.8~/watch.1 2009-05-28 17:27:41.000000000 +1000 -+++ procps-3.2.8/watch.1 2009-05-28 17:28:28.000000000 +1000 -@@ -4,10 +4,13 @@ +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 @@ -24,24 +32,24 @@ diff -urNad procps-3.2.8~/watch.1 procps-3.2.8/watch.1 .RB [ \-\-help ] .RB [ \-\-interval=\fIseconds\fP] .RB [ \-\-no\-title ] -@@ -17,7 +20,8 @@ +@@ -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 ++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 @@ +@@ -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 ++or +.I \-\-beep +option causes the command to beep if it has a non-zero exit. .PP @@ -53,7 +61,7 @@ diff -urNad procps-3.2.8~/watch.1 procps-3.2.8/watch.1 +.I \-e +or +.I \-\-errexit -+options, which will cause ++options, which will cause +.B watch +to exit if the return value from the program is non-zero. + @@ -62,24 +70,25 @@ diff -urNad procps-3.2.8~/watch.1 procps-3.2.8/watch.1 .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 ++You can disable this with the +.I -x -+or ++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 @@ +@@ -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 ++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 -urNad procps-3.2.8~/watch.c procps-3.2.8/watch.c ---- procps-3.2.8~/watch.c 2009-05-28 17:27:41.000000000 +1000 -+++ procps-3.2.8/watch.c 2009-05-28 17:27:42.000000000 +1000 +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>. * @@ -88,7 +97,7 @@ diff -urNad procps-3.2.8~/watch.c procps-3.2.8/watch.c */ #define VERSION "0.2.0" -@@ -35,13 +36,16 @@ +@@ -35,13 +36,16 @@ static struct option longopts[] = { {"differences", optional_argument, 0, 'd'}, {"help", no_argument, 0, 'h'}, {"interval", required_argument, 0, 'n'}, @@ -106,7 +115,7 @@ diff -urNad procps-3.2.8~/watch.c procps-3.2.8/watch.c static char *progname; -@@ -140,28 +144,44 @@ +@@ -140,28 +144,44 @@ main(int argc, char *argv[]) int optc; int option_differences = 0, option_differences_cumulative = 0, @@ -152,7 +161,7 @@ diff -urNad procps-3.2.8~/watch.c procps-3.2.8/watch.c case 'n': { char *str; -@@ -191,18 +211,23 @@ +@@ -191,18 +211,23 @@ main(int argc, char *argv[]) if (option_help) { fprintf(stderr, usage, progname); @@ -176,7 +185,7 @@ diff -urNad procps-3.2.8~/watch.c procps-3.2.8/watch.c command = strdup(argv[optind++]); command_length = strlen(command); for (; optind < argc; optind++) { -@@ -261,11 +286,57 @@ +@@ -261,11 +286,57 @@ main(int argc, char *argv[]) free(header); } @@ -236,7 +245,7 @@ diff -urNad procps-3.2.8~/watch.c procps-3.2.8/watch.c for (y = show_title; y < height; y++) { int eolseen = 0, tabpending = 0; for (x = 0; x < width; x++) { -@@ -313,7 +384,19 @@ +@@ -313,7 +384,19 @@ main(int argc, char *argv[]) oldeolseen = eolseen; } @@ -257,3 +266,6 @@ diff -urNad procps-3.2.8~/watch.c procps-3.2.8/watch.c first_screen = 0; refresh(); +-- +1.7.0 + diff --git a/patches/procps-3.2.8/35_path_max.dpatch b/patches/procps-3.2.8/0037-path_max.patch index 9ab50a012..986846c90 100644 --- a/patches/procps-3.2.8/35_path_max.dpatch +++ b/patches/procps-3.2.8/0037-path_max.patch @@ -1,14 +1,19 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 35_path_max.dpatch by Madhusudan.C.S <madhusudancs@gmail.com> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Uses alloc instead of fixed PATH_MAX value #496274 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/proc/readproc.c procps-3.2.7/proc/readproc.c ---- procps-3.2.7~/proc/readproc.c 2008-09-09 15:01:09.000000000 +1000 -+++ procps-3.2.7/proc/readproc.c 2008-09-09 15:01:36.000000000 +1000 -@@ -1034,7 +1034,7 @@ +=================================================================== +--- + 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) { @@ -17,10 +22,11 @@ diff -urNad procps-3.2.7~/proc/readproc.c procps-3.2.7/proc/readproc.c struct stat statbuf; sprintf(path, "/proc/%d", pid); -diff -urNad procps-3.2.7~/pwdx.c procps-3.2.7/pwdx.c ---- procps-3.2.7~/pwdx.c 2006-06-17 19:29:06.000000000 +1000 -+++ procps-3.2.7/pwdx.c 2009-03-11 19:56:58.466099226 +0100 -@@ -35,7 +35,6 @@ +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[]) { @@ -28,7 +34,7 @@ diff -urNad procps-3.2.7~/pwdx.c procps-3.2.7/pwdx.c regex_t re; int i; -@@ -59,6 +58,7 @@ +@@ -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) { @@ -36,7 +42,7 @@ diff -urNad procps-3.2.7~/pwdx.c procps-3.2.7/pwdx.c snprintf(buf, sizeof buf, "pwdx: invalid process id: %s\n", argv[i]); die(buf); } -@@ -68,9 +68,13 @@ +@@ -68,9 +68,13 @@ int main(int argc, char* argv[]) regfree(&re); @@ -51,7 +57,8 @@ diff -urNad procps-3.2.7~/pwdx.c procps-3.2.7/pwdx.c // At this point, all arguments are in the form /proc/nnnn // or nnnn, so a simple check based on the first char is -@@ -83,13 +87,21 @@ +@@ -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) { @@ -67,11 +74,14 @@ diff -urNad procps-3.2.7~/pwdx.c procps-3.2.7/pwdx.c + 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 new file mode 100644 index 000000000..501e86a69 --- /dev/null +++ b/patches/procps-3.2.8/0038-w_envlength.patch @@ -0,0 +1,183 @@ +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/40_gnu-kbsd-version.dpatch b/patches/procps-3.2.8/0039-gnu-kbsd-version.patch index 79c3ff991..01f0417c8 100644 --- a/patches/procps-3.2.8/40_gnu-kbsd-version.dpatch +++ b/patches/procps-3.2.8/0039-gnu-kbsd-version.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 40_gnu-kbsd-version.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Rework version parsing so its ok with other OSes +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 -@DPATCH@ -diff -urNad procps-3.2.7~/proc/version.c procps-3.2.7/proc/version.c ---- procps-3.2.7~/proc/version.c 2006-06-27 08:55:32.000000000 +1000 -+++ procps-3.2.7/proc/version.c 2006-06-27 09:02:25.000000000 +1000 -@@ -35,15 +35,23 @@ +=================================================================== +--- + 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) { @@ -38,3 +42,6 @@ diff -urNad procps-3.2.7~/proc/version.c procps-3.2.7/proc/version.c + 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/40_pgrep_coption.dpatch b/patches/procps-3.2.8/0040-pgrep_c_option.patch index 2a3be153a..76f2bb601 100644 --- a/patches/procps-3.2.8/40_pgrep_coption.dpatch +++ b/patches/procps-3.2.8/0040-pgrep_c_option.patch @@ -1,13 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 40_pgrep-coption.dpatch by <csmall@localhost.localdomain> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: c option for pgrep for counting number of matched proceesses +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 -@DPATCH@ -diff -urNad procps-3.2.8~/pgrep.1 procps-3.2.8/pgrep.1 ---- procps-3.2.8~/pgrep.1 2009-05-11 22:23:42.000000000 +1000 -+++ procps-3.2.8/pgrep.1 2009-05-11 22:24:14.000000000 +1000 +=================================================================== +--- + 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 @@ -17,7 +22,7 @@ diff -urNad procps-3.2.8~/pgrep.1 procps-3.2.8/pgrep.1 .br [\-s \fIsid\fP,...] [\-u \fIeuid\fP,...] [\-U \fIuid\fP,...] [\-G \fIgid\fP,...] .br -@@ -38,6 +38,9 @@ +@@ -38,6 +38,9 @@ to each process instead of listing them on stdout. .SH OPTIONS .TP @@ -27,10 +32,11 @@ diff -urNad procps-3.2.8~/pgrep.1 procps-3.2.8/pgrep.1 \-d \fIdelimiter\fP Sets the string used to delimit each process ID in the output (by default a newline). (\fBpgrep\fP only.) -diff -urNad procps-3.2.8~/pgrep.c procps-3.2.8/pgrep.c ---- procps-3.2.8~/pgrep.c 2009-05-11 22:24:14.000000000 +1000 -+++ procps-3.2.8/pgrep.c 2009-05-11 22:25:40.000000000 +1000 -@@ -54,6 +54,7 @@ +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; @@ -38,7 +44,7 @@ diff -urNad procps-3.2.8~/pgrep.c procps-3.2.8/pgrep.c static int opt_signal = SIGTERM; static int opt_lock = 0; static int opt_case = 0; -@@ -79,7 +80,7 @@ +@@ -79,7 +80,7 @@ static int usage (int opt) if (i_am_pkill) fprintf (fp, "Usage: pkill [-SIGNAL] [-fvx] "); else @@ -47,7 +53,7 @@ diff -urNad procps-3.2.8~/pgrep.c procps-3.2.8/pgrep.c 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 @@ +@@ -565,7 +566,7 @@ static void parse_opts (int argc, char **argv) strcat (opts, "ld:"); } @@ -56,7 +62,7 @@ diff -urNad procps-3.2.8~/pgrep.c procps-3.2.8/pgrep.c while ((opt = getopt (argc, argv, opts)) != -1) { switch (opt) { -@@ -613,6 +614,9 @@ +@@ -613,6 +614,9 @@ static void parse_opts (int argc, char **argv) exit(EXIT_SUCCESS); // case 'c': // Solaris: match by contract ID // break; @@ -66,7 +72,7 @@ diff -urNad procps-3.2.8~/pgrep.c procps-3.2.8/pgrep.c case 'd': // Solaris: change the delimiter opt_delim = strdup (optarg); break; -@@ -724,10 +728,14 @@ +@@ -724,10 +728,14 @@ int main (int argc, char *argv[]) procs[i].num, strerror (errno)); } } else { @@ -85,3 +91,6 @@ diff -urNad procps-3.2.8~/pgrep.c procps-3.2.8/pgrep.c } return !num; // exit(EXIT_SUCCESS) if match, otherwise exit(EXIT_FAILURE) } +-- +1.7.0 + diff --git a/patches/procps-3.2.8/40_ps_cgroup_display.dpatch b/patches/procps-3.2.8/0041-ps_cgroup_display.patch index 93f4a8767..3e1a34677 100644 --- a/patches/procps-3.2.8/40_ps_cgroup_display.dpatch +++ b/patches/procps-3.2.8/0041-ps_cgroup_display.patch @@ -1,14 +1,21 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 40_ps_cgroup_display.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: ps displays cgroup #469669 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/proc/readproc.c procps-3.2.7/proc/readproc.c ---- procps-3.2.7~/proc/readproc.c 2009-01-07 18:20:19.000000000 +1100 -+++ procps-3.2.7/proc/readproc.c 2009-01-07 18:24:51.000000000 +1100 -@@ -598,6 +598,17 @@ +=================================================================== +--- + 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; @@ -26,7 +33,7 @@ diff -urNad procps-3.2.7~/proc/readproc.c procps-3.2.7/proc/readproc.c return p; next_proc: -@@ -686,7 +697,7 @@ +@@ -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 @@ -35,7 +42,7 @@ diff -urNad procps-3.2.7~/proc/readproc.c procps-3.2.7/proc/readproc.c t->ppid = p->ppid; // ought to put the per-task ppid somewhere return t; -@@ -896,6 +907,8 @@ +@@ -896,6 +907,8 @@ void freeproc(proc_t* p) { free((void*)*p->cmdline); if (p->environ) free((void*)*p->environ); @@ -44,10 +51,11 @@ diff -urNad procps-3.2.7~/proc/readproc.c procps-3.2.7/proc/readproc.c free(p); } -diff -urNad procps-3.2.7~/proc/readproc.h procps-3.2.7/proc/readproc.h ---- procps-3.2.7~/proc/readproc.h 2006-06-16 18:01:21.000000000 +1000 -+++ procps-3.2.7/proc/readproc.h 2009-01-07 18:24:56.000000000 +1100 -@@ -139,6 +139,7 @@ +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 @@ -55,7 +63,7 @@ diff -urNad procps-3.2.7~/proc/readproc.h procps-3.2.7/proc/readproc.h } proc_t; // PROCTAB: data structure holding the persistent information readproc needs -@@ -239,6 +240,8 @@ +@@ -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 @@ -64,10 +72,11 @@ diff -urNad procps-3.2.7~/proc/readproc.h procps-3.2.7/proc/readproc.h // 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 -urNad procps-3.2.7~/ps/display.c procps-3.2.7/ps/display.c ---- procps-3.2.7~/ps/display.c 2005-01-06 10:44:37.000000000 +1100 -+++ procps-3.2.7/ps/display.c 2009-01-07 18:24:32.000000000 +1100 -@@ -223,8 +223,7 @@ +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) @@ -77,7 +86,7 @@ diff -urNad procps-3.2.7~/ps/display.c procps-3.2.7/ps/display.c /***** munge lists and determine openproc() flags */ static void lists_and_needs(void){ check_headers(); -@@ -342,6 +341,7 @@ +@@ -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 @@ -85,7 +94,7 @@ diff -urNad procps-3.2.7~/ps/display.c procps-3.2.7/ps/display.c } break; case TF_show_proc|TF_loose_tasks: // H option -@@ -354,6 +354,7 @@ +@@ -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 @@ -93,7 +102,7 @@ diff -urNad procps-3.2.7~/ps/display.c procps-3.2.7/ps/display.c } break; case TF_show_proc|TF_show_task: // m and -m options -@@ -366,7 +367,8 @@ +@@ -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 @@ -103,7 +112,7 @@ diff -urNad procps-3.2.7~/ps/display.c procps-3.2.7/ps/display.c break; case TF_show_task: // -L and -T options while(readproc(ptp,&buf)){ -@@ -377,7 +379,8 @@ +@@ -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 @@ -113,17 +122,18 @@ diff -urNad procps-3.2.7~/ps/display.c procps-3.2.7/ps/display.c break; } closeproc(ptp); -diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c ---- procps-3.2.7~/ps/output.c 2006-06-19 09:27:02.000000000 +1000 -+++ procps-3.2.7/ps/output.c 2009-01-07 18:24:43.000000000 +1100 -@@ -359,6 +359,26 @@ +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; ++ int rightward=max_rightward; + if(forest_prefix){ + int fh = forest_helper(outbuf); + endp += fh; @@ -135,7 +145,7 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c + endp += escape_str(endp, *pp->cgroup, OUTBUF_SIZE, &rightward); + } + return max_rightward-rightward; -+ } ++ } + else + return pr_nop(outbuf,pp); +} @@ -143,7 +153,7 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c /* "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; -@@ -1248,7 +1268,7 @@ +@@ -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 */ @@ -152,7 +162,7 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c /* TODO * pull out annoying BSD aliases into another table (to macro table?) * add sorting functions here (to unify names) -@@ -1284,6 +1304,7 @@ +@@ -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*/ @@ -160,3 +170,6 @@ diff -urNad procps-3.2.7~/ps/output.c procps-3.2.7/ps/output.c {"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/40_watch_precision_time.dpatch b/patches/procps-3.2.8/0042-watch_precision_time.patch index 16f885673..a5c047dc8 100644 --- a/patches/procps-3.2.8/40_watch_precision_time.dpatch +++ b/patches/procps-3.2.8/0042-watch_precision_time.patch @@ -1,14 +1,19 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 40_watch_precision_time.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Add precision wait time option -p #183486 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/watch.1 procps-3.2.7/watch.1 ---- procps-3.2.7~/watch.1 2009-01-11 12:27:23.000000000 +1100 -+++ procps-3.2.7/watch.1 2009-01-11 12:28:49.000000000 +1100 -@@ -4,7 +4,7 @@ +=================================================================== +--- + 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 @@ -17,7 +22,7 @@ diff -urNad procps-3.2.7~/watch.1 procps-3.2.7/watch.1 .RB [ \-n .IR seconds ] .RB [ \-\-beep ] -@@ -14,6 +14,7 @@ +@@ -14,6 +14,7 @@ watch \- execute a program periodically, showing output fullscreen .RB [ \-\-help ] .RB [ \-\-interval=\fIseconds\fP] .RB [ \-\-no\-title ] @@ -25,7 +30,7 @@ diff -urNad procps-3.2.7~/watch.1 procps-3.2.7/watch.1 .RB [ \-\-version ] .I command .SH DESCRIPTION -@@ -27,7 +28,24 @@ +@@ -27,7 +28,24 @@ every 2 seconds; use .B \-n or .B \-\-interval @@ -51,11 +56,11 @@ diff -urNad procps-3.2.7~/watch.1 procps-3.2.7/watch.1 .PP The .B \-d -@@ -97,11 +115,21 @@ +@@ -97,11 +115,21 @@ watch echo '$$' .br watch echo "'"'$$'"'" .PP -+To see the effect of precision time keeping, try adding ++To see the effect of precision time keeping, try adding +.I \-p +to +.IP @@ -74,7 +79,7 @@ diff -urNad procps-3.2.7~/watch.1 procps-3.2.7/watch.1 .SH BUGS Upon terminal resize, the screen will not be correctly repainted until the next scheduled update. All -@@ -110,6 +138,22 @@ +@@ -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. @@ -97,17 +102,18 @@ diff -urNad procps-3.2.7~/watch.1 procps-3.2.7/watch.1 .SH AUTHORS The original .B watch -@@ -117,3 +161,7 @@ +@@ -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 + 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 -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c ---- procps-3.2.7~/watch.c 2009-01-11 12:27:23.000000000 +1100 -+++ procps-3.2.7/watch.c 2009-01-11 12:28:37.000000000 +1100 +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> @@ -116,7 +122,7 @@ diff -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c #include <time.h> #include <unistd.h> #include <termios.h> -@@ -39,13 +40,14 @@ +@@ -39,13 +40,14 @@ static struct option longopts[] = { {"beep", no_argument, 0, 'b'}, {"errexit", no_argument, 0, 'e'}, {"exec", no_argument, 0, 'x'}, @@ -132,7 +138,7 @@ diff -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c static char *progname; -@@ -54,6 +56,7 @@ +@@ -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 @@ -140,7 +146,7 @@ diff -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c #define min(x,y) ((x) > (y) ? (y) : (x)) -@@ -138,6 +141,15 @@ +@@ -138,6 +141,15 @@ get_terminal_size(void) } } @@ -156,7 +162,7 @@ diff -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c int main(int argc, char *argv[]) { -@@ -152,6 +164,8 @@ +@@ -152,6 +164,8 @@ main(int argc, char *argv[]) char *command; char **command_argv; int command_length = 0; /* not including final \0 */ @@ -165,7 +171,7 @@ diff -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c int pipefd[2]; int status; pid_t child; -@@ -159,7 +173,7 @@ +@@ -159,7 +173,7 @@ main(int argc, char *argv[]) setlocale(LC_ALL, ""); progname = argv[0]; @@ -174,7 +180,7 @@ diff -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c != EOF) { switch (optc) { case 'b': -@@ -194,6 +208,9 @@ +@@ -194,6 +208,9 @@ main(int argc, char *argv[]) interval = ~0u/1000000; } break; @@ -184,7 +190,7 @@ diff -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c case 'v': option_version = 1; break; -@@ -217,6 +234,7 @@ +@@ -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); @@ -192,7 +198,7 @@ diff -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c 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 @@ +@@ -256,6 +274,9 @@ main(int argc, char *argv[]) noecho(); cbreak(); @@ -202,7 +208,7 @@ diff -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c for (;;) { time_t t = time(NULL); char *ts = ctime(&t); -@@ -400,6 +421,12 @@ +@@ -400,6 +421,12 @@ main(int argc, char *argv[]) first_screen = 0; refresh(); @@ -215,3 +221,6 @@ diff -urNad procps-3.2.7~/watch.c procps-3.2.7/watch.c 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 new file mode 100644 index 000000000..734eba6e6 --- /dev/null +++ b/patches/procps-3.2.8/0043-watch_unicode.patch @@ -0,0 +1,311 @@ +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 new file mode 100644 index 000000000..113a10375 --- /dev/null +++ b/patches/procps-3.2.8/0044-complain_unmounted_proc.patch @@ -0,0 +1,29 @@ +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 new file mode 100644 index 000000000..749ed5347 --- /dev/null +++ b/patches/procps-3.2.8/0045-ps_supgid_display.patch @@ -0,0 +1,475 @@ +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 new file mode 100644 index 000000000..4d8e92cac --- /dev/null +++ b/patches/procps-3.2.8/0046-makefile_dev_null.patch @@ -0,0 +1,25 @@ +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/50_pgrep.1.dpatch b/patches/procps-3.2.8/0047-pgrep.1.patch index 33c9e2ac4..7df5d6980 100644 --- a/patches/procps-3.2.8/50_pgrep.1.dpatch +++ b/patches/procps-3.2.8/0047-pgrep.1.patch @@ -1,14 +1,17 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 50_pgrep.1.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Cleanup pgrep manual page #282168 -## DP: Uses .BR for see also section #437678 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/pgrep.1 procps-3.2.7/pgrep.1 ---- procps-3.2.7~/pgrep.1 2008-04-07 11:22:03.000000000 +1000 -+++ procps-3.2.7/pgrep.1 2008-04-07 11:22:16.000000000 +1000 +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 @@ -24,17 +27,18 @@ diff -urNad procps-3.2.7~/pgrep.1 procps-3.2.7/pgrep.1 - [\-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] - +- -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,...] \ @@ -62,7 +66,7 @@ diff -urNad procps-3.2.7~/pgrep.1 procps-3.2.7/pgrep.1 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 @@ +@@ -38,18 +42,18 @@ to each process instead of listing them on stdout. .SH OPTIONS .TP @@ -86,7 +90,7 @@ diff -urNad procps-3.2.7~/pgrep.1 procps-3.2.7/pgrep.1 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 @@ +@@ -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 @@ -137,7 +141,7 @@ diff -urNad procps-3.2.7~/pgrep.1 procps-3.2.7/pgrep.1 Only match processes whose name (or command line if \-f is specified) \fBexactly\fP match the \fIpattern\fP. .TP -@@ -107,32 +111,40 @@ +@@ -107,32 +111,40 @@ process names or command lines. .SH EXAMPLES Example 1: Find the process ID of the \fBnamed\fP daemon: @@ -186,13 +190,13 @@ diff -urNad procps-3.2.7~/pgrep.1 procps-3.2.7/pgrep.1 Fatal error: out of memory etc. .SH NOTES -@@ -144,13 +156,19 @@ +@@ -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. ++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. @@ -209,3 +213,6 @@ diff -urNad procps-3.2.7~/pgrep.1 procps-3.2.7/pgrep.1 .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 new file mode 100644 index 000000000..e75c732ed --- /dev/null +++ b/patches/procps-3.2.8/0048-ps_size_sz.patch @@ -0,0 +1,40 @@ +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 new file mode 100644 index 000000000..9909d3b4d --- /dev/null +++ b/patches/procps-3.2.8/0049-top_mintime.patch @@ -0,0 +1,27 @@ +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/50_vmstat_headers.dpatch b/patches/procps-3.2.8/0050-vmstat_headers.patch index 13fa4bf61..8434d2468 100644 --- a/patches/procps-3.2.8/50_vmstat_headers.dpatch +++ b/patches/procps-3.2.8/0050-vmstat_headers.patch @@ -1,14 +1,21 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 50_vmstat_headers.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Headers for disk and slab info Debian bug #436805 -## DP: getopt replacement #408088 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/vmstat.c procps-3.2.7/vmstat.c ---- procps-3.2.7~/vmstat.c 2007-10-04 22:26:49.000000000 +1000 -+++ procps-3.2.7/vmstat.c 2007-10-04 22:27:07.000000000 +1000 +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" @@ -27,7 +34,7 @@ diff -urNad procps-3.2.7~/vmstat.c procps-3.2.7/vmstat.c #define VMSTAT 0 #define DISKSTAT 0x00000001 #define VMSUMSTAT 0x00000002 -@@ -354,6 +355,7 @@ +@@ -354,6 +355,7 @@ static void diskformat(void){ if ((fDiskstat=fopen("/proc/diskstats", "rb"))){ fclose(fDiskstat); ndisks=getdiskstat(&disks,&partitions); @@ -35,7 +42,7 @@ diff -urNad procps-3.2.7~/vmstat.c procps-3.2.7/vmstat.c for(k=0; k<ndisks; k++){ if (moreheaders && ((k%height)==0)) diskheader(); printf(format, -@@ -424,6 +426,7 @@ +@@ -424,6 +426,7 @@ static void slabformat (void){ return; } @@ -43,7 +50,7 @@ diff -urNad procps-3.2.7~/vmstat.c procps-3.2.7/vmstat.c nSlab = getslabinfo(&slabs); for(k=0; k<nSlab; k++){ if (moreheaders && ((k%height)==0)) slabheader(); -@@ -582,12 +585,10 @@ +@@ -582,12 +585,10 @@ static int winhi(void) { //////////////////////////////////////////////////////////////////////////// int main(int argc, char *argv[]) { @@ -60,7 +67,7 @@ diff -urNad procps-3.2.7~/vmstat.c procps-3.2.7/vmstat.c case 'V': display_version(); exit(0); -@@ -603,7 +604,7 @@ +@@ -603,7 +604,7 @@ int main(int argc, char *argv[]) { fork_format(); exit(0); case 'm': @@ -69,7 +76,7 @@ diff -urNad procps-3.2.7~/vmstat.c procps-3.2.7/vmstat.c break; case 'D': statMode |= DISKSUMSTAT; -@@ -614,53 +615,40 @@ +@@ -614,53 +615,40 @@ int main(int argc, char *argv[]) { break; case 'p': statMode |= PARTITIONSTAT; @@ -147,3 +154,6 @@ diff -urNad procps-3.2.7~/vmstat.c procps-3.2.7/vmstat.c 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 new file mode 100644 index 000000000..19e6aae83 --- /dev/null +++ b/patches/procps-3.2.8/0051-pgrep_usage_exitcode.patch @@ -0,0 +1,26 @@ +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 new file mode 100644 index 000000000..2ebd0c07a --- /dev/null +++ b/patches/procps-3.2.8/0052-ps_1_options.patch @@ -0,0 +1,557 @@ +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/55_top_highlight.dpatch b/patches/procps-3.2.8/0053-top_highlight.patch index df53c1399..2621f1715 100644 --- a/patches/procps-3.2.8/55_top_highlight.dpatch +++ b/patches/procps-3.2.8/0053-top_highlight.patch @@ -1,14 +1,18 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 55_top_highlight.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Fix highlighting problem Closes: #351065 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c ---- procps-3.2.7~/top.c 2008-01-08 20:13:02.000000000 +1100 -+++ procps-3.2.7/top.c 2008-01-08 20:13:47.000000000 +1100 -@@ -3027,9 +3027,10 @@ +=================================================================== +--- + 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, \ @@ -20,3 +24,6 @@ diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c 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 new file mode 100644 index 000000000..2b6ec5a4e --- /dev/null +++ b/patches/procps-3.2.8/0054-top_nohz.patch @@ -0,0 +1,25 @@ +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/65_fix_partition_format.dpatch b/patches/procps-3.2.8/0055-vmstat_part_format.patch index d60f98627..3146ac808 100644 --- a/patches/procps-3.2.8/65_fix_partition_format.dpatch +++ b/patches/procps-3.2.8/0055-vmstat_part_format.patch @@ -1,15 +1,19 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 65_fix_partition_format.dpatch by Daniel Novotny (see -## https://bugzilla.redhat.com/show_bug.cgi?id=485243 ) -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: The contents of /proc/diskstats have changed since 2.6.25 +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 -@DPATCH@ -diff -urNad procps-3.2.7~/proc/sysinfo.c procps-3.2.7/proc/sysinfo.c ---- procps-3.2.7~/proc/sysinfo.c 2009-05-27 18:33:13.443866133 +0000 -+++ procps-3.2.7/proc/sysinfo.c 2009-05-27 18:33:13.735867382 +0000 -@@ -780,6 +780,18 @@ +--- + 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){ } ///////////////////////////////////////////////////////////////////////////// @@ -28,7 +32,7 @@ diff -urNad procps-3.2.7~/proc/sysinfo.c procps-3.2.7/proc/sysinfo.c unsigned int getdiskstat(struct disk_stat **disks, struct partition_stat **partitions){ FILE* fd; -@@ -787,6 +799,7 @@ +@@ -803,6 +815,7 @@ unsigned int getdiskstat(struct disk_stat **disks, struct partition_stat **parti int cPartition = 0; int fields; unsigned dummy; @@ -36,7 +40,7 @@ diff -urNad procps-3.2.7~/proc/sysinfo.c procps-3.2.7/proc/sysinfo.c *disks = NULL; *partitions = NULL; -@@ -799,8 +812,9 @@ +@@ -815,8 +828,9 @@ unsigned int getdiskstat(struct disk_stat **disks, struct partition_stat **parti fclose(fd); break; } @@ -48,7 +52,7 @@ diff -urNad procps-3.2.7~/proc/sysinfo.c procps-3.2.7/proc/sysinfo.c (*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, -@@ -823,7 +837,9 @@ +@@ -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); @@ -59,10 +63,11 @@ diff -urNad procps-3.2.7~/proc/sysinfo.c procps-3.2.7/proc/sysinfo.c //&part_major, //&part_minor, (*partitions)[cPartition].partition_name, -diff -urNad procps-3.2.7~/proc/sysinfo.h procps-3.2.7/proc/sysinfo.h ---- procps-3.2.7~/proc/sysinfo.h 2009-05-27 18:32:49.000000000 +0000 -+++ procps-3.2.7/proc/sysinfo.h 2009-05-27 18:33:13.735867382 +0000 -@@ -113,7 +113,7 @@ +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; @@ -71,10 +76,11 @@ diff -urNad procps-3.2.7~/proc/sysinfo.h procps-3.2.7/proc/sysinfo.h }partition_stat; extern unsigned int getpartitions_num(struct disk_stat *disks, int ndisks); -diff -urNad procps-3.2.7~/vmstat.c procps-3.2.7/vmstat.c ---- procps-3.2.7~/vmstat.c 2009-05-27 18:33:13.603867748 +0000 -+++ procps-3.2.7/vmstat.c 2009-05-27 18:33:13.735867382 +0000 -@@ -286,7 +286,7 @@ +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; @@ -83,3 +89,6 @@ diff -urNad procps-3.2.7~/vmstat.c procps-3.2.7/vmstat.c 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 new file mode 100644 index 000000000..8a3084b2b --- /dev/null +++ b/patches/procps-3.2.8/0056-readproc_double_free.patch @@ -0,0 +1,32 @@ +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 new file mode 100644 index 000000000..ef2bb3e32 --- /dev/null +++ b/patches/procps-3.2.8/0057-vmstat_units.patch @@ -0,0 +1,70 @@ +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 new file mode 100644 index 000000000..69b00298b --- /dev/null +++ b/patches/procps-3.2.8/0058-skill_null_argv.patch @@ -0,0 +1,25 @@ +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 new file mode 100644 index 000000000..32a3ada9f --- /dev/null +++ b/patches/procps-3.2.8/0059-skill_multiarg.patch @@ -0,0 +1,25 @@ +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 new file mode 100644 index 000000000..5a4d27182 --- /dev/null +++ b/patches/procps-3.2.8/0060-proc_version_constructor.patch @@ -0,0 +1,52 @@ +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 new file mode 100644 index 000000000..fde235825 --- /dev/null +++ b/patches/procps-3.2.8/0061-pmaps_smaps.patch @@ -0,0 +1,150 @@ +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 new file mode 100644 index 000000000..d1487741e --- /dev/null +++ b/patches/procps-3.2.8/0062-top_numeric_args.patch @@ -0,0 +1,109 @@ +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 new file mode 100644 index 000000000..e488385e4 --- /dev/null +++ b/patches/procps-3.2.8/0063-top_1_swap.patch @@ -0,0 +1,34 @@ +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 new file mode 100644 index 000000000..d16462f5b --- /dev/null +++ b/patches/procps-3.2.8/0064-w_userproc.patch @@ -0,0 +1,25 @@ +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 new file mode 100644 index 000000000..7b792889d --- /dev/null +++ b/patches/procps-3.2.8/0065-sysinfo_kfreebsd_hertz.patch @@ -0,0 +1,31 @@ +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 new file mode 100644 index 000000000..a8e9e6039 --- /dev/null +++ b/patches/procps-3.2.8/0066-ps_1_flt_output.patch @@ -0,0 +1,40 @@ +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 new file mode 100644 index 000000000..3d0b01fb9 --- /dev/null +++ b/patches/procps-3.2.8/0067-watch_ansi_colour.patch @@ -0,0 +1,193 @@ +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 new file mode 100644 index 000000000..0ebcf6156 --- /dev/null +++ b/patches/procps-3.2.8/0068-top_username_parse.patch @@ -0,0 +1,25 @@ +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/fix-install.diff b/patches/procps-3.2.8/0069-don-t-install-stuff-that-was-not-built.patch index 42f12c9a5..b7f3a8380 100644 --- a/patches/procps-3.2.8/fix-install.diff +++ b/patches/procps-3.2.8/0069-don-t-install-stuff-that-was-not-built.patch @@ -1,5 +1,7 @@ +From 97bc8fbfedfc3d823891ec6497c187cb8e1ace06 Mon Sep 17 00:00:00 2001 From: Michael Olbrich <m.olbrich@pengutronix.de> -Subject: don't install stuff that was not built +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. @@ -7,13 +9,13 @@ We don't built everything in ptxdist. This Patch makes sure that Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> --- Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + 1 files changed, 2 insertions(+), 2 deletions(-) -Index: b/Makefile -=================================================================== +diff --git a/Makefile b/Makefile +index abddb6e..5efabb3 100644 --- a/Makefile +++ b/Makefile -@@ -228,8 +228,8 @@ $(MANFILES) : all +@@ -229,8 +229,8 @@ $(MANFILES) : all $(install) --mode a=r $(notdir $@) $@ install: $(filter-out $(SKIP) $(addprefix $(DESTDIR),$(SKIP)),$(INSTALL)) @@ -24,3 +26,6 @@ Index: b/Makefile ############ 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 new file mode 100644 index 000000000..fa5f509c3 --- /dev/null +++ b/patches/procps-3.2.8/0070-remove-frename-registers-option-due-to-ICE-on-gcc-4..patch @@ -0,0 +1,25 @@ +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/10_free.1.dpatch b/patches/procps-3.2.8/10_free.1.dpatch deleted file mode 100644 index 75eb73846..000000000 --- a/patches/procps-3.2.8/10_free.1.dpatch +++ /dev/null @@ -1,66 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_free.1.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: -g flag documented #286900 -## DP: hypen escaped #282168 - -@DPATCH@ -diff -urNad procps-3.2.7~/free.1 procps-3.2.7/free.1 ---- procps-3.2.7~/free.1 2004-02-24 08:35:55.000000000 +1100 -+++ procps-3.2.7/free.1 2007-10-04 22:32:20.000000000 +1000 -@@ -5,7 +5,7 @@ - .SH NAME - free \- Display amount of free and used memory in the system - .SH SYNOPSIS --.BR "free " [ "\-b" " | " "\-k" " | " "\-m" "] [" "\-o" "] [" "\-s" -+.BR "free " [ "\-b" " | " "\-k" " | " "\-m" " | " "\-g" "] [" "\-o" "] [" "\-s" - .I delay - .RB "] [" "\-t" "] [" "\-V" ] - .SH DESCRIPTION -@@ -13,32 +13,34 @@ - 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. -+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; the \fB\-g\fP switch displays it in -+gigabytes. - .PP --The \fB-t\fP switch displays a line containing the totals. -+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 -+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 -+The \fB\-s\fP switch activates continuous polling \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. - .SH FILES --.ta --.IR /proc/meminfo "\-\- memory information" --.fi -+.TP -+.I /proc/meminfo -+memory information -+ - - .SH "SEE ALSO" - .BR ps (1), - .BR slabtop (1), - .BR vmstat (8), --.BR top(1) -+.BR top (1) - - .SH AUTHORS - Written by Brian Edmonds. diff --git a/patches/procps-3.2.8/10_skill_perror.dpatch b/patches/procps-3.2.8/10_skill_perror.dpatch deleted file mode 100644 index a2dbb6c27..000000000 --- a/patches/procps-3.2.8/10_skill_perror.dpatch +++ /dev/null @@ -1,18 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_skill_perror.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: kill prints perror #468363 - -@DPATCH@ -diff -urNad procps-3.2.8~/skill.c procps-3.2.8/skill.c ---- procps-3.2.8~/skill.c 2009-05-11 22:10:28.000000000 +1000 -+++ procps-3.2.8/skill.c 2009-05-11 22:15:13.000000000 +1000 -@@ -317,6 +317,7 @@ - // 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; - } diff --git a/patches/procps-3.2.8/10_tload.1.dpatch b/patches/procps-3.2.8/10_tload.1.dpatch deleted file mode 100644 index ce660d621..000000000 --- a/patches/procps-3.2.8/10_tload.1.dpatch +++ /dev/null @@ -1,19 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_tload.1.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Reword tload.1 man page for the alarm - -@DPATCH@ -diff -urNad procps-3.2.7~/tload.1 procps-3.2.7/tload.1 ---- procps-3.2.7~/tload.1 2002-10-07 07:26:12.000000000 +1000 -+++ procps-3.2.7/tload.1 2006-06-26 12:44:39.000000000 +1000 -@@ -39,7 +39,7 @@ - .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. - diff --git a/patches/procps-3.2.8/10_top_no_openproc.dpatch b/patches/procps-3.2.8/10_top_no_openproc.dpatch deleted file mode 100644 index 46d708798..000000000 --- a/patches/procps-3.2.8/10_top_no_openproc.dpatch +++ /dev/null @@ -1,23 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 10_top_no_openproc.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Exit top if cannot openproc #378695 - -@DPATCH@ -diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c ---- procps-3.2.7~/top.c 2009-01-09 17:04:25.000000000 +1100 -+++ procps-3.2.7/top.c 2009-01-09 17:43:06.000000000 +1100 -@@ -1097,6 +1097,12 @@ - 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) { diff --git a/patches/procps-3.2.8/10_w_time.dpatch b/patches/procps-3.2.8/10_w_time.dpatch deleted file mode 100644 index c820441ef..000000000 --- a/patches/procps-3.2.8/10_w_time.dpatch +++ /dev/null @@ -1,19 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 30_w_time.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Let fprintf print locale-friendly seconds #252575 - -@DPATCH@ -diff -urNad procps-3.2.7~/w.c procps-3.2.7/w.c ---- procps-3.2.7~/w.c 2009-01-09 15:56:04.000000000 +1100 -+++ procps-3.2.7/w.c 2009-01-09 16:14:56.000000000 +1100 -@@ -83,7 +83,7 @@ - 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 */ diff --git a/patches/procps-3.2.8/20_Makefile_lib64.dpatch b/patches/procps-3.2.8/20_Makefile_lib64.dpatch deleted file mode 100644 index 09225ac30..000000000 --- a/patches/procps-3.2.8/20_Makefile_lib64.dpatch +++ /dev/null @@ -1,53 +0,0 @@ -#! /bin/sh -e -## 20_Makefile_lib64.dpatch by Craig Small <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Removed entry about /lib64 as it breaks the sparc - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argum -ent" - exit 1;; -esac - -exit 0 -@DPATCH@ - -[mkl: ported to procps-3.2.8] -Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> ---- - Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: procps-3.2.8/Makefile -=================================================================== ---- procps-3.2.8.orig/Makefile -+++ procps-3.2.8/Makefile -@@ -30,7 +30,7 @@ ln_sf := ln -sf - install := install -D --owner 0 --group 0 - - # Lame x86-64 /lib64 and /usr/lib64 abomination: --lib64 := lib$(shell [ -d /lib64 ] && echo 64) -+lib64 := lib - - usr/bin := $(DESTDIR)/usr/bin/ - bin := $(DESTDIR)/bin/ -@@ -127,7 +127,7 @@ check_gcc = $(shell if $(CC) $(ALL_CPPFL - # produce separate executables for ppc and ppc64, s390 and s390x, - # i386 and x86-64, mips and mips64, sparc and sparc64, and so on. - # Failure to do so will cause data corruption. --m64 := $(call check_gcc,-m64,$(call check_gcc,-mabi=64,)) -+#m64 := $(call check_gcc,-m64,$(call check_gcc,-mabi=64,)) - ALL_CFLAGS += $(m64) - - ALL_CFLAGS += $(call check_gcc,-Wdeclaration-after-statement,) diff --git a/patches/procps-3.2.8/20_module_mk_shared.dpatch b/patches/procps-3.2.8/20_module_mk_shared.dpatch deleted file mode 100644 index 7b3cd678c..000000000 --- a/patches/procps-3.2.8/20_module_mk_shared.dpatch +++ /dev/null @@ -1,36 +0,0 @@ -#! /bin/sh -e -## 20_module_mk_shared.dpatch by Craig Small <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Made SHARED variable overwritable - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argum -ent" - exit 1;; -esac - -exit 0 -@DPATCH@ -diff -urNad procps-3.2.7~/proc/module.mk procps-3.2.7/proc/module.mk ---- procps-3.2.7~/proc/module.mk 2006-06-27 08:24:51.000000000 +1000 -+++ procps-3.2.7/proc/module.mk 2006-06-27 08:25:43.000000000 +1000 -@@ -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 diff --git a/patches/procps-3.2.8/20_sysinfo_c.dpatch b/patches/procps-3.2.8/20_sysinfo_c.dpatch deleted file mode 100644 index 96e176947..000000000 --- a/patches/procps-3.2.8/20_sysinfo_c.dpatch +++ /dev/null @@ -1,25 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 20_sysinfo_c.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Dont find elf note for non-linux Bug #378157 - -@DPATCH@ -diff -urNad procps-3.2.7~/proc/sysinfo.c procps-3.2.7/proc/sysinfo.c ---- procps-3.2.7~/proc/sysinfo.c 2006-06-25 16:41:48.000000000 +1000 -+++ procps-3.2.7/proc/sysinfo.c 2007-10-04 22:07:48.000000000 +1000 -@@ -218,12 +218,13 @@ - // _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(); - } - diff --git a/patches/procps-3.2.8/20_watch_8bitchar.dpatch b/patches/procps-3.2.8/20_watch_8bitchar.dpatch deleted file mode 100644 index 1be95ddda..000000000 --- a/patches/procps-3.2.8/20_watch_8bitchar.dpatch +++ /dev/null @@ -1,19 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 20_watch_8bitchar.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Make char unsigned - -@DPATCH@ -diff -urNad procps-3.2.8~/watch.c procps-3.2.8/watch.c ---- procps-3.2.8~/watch.c 2009-05-11 22:20:14.000000000 +1000 -+++ procps-3.2.8/watch.c 2009-05-11 22:22:52.000000000 +1000 -@@ -297,7 +297,7 @@ - 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 - || diff --git a/patches/procps-3.2.8/30_library_map_freeproc.dpatch b/patches/procps-3.2.8/30_library_map_freeproc.dpatch deleted file mode 100644 index 2842c89b6..000000000 --- a/patches/procps-3.2.8/30_library_map_freeproc.dpatch +++ /dev/null @@ -1,35 +0,0 @@ -#! /bin/sh -e -## 30_library_map_freeproc.dpatch by Craig Small <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Added freeproc to library.map - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argum -ent" - exit 1;; -esac - -exit 0 -@DPATCH@ ---- procps-3.2.0.orig/proc/library.map -+++ procps-3.2.0/proc/library.map -@@ -7,7 +7,7 @@ - - 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; diff --git a/patches/procps-3.2.8/30_pgrep_start_time.dpatch b/patches/procps-3.2.8/30_pgrep_start_time.dpatch deleted file mode 100644 index f68fd569e..000000000 --- a/patches/procps-3.2.8/30_pgrep_start_time.dpatch +++ /dev/null @@ -1,36 +0,0 @@ -#! /bin/sh -e -## 30_pgrep_start_time.dpatch by Craig Small <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: pgrep.c saved_start_time was missed - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argum -ent" - exit 1;; -esac - -exit 0 -@DPATCH@ ---- procps-3.2.0.orig/pgrep.c -+++ procps-3.2.0/pgrep.c -@@ -367,7 +367,8 @@ - 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; - diff --git a/patches/procps-3.2.8/30_readproc_c.dpatch b/patches/procps-3.2.8/30_readproc_c.dpatch deleted file mode 100644 index 8c83e8810..000000000 --- a/patches/procps-3.2.8/30_readproc_c.dpatch +++ /dev/null @@ -1,45 +0,0 @@ -#! /bin/sh -e -## 30_readproc_c.dpatch by Craig Small <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: readproc.c some type conversion help -## DP: return if unable to open /proc - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argum -ent" - exit 1;; -esac - -exit 0 -@DPATCH@ ---- procps-3.2.0.orig/proc/readproc.c -+++ procps-3.2.0/proc/readproc.c -@@ -162,7 +162,7 @@ - // 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; -@@ -888,6 +888,8 @@ - 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 */ diff --git a/patches/procps-3.2.8/30_tload_no_optargs.dpatch b/patches/procps-3.2.8/30_tload_no_optargs.dpatch deleted file mode 100644 index 02f23cb2f..000000000 --- a/patches/procps-3.2.8/30_tload_no_optargs.dpatch +++ /dev/null @@ -1,36 +0,0 @@ -#! /bin/sh -e -## 30_tload_no_optargs.dpatch by Craig Small <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Removed unneeded optarg and optind variables form tload.c - -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts -patch_opts="${patch_opts:--f --no-backup-if-mismatch}" - -if [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) patch $patch_opts -p1 < $0;; - -unpatch) patch $patch_opts -p1 -R < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argum -ent" - exit 1;; -esac - -exit 0 -@DPATCH@ ---- procps-3.2.0.orig/tload.c -+++ procps-3.2.0/tload.c -@@ -30,9 +30,6 @@ - static int dly=5; - static jmp_buf jb; - --extern int optind; --extern char *optarg; -- - static void alrm(int signo) - { - (void)signo; diff --git a/patches/procps-3.2.8/30_w-columns.dpatch b/patches/procps-3.2.8/30_w-columns.dpatch deleted file mode 100644 index 57c94aeda..000000000 --- a/patches/procps-3.2.8/30_w-columns.dpatch +++ /dev/null @@ -1,34 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 30_w-columns.dpatch by <csmall@localhost.localdomain> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: use COLUMNS environment if TIOCGWINSZ fails - -@DPATCH@ -diff -urNad --exclude=CVS --exclude=.svn ./w.c /tmp/dpep-work.0retPU/procps-3.2.6/w.c ---- ./w.c 2005-10-31 12:41:33.000000000 +1100 -+++ /tmp/dpep-work.0retPU/procps-3.2.6/w.c 2005-10-31 12:41:55.000000000 +1100 -@@ -231,10 +231,10 @@ - - /***** 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; -@@ -267,6 +267,10 @@ - - 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); diff --git a/patches/procps-3.2.8/45_proc_complain_unmounted_proc.dpatch b/patches/procps-3.2.8/45_proc_complain_unmounted_proc.dpatch deleted file mode 100644 index c34e618b4..000000000 --- a/patches/procps-3.2.8/45_proc_complain_unmounted_proc.dpatch +++ /dev/null @@ -1,21 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 45_proc_complain_unmounted_proc.dpatch by <hesso@hesso.pool.math.tu-berlin.de> -## -## DP: Complain when /proc/version cannot be found instead of -## DP: exiting silently. - -@DPATCH@ ---- procps-3.2.7/proc/version.cO 2007-08-06 16:18:41.000000000 +0200 -+++ procps-3.2.7/proc/version.c 2007-08-06 16:19:28.000000000 +0200 -@@ -39,8 +39,10 @@ - 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); diff --git a/patches/procps-3.2.8/50_dev_null_makefile_fix.dpatch b/patches/procps-3.2.8/50_dev_null_makefile_fix.dpatch deleted file mode 100644 index 7132b0f88..000000000 --- a/patches/procps-3.2.8/50_dev_null_makefile_fix.dpatch +++ /dev/null @@ -1,19 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## dev_null_makefile_fix.dpatch by <xaiki@gonzo> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Make sure Makefile doesnt zot random files while checking GCC - -@DPATCH@ -diff -urNad procps-3.2.6~/Makefile procps-3.2.6/Makefile ---- procps-3.2.6~/Makefile 2005-10-30 07:27:04.000000000 +0100 -+++ procps-3.2.6/Makefile 2005-12-20 02:57:41.000000000 +0100 -@@ -119,7 +119,7 @@ - # 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 will_this_file_really_exist.tmp $(CURSES) > /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 diff --git a/patches/procps-3.2.8/50_top_mintime.dpatch b/patches/procps-3.2.8/50_top_mintime.dpatch deleted file mode 100644 index c38f889b8..000000000 --- a/patches/procps-3.2.8/50_top_mintime.dpatch +++ /dev/null @@ -1,20 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 50_top_mintime.dpatch by <csmall@debian.org> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Checks minimum time is valid - -@DPATCH@ -diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c ---- procps-3.2.7~/top.c 2007-10-04 21:58:56.000000000 +1000 -+++ procps-3.2.7/top.c 2007-10-04 21:59:24.000000000 +1000 -@@ -2535,7 +2535,8 @@ - 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; - diff --git a/patches/procps-3.2.8/55_pgrep_usage_exitcode.dpatch b/patches/procps-3.2.8/55_pgrep_usage_exitcode.dpatch deleted file mode 100644 index c6dabb5d7..000000000 --- a/patches/procps-3.2.8/55_pgrep_usage_exitcode.dpatch +++ /dev/null @@ -1,17 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 55_pgrep_usage_exitcode.dpatch by <hesso@pool.math.tu-berlin.de> -## -## DP: Distinguish between invalid commandline parameters and '-?'. - -@DPATCH@ ---- procps-3.2.7.orig/pgrep.c 2007-08-06 16:35:30.000000000 +0200 -+++ procps-3.2.7/pgrep.c 2007-08-06 16:35:06.000000000 +0200 -@@ -678,7 +678,7 @@ - // case 'z': // Solaris: match by zone ID - // break; - case '?': -- usage (opt); -+ usage (optopt?optopt:opt); - break; - } - } diff --git a/patches/procps-3.2.8/60_top_nohz.dpatch b/patches/procps-3.2.8/60_top_nohz.dpatch deleted file mode 100644 index 6b7390fdd..000000000 --- a/patches/procps-3.2.8/60_top_nohz.dpatch +++ /dev/null @@ -1,18 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 60_top_nohz.dpatch by <fabbione@sunfire.int.fabbione.net> -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Handle idle time calculations correctly when running with NOHZ. - -@DPATCH@ -diff -urNad procps-3.2.7~/top.c procps-3.2.7/top.c ---- procps-3.2.7~/top.c 2006-06-25 08:41:48.000000000 +0200 -+++ procps-3.2.7/top.c 2007-07-20 12:50:00.000000000 +0200 -@@ -2886,6 +2886,7 @@ - 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; diff --git a/patches/procps-3.2.8/README b/patches/procps-3.2.8/README deleted file mode 100644 index e2de56465..000000000 --- a/patches/procps-3.2.8/README +++ /dev/null @@ -1,8 +0,0 @@ -From: Marc Kleine-Budde <mkl@pengutronix.de> -Subject: import patches from debian's procps - -this is basially the patches from: -http://ftp.de.debian.org/debian/pool/main/p/procps/procps_3.2.8-1.diff.gz -taken dpatch squeezed into quilt :) - -Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> diff --git a/patches/procps-3.2.8/fix-unknown-HZ-arm-diff b/patches/procps-3.2.8/fix-unknown-HZ-arm-diff deleted file mode 100644 index 197fcea44..000000000 --- a/patches/procps-3.2.8/fix-unknown-HZ-arm-diff +++ /dev/null @@ -1,38 +0,0 @@ -From: Marc Kleine-Budde <mkl@pengutronix.de> -Subject: fix "Unknown HZ value! (94) Assume 100." on arm systems - -For more info, see: -http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=460331 - -Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> ---- - proc/sysinfo.c | 2 +- - proc/version.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -Index: procps-3.2.8/proc/sysinfo.c -=================================================================== ---- procps-3.2.8.orig/proc/sysinfo.c -+++ procps-3.2.8/proc/sysinfo.c -@@ -210,7 +210,7 @@ static int check_for_privs(void){ - return !!rc; - } - --static void init_libproc(void) __attribute__((constructor)); -+static void init_libproc(void) __attribute__((constructor (40))); - static void init_libproc(void){ - have_privs = check_for_privs(); - // ought to count CPUs in /proc/stat instead of relying -Index: procps-3.2.8/proc/version.c -=================================================================== ---- procps-3.2.8.orig/proc/version.c -+++ procps-3.2.8/proc/version.c -@@ -33,7 +33,7 @@ void display_version(void) { - - int linux_version_code; - --static void init_Linux_version(void) __attribute__((constructor)); -+static void init_Linux_version(void) __attribute__((constructor (20))); - static void init_Linux_version(void) { - int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */ - FILE *fp; diff --git a/patches/procps-3.2.8/remove-rename-registers.diff b/patches/procps-3.2.8/remove-rename-registers.diff deleted file mode 100644 index a6c6e65a1..000000000 --- a/patches/procps-3.2.8/remove-rename-registers.diff +++ /dev/null @@ -1,23 +0,0 @@ -From: Marc Kleine-Budde <mkl@pengutronix.de> -Subject: remove -frename-registers option, due to ICE on gcc-4.3.1 - -remove the -frename-registers options, because they ICE on gcc-4.3.1 - -Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: procps-3.2.7/Makefile -=================================================================== ---- procps-3.2.7.orig/Makefile -+++ procps-3.2.7/Makefile -@@ -141,7 +141,7 @@ ALL_CFLAGS += $(call check_gcc,-Wstrict- - # 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,-frename-registers,) - ALL_CFLAGS += $(call check_gcc,-fomit-frame-pointer,) - endif - diff --git a/patches/procps-3.2.8/series b/patches/procps-3.2.8/series index 62485c51b..1a4bde253 100644 --- a/patches/procps-3.2.8/series +++ b/patches/procps-3.2.8/series @@ -1,52 +1,70 @@ -10_free.1.dpatch -10_output_sort_time.dpatch -10_pmap.1.dpatch -10_ps.1.dpatch -10_skill.1.dpatch -10_skill_perror.dpatch -10_slabtop.dpatch -10_sysctl.8.dpatch -10_sysctl_options.dpatch -10_tload.1.dpatch -10_top_irix.dpatch -10_top_no_openproc.dpatch -10_top_stdineof.dpatch -10_top_uid_length.dpatch -10_uptime.1.dpatch -10_vmstat.8.dpatch -10_watch.1.dpatch -10_w_time.dpatch -20_kill.1.dpatch -20_kill_warncr.dpatch -20_Makefile_lib64.dpatch -20_module_mk_shared.dpatch -20_sysinfo_c.dpatch -20_top_c_resize.dpatch -20_top_manpage.dpatch -20_watch_8bitchar.dpatch -20_w-bassman.dpatch -30_library_map_freeproc.dpatch -30_pgrep_start_time.dpatch -30_readproc_c.dpatch -30_sysinfo_7numbers.dpatch -30_tload_no_optargs.dpatch -30_top.1_cpustate.dpatch -30_w.1.dpatch -30_watch_exec_beep.dpatch -30_w-columns.dpatch -35_path_max.dpatch -40_gnu-kbsd-version.dpatch -40_pgrep_coption.dpatch -40_ps_cgroup_display.dpatch -40_watch_precision_time.dpatch -45_proc_complain_unmounted_proc.dpatch -50_dev_null_makefile_fix.dpatch -50_pgrep.1.dpatch -50_top_mintime.dpatch -50_vmstat_headers.dpatch -55_pgrep_usage_exitcode.dpatch -55_top_highlight.dpatch -60_top_nohz.dpatch -65_fix_partition_format.dpatch -fix-unknown-HZ-arm-diff -fix-install.diff +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 |