summaryrefslogtreecommitdiff
path: root/recipes/procps
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/procps')
-rw-r--r--recipes/procps/procps-3.1.15/install.patch16
-rw-r--r--recipes/procps/procps-3.1.15/procps_3.1.15-2.diff5133
-rw-r--r--recipes/procps/procps-3.2.1/install.patch16
-rw-r--r--recipes/procps/procps-3.2.1/pagesz-not-constant.patch22
-rw-r--r--recipes/procps/procps-3.2.5/install.patch27
-rw-r--r--recipes/procps/procps-3.2.5/pagesz-not-constant.patch22
-rw-r--r--recipes/procps/procps-3.2.5/procmodule.patch36
-rw-r--r--recipes/procps/procps-3.2.5/psmodule.patch21
-rw-r--r--recipes/procps/procps-3.2.7/install.patch27
-rw-r--r--recipes/procps/procps-3.2.7/linux-limits.patch13
-rw-r--r--recipes/procps/procps-3.2.7/pagesz-not-constant.patch22
-rw-r--r--recipes/procps/procps-3.2.7/procmodule.patch36
-rw-r--r--recipes/procps/procps-3.2.7/procps.init6
-rw-r--r--recipes/procps/procps-3.2.7/psmodule.patch21
-rw-r--r--recipes/procps/procps-3.2.7/sysctl.conf64
-rw-r--r--recipes/procps/procps.inc14
-rw-r--r--recipes/procps/procps_3.1.15.bb9
-rw-r--r--recipes/procps/procps_3.2.1.bb11
-rw-r--r--recipes/procps/procps_3.2.5.bb45
-rw-r--r--recipes/procps/procps_3.2.7.bb64
20 files changed, 5625 insertions, 0 deletions
diff --git a/recipes/procps/procps-3.1.15/install.patch b/recipes/procps/procps-3.1.15/install.patch
new file mode 100644
index 0000000000..2d16c26f17
--- /dev/null
+++ b/recipes/procps/procps-3.1.15/install.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- procps-3.1.15/Makefile~install 2003-12-24 03:01:55.000000000 +0100
++++ procps-3.1.15/Makefile 2004-02-11 00:45:59.000000000 +0100
+@@ -147,7 +147,7 @@
+ ###### install
+
+ $(BINFILES) : all
+- $(install) --mode a=rx --strip $(notdir $@) $@
++ $(install) --mode a=rx $(notdir $@) $@
+
+ $(MANFILES) : all
+ $(install) --mode a=r $(notdir $@) $@
diff --git a/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff b/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
new file mode 100644
index 0000000000..438fd0f664
--- /dev/null
+++ b/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
@@ -0,0 +1,5133 @@
+--- procps-3.1.15.orig/proc/library.map
++++ procps-3.1.15/proc/library.map
+@@ -4,7 +4,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; wchan;
+ display_version; procps_version; linux_version_code;
+ Hertz; smp_num_cpus;
+--- procps-3.1.15.orig/proc/readproc.c
++++ procps-3.1.15/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 */
+--- procps-3.1.15.orig/proc/module.mk
++++ procps-3.1.15/proc/module.mk
+@@ -3,7 +3,7 @@
+ # for lib$(NAME).so and /usr/include/($NAME) and such
+ NAME := proc
+
+-SHARED := 1
++SHARED ?= 1
+
+ SONAME := lib$(NAME).so.$(LIBVERSION)
+
+--- procps-3.1.15.orig/debian/README.Debian
++++ procps-3.1.15/debian/README.Debian
+@@ -0,0 +1,22 @@
++README for Debian package of procps
++===================================
++
++XConsole gone
++-------------
++ XConsole and other X-based programs have been finally removed. Look in
++ the x packages for their equivalents.
++
++pgrep
++-----
++pgrep is a new program, using the Unix standard name for something that
++greps for processes. If you are looking for Perl compatible regular
++expression grep, it is called pcregrep.
++
++forks
++-----
++Procps upstream is forked. This one comes from procps.sf.net I'm really
++not interested when the others have new versions so please don't bug me about
++it. However if you see something neat in the others and would like it in
++the Debian one, report a *wishlist* level bug about it.
++
++ Craig Small <csmall@debian.org>
+--- procps-3.1.15.orig/debian/copyright
++++ procps-3.1.15/debian/copyright
+@@ -0,0 +1,27 @@
++This is the Debian Linux prepackaged version of the /proc file
++system utilities.
++
++This package was downloaded from:
++ http://procps.sourceforge.net/
++
++
++Upstream Authors:
++Werner Almesberger <almesber@di.epfl.ch>, Roger Binns, Charles
++Blake <cblake@ucsd.edu>, Brian Edmonds, David Engel <david@ods.com>,
++Larry Greenfield <greenfie@gauss.rutgers.edu>, Michael K. Johnson
++<johnsonm@sunsite.unc.edu>, Branko Lankester <lankeste@fwi.uva.nl>,
++Robert Nation <nation@rocket.sanders.lockheed.com>, Michael Shields
++<mjshield@nyx.cs.du.edu>, Henry Ware <al172@yfn.ysu.edu>, Matt
++Welsh <mdw@sunsite.unc.edu>, Albert D. Cahalan and Jim C. Warner
++<warnerjc@worldnet.att.net>
++
++All programs except ps, skill and snice are copyright by their
++authors and redistributable under the terms of the GNU General
++Public License. On Debian Linux systems, the complete text of
++the GNU General Public License can be found in
++`/usr/share/common-licenses/GPL'.
++
++ps, skill and snice are copyright by their authors and redistributable under
++the terms of the GNU Library General Public License. On Debian Linux
++systems, the complete text of the GNU Library General Public License can
++be found in `/usr/share/common/licenses/LGPL'.
+--- procps-3.1.15.orig/debian/dirs
++++ procps-3.1.15/debian/dirs
+@@ -0,0 +1,12 @@
++etc
++lib
++sbin
++bin
++usr/bin
++usr/sbin
++usr/lib
++usr/include/proc
++usr/share/man/man1
++usr/share/man/man5
++usr/share/man/man8
++
+--- procps-3.1.15.orig/debian/docs
++++ procps-3.1.15/debian/docs
+@@ -0,0 +1,4 @@
++BUGS
++TODO
++README.top
++
+--- procps-3.1.15.orig/debian/examples
++++ procps-3.1.15/debian/examples
+@@ -0,0 +1,2 @@
++debian/sysctl.conf
++
+--- procps-3.1.15.orig/debian/libproc-dev.dirs
++++ procps-3.1.15/debian/libproc-dev.dirs
+@@ -0,0 +1,2 @@
++usr/lib
++usr/include/proc
+--- procps-3.1.15.orig/debian/menu
++++ procps-3.1.15/debian/menu
+@@ -0,0 +1 @@
++?package(procps):needs=text section="Apps/System" title="Top" command="/usr/bin/top" hints="Monitoring"
+--- procps-3.1.15.orig/debian/postinst
++++ procps-3.1.15/debian/postinst
+@@ -0,0 +1,74 @@
++#!/bin/sh
++# postinst script for procps
++#
++# see: dh_installdeb(1)
++
++set -e
++
++# summary of how this script can be called:
++# * <postinst> `configure' <most-recently-configured-version>
++# * <old-postinst> `abort-upgrade' <new version>
++# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
++# <new-version>
++# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
++# <failed-install-package> <version> `removing'
++# <conflicting-package> <version>
++# for details, see http://www.debian.org/doc/debian-policy/ or
++# the debian-policy package
++#
++# quoting from the policy:
++# Any necessary prompting should almost always be confined to the
++# post-installation script, and should be protected with a conditional
++# so that unnecessary prompting doesn't happen if a package's
++# installation fails and the `postinst' is called with `abort-upgrade',
++# `abort-remove' or `abort-deconfigure'.
++
++case "$1" in
++ configure)
++ if [ -e /etc/psdevtab ] ; then
++ rm -f /etc/psdevtab
++ fi
++ if [ -e /etc/psdatabase ]
++ then
++ rm -f /etc/psdatabase
++ fi
++ # Remove old /etc/init.d/procps file, Bug #53818
++ if [ -e /etc/init.d/procps ]
++ then
++ rm -f /etc/init.d/procps
++ fi
++ # Remove old procps init.d script, if it exists Closes: #55137
++ if [ -e /etc/rcS.d/S30procps ]
++ then
++ update-rc.d procps remove >/dev/null
++ fi
++ # and if that didn't work Closes: #92184
++ if [ -e /etc/rcS.d/S30procps ]
++ then
++ rm -f /etc/rcS.d/S30procps
++ fi
++ #
++ # Now to do the alternatives for w and ps
++ update-alternatives --install /usr/bin/w w /usr/bin/w.procps 50 \
++ --slave /usr/share/man/man1/w.1.gz w.1.gz /usr/share/man/man1/w.procps.1.gz
++
++ ;;
++
++ abort-upgrade|abort-remove|abort-deconfigure)
++
++ ;;
++
++ *)
++ echo "postinst called with unknown argument \`$1'" >&2
++ exit 1
++ ;;
++esac
++
++# dh_installdeb will replace this with shell code automatically
++# generated by other debhelper scripts.
++
++#DEBHELPER#
++
++exit 0
++
++
+--- procps-3.1.15.orig/debian/prerm
++++ procps-3.1.15/debian/prerm
+@@ -0,0 +1,11 @@
++#!/bin/sh
++
++if [ "$1" != "upgrade" ]
++then
++ update-alternatives --remove w /usr/bin/w.procps
++fi
++
++#DEBHELPER#
++
++exit 0
++
+--- procps-3.1.15.orig/debian/sysctl.conf
++++ procps-3.1.15/debian/sysctl.conf
+@@ -0,0 +1,6 @@
++#
++# /etc/sysctl.conf - Configuration file for setting system variables
++# See sysctl.conf (5) for information.
++#
++#kernel.domainname = example.com
++#net/ipv4/icmp_echo_ignore_broadcasts=1
+--- procps-3.1.15.orig/debian/watch
++++ procps-3.1.15/debian/watch
+@@ -0,0 +1,6 @@
++# Example watch control file for uscan
++# Rename this file to "watch" and then you can run the "uscan" command
++# to check for upstream updates and more.
++# Site Directory Pattern Version Script
++sunsite.unc.edu /pub/Linux/Incoming procps-*.tar.gz debian uupdate
++
+--- procps-3.1.15.orig/debian/procps.sh
++++ procps-3.1.15/debian/procps.sh
+@@ -0,0 +1,40 @@
++#! /bin/sh
++# /etc/init.d/procps: Set kernel variables from /etc/sysctl.conf
++#
++# written by Elrond <Elrond@Wunder-Nett.org>
++
++# Check for existance of the default file and exit if not there,
++# Closes #52839 for the boot-floppy people
++[ -r /etc/default/rcS ] || exit 0
++. /etc/default/rcS
++
++[ -x /sbin/sysctl ] || exit 0
++
++
++case "$1" in
++ start|reload|restart|force-reload)
++ if [ ! -r /etc/sysctl.conf ]
++ then
++ exit 0
++ fi
++ if [ "$VERBOSE" = "no" ]
++ then
++ n="-n"
++ redir=">/dev/null"
++ else
++ echo -n "Setting kernel variables."
++ n=""
++ redir=""
++ fi
++ eval "/sbin/sysctl $n -p $redir"
++ echo "."
++ ;;
++ stop|show)
++ ;;
++ *)
++ echo "Usage: /etc/init.d/procps.sh {start|stop|reload|restart}" >&2
++ exit 1
++ ;;
++esac
++
++
+--- procps-3.1.15.orig/debian/procps.manpages
++++ procps-3.1.15/debian/procps.manpages
+@@ -0,0 +1 @@
++ps/ps.1
+--- procps-3.1.15.orig/debian/compat
++++ procps-3.1.15/debian/compat
+@@ -0,0 +1 @@
++4
+--- procps-3.1.15.orig/debian/libproc-dev.files
++++ procps-3.1.15/debian/libproc-dev.files
+@@ -0,0 +1,2 @@
++usr/include/proc/*.h
++lib/libproc.so
+--- procps-3.1.15.orig/debian/libproc-dev.README
++++ procps-3.1.15/debian/libproc-dev.README
+@@ -0,0 +1,12 @@
++README for libproc-dev
++======================
++
++This README is for people who want to use the libraries for their own
++programs. If you just want to use procps tools you don't need to use this
++and you can probably remove libproc-dev too.
++
++It is generally a bad idea to dynamically link to libproc. The API changes
++a fair bit and I cannot guarantee that it will stay the same between minor
++versions (though it will stay the same between Debian versions). I've now
++re-included the libproc.a file so use that.
++
+--- procps-3.1.15.orig/debian/patches/20_procps-fix+attr.dpatch
++++ procps-3.1.15/debian/patches/20_procps-fix+attr.dpatch
+@@ -0,0 +1,55 @@
++#! /bin/sh -e
++## 20_procps-fix++attr by someone
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: SELINUX Attr value in /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@
++diff -urN procps-3.1.15/ps/output.c procps-3.1.15.new/ps/output.c
++--- procps-3.1.15/ps/output.c 2003-12-23 19:46:32.000000000 -0600
+++++ procps-3.1.15.new/ps/output.c 2003-12-24 13:31:16.000000000 -0600
++@@ -944,7 +944,7 @@
++
++ // wchan file is suitable for testing
++ //snprintf(filename, sizeof filename, "/proc/%d/task/%d/wchan", pp->tgid, pp->tid);
++- snprintf(filename, sizeof filename, "/proc/%d/task/%d/attr/current", pp->tgid, pp->tid);
+++ snprintf(filename, sizeof filename, "/proc/%d/attr/current", pp->tgid);
++
++ fd = open(filename, O_RDONLY, 0);
++ if(likely(fd==-1)) goto fail;
++diff -urN procps-3.1.15/ps/parser.c procps-3.1.15.new/ps/parser.c
++--- procps-3.1.15/ps/parser.c 2003-12-23 17:58:06.000000000 -0600
+++++ procps-3.1.15.new/ps/parser.c 2003-12-24 13:45:08.000000000 -0600
++@@ -315,12 +315,10 @@
++ exclusive("-V");
++ display_version();
++ exit(0);
++-#if 0
++- case 'Z': /* full Mandatory Access Control level info */
++- trace("-Z shows full MAC info\n");
++- return "Don't understand MAC on Linux.";
+++ case 'Z':
+++ trace("-Z shows SELinux contexts\n");
+++ format_flags |= FF_Fc;
++ break;
++-#endif
++ case 'a':
++ trace("-a select all with a tty, but omit session leaders.\n");
++ simple_select |= SS_U_a;
+--- procps-3.1.15.orig/debian/patches/20_ps.1.dpatch
++++ procps-3.1.15/debian/patches/20_ps.1.dpatch
+@@ -0,0 +1,376 @@
++#! /bin/sh -e
++## 20_ps.1.dpatch by Craig Small <csmall@debian.org>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: Fix ps manual page
++
++[ -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.1.15/ps/ps.1 2003-12-24 12:59:47.000000000 +1100
+++++ procps-3.1.15.newps/ps.1 2003-12-26 18:05:01.000000000 +1100
++@@ -1,3 +1,5 @@
+++'\" t
+++.\" (The preceding line is a note to broken versions of man to tell
++ .\" Man page for ps.
++ .\" Quick hack conversion by Albert Cahalan, 1998.
++ .\" Licensed under version 2 of the Gnu General Public License.
++@@ -10,8 +12,8 @@
++ .\" invented this crap in 1973. Oh yeah, they did. Sorry.
++ .\"
++ .TH PS 1 "July 5, 1998" "Linux" "Linux User's Manual"
++-.SH \fRNAME\fR
++-ps \- report process status
+++.SH NAME
+++ps \- report a snapshot of the current processes.
++ .ad r
++ .na
++ .ss 12 0
++@@ -19,17 +21,17 @@
++ .nh
++ .nf
++
++-SYNOPSIS
+++.SH SYNOPSIS
++ ps [options]
++
++
++-DESCRIPTION
+++.SH DESCRIPTION
++ ps gives a snapshot of the current processes. If you want
++ a repetitive update of this status, use top. This man
++ page documents the /proc-based version of ps, or tries to.
++
++
++-COMMAND-LINE OPTIONS
+++.SH "COMMAND-LINE OPTIONS"
++
++ This version of ps accepts several kinds of options.
++
++@@ -43,7 +45,9 @@
++ when options are preceeded by a dash. The PS_PERSONALITY environment
++ variable (described below) provides more detailed control of ps behavior.
++
++-SIMPLE PROCESS SELECTION
+++.SH "SIMPLE PROCESS SELECTION"
+++.TS
+++l l.
++ -A select all processes
++ -N negate selection
++ -a select all with a tty except session leaders
++@@ -55,8 +59,11 @@
++ r restrict output to running processes
++ x select processes without controlling ttys
++ --deselect negate selection
+++.TE
++
++-PROCESS SELECTION BY LIST
+++.SH "PROCESS SELECTION BY LIST"
+++.TS
+++l l.
++ -C select by command name
++ -G select by RGID (supports names)
++ -U select by RUID (supports names)
++@@ -78,8 +85,10 @@
++ --user select by effective user name or ID
++ -123 implied --sid
++ 123 implied --pid
++-
++-OUTPUT FORMAT CONTROL
+++.TE
+++.SH "OUTPUT FORMAT CONTROL"
+++.TS
+++l l.
++ -O is preloaded "-o"
++ -F extra full format
++ -c different scheduler info for -l option
++@@ -98,8 +107,10 @@
++ v display virtual memory format
++ --format user-defined format
++ --context display security context format (NSA SELinux, etc.)
++-
++-OUTPUT MODIFIERS
+++.TE
+++.SH "OUTPUT MODIFIERS"
+++.TS
+++l l.
++ -H show process hierarchy (forest)
++ -n set namelist file
++ -w wide output
++@@ -123,31 +134,40 @@
++ --rows set screen height
++ --sort specify sorting order
++ --width set screen width
++-
++-THREAD DISPLAY
+++.TE
+++.SH "THREAD DISPLAY"
+++.TS
+++l l.
++ -L show threads, possibly with LWP and NLWP columns
++ -T show threads, possibly with SPID column
++ -m show threads after processes
++ H show threads as if they were processes
++ m show threads after processes
+++.TE
++
++-INFORMATION
+++.SH INFORMATION
+++
+++.TS
+++l l.
++ -V print version
++ L list all format specifiers
++ V show version info
++ --help print help message
++ --info print debugging info
++ --version print version
+++.TE
+++
+++.SH OBSOLETE
++
++-OBSOLETE
+++.TS
+++l l.
++ A increases the argument space (DecUnix)
++ M use alternate core (try -n or N instead)
++ W get swap info from ... not /dev/drum (try -n or N instead)
++ k use /vmcore as c-dumpfile (try -n or N instead)
++-
++-
++-
++-NOTES
+++.TE
+++
+++.SH NOTES
++
++ User-defined format options ("o", "-o", "O", and "-O") offer
++ a way to specify individual output columns. Headers may be
++@@ -249,14 +269,17 @@
++ will be destroyed by init(8) if the parent process exits.
++
++
++-PROCESS FLAGS
++-
+++.SH "PROCESS FLAGS"
+++.TS
+++l l l.
++ FORKNOEXEC 1 forked but didn't exec
++ SUPERPRIV 4 used super-user privileges
+++.TE
++
+++.SH "PROCESS STATE CODES"
++
++-PROCESS STATE CODES
++-
+++.TS
+++l l.
++ D uninterruptible sleep (usually IO)
++ R runnable (on run queue)
++ S sleeping
++@@ -264,23 +287,30 @@
++ W paging
++ X dead
++ Z a defunct ("zombie") process
+++.TE
++
++ For BSD formats and when the "stat" keyword is used, additional
++ letters may be displayed:
++
++-W has no resident pages
++-< high-priority process
++-N low-priority task
++-L has pages locked into memory (for real-time and custom IO)
+++.IP W
+++has no resident pages
+++.IP <
+++high-priority process
+++.IP N
+++low-priority task
+++.IP L
+++has pages locked into memory (for real-time and custom IO)
++
++
++-SORT KEYS
+++.SH "SORT KEYS"
++
++ Note that the values used in sorting are the internal values ps uses and not
++ the `cooked' values used in some of the output format fields. Pipe ps
++ output into the sort(1) command if you want to sort the cooked values.
++
++-KEY LONG DESCRIPTION
+++.TS
+++l l l.
+++\fBKEY LONG DESCRIPTION\fR
++ c cmd simple name of executable
++ C cmdline full command line
++ f flags flags as in long format F field
++@@ -307,14 +337,15 @@
++ u user user name
++ v vsize total VM size in kB
++ y priority kernel scheduling priority
+++.TE
++
++-
++-AIX FORMAT DESCRIPTORS
+++.SH "AIX FORMAT DESCRIPTORS"
++
++ This ps supports AIX format descriptors, which work somewhat like the
++ formatting codes of printf(1) and printf(3). For example, the normal
++ default output can be produced with this: ps -eo "%p %y %x %c"
++-
+++.TS
+++l l l.
++ CODE NORMAL HEADER
++ %C pcpu %CPU
++ %G group GROUP
++@@ -331,14 +362,16 @@
++ %x time TIME
++ %y tty TTY
++ %z vsz VSZ
+++.TE
++
++-
++-STANDARD FORMAT SPECIFIERS
+++.SH "STANDARD FORMAT SPECIFIERS"
++
++ These may be used to control both output format and sorting.
++ For example: ps -eo pid,user,args --sort user
++
++-CODE HEADER
+++.TS
+++l l.
+++\fBCODE HEADER\fR
++ %cpu %CPU
++ %mem %MEM
++ alarm ALARM
++@@ -459,25 +492,51 @@
++ vsize VSZ
++ vsz VSZ
++ wchan WCHAN
+++.TE
++
+++.SH "ENVIRONMENT VARIABLES"
++
++-
++-
++-ENVIRONMENT VARIABLES
++ The following environment variables could affect ps:
++- COLUMNS Override default display width.
++- LINES Override default display height.
++- PS_PERSONALITY Set to one of posix,old,linux,bsd,sun,digital...
++- CMD_ENV Set to one of posix,old,linux,bsd,sun,digital...
++- I_WANT_A_BROKEN_PS Force obsolete command line interpretation.
++- LC_TIME Date format.
++- PS_COLORS Not currently supported.
++- PS_FORMAT Default output format override.
++- PS_SYSMAP Default namelist (System.map) location.
++- PS_SYSTEM_MAP Default namelist (System.map) location.
++- POSIXLY_CORRECT Don't find excuses to ignore bad "features".
++- UNIX95 Don't find excuses to ignore bad "features".
++- _XPG Cancel CMD_ENV=irix non-standard behavior.
+++
+++.TP
+++.B COLUMNS
+++Override default display width.
+++.TP
+++.B LINES
+++Override default display height.
+++.TP
+++.B PS_PERSONALITY
+++Set to one of posix,old,linux,bsd,sun,digital...
+++.TP
+++.B CMD_ENV
+++Set to one of posix,old,linux,bsd,sun,digital...
+++.TP
+++.B I_WANT_A_BROKEN_PS
+++Force obsolete command line interpretation.
+++.TP
+++.B LC_TIME
+++Date format.
+++.TP
+++.B PS_COLORS
+++Not currently supported.
+++.TP
+++.B PS_FORMAT
+++Default output format override.
+++.TP
+++.B PS_SYSMAP
+++Default namelist (System.map) location.
+++.TP
+++.B PS_SYSTEM_MAP
+++Default namelist (System.map) location.
+++.TP
+++.B POSIXLY_CORRECT
+++Don't find excuses to ignore bad "features".
+++.TP
+++.B UNIX95
+++Don't find excuses to ignore bad "features".
+++.TP
+++.B _XPG
+++Cancel CMD_ENV=irix non-standard behavior.
++
++ In general, it is a bad idea to set these variables. The one exception
++ is CMD_ENV or PS_PERSONALITY, which could be set to Linux for normal
++@@ -485,7 +544,9 @@
++ of the Unix98 standard.
++
++
++-PERSONALITY
+++.SH "PERSONALITY"
+++.TS
+++l l.
++ 390 like the S/390 OpenEdition ps
++ aix like AIX ps
++ bsd like FreeBSD ps (totally non-standard)
++@@ -507,9 +568,9 @@
++ unix standard
++ unix95 standard
++ unix98 standard
+++.TE
++
++-
++-EXAMPLES
+++.SH "EXAMPLES"
++ To see every process on the system using standard syntax:
++ ps -e
++ To see every process on the system using BSD syntax:
++@@ -523,13 +584,13 @@
++ Print only the process IDs of syslogd:
++ ps -C syslogd -o pid=
++
++-SEE ALSO
++-top(1) pgrep(1) pstree(1) proc(5)
+++.SH "SEE ALSO"
+++.BR top (1), pgrep (1), pstree (1), proc (5).
++
++-STANDARDS
+++.SH STANDARDS
++ This ps conforms to version 2 of the Single Unix Specification.
++
++-AUTHOR
+++.SH AUTHOR
++ ps was originally written by Branko Lankester <lankeste@fwi.uva.nl>. Michael
++ K. Johnson <johnsonm@redhat.com> re-wrote it significantly to use the proc
++ filesystem, changing a few things in the process. Michael Shields
++@@ -541,4 +602,4 @@
++ <acahalan@cs.uml.edu> rewrote ps for full Unix98 and BSD support, along with
++ some ugly hacks for obsolete and foreign syntax.
++
++-Please send bug reports to <acahalan@cs.uml.edu>
+++Please send bug reports to <procps-feedback@lists.sf.net>.
+--- procps-3.1.15.orig/debian/patches/20_top_manpage.dpatch
++++ procps-3.1.15/debian/patches/20_top_manpage.dpatch
+@@ -0,0 +1,384 @@
++#! /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
++
++[ -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/top.1.orig 2003-12-24 15:51:35.000000000 -0500
+++++ procps/top.1 2003-12-24 18:57:14.564156176 -0500
++@@ -52,7 +52,7 @@
++ .ds CF configuration file
++ .ds CI interactive command
++ .ds CO command\-line option
++-.ds CW \'current' window
+++.ds CW 'current' window
++ .ds FM full\-screen mode
++ .ds MP \fBphysical\fR memory
++ .ds MS \fBshared\fR memory
++@@ -370,7 +370,7 @@
++ The task's share of the elapsed \*(PU time since the last screen update, expressed
++ as a percentage of total \*(PU time.
++ In a true SMP environment, if 'Irix mode' is \*F, \*(Me will operate in
++-\'Solaris mode' where a task's \*(Pu usage will be divided by the total
+++'Solaris mode' where a task's \*(Pu usage will be divided by the total
++ number of \*(PUs.
++ You toggle 'Irix/Solaris' modes with the 'I' \*(CI.
++
++@@ -498,7 +498,7 @@
++ .\" ......................................................................
++ .SS 2b. SELECTING and ORDERING Columns
++ .\" ----------------------------------------------------------------------
++-After pressing the \*(CIs 'f' (Fields select) or \'o' (Order fields) you will
+++After pressing the \*(CIs 'f' (Fields select) or 'o' (Order fields) you will
++ be shown a screen containing the current \fBfields string\fR followed by names
++ and descriptions for all fields.
++
++@@ -574,7 +574,7 @@
++ see current status,
++
++ .TP 7
++-\ \ \'\fB?\fR\' or \'\fBh\fR\' :\fIHelp\fR
+++\ \ \<\fB?\fR\> or \<\fBh\fR\> :\fIHelp\fR
++ There are two help levels available.
++ The first will provide a reminder of all the basic \*(CIs.
++ If \*(Me is\fI secured\fR, that screen will be abbreviated.
++@@ -583,7 +583,7 @@
++ applicable to \*(AM.
++
++ .TP 7
++-\ \ \'\fB=\fR\' :\fIExit_Task_Limits\fR
+++\ \ \<\fB=\fR\> :\fIExit_Task_Limits\fR
++ Removes restrictions on which tasks are shown.
++ This command will reverse any 'i' (idle tasks) and 'n' (max tasks) commands
++ that might be active.
++@@ -593,13 +593,13 @@
++ When operating in \*(AM this command has a slightly broader meaning.
++
++ .TP 7
++-\ \ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
+++\ \ \<\fBA\fR\> :\fIAlternate_Display_Mode_toggle\fR
++ This command will switch between \*(FM and \*(AM.
++-\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
++-\*(CWs and field groups.
+++\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight
+++into \*(CWs and field groups.
++
++ .TP 7
++-\ \ \'\fBB\fR\' :\fIBold_Disable/Enable_toggle\fR
+++\ \ \<\fBB\fR\> :\fIBold_Disable/Enable_toggle\fR
++ This command will influence use of the 'bold' terminfo capability and
++ alters\fB both\fR the \*(SA and \*(TA for the \*(CW.
++ While it is intended primarily for use with dumb terminals, it can be
++@@ -611,7 +611,7 @@
++ there will be no visual confirmation that they are even on.
++
++ .TP 7
++-*\ \'\fBd\fR\' or \'\fBs\fR\' :\fIChange_Delay_Time_interval\fR
+++*\ \<\fBd\fR\> or \<\fBs\fR\> :\fIChange_Delay_Time_interval\fR
++ You will be prompted to enter the delay time, in seconds, between
++ display updates.
++
++@@ -625,32 +625,32 @@
++ and view the system summary on the second line.
++
++ .TP 7
++-\ \ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
+++\ \ \<\fBG\fR\> :\fIChoose_Another_Window/Field_Group\fR
++ You will be prompted to enter a number between 1 and 4 designating the
++ window/field group which should be made the \*(CW.
++ You will soon grow comfortable with these 4 windows, especially after
++ experimenting with \*(AM.
++
++ .TP 7
++-\ \ \'\fBI\fR\' :\fIIrix/Solaris_Mode_toggle\fR
+++\ \ \<\fBI\fR\> :\fIIrix/Solaris_Mode_toggle\fR
++ When operating in 'Solaris mode' ('I' toggled \*F), a task's \*(Pu usage
++ will be divided by the total number of \*(PUs.
++ After issuing this command, you'll be informed of the new state of this toggle.
++
++ .TP 7
++-\ \ \'\fBu\fR\' :\fIselect a user\fR
+++\ \ \<\fBu\fR\> :\fIselect a user\fR
++ You will be prompted for a UID or username. Only processes
++ belonging to the selected user will be displayed. This option
++ matches on the effective UID.
++
++ .TP 7
++-\ \ \'\fBU\fR\' :\fIselect a user\fR
+++\ \ \<\fBU\fR\> :\fIselect a user\fR
++ You will be prompted for a UID or username. Only processes
++ belonging to the selected user will be displayed. This option
++ matches on the real, effective, saved, and filesystem UID.
++
++ .TP 7
++-*\ \'\fBk\fR\' :\fIKill_a_task\fR
+++*\ \<\fBk\fR\> :\fIKill_a_task\fR
++ You will be prompted for a PID and then the signal to send.
++ The default signal, as reflected in the prompt, is SIGTERM.
++ However, you can send any signal, via number or name.
++@@ -661,24 +661,24 @@
++ 2) at the signal prompt, type 0
++
++ .TP 7
++-\ \ \'\fBq\fR\' :\fIQuit\fR
+++\ \ \<\fBq\fR\> :\fIQuit\fR
++
++ .TP 7
++-*\ \'\fBr\fR\' :\fIRenice_a_Task\fR
+++*\ \<\fBr\fR\> :\fIRenice_a_Task\fR
++ You will be prompted for a PID and then the value to nice it to.
++ Entering a positive value will cause a process to lose priority.
++ Conversely, a negative value will cause a process to be viewed more
++ favorably by the kernel.
++
++ .TP 7
++-\ \ \'\fBW\fR\' :\fIWrite_the_Configuration_File\fR
+++\ \ \<\fBW\fR\> :\fIWrite_the_Configuration_File\fR
++ This will save all of your options and toggles plus the current
++ display mode and delay time.
++ By issuing this command just before quitting \*(Me, you will be able restart
++ later in exactly that same state.
++
++ .TP 7
++-\ \ \'\fBZ\fR\' :\fIChange_Color_Mapping
+++\ \ \<\fBZ\fR\> :\fIChange_Color_Mapping
++ This key will take you to a separate screen where you can change the
++ colors for the \*(CW, or for all windows.
++ For details regarding this \*(CI \*(Xt 3d. COLOR Mapping.
++@@ -694,25 +694,25 @@
++ of messages and prompts.
++
++ These commands always impact just the \*(CW/field group.
++-\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
++-\*(CWs and field groups.
+++\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight
+++into \*(CWs and field groups.
++
++ .TP 7
++-\ \ \'\fBl\fR\' :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
+++\ \ \<\fBl\fR\> :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
++ This is also the line containing the program name (possibly an alias) when
++ operating in \*(FM or the \*(CW name when operating in \*(AM.
++
++ .TP 7
++-\ \ \'\fBm\fR\' :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
+++\ \ \<\fBm\fR\> :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
++ This command affects two \*(SA lines.
++
++ .TP 7
++-\ \ \'\fBt\fR\' :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
+++\ \ \<\fBt\fR\> :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
++ This command affects from 2 to many \*(SA lines, depending on the state
++ of the '1' toggle and whether or not \*(Me is running under true SMP.
++
++ .TP 7
++-\ \ \'\fB1\fR\' :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
+++\ \ \<\fB1\fR\> :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
++ This command affects how the 't' command's Cpu States portion is shown.
++ Although this toggle exists primarily to serve massively-parallel SMP machines,
++ it is not restricted to solely SMP environments.
++@@ -744,12 +744,12 @@
++ .in
++
++ .TP 7
++-\ \ \'\fBb\fR\' :\fIBold/Reverse_toggle\fR
+++\ \ \<\fBb\fR\> :\fIBold/Reverse_toggle\fR
++ This command will impact how the 'x' and 'y' toggles are displayed.
++ Further, it will only be available when at least one of those toggles is \*O.
++
++ .TP 7
++-\ \ \'\fBx\fR\' :\fIColumn_Highlight_toggle\fR
+++\ \ \<\fBx\fR\> :\fIColumn_Highlight_toggle\fR
++ Changes highlighting for the current sort field.
++ You probably don't need a constant visual reminder of the sort field and
++ \*(Me hopes that you always run with 'column highlight' \*F, due to the cost
++@@ -759,7 +759,7 @@
++ visual reminder.
++
++ .TP 7
++-\ \ \'\fBy\fR\' :\fIRow_Highlight_toggle\fR
+++\ \ \<\fBy\fR\> :\fIRow_Highlight_toggle\fR
++ Changes highlighting for "running" tasks.
++ For additional insight into this task state, \*(Xt 2a. DESCRIPTIONS of Fields,
++ Process Status.
++@@ -768,7 +768,7 @@
++ The only costs will be a few additional tty escape sequences.
++
++ .TP 7
++-\ \ \'\fBz\fR\' :\fIColor/Monochrome_toggle\fR
+++\ \ \<\fBz\fR\> :\fIColor/Monochrome_toggle\fR
++ Switches the \*(CW between your last used color scheme and the older form
++ of black-on-white or white-on-black.
++ This command will alter\fB both\fR the \*(SA and \*(TA but does not affect the
++@@ -779,20 +779,20 @@
++ .B CONTENT\fR of \*(TW
++ .PD 0
++ .TP 7
++-\ \ \'\fBc\fR\' :\fICommand_Line/Program_Name_toggle\fR
+++\ \ \<\fBc\fR\> :\fICommand_Line/Program_Name_toggle\fR
++ This command will be honored whether or not the 'Command' column
++ is currently visible.
++ Later, should that field come into view, the change you applied will be seen.
++
++ .TP 7
++-\ \ \'\fBf\fR\' and \'\fBo\fR\' :\fIFields_select\fR or \fIOrder_fields\fR
+++\ \ \<\fBf\fR\> and \<\fBo\fR\> :\fIFields_select\fR or \fIOrder_fields\fR
++ These keys display separate screens where you can change which
++ fields are displayed and their order.
++ For additional information on these \*(CIs
++ \*(Xt 2b. SELECTING and ORDERING Columns.
++
++ .TP 7
++-\ \ \'\fBS\fR\' :\fICumulative_Time_Mode_toggle\fR
+++\ \ \<\fBS\fR\> :\fICumulative_Time_Mode_toggle\fR
++ When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
++ time that it and its dead children have used.
++
++@@ -808,7 +808,7 @@
++ effect, simply ask for help and view the window summary on the second line.
++
++ .TP 7
++-\ \ \'\fBu\fR\' :\fIShow_Specific_User_Only\fR
+++\ \ \<\fBu\fR\> :\fIShow_Specific_User_Only\fR
++ You will be prompted to enter the name of the user to display.
++ Thereafter, in that \*(TW only matching User ID's will be shown, or possibly
++ no tasks will be shown.
++@@ -821,7 +821,7 @@
++ .B SIZE\fR of \*(TW
++ .PD 0
++ .TP 7
++-\ \ \'\fBi\fR\' :\fIIdle_Processes_toggle\fR
+++\ \ \<\fBi\fR\> :\fIIdle_Processes_toggle\fR
++ Displays all tasks or just active tasks.
++ When this toggle is \*F, idled or zombied processes will not be displayed.
++
++@@ -829,7 +829,7 @@
++ affect the window's size, as all prior \*(TDs will have already been painted.
++
++ .TP 7
++-\ \ \'\fBn\fR\' or \'#\' :\fISet_Maximum_Tasks\fR
+++\ \ \<\fBn\fR\> or \<\fB#\fR\> :\fISet_Maximum_Tasks\fR
++ You will be prompted to enter the number of tasks to display.
++ The lessor of your number and available screen rows will be used.
++
++@@ -868,12 +868,12 @@
++ .in
++
++ .TP 7
++-\ \ \'\fB<\fR\' :\fIMove_Sort_Field_Left\fR
+++\ \ \<\fB<\fR\> :\fIMove_Sort_Field_Left\fR
++ Moves the sort column to the left unless the current sort field is
++ the first field being displayed.
++
++ .TP 7
++-\ \ \'\fB>\fR\' :\fIMove_Sort_Field_Right\fR
+++\ \ \<\fB>\fR\> :\fIMove_Sort_Field_Right\fR
++ Moves the sort column to the right unless the current sort field is
++ the last field being displayed.
++
++@@ -884,7 +884,7 @@
++ .in
++
++ .TP 7
++-\ \ \'\fBF\fR\' or \'\fBO\fR\' :\fISelect_Sort_Field\fR
+++\ \ \<\fBF\fR\> or \<\fBO\fR\> :\fISelect_Sort_Field\fR
++ These keys display a separate screen where you can change which field
++ is used as the sort column.
++
++@@ -897,7 +897,7 @@
++ when running \*(Me with column highlighting turned \*F.
++
++ .TP 7
++-\ \ \'\fBR\fR\' :\fIReverse/Normal_Sort_Field_toggle\fR
+++\ \ \<\fBR\fR\> :\fIReverse/Normal_Sort_Field_toggle\fR
++ Using this \*(CI you can alternate between high-to-low and low-to-high sorts.
++
++ .PP
++@@ -974,7 +974,7 @@
++ .\" ......................................................................
++ .SS 4b. COMMANDS for Windows
++ .TP 7
++-\ \ \'\fB-\fR\' and \'\fB_\fR\' :\fIShow/Hide_Window(s)_toggles\fR
+++\ \ \<\fB-\fR\> and \<\fB_\fR\> :\fIShow/Hide_Window(s)_toggles\fR
++ The '-' key turns the \*(CW's \*(TD \*O and \*F.
++ When \*O, that \*(TA will show a minimum of the columns header you've
++ established with the 'f' and 'o' commands.
++@@ -988,7 +988,7 @@
++ as the only display element.
++
++ .TP 7
++-*\ \'\fB=\fR\' and \'\fB+\fR\' :\fIEqualize_(re-balance)_Window(s)\fR
+++*\ \<\fB=\fR\> and \<\fB+\fR\> :\fIEqualize_(re-balance)_Window(s)\fR
++ The '=' key forces the \*(CW's \*(TD to be visible.
++ It also reverses any 'i' (idle tasks) and 'n' (max tasks) commands that might
++ be active.
++@@ -999,7 +999,7 @@
++ except for the 'i' (idle tasks) and 'n' (max tasks) commands.
++
++ .TP 7
++-*\ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
+++*\ \<\fBA\fR\> :\fIAlternate_Display_Mode_toggle\fR
++ This command will switch between \*(FM and \*(AM.
++
++ The first time you issue this command, all four \*(TDs will be shown.
++@@ -1007,7 +1007,7 @@
++ chosen to make visible.
++
++ .TP 7
++-*\ \'\fBa\fR\' and \'\fBw\fR\' :\fINext_Window_Forward/Backward\fR
+++*\ \<\fBa\fR\> and \<\fBw\fR\> :\fINext_Window_Forward/Backward\fR
++ This will change the \*(CW, which in turn changes the window to which
++ commands are directed.
++ These keys act in a circular fashion so you can reach any desired \*(CW
++@@ -1018,7 +1018,7 @@
++ the \*(TD is \*F and many commands will be restricted.
++
++ .TP 7
++-*\ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
+++*\ \<\fBG\fR\> :\fIChoose_Another_Window/Field_Group\fR
++ You will be prompted to enter a number between 1 and 4 designating the
++ window/field group which should be made the \*(CW.
++
++@@ -1027,15 +1027,15 @@
++ commands.
++
++ .TP 7
++-\ \ \'\fBg\fR\' :\fIChange_Window/Field_Group_Name\fR
+++\ \ \<\fBg\fR\> :\fIChange_Window/Field_Group_Name\fR
++ You will be prompted for a new name to be applied to the \*(CW.
++ It does not require that the window name be visible
++ (the 'l' toggle to be \*O).
++
++ .IP "*" 3
++ The \*(CIs shown with an \*(AS have use beyond \*(AM.
++- \'=', 'A', 'G' are always available
++- \'a', 'w' act the same when color mapping
+++ '=', 'A', 'G' are always available
+++ 'a', 'w' act the same when color mapping
++
++
++ .\" ----------------------------------------------------------------------
++
++
++
++
++
++
+--- procps-3.1.15.orig/debian/patches/10_sysctl_quiet.dpatch
++++ procps-3.1.15/debian/patches/10_sysctl_quiet.dpatch
+@@ -0,0 +1,119 @@
++#! /bin/sh -e
++## 10_sysctl_quiet by Simon Horman
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: Adds quiet -q flag to sysctl
++
++[ -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 -ru procps-3.1.8/sysctl.8 procps-3.1.8.new/sysctl.8
++--- procps-3.1.8/sysctl.8 2002-12-12 07:51:32.000000000 +0900
+++++ procps-3.1.8.new/sysctl.8 2003-04-15 20:30:46.000000000 +0900
++@@ -12,9 +12,9 @@
++ .SH SYNOPSIS
++ .B "sysctl [-n] [-e] variable ..."
++ .br
++-.B "sysctl [-n] [-e] -w variable=value ..."
+++.B "sysctl [-n] [-e] [-q] -w variable=value ..."
++ .br
++-.B "sysctl [-n] [-e] -p <filename>"
+++.B "sysctl [-n] [-e] [-q] -p <filename>"
++ .br
++ .B "sysctl [-n] [-e] -a"
++ .br
++@@ -45,6 +45,9 @@
++ .B "-e"
++ Use this option to ignore errors about unknown keys.
++ .TP
+++.B "-q"
+++Use this option to not display the values set to stdout.
+++.TP
++ .B "-w"
++ Use this option when you want to change a sysctl setting.
++ .TP
++diff -ru procps-3.1.8/sysctl.c procps-3.1.8.new/sysctl.c
++--- procps-3.1.8/sysctl.c 2002-12-29 08:26:50.000000000 +0900
+++++ procps-3.1.8.new/sysctl.c 2003-04-15 20:35:08.000000000 +0900
++@@ -15,6 +15,8 @@
++ * Changelog:
++ * v1.01:
++ * - added -p <preload> to preload values from a file
+++ * Horms:
+++ * - added -q to be quiet when modifying values
++ *
++ * Changes by Albert Cahalan, 2002.
++ */
++@@ -46,6 +48,7 @@
++ static bool PrintName;
++ static bool PrintNewline;
++ static bool IgnoreError;
+++static bool Quiet;
++
++ /* error messages */
++ static const char ERR_UNKNOWN_PARAMETER[] = "error: Unknown parameter '%s'\n";
++@@ -80,9 +83,9 @@
++ */
++ static int Usage(const char *restrict const name) {
++ printf("usage: %s [-n] [-e] variable ... \n"
++- " %s [-n] [-e] -w variable=value ... \n"
+++ " %s [-n] [-e] [-q] -w variable=value ... \n"
++ " %s [-n] [-e] -a \n"
++- " %s [-n] [-e] -p <file> (default /etc/sysctl.conf) \n"
+++ " %s [-n] [-e] [-q] -p <file> (default /etc/sysctl.conf) \n"
++ " %s [-n] [-e] -A\n", name, name, name, name, name);
++ return -1;
++ }
++@@ -290,13 +293,14 @@
++ fprintf(fp, "%s\n", value);
++ fclose(fp);
++
++- if (PrintName) {
+++ if(Quiet) {
+++ ;
+++ } else if (PrintName) {
++ fprintf(stdout, "%s = %s\n", outname, value);
+++ } else if (PrintNewline) {
+++ fprintf(stdout, "%s\n", value);
++ } else {
++- if (PrintNewline)
++- fprintf(stdout, "%s\n", value);
++- else
++- fprintf(stdout, "%s", value);
+++ fprintf(stdout, "%s", value);
++ }
++ }
++
++@@ -377,6 +381,7 @@
++ PrintName = true;
++ PrintNewline = true;
++ IgnoreError = false;
+++ Quiet = false;
++
++ if (argc < 2) {
++ return Usage(me);
++@@ -419,6 +424,9 @@
++ preloadfile = *argv;
++ }
++ return Preload(preloadfile);
+++ case 'q':
+++ Quiet = true;
+++ break;
++ case 'a': /* string and integer values (for Linux, all of them) */
++ case 'A': /* the above, including "opaques" (would be unprintable) */
++ case 'X': /* the above, with opaques completly printed in hex */
+--- procps-3.1.15.orig/debian/patches/00list
++++ procps-3.1.15/debian/patches/00list
+@@ -0,0 +1,5 @@
++10_sysctl_quiet
++20_procps-fix+attr
++20_ps.1
++20_top_manpage
++30_remove_test_dir
+--- procps-3.1.15.orig/debian/patches/30_remove_test_dir.dpatch
++++ procps-3.1.15/debian/patches/30_remove_test_dir.dpatch
+@@ -0,0 +1,2911 @@
++#! /bin/sh -e
++## 30_remove_test-dir by Craif Small
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: Removing test directory
++[ -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 -ruN procps-3.1.15.old/test/clone-army.c procps-3.1.15/test/clone-army.c
++--- procps-3.1.15.old/test/clone-army.c 2003-10-05 04:46:34.000000000 +1000
+++++ procps-3.1.15/test/clone-army.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,127 +0,0 @@
++-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
++-
++-#include <sys/types.h>
++-#include <unistd.h>
++-#include <signal.h>
++-//#include <sys/stat.h>
++-//#include <fcntl.h>
++-//#include <stdlib.h>
++-#include <stdio.h>
++-#include <sched.h>
++-
++-#if 0
++-#define CLONE_VM 0x00000100 // set if VM shared between processes
++-#define CLONE_FS 0x00000200 // set if fs info shared between processes
++-#define CLONE_FILES 0x00000400 // set if open files shared between processes
++-#define CLONE_SIGHAND 0x00000800 // set if signal handlers and blocked signals shared
++-#define CLONE_IDLETASK 0x00001000 // set if new pid should be 0 (kernel only)*/
++-#define CLONE_PTRACE 0x00002000 // set if we want to let tracing continue on the child too
++-#define CLONE_VFORK 0x00004000 // set if the parent wants the child to wake it up on mm_release
++-#define CLONE_PARENT 0x00008000 // set if we want to have the same parent as the cloner
++-#define CLONE_THREAD 0x00010000 // Same thread group?
++-#define CLONE_NEWNS 0x00020000 // New namespace group?
++-#define CLONE_SYSVSEM 0x00040000 // share system V SEM_UNDO semantics
++-#define CLONE_SETTLS 0x00080000 // create a new TLS for the child
++-#define CLONE_PARENT_SETTID 0x00100000 // set the TID in the parent
++-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
++-#define CLONE_DETACHED 0x00400000 // parent wants no child-exit signal
++-#define CLONE_UNTRACED 0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
++-#define CLONE_CHILD_SETTID 0x01000000 // set the TID in the child
++-#define CLONE_STOPPED 0x02000000 // Start in stopped state
++-#endif
++-
++-#ifndef CLONE_THREAD
++-#define CLONE_THREAD 0x00010000
++-#endif
++-#ifndef CLONE_DETACHED
++-#define CLONE_DETACHED 0x00400000
++-#endif
++-
++-
++-// interesting: VM FS FILES SIGHAND PARENT THREAD SYSVSEM DETACHED
++-
++-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
++-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
++-
++-// Don't cause rejection: FS FILES SYSVSEM PARENT
++-// Do cause rejection:
++-
++-static void printflags(int pass, unsigned flags){
++- printf(
++- "%s %08x %s %s %s %s\n",
++- pass?"pass":"FAIL",
++- flags,
++- (flags&CLONE_THREAD) ? "THREAD" : "______",
++- (flags&CLONE_DETACHED) ? "DETACHED" : "________",
++- (flags&CLONE_SIGHAND) ? "SIGHAND" : "_______",
++- (flags&CLONE_SIGHAND) ? "VM" : "__"
++- );
++-}
++-
++-static unsigned genflags(unsigned flags){
++- return (
++- (flags&0x08) ? 0 : CLONE_THREAD
++- )|(
++- (flags&0x04) ? 0 : CLONE_DETACHED
++- )|(
++- (flags&0x02) ? 0 : CLONE_SIGHAND
++- )|(
++- (flags&0x01) ? 0 : CLONE_VM
++- );
++-}
++-
++-//static pid_t one;
++-
++-//static void die(int signo){
++-// (void)signo;
++-// _exit(0);
++-//}
++-
++-//static void sigchld_handler(int signo){
++-// (void)signo;
++-// kill(one,SIGHUP); // kill parent
++-//}
++-
++-static int clone_fn(void *vp){
++- for(;;) pause();
++-}
++-
++-static long clone_stack_data[2048];
++-#ifdef __hppa__
++-static long *clone_stack = &clone_stack_data[0];
++-#else
++-static long *clone_stack = &clone_stack_data[2048];
++-#endif
++-
++-int main(int argc, char *argv[]){
++- unsigned u;
++- pid_t minime;
++- (void)argc;
++- (void)argv;
++-
++-// one = getpid();
++-// signal(SIGHUP,die);
++-// if(fork()) hang(); // parent later killed as readyness signal
++-
++- u = 16;
++-
++- while(u--){
++- unsigned f = genflags(u);
++- minime = clone(clone_fn, clone_stack, f, "arg");
++-
++- printflags(minime!=-1, f);
++-// if(minime==-1){
++-// perror("no clone");
++-// _exit(8);
++-// }
++-
++-// printf("%d begat %d\n",getpid(),minime);
++- }
++-
++-
++-// kill(one,SIGHUP); // let the shell know we're ready
++-
++-// clone_fn();
++-
++- return 0;
++-}
++diff -ruN procps-3.1.15.old/test/clone-once.c procps-3.1.15/test/clone-once.c
++--- procps-3.1.15.old/test/clone-once.c 2003-10-20 10:56:12.000000000 +1000
+++++ procps-3.1.15/test/clone-once.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,97 +0,0 @@
++-#include <sys/types.h>
++-#include <unistd.h>
++-#include <signal.h>
++-//#include <sys/stat.h>
++-//#include <fcntl.h>
++-//#include <stdlib.h>
++-#include <stdio.h>
++-#include <sched.h>
++-
++-#if 0
++-#define CLONE_VM 0x00000100 // set if VM shared between processes
++-#define CLONE_FS 0x00000200 // set if fs info shared between processes
++-#define CLONE_FILES 0x00000400 // set if open files shared between processes
++-#define CLONE_SIGHAND 0x00000800 // set if signal handlers and blocked signals shared
++-#define CLONE_IDLETASK 0x00001000 // set if new pid should be 0 (kernel only)*/
++-#define CLONE_PTRACE 0x00002000 // set if we want to let tracing continue on the child too
++-#define CLONE_VFORK 0x00004000 // set if the parent wants the child to wake it up on mm_release
++-#define CLONE_PARENT 0x00008000 // set if we want to have the same parent as the cloner
++-#define CLONE_THREAD 0x00010000 // Same thread group?
++-#define CLONE_NEWNS 0x00020000 // New namespace group?
++-#define CLONE_SYSVSEM 0x00040000 // share system V SEM_UNDO semantics
++-#define CLONE_SETTLS 0x00080000 // create a new TLS for the child
++-#define CLONE_PARENT_SETTID 0x00100000 // set the TID in the parent
++-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
++-#define CLONE_DETACHED 0x00400000 // parent wants no child-exit signal
++-#define CLONE_UNTRACED 0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
++-#define CLONE_CHILD_SETTID 0x01000000 // set the TID in the child
++-#define CLONE_STOPPED 0x02000000 // Start in stopped state
++-#endif
++-
++-#ifndef CLONE_THREAD
++-#define CLONE_THREAD 0x00010000
++-#endif
++-#ifndef CLONE_DETACHED
++-#define CLONE_DETACHED 0x00400000
++-#endif
++-
++-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
++-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
++-
++-static pid_t one;
++-
++-static void die(int signo){
++- (void)signo;
++- _exit(0);
++-}
++-
++-//static void sigchld_handler(int signo){
++-// (void)signo;
++-// kill(one,SIGHUP); // kill parent
++-//}
++-
++-static void hang(void){
++- for(;;) pause();
++-}
++-
++-static int clone_fn(void *vp){
++-// const char msg[] = "I think I'm a clone now!\n";
++- (void)vp;
++-// write(STDOUT_FILENO, msg, sizeof(msg)-1);
++- hang();
++- return 0; // keep gcc happy
++-}
++-
++-static long clone_stack_data[2048];
++-#ifdef __hppa__
++-static long *clone_stack = &clone_stack_data[0];
++-#else
++-static long *clone_stack = &clone_stack_data[2048];
++-#endif
++-
++-int main(int argc, char *argv[]){
++- pid_t minime;
++- (void)argc;
++- (void)argv;
++-
++- one = getpid();
++- signal(SIGHUP,die);
++- if(fork()) hang(); // parent later killed as readyness signal
++-
++-
++- minime = clone(clone_fn, clone_stack, FLAGS, "arg");
++-
++- if(minime==-1){
++- perror("no clone");
++- kill(one,SIGKILL);
++- _exit(8);
++- }
++-
++-// printf("%d begat %d\n",getpid(),minime);
++-
++- kill(one,SIGHUP); // let the shell know we're ready
++-
++- hang();
++-
++- return 0;
++-}
++diff -ruN procps-3.1.15.old/test/fork-you.c procps-3.1.15/test/fork-you.c
++--- procps-3.1.15.old/test/fork-you.c 2003-09-05 14:18:30.000000000 +1000
+++++ procps-3.1.15/test/fork-you.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,27 +0,0 @@
++-#include <sys/types.h>
++-#include <unistd.h>
++-#include <signal.h>
++-
++-static void die(int signo){
++- (void)signo;
++- _exit(0);
++-}
++-
++-static void hang(void){
++- for(;;) pause();
++-}
++-
++-int main(int argc, char *argv[]){
++- pid_t pid;
++-
++- (void)argv;
++-
++- pid = getpid();
++- signal(SIGHUP,die);
++- if(fork()) hang(); // parent later killed as readyness signal
++- kill(1,9); // "kill" unkillable init to touch lib pages
++- while(argc--) if(!fork()) hang();
++- kill(pid,SIGHUP); // kill parent
++- hang();
++- return 0;
++-}
++diff -ruN procps-3.1.15.old/test/funny-thing.c procps-3.1.15/test/funny-thing.c
++--- procps-3.1.15.old/test/funny-thing.c 2003-09-08 13:55:57.000000000 +1000
+++++ procps-3.1.15/test/funny-thing.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,38 +0,0 @@
++-#include <sys/types.h>
++-#include <unistd.h>
++-#include <signal.h>
++-
++-static pid_t one;
++-
++-static void die(int signo){
++- (void)signo;
++- _exit(0);
++-}
++-
++-static void hang(void){
++- for(;;) pause();
++-}
++-
++-int main(int argc, char *argv[]){
++- (void)argc;
++- (void)argv;
++-
++- one = getpid();
++- signal(SIGHUP,die);
++- if(fork()) hang(); // parent later killed as readyness signal
++-
++- // second one exits, to enable setsid(), and the resulting
++- // zombie will be reaped by init after 1st process killed
++- if(!fork()) _exit(0);
++-
++- if(setsid()==-1){
++- kill(one,SIGKILL); // hopefully the shell will complain
++- _exit(42); // kind of tough to report errors
++- }
++-
++- kill(one,SIGHUP); // let the shell know we're ready
++-
++- hang();
++-
++- return 0;
++-}
++diff -ruN procps-3.1.15.old/test/gigabyte.c procps-3.1.15/test/gigabyte.c
++--- procps-3.1.15.old/test/gigabyte.c 2003-09-11 10:23:56.000000000 +1000
+++++ procps-3.1.15/test/gigabyte.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,74 +0,0 @@
++-#include <sys/types.h>
++-#include <unistd.h>
++-#include <signal.h>
++-//#include <sys/ioctl.h>
++-//#include <sys/stat.h>
++-//#include <fcntl.h>
++-#include <stdio.h>
++-#include <sys/mman.h>
++-
++-static void die(int signo){
++- (void)signo;
++- _exit(0);
++-}
++-
++-static void hang(void){
++- for(;;) pause();
++-}
++-
++-#ifndef MAP_NORESERVE
++-#define MAP_NORESERVE 0
++-#endif
++-
++-int main(int argc, char *argv[]){
++- void *vp;
++- pid_t pid;
++- size_t length = 1024*1024*1024;
++- unsigned maps; // how many mappings to do
++-
++- (void)argc;
++- (void)argv;
++-
++- if(sizeof(void*)==8){
++- maps = 10;
++- puts("64bit");
++- }else{
++- maps = 1;
++- puts("32bit");
++- }
++- fflush(stdout);
++-
++- pid = getpid();
++- signal(SIGHUP,die);
++- if(fork()) hang(); // parent later killed as readyness signal
++-
++-
++- while(maps){
++- vp = mmap(
++- 0, // start
++- length,
++- PROT_READ|PROT_WRITE,
++- MAP_PRIVATE|MAP_NORESERVE|MAP_ANONYMOUS,
++- 0, // fd
++- 0 // offset
++- );
++- if(vp==MAP_FAILED){
++- // try a smaller size; maybe fragmentation stopped us
++- length /= 2;
++- maps *= 2;
++- }else{
++- maps--;
++- }
++- if(maps>200 || length<2*1024*1024){
++- kill(pid,SIGKILL); // hopefully the shell will complain
++- _exit(88);
++- }
++- }
++-
++- close(0);
++- close(1);
++- close(2);
++- kill(pid,SIGHUP); // kill parent
++- hang();
++- return 0;
++-}
++diff -ruN procps-3.1.15.old/test/got-no-tty.c procps-3.1.15/test/got-no-tty.c
++--- procps-3.1.15.old/test/got-no-tty.c 2003-09-05 14:17:57.000000000 +1000
+++++ procps-3.1.15/test/got-no-tty.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,46 +0,0 @@
++-#include <sys/types.h>
++-#include <unistd.h>
++-#include <signal.h>
++-#include <sys/ioctl.h>
++-#include <sys/stat.h>
++-#include <fcntl.h>
++-#include <stdio.h>
++-
++-static void die(int signo){
++- (void)signo;
++- _exit(0);
++-}
++-
++-static void hang(void){
++- for(;;) pause();
++-}
++-
++-int main(int argc, char *argv[]){
++- int fd;
++- pid_t pid;
++-
++- (void)argc;
++- (void)argv;
++-
++- pid = getpid();
++- signal(SIGHUP,die);
++- if(fork()) hang(); // parent later killed as readyness signal
++-
++-
++- // Use the TIOCNOTTY ioctl to detach from the tty
++- // and, supposedly, set the process group ID to zero.
++- // Reality: PGRP unchanged, TPGID becomes -1, TTY lost.
++- fd = open("/dev/tty", O_RDONLY);
++- if(!fd){
++- perror("open /dev/tty");
++- _exit(1);
++- }
++- if(ioctl(fd, TIOCNOTTY)==-1){
++- perror("open /dev/tty");
++- _exit(1);
++- }
++-
++- kill(pid,SIGHUP); // kill parent
++- hang();
++- return 0;
++-}
++diff -ruN procps-3.1.15.old/test/mini-me.c procps-3.1.15/test/mini-me.c
++--- procps-3.1.15.old/test/mini-me.c 2003-09-22 05:50:38.000000000 +1000
+++++ procps-3.1.15/test/mini-me.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,97 +0,0 @@
++-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
++-
++-#include <sys/types.h>
++-#include <unistd.h>
++-#include <signal.h>
++-//#include <sys/stat.h>
++-//#include <fcntl.h>
++-//#include <stdlib.h>
++-#include <stdio.h>
++-#include <sched.h>
++-
++-#if 0
++-#define CLONE_VM 0x00000100 // set if VM shared between processes
++-#define CLONE_FS 0x00000200 // set if fs info shared between processes
++-#define CLONE_FILES 0x00000400 // set if open files shared between processes
++-#define CLONE_SIGHAND 0x00000800 // set if signal handlers and blocked signals shared
++-#define CLONE_IDLETASK 0x00001000 // set if new pid should be 0 (kernel only)*/
++-#define CLONE_PTRACE 0x00002000 // set if we want to let tracing continue on the child too
++-#define CLONE_VFORK 0x00004000 // set if the parent wants the child to wake it up on mm_release
++-#define CLONE_PARENT 0x00008000 // set if we want to have the same parent as the cloner
++-#define CLONE_THREAD 0x00010000 // Same thread group?
++-#define CLONE_NEWNS 0x00020000 // New namespace group?
++-#define CLONE_SYSVSEM 0x00040000 // share system V SEM_UNDO semantics
++-#define CLONE_SETTLS 0x00080000 // create a new TLS for the child
++-#define CLONE_PARENT_SETTID 0x00100000 // set the TID in the parent
++-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
++-#define CLONE_DETACHED 0x00400000 // parent wants no child-exit signal
++-#define CLONE_UNTRACED 0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
++-#define CLONE_CHILD_SETTID 0x01000000 // set the TID in the child
++-#define CLONE_STOPPED 0x02000000 // Start in stopped state
++-#endif
++-
++-#ifndef CLONE_THREAD
++-#define CLONE_THREAD 0x00010000
++-#endif
++-#ifndef CLONE_DETACHED
++-#define CLONE_DETACHED 0x00400000
++-#endif
++-
++-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
++-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
++-
++-//static pid_t one;
++-
++-//static void die(int signo){
++-// (void)signo;
++-// _exit(0);
++-//}
++-
++-//static void sigchld_handler(int signo){
++-// (void)signo;
++-// kill(one,SIGHUP); // kill parent
++-//}
++-
++-static void hang(void){
++- for(;;) pause();
++-}
++-
++-static int clone_fn(void *vp){
++- const char msg[] = "I think I'm a clone now!\n";
++- write(STDOUT_FILENO, msg, sizeof(msg)-1);
++- hang();
++-}
++-
++-static long clone_stack_data[2048];
++-#ifdef __hppa__
++-static long *clone_stack = &clone_stack_data[0];
++-#else
++-static long *clone_stack = &clone_stack_data[2048];
++-#endif
++-
++-int main(int argc, char *argv[]){
++- pid_t minime;
++- (void)argc;
++- (void)argv;
++-
++-// one = getpid();
++-// signal(SIGHUP,die);
++-// if(fork()) hang(); // parent later killed as readyness signal
++-
++-
++- minime = clone(clone_fn, clone_stack, FLAGS, "arg");
++-
++- if(minime==-1){
++-// kill(one,SIGKILL);
++- perror("no clone");
++- _exit(8);
++- }
++-
++- printf("%d begat %d\n",getpid(),minime);
++-
++-// kill(one,SIGHUP); // let the shell know we're ready
++-
++- hang();
++-
++- return 0;
++-}
++diff -ruN procps-3.1.15.old/test/module.mk procps-3.1.15/test/module.mk
++--- procps-3.1.15.old/test/module.mk 2003-12-25 02:02:52.000000000 +1100
+++++ procps-3.1.15/test/module.mk 1970-01-01 10:00:00.000000000 +1000
++@@ -1,36 +0,0 @@
++-# This file gets included into the main Makefile, in the top directory.
++-
++-#INSTALL += $(bin)test $(man1)test.1 -- some data dump thing maybe?
++-
++-# directories for cleaning
++-DIRS += test/ $(wildcard test/*/*/)
++-
++-TEST_C := fork-you the_living_dead got-no-tty sidious sid-breaks-ttys \
++- gigabyte mini-me funny-thing clone-army clone-once
++-TESTNAMES := $(addprefix test/,$(TEST_C))
++-TESTOBJ := $(addsuffix .o,$(TESTNAMES))
++-TESTSRC := $(addsuffix .c,$(TESTNAMES)) test/th.c
++-
++-# files to create
++-ALL += $(TESTNAMES)
++-
++-# files to remove
++-TEST_JUNK := stderr stdout header stderr.test stderr.good
++-CLEAN += $(addprefix test/,$(TEST_JUNK)) $(TESTNAMES) test/th $(wildcard test/*.tmp)
++-
++-TEST_X := module.mk script-child onetest runtests
++-TARFILES += $(TESTSRC) $(addprefix test/,$(TEST_X)) $(wildcard test/*/*)
++-
++-$(TESTNAMES): %: %.o
++- $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -o $@ $^
++-
++-# add proc/$(SONAME) on the end later if needed
++-$(TESTOBJ): %.o: %.c
++- $(CC) -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $< -o $@
++-
++-test/th: test/th.o
++- $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -o $@ $^ -lpthread
++-
++-test/th.o: test/th.c
++- $(CC) -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $< -o $@
++-
++diff -ruN procps-3.1.15.old/test/onetest procps-3.1.15/test/onetest
++--- procps-3.1.15.old/test/onetest 2003-12-25 02:02:08.000000000 +1100
+++++ procps-3.1.15/test/onetest 1970-01-01 10:00:00.000000000 +1000
++@@ -1,70 +0,0 @@
++-#!/bin/bash
++-
++-unset I_WANT_A_BROKEN_PS
++-unset PS_PERSONALITY
++-unset CMD_ENV
++-unset PS_FORMAT
++-
++-export LANG=C
++-export LC_ALL=C
++-export TZ=GMT
++-
++-TESTNAME=$1
++-
++-# enlarge as needed in setup to avoid COMMAND becoming COMMA, etc.
++-export COLUMNS=111
++-
++-: ${LD_LIBRARY_PATH:=../proc}
++-: ${TESTME:=../ps/ps}
++-export LD_LIBRARY_PATH
++-export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH # if ever a darwin port
++-
++-
++-
++-. $TESTNAME/setup
++-$TESTME $ARGS > stdout 2> stderr
++-RESULT=$?
++-if [ x$KILLFN == x1 ] ; then
++- killfn
++-fi
++-
++-
++-
++-if [ x$RESULT != x$GOOD ] ; then
++- echo FAIL $TESTNAME err-$RESULT
++- exit 1
++-fi
++-
++-rm -f stderr.test ; touch stderr.test
++-if [ -f stderr ] ; then
++- head -3 < stderr > stderr.test
++-fi
++-rm -f stderr.good ; touch stderr.good
++-if [ -f $TESTNAME/stderr ] ; then
++- head -3 < $TESTNAME/stderr > stderr.good
++-fi
++-diff -Naurd stderr.test stderr.good >> /dev/null
++-if [ x$? != x0 ] ; then
++- echo FAIL $TESTNAME wrong-stderr
++- exit 1
++-fi
++-
++-if [ -f $TESTNAME/header ] ; then
++- (printf ' ' ; head -1 stdout) | tr -s ' ' > header
++- diff -Naurd header $TESTNAME/header >> /dev/null
++- if [ x$? != x0 ] ; then
++- echo FAIL $TESTNAME wrong-header
++- exit 1
++- fi
++-fi
++-
++-if [ x$EVALFN == x1 ] ; then
++- evalfn
++- if [ x$? != x0 ] ; then
++- echo FAIL $TESTNAME eval-fn
++- exit 1
++- fi
++-fi
++-
++-echo pass $TESTNAME a-ok
++-exit 0
++diff -ruN procps-3.1.15.old/test/ps/LT-mix/header procps-3.1.15/test/ps/LT-mix/header
++--- procps-3.1.15.old/test/ps/LT-mix/header 2003-10-02 12:38:29.000000000 +1000
+++++ procps-3.1.15/test/ps/LT-mix/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/LT-mix/setup procps-3.1.15/test/ps/LT-mix/setup
++--- procps-3.1.15.old/test/ps/LT-mix/setup 2003-10-02 12:39:40.000000000 +1000
+++++ procps-3.1.15/test/ps/LT-mix/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-L -T"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/LT-mix/stderr procps-3.1.15/test/ps/LT-mix/stderr
++--- procps-3.1.15.old/test/ps/LT-mix/stderr 2003-10-02 12:40:03.000000000 +1000
+++++ procps-3.1.15/test/ps/LT-mix/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Thread flags conflict; can't use both -L and -T.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/O-O/header procps-3.1.15/test/ps/O-O/header
++--- procps-3.1.15.old/test/ps/O-O/header 2003-10-02 12:01:36.000000000 +1000
+++++ procps-3.1.15/test/ps/O-O/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/O-O/setup procps-3.1.15/test/ps/O-O/setup
++--- procps-3.1.15.old/test/ps/O-O/setup 2003-10-02 12:02:01.000000000 +1000
+++++ procps-3.1.15/test/ps/O-O/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-O wchan -O sess"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/O-O/stderr procps-3.1.15/test/ps/O-O/stderr
++--- procps-3.1.15.old/test/ps/O-O/stderr 2003-10-02 12:05:19.000000000 +1000
+++++ procps-3.1.15/test/ps/O-O/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: option -O can not follow other format options.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/O-o/header procps-3.1.15/test/ps/O-o/header
++--- procps-3.1.15.old/test/ps/O-o/header 2003-10-02 12:06:18.000000000 +1000
+++++ procps-3.1.15/test/ps/O-o/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID WCHAN S TTY TIME COMMAND SESS
++diff -ruN procps-3.1.15.old/test/ps/O-o/setup procps-3.1.15/test/ps/O-o/setup
++--- procps-3.1.15.old/test/ps/O-o/setup 2003-10-02 12:05:41.000000000 +1000
+++++ procps-3.1.15/test/ps/O-o/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-O wchan -o sess"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header/header procps-3.1.15/test/ps/aix-pcpu-header/header
++--- procps-3.1.15.old/test/ps/aix-pcpu-header/header 2003-09-03 07:26:05.000000000 +1000
+++++ procps-3.1.15/test/ps/aix-pcpu-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- %CPU
++diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header/setup procps-3.1.15/test/ps/aix-pcpu-header/setup
++--- procps-3.1.15.old/test/ps/aix-pcpu-header/setup 2003-09-03 07:24:28.000000000 +1000
+++++ procps-3.1.15/test/ps/aix-pcpu-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o %cpu"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header2/header procps-3.1.15/test/ps/aix-pcpu-header2/header
++--- procps-3.1.15.old/test/ps/aix-pcpu-header2/header 2003-09-03 07:26:30.000000000 +1000
+++++ procps-3.1.15/test/ps/aix-pcpu-header2/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- COMMAND px
++diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header2/setup procps-3.1.15/test/ps/aix-pcpu-header2/setup
++--- procps-3.1.15.old/test/ps/aix-pcpu-header2/setup 2003-09-03 07:25:22.000000000 +1000
+++++ procps-3.1.15/test/ps/aix-pcpu-header2/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o %cpx"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bad-format-env/header procps-3.1.15/test/ps/bad-format-env/header
++--- procps-3.1.15.old/test/ps/bad-format-env/header 2003-10-02 12:16:37.000000000 +1000
+++++ procps-3.1.15/test/ps/bad-format-env/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/bad-format-env/setup procps-3.1.15/test/ps/bad-format-env/setup
++--- procps-3.1.15.old/test/ps/bad-format-env/setup 2003-10-02 12:16:22.000000000 +1000
+++++ procps-3.1.15/test/ps/bad-format-env/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-ARGS=
++-GOOD=0
++-export PS_FORMAT=booger
++diff -ruN procps-3.1.15.old/test/ps/bad-format-env/stderr procps-3.1.15/test/ps/bad-format-env/stderr
++--- procps-3.1.15.old/test/ps/bad-format-env/stderr 2003-10-02 12:16:13.000000000 +1000
+++++ procps-3.1.15/test/ps/bad-format-env/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-Warning: $PS_FORMAT ignored. (Unknown user-defined format specifier "booger".)
++diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/header procps-3.1.15/test/ps/bogus-n-header/header
++--- procps-3.1.15.old/test/ps/bogus-n-header/header 2003-09-02 09:37:07.000000000 +1000
+++++ procps-3.1.15/test/ps/bogus-n-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/setup procps-3.1.15/test/ps/bogus-n-header/setup
++--- procps-3.1.15.old/test/ps/bogus-n-header/setup 2003-09-02 09:34:40.000000000 +1000
+++++ procps-3.1.15/test/ps/bogus-n-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-n"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/stderr procps-3.1.15/test/ps/bogus-n-header/stderr
++--- procps-3.1.15.old/test/ps/bogus-n-header/stderr 2003-09-02 09:35:37.000000000 +1000
+++++ procps-3.1.15/test/ps/bogus-n-header/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-Warning: bad syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
++diff -ruN procps-3.1.15.old/test/ps/bsd-T/header procps-3.1.15/test/ps/bsd-T/header
++--- procps-3.1.15.old/test/ps/bsd-T/header 2003-09-02 11:54:41.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-T/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-T/setup procps-3.1.15/test/ps/bsd-T/setup
++--- procps-3.1.15.old/test/ps/bsd-T/setup 2003-09-02 11:53:24.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-T/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,11 +0,0 @@
++-ARGS=T
++-GOOD=0
++-EVALFN=1
++-
++-# default output is restricted to this tty
++-MYTTY=`tty`
++-
++-evalfn () {
++- PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
++- [ /dev/$PSTTY == $MYTTY ]
++-}
++diff -ruN procps-3.1.15.old/test/ps/bsd-j-header/header procps-3.1.15/test/ps/bsd-j-header/header
++--- procps-3.1.15.old/test/ps/bsd-j-header/header 2003-09-02 22:33:49.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-j-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-j-header/setup procps-3.1.15/test/ps/bsd-j-header/setup
++--- procps-3.1.15.old/test/ps/bsd-j-header/setup 2003-09-02 22:32:53.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-j-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="j"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bsd-j-header2/header procps-3.1.15/test/ps/bsd-j-header2/header
++--- procps-3.1.15.old/test/ps/bsd-j-header2/header 2003-09-02 23:16:25.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-j-header2/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-j-header2/setup procps-3.1.15/test/ps/bsd-j-header2/setup
++--- procps-3.1.15.old/test/ps/bsd-j-header2/setup 2003-09-02 23:15:16.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-j-header2/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-export CMD_ENV=bsd
++-ARGS="-j"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bsd-l-header/header procps-3.1.15/test/ps/bsd-l-header/header
++--- procps-3.1.15.old/test/ps/bsd-l-header/header 2003-09-02 22:54:09.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-l-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-l-header/setup procps-3.1.15/test/ps/bsd-l-header/setup
++--- procps-3.1.15.old/test/ps/bsd-l-header/setup 2003-09-02 22:53:45.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-l-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="l"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bsd-l-header2/header procps-3.1.15/test/ps/bsd-l-header2/header
++--- procps-3.1.15.old/test/ps/bsd-l-header2/header 2003-09-03 07:26:56.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-l-header2/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-l-header2/setup procps-3.1.15/test/ps/bsd-l-header2/setup
++--- procps-3.1.15.old/test/ps/bsd-l-header2/setup 2003-09-03 07:21:19.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-l-header2/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-export CMD_ENV=bsd
++-ARGS="-l"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bsd-s-header/header procps-3.1.15/test/ps/bsd-s-header/header
++--- procps-3.1.15.old/test/ps/bsd-s-header/header 2003-09-02 22:55:32.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-s-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-s-header/setup procps-3.1.15/test/ps/bsd-s-header/setup
++--- procps-3.1.15.old/test/ps/bsd-s-header/setup 2003-09-02 22:55:06.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-s-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="s"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bsd-s-header2/header procps-3.1.15/test/ps/bsd-s-header2/header
++--- procps-3.1.15.old/test/ps/bsd-s-header2/header 2003-09-03 07:21:33.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-s-header2/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-s-header2/setup procps-3.1.15/test/ps/bsd-s-header2/setup
++--- procps-3.1.15.old/test/ps/bsd-s-header2/setup 2003-09-03 07:21:40.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-s-header2/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-export CMD_ENV=bsd
++-ARGS="-s"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bsd-selection/header procps-3.1.15/test/ps/bsd-selection/header
++--- procps-3.1.15.old/test/ps/bsd-selection/header 2003-09-04 16:04:27.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-selection/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-selection/setup procps-3.1.15/test/ps/bsd-selection/setup
++--- procps-3.1.15.old/test/ps/bsd-selection/setup 2003-09-13 13:47:22.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-selection/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,25 +0,0 @@
++-ARGS="m"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-rm -f misc.tmp ready.tmp typescript.tmp
++-
++-./got-no-tty
++-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
++-(SHELL=`pwd`/script-child script typescript.tmp &>/dev/null) &
++-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
++-. ready.tmp
++-
++-evalfn () {
++- THIS_TTY=`tty | colrm 1 5`
++- lines2=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY)$" | wc -l`
++- lines3=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
++- [ $lines2 == 2 ] && [ $lines3 == 2 ]
++-}
++-
++-killfn () {
++- killall -9 got-no-tty
++- kill -9 $SHELL_PID # the others should freely die
++- rm -f misc.tmp ready.tmp typescript.tmp
++-}
++diff -ruN procps-3.1.15.old/test/ps/bsd-t-1/header procps-3.1.15/test/ps/bsd-t-1/header
++--- procps-3.1.15.old/test/ps/bsd-t-1/header 2003-09-02 11:55:23.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-t-1/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-t-1/setup procps-3.1.15/test/ps/bsd-t-1/setup
++--- procps-3.1.15.old/test/ps/bsd-t-1/setup 2003-09-02 11:56:11.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-t-1/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,11 +0,0 @@
++-# default output is restricted to this tty
++-MYTTY=`tty`
++-
++-ARGS=t$MYTTY
++-GOOD=0
++-EVALFN=1
++-
++-evalfn () {
++- PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
++- [ /dev/$PSTTY == $MYTTY ]
++-}
++diff -ruN procps-3.1.15.old/test/ps/bsd-t-2/header procps-3.1.15/test/ps/bsd-t-2/header
++--- procps-3.1.15.old/test/ps/bsd-t-2/header 2003-09-02 11:55:26.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-t-2/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-t-2/setup procps-3.1.15/test/ps/bsd-t-2/setup
++--- procps-3.1.15.old/test/ps/bsd-t-2/setup 2003-09-02 11:56:54.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-t-2/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,12 +0,0 @@
++-# Ancient usage: t w/o arg is current tty
++-ARGS=t
++-GOOD=0
++-EVALFN=1
++-
++-# default output is restricted to this tty
++-MYTTY=`tty`
++-
++-evalfn () {
++- PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
++- [ /dev/$PSTTY == $MYTTY ]
++-}
++diff -ruN procps-3.1.15.old/test/ps/bsd-t-3/header procps-3.1.15/test/ps/bsd-t-3/header
++--- procps-3.1.15.old/test/ps/bsd-t-3/header 2003-09-02 11:55:27.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-t-3/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-t-3/setup procps-3.1.15/test/ps/bsd-t-3/setup
++--- procps-3.1.15.old/test/ps/bsd-t-3/setup 2003-09-02 12:25:44.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-t-3/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,19 +0,0 @@
++-MYTTY=`tty`
++-
++-# two ways to interpret "ps t 42"
++-#
++-# 1. as "ps t" with "ps 42" (PID 42)
++-# 2. as "ps t42" (tty /dev/tty42)
++-#
++-# The command doesn't seem to be legal BSD syntax, but we try...
++-# We use interpretation #2, since BSD isn't known for ORing.
++-# We'll assume PID 1 is "init" and not on /dev/tty1, and that
++-# nothing on tty1 is named "init".
++-
++-ARGS="t 1"
++-GOOD=0
++-EVALFN=1
++-
++-evalfn () {
++- ! egrep ' init' stdout >> /dev/null
++-}
++diff -ruN procps-3.1.15.old/test/ps/bsd-t-4/header procps-3.1.15/test/ps/bsd-t-4/header
++--- procps-3.1.15.old/test/ps/bsd-t-4/header 2003-09-02 11:55:29.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-t-4/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-t-4/setup procps-3.1.15/test/ps/bsd-t-4/setup
++--- procps-3.1.15.old/test/ps/bsd-t-4/setup 2003-09-02 12:15:34.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-t-4/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,10 +0,0 @@
++-ARGS=t-
++-GOOD=0
++-EVALFN=1
++-
++-# Use 'Y' to avoid shell wildcard problems.
++-
++-evalfn () {
++- PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq | tr '?' 'Y'`
++- [ $PSTTY == 'Y' ]
++-}
++diff -ruN procps-3.1.15.old/test/ps/bsd-u-header/header procps-3.1.15/test/ps/bsd-u-header/header
++--- procps-3.1.15.old/test/ps/bsd-u-header/header 2003-09-02 22:57:35.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-u-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-u-header/setup procps-3.1.15/test/ps/bsd-u-header/setup
++--- procps-3.1.15.old/test/ps/bsd-u-header/setup 2003-09-02 22:57:20.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-u-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="u"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bsd-u-header2/header procps-3.1.15/test/ps/bsd-u-header2/header
++--- procps-3.1.15.old/test/ps/bsd-u-header2/header 2003-09-03 07:27:09.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-u-header2/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-u-header2/setup procps-3.1.15/test/ps/bsd-u-header2/setup
++--- procps-3.1.15.old/test/ps/bsd-u-header2/setup 2003-09-03 07:22:00.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-u-header2/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-export CMD_ENV=bsd
++-ARGS="-u"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bsd-v-header/header procps-3.1.15/test/ps/bsd-v-header/header
++--- procps-3.1.15.old/test/ps/bsd-v-header/header 2003-09-02 22:56:43.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-v-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-v-header/setup procps-3.1.15/test/ps/bsd-v-header/setup
++--- procps-3.1.15.old/test/ps/bsd-v-header/setup 2003-09-02 22:56:10.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-v-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="v"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/bsd-v-header2/header procps-3.1.15/test/ps/bsd-v-header2/header
++--- procps-3.1.15.old/test/ps/bsd-v-header2/header 2003-09-03 07:27:16.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-v-header2/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID STAT TIME SL RE PAGEIN VSZ RSS LIM TSIZ %CPU %MEM COMMAND
++diff -ruN procps-3.1.15.old/test/ps/bsd-v-header2/setup procps-3.1.15/test/ps/bsd-v-header2/setup
++--- procps-3.1.15.old/test/ps/bsd-v-header2/setup 2003-09-03 07:22:17.000000000 +1000
+++++ procps-3.1.15/test/ps/bsd-v-header2/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-export CMD_ENV=bsd
++-ARGS="-v"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/dynix-F-header/header procps-3.1.15/test/ps/dynix-F-header/header
++--- procps-3.1.15.old/test/ps/dynix-F-header/header 2003-09-02 22:31:23.000000000 +1000
+++++ procps-3.1.15/test/ps/dynix-F-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/dynix-F-header/setup procps-3.1.15/test/ps/dynix-F-header/setup
++--- procps-3.1.15.old/test/ps/dynix-F-header/setup 2003-09-02 22:30:43.000000000 +1000
+++++ procps-3.1.15/test/ps/dynix-F-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-F"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/header procps-3.1.15/test/ps/fail-aix-Q/header
++--- procps-3.1.15.old/test/ps/fail-aix-Q/header 2003-10-02 11:31:34.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-aix-Q/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/setup procps-3.1.15/test/ps/fail-aix-Q/setup
++--- procps-3.1.15.old/test/ps/fail-aix-Q/setup 2003-10-02 11:32:11.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-aix-Q/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o %Q"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/stderr procps-3.1.15/test/ps/fail-aix-Q/stderr
++--- procps-3.1.15.old/test/ps/fail-aix-Q/stderr 2003-10-02 11:33:07.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-aix-Q/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Unknown AIX field descriptor.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/header procps-3.1.15/test/ps/fail-aix-improper/header
++--- procps-3.1.15.old/test/ps/fail-aix-improper/header 2003-10-02 11:34:09.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-aix-improper/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/setup procps-3.1.15/test/ps/fail-aix-improper/setup
++--- procps-3.1.15.old/test/ps/fail-aix-improper/setup 2003-10-02 11:34:22.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-aix-improper/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o %"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/stderr procps-3.1.15/test/ps/fail-aix-improper/stderr
++--- procps-3.1.15.old/test/ps/fail-aix-improper/stderr 2003-10-02 11:34:40.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-aix-improper/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Improper AIX field descriptor.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/header procps-3.1.15/test/ps/fail-improper-sort/header
++--- procps-3.1.15.old/test/ps/fail-improper-sort/header 2003-10-02 11:47:57.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-improper-sort/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/setup procps-3.1.15/test/ps/fail-improper-sort/setup
++--- procps-3.1.15.old/test/ps/fail-improper-sort/setup 2003-10-02 11:48:15.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-improper-sort/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="--sort ,,"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/stderr procps-3.1.15/test/ps/fail-improper-sort/stderr
++--- procps-3.1.15.old/test/ps/fail-improper-sort/stderr 2003-10-02 12:22:31.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-improper-sort/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Improper sort list
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/header procps-3.1.15/test/ps/fail-improper-spec/header
++--- procps-3.1.15.old/test/ps/fail-improper-spec/header 2003-10-02 11:37:17.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-improper-spec/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/setup procps-3.1.15/test/ps/fail-improper-spec/setup
++--- procps-3.1.15.old/test/ps/fail-improper-spec/setup 2003-10-02 11:37:34.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-improper-spec/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o ,"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/stderr procps-3.1.15/test/ps/fail-improper-spec/stderr
++--- procps-3.1.15.old/test/ps/fail-improper-spec/stderr 2003-10-02 11:37:52.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-improper-spec/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Improper format list.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/header procps-3.1.15/test/ps/fail-macro-width/header
++--- procps-3.1.15.old/test/ps/fail-macro-width/header 2003-10-02 11:42:15.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-macro-width/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/setup procps-3.1.15/test/ps/fail-macro-width/setup
++--- procps-3.1.15.old/test/ps/fail-macro-width/setup 2003-10-02 11:42:30.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-macro-width/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o DefBSD:6"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/stderr procps-3.1.15/test/ps/fail-macro-width/stderr
++--- procps-3.1.15.old/test/ps/fail-macro-width/stderr 2003-10-02 11:42:46.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-macro-width/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Can't set width for a macro (multi-column) format specifier.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/header procps-3.1.15/test/ps/fail-no-sort-key/header
++--- procps-3.1.15.old/test/ps/fail-no-sort-key/header 2003-10-02 11:50:26.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-no-sort-key/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/setup procps-3.1.15/test/ps/fail-no-sort-key/setup
++--- procps-3.1.15.old/test/ps/fail-no-sort-key/setup 2003-10-02 11:50:39.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-no-sort-key/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="--sort"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/stderr procps-3.1.15/test/ps/fail-no-sort-key/stderr
++--- procps-3.1.15.old/test/ps/fail-no-sort-key/stderr 2003-10-02 11:51:05.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-no-sort-key/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Long sort specification must follow --sort.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-no-width/header procps-3.1.15/test/ps/fail-no-width/header
++--- procps-3.1.15.old/test/ps/fail-no-width/header 2003-10-02 11:40:56.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-no-width/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-no-width/setup procps-3.1.15/test/ps/fail-no-width/setup
++--- procps-3.1.15.old/test/ps/fail-no-width/setup 2003-10-02 11:41:22.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-no-width/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o pid:,f,comm"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-no-width/stderr procps-3.1.15/test/ps/fail-no-width/stderr
++--- procps-3.1.15.old/test/ps/fail-no-width/stderr 2003-10-02 11:40:56.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-no-width/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Column widths must be unsigned decimal numbers.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/header procps-3.1.15/test/ps/fail-nondecimal/header
++--- procps-3.1.15.old/test/ps/fail-nondecimal/header 2003-10-02 11:39:38.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-nondecimal/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/setup procps-3.1.15/test/ps/fail-nondecimal/setup
++--- procps-3.1.15.old/test/ps/fail-nondecimal/setup 2003-10-02 11:40:07.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-nondecimal/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o pid:f,comm"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/stderr procps-3.1.15/test/ps/fail-nondecimal/stderr
++--- procps-3.1.15.old/test/ps/fail-nondecimal/stderr 2003-10-02 11:40:30.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-nondecimal/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Column widths must be unsigned decimal numbers.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-oj/header procps-3.1.15/test/ps/fail-oj/header
++--- procps-3.1.15.old/test/ps/fail-oj/header 2003-09-02 13:47:18.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-oj/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-oj/setup procps-3.1.15/test/ps/fail-oj/setup
++--- procps-3.1.15.old/test/ps/fail-oj/setup 2003-09-02 13:47:54.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-oj/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o pid -j"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-oj/stderr procps-3.1.15/test/ps/fail-oj/stderr
++--- procps-3.1.15.old/test/ps/fail-oj/stderr 2003-09-02 13:49:02.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-oj/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Can't use output modifiers with user-defined output
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/header procps-3.1.15/test/ps/fail-unknown-sort/header
++--- procps-3.1.15.old/test/ps/fail-unknown-sort/header 2003-10-02 11:49:27.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-unknown-sort/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/setup procps-3.1.15/test/ps/fail-unknown-sort/setup
++--- procps-3.1.15.old/test/ps/fail-unknown-sort/setup 2003-10-02 11:49:41.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-unknown-sort/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="--sort booger"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/stderr procps-3.1.15/test/ps/fail-unknown-sort/stderr
++--- procps-3.1.15.old/test/ps/fail-unknown-sort/stderr 2003-10-02 11:50:09.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-unknown-sort/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Unknown sort specifier.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/header procps-3.1.15/test/ps/fail-unknown-spec/header
++--- procps-3.1.15.old/test/ps/fail-unknown-spec/header 2003-10-02 11:35:33.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-unknown-spec/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/setup procps-3.1.15/test/ps/fail-unknown-spec/setup
++--- procps-3.1.15.old/test/ps/fail-unknown-spec/setup 2003-10-02 11:35:52.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-unknown-spec/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o boogers"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/stderr procps-3.1.15/test/ps/fail-unknown-spec/stderr
++--- procps-3.1.15.old/test/ps/fail-unknown-spec/stderr 2003-10-02 11:36:05.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-unknown-spec/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Unknown user-defined format specifier "boogers".
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/fail-xx/header procps-3.1.15/test/ps/fail-xx/header
++--- procps-3.1.15.old/test/ps/fail-xx/header 2003-09-02 09:43:13.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-xx/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/fail-xx/setup procps-3.1.15/test/ps/fail-xx/setup
++--- procps-3.1.15.old/test/ps/fail-xx/setup 2003-09-02 09:41:38.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-xx/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="x -x"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/fail-xx/stderr procps-3.1.15/test/ps/fail-xx/stderr
++--- procps-3.1.15.old/test/ps/fail-xx/stderr 2003-09-02 09:42:04.000000000 +1000
+++++ procps-3.1.15/test/ps/fail-xx/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Unsupported SysV option.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/hpux-H-simple/setup procps-3.1.15/test/ps/hpux-H-simple/setup
++--- procps-3.1.15.old/test/ps/hpux-H-simple/setup 2003-09-03 10:15:28.000000000 +1000
+++++ procps-3.1.15/test/ps/hpux-H-simple/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-HC fork-you -o comm="
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./fork-you 3 4 5 6 7 8 9
++-
++-evalfn () {
++- diff -Naurd stdout $TESTNAME/stdout >> /dev/null
++-}
++-
++-killfn () {
++- killall -9 fork-you
++-}
++diff -ruN procps-3.1.15.old/test/ps/hpux-H-simple/stdout procps-3.1.15/test/ps/hpux-H-simple/stdout
++--- procps-3.1.15.old/test/ps/hpux-H-simple/stdout 2003-09-03 09:51:00.000000000 +1000
+++++ procps-3.1.15/test/ps/hpux-H-simple/stdout 1970-01-01 10:00:00.000000000 +1000
++@@ -1,9 +0,0 @@
++-fork-you
++- fork-you
++- fork-you
++- fork-you
++- fork-you
++- fork-you
++- fork-you
++- fork-you
++- fork-you
++diff -ruN procps-3.1.15.old/test/ps/jyclf-header/header procps-3.1.15/test/ps/jyclf-header/header
++--- procps-3.1.15.old/test/ps/jyclf-header/header 2003-09-02 13:57:34.000000000 +1000
+++++ procps-3.1.15/test/ps/jyclf-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- S UID PID PPID PGID SID CLS PRI RSS SZ WCHAN STIME TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/jyclf-header/setup procps-3.1.15/test/ps/jyclf-header/setup
++--- procps-3.1.15.old/test/ps/jyclf-header/setup 2003-09-02 13:55:34.000000000 +1000
+++++ procps-3.1.15/test/ps/jyclf-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-jyclf"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/linux-lf-header/header procps-3.1.15/test/ps/linux-lf-header/header
++--- procps-3.1.15.old/test/ps/linux-lf-header/header 2003-09-02 14:03:14.000000000 +1000
+++++ procps-3.1.15/test/ps/linux-lf-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- F S USER PID PPID C PRI NI P SZ WCHAN STIME TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/linux-lf-header/setup procps-3.1.15/test/ps/linux-lf-header/setup
++--- procps-3.1.15.old/test/ps/linux-lf-header/setup 2003-09-02 14:04:14.000000000 +1000
+++++ procps-3.1.15/test/ps/linux-lf-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-export CMD_ENV=linux
++-ARGS="-lf"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/mH-mix/header procps-3.1.15/test/ps/mH-mix/header
++--- procps-3.1.15.old/test/ps/mH-mix/header 2003-10-02 12:38:52.000000000 +1000
+++++ procps-3.1.15/test/ps/mH-mix/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/mH-mix/setup procps-3.1.15/test/ps/mH-mix/setup
++--- procps-3.1.15.old/test/ps/mH-mix/setup 2003-10-02 12:39:25.000000000 +1000
+++++ procps-3.1.15/test/ps/mH-mix/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="mH"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/mH-mix/stderr procps-3.1.15/test/ps/mH-mix/stderr
++--- procps-3.1.15.old/test/ps/mH-mix/stderr 2003-10-02 12:40:18.000000000 +1000
+++++ procps-3.1.15/test/ps/mH-mix/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Thread flags conflict; can't use H with m or -m.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/mH-mix2/header procps-3.1.15/test/ps/mH-mix2/header
++--- procps-3.1.15.old/test/ps/mH-mix2/header 2003-10-02 12:38:58.000000000 +1000
+++++ procps-3.1.15/test/ps/mH-mix2/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/mH-mix2/setup procps-3.1.15/test/ps/mH-mix2/setup
++--- procps-3.1.15.old/test/ps/mH-mix2/setup 2003-10-02 12:39:15.000000000 +1000
+++++ procps-3.1.15/test/ps/mH-mix2/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-m H"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/mH-mix2/stderr procps-3.1.15/test/ps/mH-mix2/stderr
++--- procps-3.1.15.old/test/ps/mH-mix2/stderr 2003-10-02 12:40:20.000000000 +1000
+++++ procps-3.1.15/test/ps/mH-mix2/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Thread flags conflict; can't use H with m or -m.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/mm-mix/header procps-3.1.15/test/ps/mm-mix/header
++--- procps-3.1.15.old/test/ps/mm-mix/header 2003-10-02 12:37:41.000000000 +1000
+++++ procps-3.1.15/test/ps/mm-mix/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/mm-mix/setup procps-3.1.15/test/ps/mm-mix/setup
++--- procps-3.1.15.old/test/ps/mm-mix/setup 2003-10-02 12:37:57.000000000 +1000
+++++ procps-3.1.15/test/ps/mm-mix/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-m m"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/mm-mix/stderr procps-3.1.15/test/ps/mm-mix/stderr
++--- procps-3.1.15.old/test/ps/mm-mix/stderr 2003-10-02 12:38:11.000000000 +1000
+++++ procps-3.1.15/test/ps/mm-mix/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Thread flags conflict; can't use both m and -m.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/multi-sort/header procps-3.1.15/test/ps/multi-sort/header
++--- procps-3.1.15.old/test/ps/multi-sort/header 2003-10-02 12:08:50.000000000 +1000
+++++ procps-3.1.15/test/ps/multi-sort/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/multi-sort/setup procps-3.1.15/test/ps/multi-sort/setup
++--- procps-3.1.15.old/test/ps/multi-sort/setup 2003-10-02 12:09:10.000000000 +1000
+++++ procps-3.1.15/test/ps/multi-sort/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="--sort wchan --sort sess"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/multi-sort/stderr procps-3.1.15/test/ps/multi-sort/stderr
++--- procps-3.1.15.old/test/ps/multi-sort/stderr 2003-10-02 12:09:23.000000000 +1000
+++++ procps-3.1.15/test/ps/multi-sort/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Multiple sort options.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/o-O/header procps-3.1.15/test/ps/o-O/header
++--- procps-3.1.15.old/test/ps/o-O/header 2003-10-02 12:03:27.000000000 +1000
+++++ procps-3.1.15/test/ps/o-O/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/o-O/setup procps-3.1.15/test/ps/o-O/setup
++--- procps-3.1.15.old/test/ps/o-O/setup 2003-10-02 12:04:40.000000000 +1000
+++++ procps-3.1.15/test/ps/o-O/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o wchan -O sess"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/o-O/stderr procps-3.1.15/test/ps/o-O/stderr
++--- procps-3.1.15.old/test/ps/o-O/stderr 2003-10-02 12:06:35.000000000 +1000
+++++ procps-3.1.15/test/ps/o-O/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: option -O can not follow other format options.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/o-o/header procps-3.1.15/test/ps/o-o/header
++--- procps-3.1.15.old/test/ps/o-o/header 2003-10-02 12:07:18.000000000 +1000
+++++ procps-3.1.15/test/ps/o-o/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- WCHAN SESS
++diff -ruN procps-3.1.15.old/test/ps/o-o/setup procps-3.1.15/test/ps/o-o/setup
++--- procps-3.1.15.old/test/ps/o-o/setup 2003-10-02 12:07:08.000000000 +1000
+++++ procps-3.1.15/test/ps/o-o/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o wchan -o sess"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/old-m-1/header procps-3.1.15/test/ps/old-m-1/header
++--- procps-3.1.15.old/test/ps/old-m-1/header 2003-09-02 09:46:21.000000000 +1000
+++++ procps-3.1.15/test/ps/old-m-1/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
++diff -ruN procps-3.1.15.old/test/ps/old-m-1/setup procps-3.1.15/test/ps/old-m-1/setup
++--- procps-3.1.15.old/test/ps/old-m-1/setup 2003-09-02 09:46:06.000000000 +1000
+++++ procps-3.1.15/test/ps/old-m-1/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-export CMD_ENV=old
++-ARGS="-m"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/old-m-2/header procps-3.1.15/test/ps/old-m-2/header
++--- procps-3.1.15.old/test/ps/old-m-2/header 2003-09-02 09:47:13.000000000 +1000
+++++ procps-3.1.15/test/ps/old-m-2/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
++diff -ruN procps-3.1.15.old/test/ps/old-m-2/setup procps-3.1.15/test/ps/old-m-2/setup
++--- procps-3.1.15.old/test/ps/old-m-2/setup 2003-09-02 09:47:47.000000000 +1000
+++++ procps-3.1.15/test/ps/old-m-2/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,4 +0,0 @@
++-export CMD_ENV=unix
++-export PS_PERSONALITY=old
++-ARGS="-m"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/old-m-3/header procps-3.1.15/test/ps/old-m-3/header
++--- procps-3.1.15.old/test/ps/old-m-3/header 2003-09-02 09:47:15.000000000 +1000
+++++ procps-3.1.15/test/ps/old-m-3/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
++diff -ruN procps-3.1.15.old/test/ps/old-m-3/setup procps-3.1.15/test/ps/old-m-3/setup
++--- procps-3.1.15.old/test/ps/old-m-3/setup 2003-09-02 09:47:58.000000000 +1000
+++++ procps-3.1.15/test/ps/old-m-3/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-export CMD_ENV=old
++-ARGS="m"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/old-m-4/header procps-3.1.15/test/ps/old-m-4/header
++--- procps-3.1.15.old/test/ps/old-m-4/header 2003-09-02 09:47:16.000000000 +1000
+++++ procps-3.1.15/test/ps/old-m-4/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
++diff -ruN procps-3.1.15.old/test/ps/old-m-4/setup procps-3.1.15/test/ps/old-m-4/setup
++--- procps-3.1.15.old/test/ps/old-m-4/setup 2003-09-02 09:50:11.000000000 +1000
+++++ procps-3.1.15/test/ps/old-m-4/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-export I_WANT_A_BROKEN_PS=
++-ARGS="-m"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/pcpu-sort-threaded/setup procps-3.1.15/test/ps/pcpu-sort-threaded/setup
++--- procps-3.1.15.old/test/ps/pcpu-sort-threaded/setup 2003-10-19 13:48:43.000000000 +1000
+++++ procps-3.1.15/test/ps/pcpu-sort-threaded/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,8 +0,0 @@
++-ARGS="-e --sort=pcpu -o cp="
++-GOOD=0
++-EVALFN=1
++-
++-evalfn () {
++- sort -n < stdout > sorted.tmp
++- diff -Naurd stdout sorted.tmp >> /dev/null
++-}
++diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/header procps-3.1.15/test/ps/suv-conflicts/header
++--- procps-3.1.15.old/test/ps/suv-conflicts/header 2003-10-02 12:12:30.000000000 +1000
+++++ procps-3.1.15/test/ps/suv-conflicts/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/setup procps-3.1.15/test/ps/suv-conflicts/setup
++--- procps-3.1.15.old/test/ps/suv-conflicts/setup 2003-10-02 12:13:26.000000000 +1000
+++++ procps-3.1.15/test/ps/suv-conflicts/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="suv"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/stderr procps-3.1.15/test/ps/suv-conflicts/stderr
++--- procps-3.1.15.old/test/ps/suv-conflicts/stderr 2003-10-02 12:13:41.000000000 +1000
+++++ procps-3.1.15/test/ps/suv-conflicts/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Conflicting format options.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/sysv-selection/header procps-3.1.15/test/ps/sysv-selection/header
++--- procps-3.1.15.old/test/ps/sysv-selection/header 2003-09-04 16:13:34.000000000 +1000
+++++ procps-3.1.15/test/ps/sysv-selection/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/sysv-selection/setup procps-3.1.15/test/ps/sysv-selection/setup
++--- procps-3.1.15.old/test/ps/sysv-selection/setup 2003-09-13 13:59:04.000000000 +1000
+++++ procps-3.1.15/test/ps/sysv-selection/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,25 +0,0 @@
++-ARGS="-m"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-rm -f misc.tmp ready.tmp typescript.tmp
++-
++-./got-no-tty
++-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
++-(SHELL=`pwd`/script-child script typescript.tmp &>/dev/null) &
++-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
++-. ready.tmp
++-
++-evalfn () {
++- THIS_TTY=`tty | colrm 1 5`
++- lines1=`awk '{print $2}' < stdout | sort -u | egrep "^($THIS_TTY)$" | wc -l`
++- lines3=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
++- [ $lines1 == 1 ] && [ $lines3 == 1 ]
++-}
++-
++-killfn () {
++- killall -9 got-no-tty
++- kill -9 $SHELL_PID # the others should freely die
++- rm -f misc.tmp ready.tmp typescript.tmp
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-H/header procps-3.1.15/test/ps/thread-nosort-H/header
++--- procps-3.1.15.old/test/ps/thread-nosort-H/header 2003-10-20 10:57:52.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-H/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-H/setup procps-3.1.15/test/ps/thread-nosort-H/setup
++--- procps-3.1.15.old/test/ps/thread-nosort-H/setup 2003-10-20 10:50:16.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-H/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once H"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 3 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-HL/header procps-3.1.15/test/ps/thread-nosort-HL/header
++--- procps-3.1.15.old/test/ps/thread-nosort-HL/header 2003-10-20 10:57:52.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-HL/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID LWP TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-HL/setup procps-3.1.15/test/ps/thread-nosort-HL/setup
++--- procps-3.1.15.old/test/ps/thread-nosort-HL/setup 2003-10-20 10:50:16.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-HL/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once H -L"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 3 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-Hm/setup procps-3.1.15/test/ps/thread-nosort-Hm/setup
++--- procps-3.1.15.old/test/ps/thread-nosort-Hm/setup 2003-10-20 10:50:16.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-Hm/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-C clone-once Hm"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-Hm/stderr procps-3.1.15/test/ps/thread-nosort-Hm/stderr
++--- procps-3.1.15.old/test/ps/thread-nosort-Hm/stderr 2003-10-20 10:58:35.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-Hm/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Thread flags conflict; can't use H with m or -m.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-L/header procps-3.1.15/test/ps/thread-nosort-L/header
++--- procps-3.1.15.old/test/ps/thread-nosort-L/header 2003-10-20 10:57:52.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-L/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID LWP TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-L/setup procps-3.1.15/test/ps/thread-nosort-L/setup
++--- procps-3.1.15.old/test/ps/thread-nosort-L/setup 2003-10-20 10:50:16.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-L/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once -L"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 3 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-default/header procps-3.1.15/test/ps/thread-nosort-default/header
++--- procps-3.1.15.old/test/ps/thread-nosort-default/header 2003-10-20 10:57:53.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-default/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-default/setup procps-3.1.15/test/ps/thread-nosort-default/setup
++--- procps-3.1.15.old/test/ps/thread-nosort-default/setup 2003-10-20 10:50:16.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-default/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 2 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-m/header procps-3.1.15/test/ps/thread-nosort-m/header
++--- procps-3.1.15.old/test/ps/thread-nosort-m/header 2003-10-20 10:57:53.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-m/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-m/setup procps-3.1.15/test/ps/thread-nosort-m/setup
++--- procps-3.1.15.old/test/ps/thread-nosort-m/setup 2003-10-20 10:50:16.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-m/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once m"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 4 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-mL/header procps-3.1.15/test/ps/thread-nosort-mL/header
++--- procps-3.1.15.old/test/ps/thread-nosort-mL/header 2003-10-20 10:57:53.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-mL/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID LWP TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/thread-nosort-mL/setup procps-3.1.15/test/ps/thread-nosort-mL/setup
++--- procps-3.1.15.old/test/ps/thread-nosort-mL/setup 2003-10-20 10:50:16.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-nosort-mL/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once -mL"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 4 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-H/header procps-3.1.15/test/ps/thread-sorted-H/header
++--- procps-3.1.15.old/test/ps/thread-sorted-H/header 2003-10-20 10:57:53.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-H/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-H/setup procps-3.1.15/test/ps/thread-sorted-H/setup
++--- procps-3.1.15.old/test/ps/thread-sorted-H/setup 2003-10-20 10:45:59.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-H/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once --sort=pid H"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 3 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-HL/header procps-3.1.15/test/ps/thread-sorted-HL/header
++--- procps-3.1.15.old/test/ps/thread-sorted-HL/header 2003-10-20 10:57:53.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-HL/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID LWP TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-HL/setup procps-3.1.15/test/ps/thread-sorted-HL/setup
++--- procps-3.1.15.old/test/ps/thread-sorted-HL/setup 2003-10-20 10:45:16.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-HL/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once --sort=pid H -L"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 3 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-Hm/setup procps-3.1.15/test/ps/thread-sorted-Hm/setup
++--- procps-3.1.15.old/test/ps/thread-sorted-Hm/setup 2003-10-20 10:47:00.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-Hm/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-C clone-once --sort=pid Hm"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-Hm/stderr procps-3.1.15/test/ps/thread-sorted-Hm/stderr
++--- procps-3.1.15.old/test/ps/thread-sorted-Hm/stderr 2003-10-20 10:58:47.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-Hm/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Thread flags conflict; can't use H with m or -m.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-L/header procps-3.1.15/test/ps/thread-sorted-L/header
++--- procps-3.1.15.old/test/ps/thread-sorted-L/header 2003-10-20 10:57:53.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-L/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID LWP TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-L/setup procps-3.1.15/test/ps/thread-sorted-L/setup
++--- procps-3.1.15.old/test/ps/thread-sorted-L/setup 2003-10-20 10:45:35.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-L/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once --sort=pid -L"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 3 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-default/header procps-3.1.15/test/ps/thread-sorted-default/header
++--- procps-3.1.15.old/test/ps/thread-sorted-default/header 2003-10-20 10:57:53.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-default/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-default/setup procps-3.1.15/test/ps/thread-sorted-default/setup
++--- procps-3.1.15.old/test/ps/thread-sorted-default/setup 2003-10-20 10:47:53.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-default/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once --sort=pid"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 2 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-m/header procps-3.1.15/test/ps/thread-sorted-m/header
++--- procps-3.1.15.old/test/ps/thread-sorted-m/header 2003-10-20 10:57:53.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-m/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY STAT TIME COMMAND
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-m/setup procps-3.1.15/test/ps/thread-sorted-m/setup
++--- procps-3.1.15.old/test/ps/thread-sorted-m/setup 2003-10-20 10:42:59.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-m/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once --sort=pid m"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 4 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-mL/header procps-3.1.15/test/ps/thread-sorted-mL/header
++--- procps-3.1.15.old/test/ps/thread-sorted-mL/header 2003-10-20 10:57:54.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-mL/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID LWP TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/thread-sorted-mL/setup procps-3.1.15/test/ps/thread-sorted-mL/setup
++--- procps-3.1.15.old/test/ps/thread-sorted-mL/setup 2003-10-20 10:44:46.000000000 +1000
+++++ procps-3.1.15/test/ps/thread-sorted-mL/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C clone-once --sort=pid -mL"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./clone-once
++-
++-evalfn () {
++- [ `wc -l < stdout` == 4 ]
++-}
++-
++-killfn () {
++- killall -9 clone-once
++-}
++diff -ruN procps-3.1.15.old/test/ps/unix-comm/setup procps-3.1.15/test/ps/unix-comm/setup
++--- procps-3.1.15.old/test/ps/unix-comm/setup 2003-09-02 10:33:46.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-comm/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,7 +0,0 @@
++-ARGS=
++-GOOD=0
++-EVALFN=1
++-
++-evalfn () {
++- grep "ps$" stdout >> /dev/null
++-}
++diff -ruN procps-3.1.15.old/test/ps/unix-doc/setup procps-3.1.15/test/ps/unix-doc/setup
++--- procps-3.1.15.old/test/ps/unix-doc/setup 2003-09-03 13:38:37.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-doc/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,37 +0,0 @@
++-# The UNIX+POSIX standard requires that, except for "args" and "comm",
++-# the documentation must warn about any implementation-defined
++-# format specifiers that may contain blanks.
++-#
++-# Using "ps L" to grab the list isn't proper, but it's needed.
++-#
++-# This is our list for the man page:
++-#
++-#args COMMAND
++-#cmd CMD
++-#comm COMMAND
++-#command COMMAND
++-#fname COMMAND
++-#ucmd CMD
++-#ucomm COMMAND
++-#lstart STARTED
++-#bsdstart START
++-#start STARTED
++-
++-# It gets to 819 last I checked
++-export COLUMNS=1111
++-
++-biglist=`$TESTME L \
++- | egrep -v '^(comm|args|cmd|comm|command|fname|ucmd|ucomm|lstart|bsdstart|start) ' \
++- | awk '{printf("%s,",$1);}'`
++-numcols=`echo $biglist | tr -dc , | wc -c`
++-
++-ARGS=-eo$biglist
++-GOOD=0
++-EVALFN=1
++-
++-evalfn () {
++- while read -a myarray; do
++- [ ${#myarray[*]} == $numcols ] || return 1
++- done < stdout
++- return 0
++-}
++diff -ruN procps-3.1.15.old/test/ps/unix-f-args/setup procps-3.1.15/test/ps/unix-f-args/setup
++--- procps-3.1.15.old/test/ps/unix-f-args/setup 2003-09-02 10:33:18.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-f-args/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,7 +0,0 @@
++-ARGS="-f"
++-GOOD=0
++-EVALFN=1
++-
++-evalfn () {
++- grep "ps -f$" stdout >> /dev/null
++-}
++diff -ruN procps-3.1.15.old/test/ps/unix-f-header/header procps-3.1.15/test/ps/unix-f-header/header
++--- procps-3.1.15.old/test/ps/unix-f-header/header 2003-09-02 08:40:35.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-f-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- UID PID PPID C STIME TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/unix-f-header/setup procps-3.1.15/test/ps/unix-f-header/setup
++--- procps-3.1.15.old/test/ps/unix-f-header/setup 2003-09-02 08:37:18.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-f-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-f"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/unix-fl-header/header procps-3.1.15/test/ps/unix-fl-header/header
++--- procps-3.1.15.old/test/ps/unix-fl-header/header 2003-09-02 08:53:56.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-fl-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/unix-fl-header/setup procps-3.1.15/test/ps/unix-fl-header/setup
++--- procps-3.1.15.old/test/ps/unix-fl-header/setup 2003-09-02 08:55:32.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-fl-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-fl"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/unix-header/header procps-3.1.15/test/ps/unix-header/header
++--- procps-3.1.15.old/test/ps/unix-header/header 2003-09-02 08:53:56.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/unix-header/setup procps-3.1.15/test/ps/unix-header/setup
++--- procps-3.1.15.old/test/ps/unix-header/setup 2003-09-02 08:55:09.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS=
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/unix-l-header/header procps-3.1.15/test/ps/unix-l-header/header
++--- procps-3.1.15.old/test/ps/unix-l-header/header 2003-09-02 08:53:56.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-l-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/unix-l-header/setup procps-3.1.15/test/ps/unix-l-header/setup
++--- procps-3.1.15.old/test/ps/unix-l-header/setup 2003-09-02 08:55:49.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-l-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-l"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/unix-lf-header/header procps-3.1.15/test/ps/unix-lf-header/header
++--- procps-3.1.15.old/test/ps/unix-lf-header/header 2003-09-02 08:53:56.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-lf-header/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/unix-lf-header/setup procps-3.1.15/test/ps/unix-lf-header/setup
++--- procps-3.1.15.old/test/ps/unix-lf-header/setup 2003-09-02 08:55:39.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-lf-header/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-lf"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/unix-o-header-all/header procps-3.1.15/test/ps/unix-o-header-all/header
++--- procps-3.1.15.old/test/ps/unix-o-header-all/header 2003-09-02 09:23:24.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-o-header-all/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- COMMAND COMMAND ELAPSED GROUP NI %CPU PGID PID PPID RGROUP RUSER TIME TT USER VSZ
++diff -ruN procps-3.1.15.old/test/ps/unix-o-header-all/setup procps-3.1.15/test/ps/unix-o-header-all/setup
++--- procps-3.1.15.old/test/ps/unix-o-header-all/setup 2003-09-02 09:23:11.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-o-header-all/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o args,comm,etime,group,nice,pcpu,pgid,pid,ppid,rgroup,ruser,time,tty,user,vsz"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/unix-o-header-dup/header procps-3.1.15/test/ps/unix-o-header-dup/header
++--- procps-3.1.15.old/test/ps/unix-o-header-dup/header 2003-09-02 09:16:50.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-o-header-dup/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TT PID PPID
++diff -ruN procps-3.1.15.old/test/ps/unix-o-header-dup/setup procps-3.1.15/test/ps/unix-o-header-dup/setup
++--- procps-3.1.15.old/test/ps/unix-o-header-dup/setup 2003-09-02 09:16:22.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-o-header-dup/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o pid,tty -o pid,ppid"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/unix-o-header-evil/header procps-3.1.15/test/ps/unix-o-header-evil/header
++--- procps-3.1.15.old/test/ps/unix-o-header-evil/header 2003-09-02 12:39:36.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-o-header-evil/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PPID PID FOO,tty PPID
++diff -ruN procps-3.1.15.old/test/ps/unix-o-header-evil/setup procps-3.1.15/test/ps/unix-o-header-evil/setup
++--- procps-3.1.15.old/test/ps/unix-o-header-evil/setup 2003-09-02 12:39:19.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-o-header-evil/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-o ppid -o pid,ppid=FOO,tty -o ppid"
++-GOOD=0
++diff -ruN procps-3.1.15.old/test/ps/unix-o-header-nil/setup procps-3.1.15/test/ps/unix-o-header-nil/setup
++--- procps-3.1.15.old/test/ps/unix-o-header-nil/setup 2003-09-02 10:08:33.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-o-header-nil/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,7 +0,0 @@
++-ARGS="-o pid="
++-GOOD=0
++-EVALFN=1
++-
++-evalfn () {
++- ! grep PID stdout >> /dev/null
++-}
++diff -ruN procps-3.1.15.old/test/ps/unix-selection/header procps-3.1.15/test/ps/unix-selection/header
++--- procps-3.1.15.old/test/ps/unix-selection/header 2003-09-04 16:13:48.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-selection/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++- PID TTY TIME CMD
++diff -ruN procps-3.1.15.old/test/ps/unix-selection/setup procps-3.1.15/test/ps/unix-selection/setup
++--- procps-3.1.15.old/test/ps/unix-selection/setup 2003-09-13 14:00:48.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-selection/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,25 +0,0 @@
++-ARGS=
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-rm -f misc.tmp ready.tmp typescript.tmp
++-
++-./got-no-tty
++-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
++-(SHELL=`pwd`/script-child script typescript.tmp &>/dev/null) &
++-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
++-. ready.tmp
++-
++-evalfn () {
++- THIS_TTY=`tty | colrm 1 5`
++- lines1=`awk '{print $2}' < stdout | sort -u | egrep "^($THIS_TTY)$" | wc -l`
++- lines3=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
++- [ $lines1 == 1 ] && [ $lines3 == 1 ]
++-}
++-
++-killfn () {
++- killall -9 got-no-tty
++- kill -9 $SHELL_PID # the others should freely die
++- rm -f misc.tmp ready.tmp typescript.tmp
++-}
++diff -ruN procps-3.1.15.old/test/ps/unix-tty-default/setup procps-3.1.15/test/ps/unix-tty-default/setup
++--- procps-3.1.15.old/test/ps/unix-tty-default/setup 2003-09-02 11:36:37.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-tty-default/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS=
++-GOOD=0
++-EVALFN=1
++-
++-# default output is restricted to this tty
++-MYTTY=`tty`
++-
++-evalfn () {
++- PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
++- if [ /dev/$PSTTY != $MYTTY ] ; then
++- return 1
++- fi
++- return 0
++-}
++diff -ruN procps-3.1.15.old/test/ps/unix-tty-name/setup procps-3.1.15/test/ps/unix-tty-name/setup
++--- procps-3.1.15.old/test/ps/unix-tty-name/setup 2003-09-02 10:42:55.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-tty-name/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,9 +0,0 @@
++-ARGS="-otty= -p$$"
++-GOOD=0
++-EVALFN=1
++-
++-evalfn () {
++- MYTTY=`tty`
++- PSTTY=`printf /dev/ ; cat stdout`
++- [ $MYTTY == $PSTTY ]
++-}
++diff -ruN procps-3.1.15.old/test/ps/unix-tty-names/setup procps-3.1.15/test/ps/unix-tty-names/setup
++--- procps-3.1.15.old/test/ps/unix-tty-names/setup 2003-09-02 11:17:09.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-tty-names/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,26 +0,0 @@
++-ARGS="-eotty="
++-GOOD=0
++-EVALFN=1
++-
++-# the UNIX spec allows:
++-#
++-# /dev/ttyS0 as ttyS0
++-# /dev/ttyS0 as S0 (OK to chop a leading "tty")
++-# /dev/console as console
++-# /foo/bar as bar or /foo/bar (poorly unspecified)
++-# -nothing- as ? or - (poorly unspecified, we use '?')
++-#
++-# Also, the format must agree with what "who" uses.
++-# Linux "who" doesn't strip "tty" off of /dev/ttyS0, etc.,
++-# so that's illegal in a Linux environment.
++-#
++-# junk the '?' to avoid shell wildcard expansion
++-
++-evalfn () {
++- for i in `tr -d '?' < stdout | sort -u` ; do
++- if [ ! -c /dev/$i -a ! -c /$i ] ; then
++- return 1
++- fi
++- done
++- return 0
++-}
++diff -ruN procps-3.1.15.old/test/ps/unix-vsz/setup procps-3.1.15/test/ps/unix-vsz/setup
++--- procps-3.1.15.old/test/ps/unix-vsz/setup 2003-09-11 10:24:38.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-vsz/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,27 +0,0 @@
++-# The standard describes the "vsz" format as:
++-# The size of the process in (virtual) memory
++-# in 1024 byte units as a decimal integer.
++-#
++-# It's hard to tell 1000-byte from 1024-byte units,
++-# but easy to tell 1024-byte from 512-byte or 2 kB.
++-# On a 64-bit system, watch for 4 GB troubles as well.
++-
++-# throw in the PID to ensure whitespace on the left
++-ARGS="-C gigabyte -o pid= -o vsz="
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-BITSIZE=`./gigabyte`
++-
++-evalfn () {
++- if [ $BITSIZE == 32bit ] ; then
++- egrep ' 1......$' stdout >> /dev/null
++- else
++- egrep ' 1.......$' stdout >> /dev/null
++- fi
++-}
++-
++-killfn () {
++- killall -9 gigabyte
++-}
++diff -ruN procps-3.1.15.old/test/ps/unix-wchan/setup procps-3.1.15/test/ps/unix-wchan/setup
++--- procps-3.1.15.old/test/ps/unix-wchan/setup 2003-09-02 12:25:15.000000000 +1000
+++++ procps-3.1.15/test/ps/unix-wchan/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,11 +0,0 @@
++-ARGS="-eowchan="
++-GOOD=0
++-EVALFN=1
++-
++-# Make sure we're getting back real wchan data,
++-# not just "WCHAN", "-", "0", "*", and hex digits.
++-# Assumes usage of letters [g-z].
++-
++-evalfn () {
++- egrep '[g-z]' stdout >> /dev/null
++-}
++diff -ruN procps-3.1.15.old/test/ps/y-needs-l/header procps-3.1.15/test/ps/y-needs-l/header
++--- procps-3.1.15.old/test/ps/y-needs-l/header 2003-10-02 12:10:34.000000000 +1000
+++++ procps-3.1.15/test/ps/y-needs-l/header 1970-01-01 10:00:00.000000000 +1000
++@@ -1 +0,0 @@
++-
++\ No newline at end of file
++diff -ruN procps-3.1.15.old/test/ps/y-needs-l/setup procps-3.1.15/test/ps/y-needs-l/setup
++--- procps-3.1.15.old/test/ps/y-needs-l/setup 2003-10-02 12:10:45.000000000 +1000
+++++ procps-3.1.15/test/ps/y-needs-l/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,2 +0,0 @@
++-ARGS="-y"
++-GOOD=1
++diff -ruN procps-3.1.15.old/test/ps/y-needs-l/stderr procps-3.1.15/test/ps/y-needs-l/stderr
++--- procps-3.1.15.old/test/ps/y-needs-l/stderr 2003-10-02 12:10:56.000000000 +1000
+++++ procps-3.1.15/test/ps/y-needs-l/stderr 1970-01-01 10:00:00.000000000 +1000
++@@ -1,23 +0,0 @@
++-ERROR: Modifier -y without format -l makes no sense.
++-********* simple selection ********* ********* selection by list *********
++--A all processes -C by command name
++--N negate selection -G by real group ID (supports names)
++--a all w/ tty except session leaders -U by real user ID (supports names)
++--d all except session leaders -g by session leader OR by group name
++--e all processes -p by process ID
++-T all processes on this terminal -s processes in the sessions given
++-a all w/ tty, including other users -t by tty
++-g all, even group leaders! -u by effective user ID (supports names)
++-r only running processes U processes for specified users
++-x processes w/o controlling ttys t by tty
++-*********** output format ********** *********** long options ***********
++--o,o user-defined -f full --Group --User --pid --cols --ppid
++--j,j job control s signal --group --user --sid --rows
++--O,O preloaded -o v virtual memory --cumulative --format --deselect
++--l,l long u user-oriented --sort --tty --forest --version
++--F extra full X registers --heading --no-heading
++- ********* misc options *********
++--V,V show version L list format codes f ASCII art forest
++--m,m show threads S children in sum -y change -l format
++--n,N set namelist file c true command name n numeric WCHAN,UID
++--w,w wide output e show environment -H process hierarchy
++diff -ruN procps-3.1.15.old/test/ps/zombie-args/setup procps-3.1.15/test/ps/zombie-args/setup
++--- procps-3.1.15.old/test/ps/zombie-args/setup 2003-09-04 13:43:31.000000000 +1000
+++++ procps-3.1.15/test/ps/zombie-args/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,18 +0,0 @@
++-ARGS="-H -C the_living_dead -o args"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-# the -H is just to ensure predictable output ordering
++-
++-# assumes that the processes won't get swapped out before ps runs
++-
++-./the_living_dead
++-
++-evalfn () {
++- diff -Naurd stdout $TESTNAME/stdout >> /dev/null
++-}
++-
++-killfn () {
++- killall -9 the_living_dead
++-}
++diff -ruN procps-3.1.15.old/test/ps/zombie-args/stdout procps-3.1.15/test/ps/zombie-args/stdout
++--- procps-3.1.15.old/test/ps/zombie-args/stdout 2003-09-04 13:44:01.000000000 +1000
+++++ procps-3.1.15/test/ps/zombie-args/stdout 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-COMMAND
++-./the_living_dead
++- [the_living_dead] <defunct>
++diff -ruN procps-3.1.15.old/test/ps/zombie-comm/setup procps-3.1.15/test/ps/zombie-comm/setup
++--- procps-3.1.15.old/test/ps/zombie-comm/setup 2003-09-04 13:43:44.000000000 +1000
+++++ procps-3.1.15/test/ps/zombie-comm/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,16 +0,0 @@
++-ARGS="-H -C the_living_dead -o comm"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-# the -H is just to ensure predictable output ordering
++-
++-./the_living_dead
++-
++-evalfn () {
++- diff -Naurd stdout $TESTNAME/stdout >> /dev/null
++-}
++-
++-killfn () {
++- killall -9 the_living_dead
++-}
++diff -ruN procps-3.1.15.old/test/ps/zombie-comm/stdout procps-3.1.15/test/ps/zombie-comm/stdout
++--- procps-3.1.15.old/test/ps/zombie-comm/stdout 2003-09-04 13:44:12.000000000 +1000
+++++ procps-3.1.15/test/ps/zombie-comm/stdout 1970-01-01 10:00:00.000000000 +1000
++@@ -1,3 +0,0 @@
++-COMMAND
++-the_living_dead
++- the_living_dead <defunct>
++diff -ruN procps-3.1.15.old/test/ps/zombie-wchan/setup procps-3.1.15/test/ps/zombie-wchan/setup
++--- procps-3.1.15.old/test/ps/zombie-wchan/setup 2003-09-04 13:52:41.000000000 +1000
+++++ procps-3.1.15/test/ps/zombie-wchan/setup 1970-01-01 10:00:00.000000000 +1000
++@@ -1,14 +0,0 @@
++-ARGS="-C the_living_dead -o wchan,stat,comm"
++-GOOD=0
++-EVALFN=1
++-KILLFN=1
++-
++-./the_living_dead
++-
++-evalfn () {
++- egrep 'exit.*Z.*defunct' stdout >> /dev/null
++-}
++-
++-killfn () {
++- killall -9 the_living_dead
++-}
++diff -ruN procps-3.1.15.old/test/runtests procps-3.1.15/test/runtests
++--- procps-3.1.15.old/test/runtests 2003-09-03 12:09:08.000000000 +1000
+++++ procps-3.1.15/test/runtests 1970-01-01 10:00:00.000000000 +1000
++@@ -1,4 +0,0 @@
++-#!/bin/bash
++-
++-export TESTME=${PSPROG:-../ps/ps}
++-for i in ps/*-* ; do ./onetest $i ; done
++diff -ruN procps-3.1.15.old/test/script-child procps-3.1.15/test/script-child
++--- procps-3.1.15.old/test/script-child 2003-09-04 14:43:28.000000000 +1000
+++++ procps-3.1.15/test/script-child 1970-01-01 10:00:00.000000000 +1000
++@@ -1,10 +0,0 @@
++-#!/bin/bash
++-#
++-# usage:
++-# SHELL=/path/to/this/script script trashfile
++-
++-echo SCRIPT_PID=$PPID > misc.tmp
++-echo SHELL_PID=$$ >> misc.tmp
++-echo SHELL_TTY=`/usr/bin/tty | colrm 1 5` >> misc.tmp
++-mv misc.tmp ready.tmp # atomic op
++-while /bin/true ; do sleep 42 ; done
++diff -ruN procps-3.1.15.old/test/sid-breaks-ttys.c procps-3.1.15/test/sid-breaks-ttys.c
++--- procps-3.1.15.old/test/sid-breaks-ttys.c 2003-09-08 13:28:24.000000000 +1000
+++++ procps-3.1.15/test/sid-breaks-ttys.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,38 +0,0 @@
++-#include <sys/types.h>
++-#include <unistd.h>
++-#include <signal.h>
++-
++-static pid_t one;
++-
++-static void die(int signo){
++- (void)signo;
++- _exit(0);
++-}
++-
++-static void hang(void){
++- for(;;) pause();
++-}
++-
++-int main(int argc, char *argv[]){
++- (void)argc;
++- (void)argv;
++-
++- one = getpid();
++- signal(SIGHUP,die);
++- if(fork()) hang(); // parent later killed as readyness signal
++-
++- // second one exits, to enable setsid(), and the resulting
++- // zombie will be reaped by init after 1st process killed
++- if(fork()) _exit(0);
++-
++- if(setsid()==-1){
++- kill(one,SIGKILL); // hopefully the shell will complain
++- _exit(42); // kind of tough to report errors
++- }
++-
++- kill(one,SIGHUP); // let the shell know we're ready
++-
++- hang();
++-
++- return 0;
++-}
++diff -ruN procps-3.1.15.old/test/sidious.c procps-3.1.15/test/sidious.c
++--- procps-3.1.15.old/test/sidious.c 2003-09-08 13:58:20.000000000 +1000
+++++ procps-3.1.15/test/sidious.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,77 +0,0 @@
++-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
++-
++-#include <sys/types.h>
++-#include <unistd.h>
++-#include <signal.h>
++-#include <sys/stat.h>
++-#include <fcntl.h>
++-#include <stdlib.h> // undocumented grantpt,unlockpt,ptsname,openpt,posix_openpt
++-//#include <pty.h> // undocumented openpty,forkpty
++-
++-static pid_t one;
++-
++-static void die(int signo){
++- (void)signo;
++- _exit(0);
++-}
++-
++-//static void sigchld_handler(int signo){
++-// (void)signo;
++-// kill(one,SIGHUP); // kill parent
++-//}
++-
++-static void hang(void){
++- for(;;) pause();
++-}
++-
++-int main(int argc, char *argv[]){
++- int master;
++- int slave;
++-
++- (void)argc;
++- (void)argv;
++-
++- one = getpid();
++- signal(SIGHUP,die);
++- if(fork()) hang(); // parent later killed as readyness signal
++-
++- // second one exits, to enable setsid(), and the resulting
++- // zombie will be reaped by init after 1st process killed
++- if(fork()) _exit(0);
++-
++-
++- master = open("/dev/ptmx", O_RDWR|O_NOCTTY);
++-
++- // could fork, but don't bother
++- // (won't be doing anything with the master side)
++-
++- // could change child's UID, but don't bother
++- // (would make the tests require running as root)
++-
++- // not in the man pages!!!
++- grantpt(master);
++- unlockpt(master);
++-
++- if(setsid()==-1){
++- kill(one,SIGKILL); // hopefully the shell will complain
++- _exit(42); // kind of tough to report errors
++- }
++-
++- slave = open(ptsname(master), O_RDWR);
++-#ifdef I_PUSH
++- // push STREAMS tty stuff, just to have an example of it
++- ioctl(slave, I_PUSH, "ptem");
++- ioctl(slave, I_PUSH, "ldterm");
++-#endif
++-#ifdef TIOCSCTTY
++- // On SysV, slave open got us a TTY. On BSD, we must do this:
++- ioctl(fd, TIOCSCTTY, NULL);
++-#endif
++-
++-
++- kill(one,SIGHUP); // let the shell know we're ready
++-
++- hang();
++-
++- return 0;
++-}
++diff -ruN procps-3.1.15.old/test/th.c procps-3.1.15/test/th.c
++--- procps-3.1.15.old/test/th.c 2003-09-14 01:35:42.000000000 +1000
+++++ procps-3.1.15/test/th.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,16 +0,0 @@
++-#include <unistd.h>
++-#include <pthread.h>
++-
++-void *hanger(void *vp){
++- (void)vp;
++- for(;;) pause();
++-}
++-
++-int main(int argc, char *argv[]){
++- pthread_t thread;
++- (void)argc;
++- (void)argv;
++- pthread_create(&thread, NULL, hanger, NULL);
++- hanger(NULL);
++- return 0; // keep gcc happy
++-}
++diff -ruN procps-3.1.15.old/test/the_living_dead.c procps-3.1.15/test/the_living_dead.c
++--- procps-3.1.15.old/test/the_living_dead.c 2003-09-04 13:36:54.000000000 +1000
+++++ procps-3.1.15/test/the_living_dead.c 1970-01-01 10:00:00.000000000 +1000
++@@ -1,39 +0,0 @@
++-#include <sys/types.h>
++-#include <unistd.h>
++-#include <signal.h>
++-
++-static pid_t one;
++-
++-static void die(int signo){
++- (void)signo;
++- _exit(0);
++-}
++-
++-static void sigchld_handler(int signo){
++- (void)signo;
++- kill(one,SIGHUP); // kill parent
++-}
++-
++-static void hang(void){
++- for(;;) pause();
++-}
++-
++-int main(int argc, char *argv[]){
++- pid_t three;
++-
++- (void)argc;
++- (void)argv;
++-
++- one = getpid();
++- signal(SIGHUP,die);
++- if(fork()) hang(); // parent later killed as readyness signal
++-
++- three = fork();
++- if(three){
++- signal(SIGCHLD,sigchld_handler);
++- kill(three,SIGHUP); // create the zombie
++- }
++-
++- hang();
++- return 0;
++-}
+--- procps-3.1.15.orig/debian/control
++++ procps-3.1.15/debian/control
+@@ -0,0 +1,31 @@
++Source: procps
++Section: base
++Priority: required
++Maintainer: Craig Small <csmall@debian.org>
++Build-Depends: debhelper (>> 4.1.1), libncurses5-dev, make (>= 3.78.1-8), dpatch
++Standards-Version: 3.6.0
++
++Package: procps
++Architecture: any
++Provides: watch
++Depends: ${shlibs:Depends}
++Conflicts: watch, libproc-dev (<< 1:1.2.6-2), w-bassman (<< 1.0-3), procps-nonfree, pgrep (<< 3.3-5)
++Replaces: watch, bsdutils (<< 2.9x-1)
++Recommends: psmisc
++Description: The /proc file system utilities
++ These are utilities to browse the /proc filesystem, which is not a real file
++ system but a way for the kernel to provide information about the status of
++ entries in its process table. (e.g. running, stopped or "zombie")
++ Both command line and full screen utilities are provided. Ncurses is needed
++ for the full screen utilities. More information can be found at procps
++ website http://procps.sf.net/
++
++Package: libproc-dev
++Architecture: any
++Section: libdevel
++Priority: optional
++Depends: libc6-dev, procps (= ${Source-Version})
++Description: library for accessing process information from /proc
++ These are the header files for libproc. Some packages using libproc
++ to access process information from /proc need these to compile.
++
+--- procps-3.1.15.orig/debian/rules
++++ procps-3.1.15/debian/rules
+@@ -0,0 +1,99 @@
++#!/usr/bin/make -f
++# Sample debian/rules that uses debhelper.
++# GNU copyright 1997 to 1999 by Joey Hess.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# Include dpatch stuff
++include /usr/share/dpatch/dpatch.make
++
++PACKAGE="procps"
++
++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++ INSTALL_PROGRAM += -s
++endif
++
++
++build: build-stamp
++
++build-stamp: patch-stamp
++ dh_testdir
++
++ # Add here commands to compile the package.
++ mkdir static
++ SHARED=0 $(MAKE) proc/libproc.a
++ mv proc/libproc.a static
++ $(MAKE) clean
++ $(MAKE) W_SHOWFROM=\-DW_SHOWFROM
++
++ touch build-stamp
++
++clean: clean1 unpatch
++clean1:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp
++
++ # Add here commands to clean up after the build process.
++ -$(MAKE) clean
++ -rm -rf static
++
++ dh_clean
++
++install: build
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ # Add here commands to install the package into debian/procps.
++ $(MAKE) ln_f="ln -sf" ldconfig=echo DESTDIR=$(CURDIR)/debian/procps install
++ install --mode 644 -o root -g root debian/sysctl.conf $(CURDIR)/debian/procps/etc
++ # Rename w as there are two of them
++ (cd $(CURDIR)/debian/procps/usr/bin && mv w w.procps )
++ (cd $(CURDIR)/debian/procps/usr/share/man/man1 && mv w.1 w.procps.1 )
++
++ # Work-around until proc includes fixed
++ (cp proc/*.h $(CURDIR)/debian/procps/usr/include/proc)
++ cp static/libproc.a $(CURDIR)/debian/libproc-dev/usr/lib
++
++ dh_movefiles --sourcedir=debian/procps
++ rmdir $(CURDIR)/debian/procps/usr/include/proc
++
++# Build architecture-independent files here.
++binary-indep: build install
++# We have nothing to do by default.
++
++# Build architecture-dependent files here.
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++# dh_installdebconf
++ dh_installdocs
++ dh_installexamples
++ dh_installmenu
++# dh_installlogrotate
++# dh_installemacsen
++# dh_installpam
++# dh_installmime
++ dh_installinit --update-rcd-params='start 30 S .' --init-script='procps.sh'
++# dh_installcron
++ dh_installman
++ dh_installinfo
++# dh_undocumented
++ dh_installchangelogs NEWS
++ dh_link
++ dh_strip
++ dh_compress
++ dh_fixperms
++ dh_makeshlibs -V "procps (>= 3.1.14), procps (<< 3.1.15)"
++ dh_installdeb
++# dh_perl
++ dh_shlibdeps -Lprocps -ldebian/procps/lib
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install patch unpatch clean1
+--- procps-3.1.15.orig/debian/changelog
++++ procps-3.1.15/debian/changelog
+@@ -0,0 +1,743 @@
++procps (1:3.1.15-2) unstable; urgency=low
++
++ * Removed offending test directory Closes: #227933
++
++ -- Craig Small <csmall@debian.org> Tue, 20 Jan 2004 10:20:44 +1100
++
++procps (1:3.1.15-1) unstable; urgency=low
++
++ * Now uses dpatch to handle the various patches
++ * New upstream release
++ - Supports SELINUX flags for kernel v2.6 Closes: #193648
++ - Hide kernel PID bug Closes: #217278, #219730, #217525, #224470
++ - Fixed top auto-margins problem Closes: #217559
++ * Fix top manual page Closes: #225089
++ * Patch so SELINUX flags work in v2.4 kernels
++ * Extra +s in ps.1 removed Closes: #218220
++ * Added patch so sysctl has quiet -q flag Closes: #189100
++
++ -- Craig Small <csmall@debian.org> Fri, 26 Dec 2003 18:02:59 +1100
++
++procps (1:3.1.14-1) unstable; urgency=low
++
++ * New upstream release
++
++ -- Craig Small <csmall@debian.org> Wed, 22 Oct 2003 11:59:53 +1000
++
++procps (1:3.1.13-1) unstable; urgency=low
++
++ * New upstream release
++
++ -- Craig Small <csmall@debian.org> Wed, 24 Sep 2003 16:10:42 +1000
++
++procps (1:3.1.12-1) unstable; urgency=low
++
++ * New upstream release
++ ps: $PS_FORMAT works properly Closes: #201575
++ man page: /var/run/utmp, not /etc/utmp Closes: #206583
++ required flags moved out of CFLAGS Closes: #205429
++
++
++ -- Craig Small <csmall@debian.org> Sat, 13 Sep 2003 21:11:09 +1000
++
++procps (1:3.1.11-2) unstable; urgency=low
++
++ * Made shlibs have a specific version Closes: #199118
++ * libproc.a is back in libproc-dev, use it
++ * Added README to libproc-dev for people who use the library
++
++ -- Craig Small <csmall@debian.org> Wed, 20 Aug 2003 15:31:59 +1000
++
++procps (1:3.1.11-1) unstable; urgency=low
++
++ * 3.1.11 New upstream version
++ - handle GPLONLY_ symbols Closes: #143549, #188374
++ * freeproc now defined Closes: #189047
++ * warning in readproc.c fixed Closes: #197346
++ * Removed optarg and optind defines Closes: #197343
++ * Fixed saved_start_time warning Closes: #197342
++
++ -- Craig Small <csmall@debian.org> Thu, 24 Jul 2003 17:02:36 +1000
++
++procps (1:3.1.9-1) unstable; urgency=low
++
++ * New upstream source
++ * memory sizes fixed for 64-bit w/ gcc 3.x Closes: #194376, #191933
++ * Doesn't segfault if /proc not mounted Closes: #172735
++ * No warning in top about memory key Closes: #188271
++ * More info in kill man page Closes: #182414
++ * Document the different oO options Closes: #169301
++ * Updated stabndards version to 3.5.9
++ * Changed disk to backing storage Closes: #175925
++
++ -- Craig Small <csmall@debian.org> Mon, 2 Jun 2003 02:31:03 +1000
++
++procps (1:3.1.8-1) unstable; urgency=low
++
++ * New upstream release
++ watch man page fixed, Closes #182246
++ * Changed section for libproc-dev
++
++ -- Craig Small <csmall@debian.org> Tue, 1 Apr 2003 10:19:05 +1000
++
++procps (1:3.1.6-1) unstable; urgency=low
++
++ * New upstream release
++ - watch has --no-title option Closes: #179862
++ - ps -C can compare very long names Closes: #178127
++ * Fixed descriptions in manual pages Closes: #179046
++ * w wont crash if /proc unreadable Closes: #169398
++
++ -- Craig Small <csmall@debian.org> Sat, 22 Feb 2003 21:33:45 +1100
++
++procps (1:3.1.5-1) unstable; urgency=low
++
++ * New upstream version
++ - watch don't drop empty lines Closes: #171005
++ - top has old sort keys Closes: #167249
++ - now count Inact_laundry as needed Closes: #172163
++
++ -- Craig Small <csmall@debian.org> Mon, 6 Jan 2003 13:49:32 +1100
++
++procps (1:3.1.3-1) unstable; urgency=low
++
++ * New upstream source
++
++ -- Craig Small <csmall@debian.org> Fri, 13 Dec 2002 16:16:36 +1100
++
++procps (1:3.1.1-1) unstable; urgency=low
++
++ * New upstream source
++ - vmstats reports memort counts Closes: #169774
++
++ -- Craig Small <csmall@debian.org> Wed, 4 Dec 2002 15:57:13 +1100
++
++procps (1:3.1.0-1) unstable; urgency=low
++
++ * New upstream version
++ - vmstat displays IO-wait time instead of bogus "w"
++ - when IO-wait hidden, count as idle, not as sys
++ - pmap command added (like Sun has)
++ * Manual pages cleaned up Closes: #165970, #164481
++
++ -- Craig Small <csmall@debian.org> Mon, 11 Nov 2002 12:03:46 +1100
++
++procps (1:3.0.5-1) unstable; urgency=low
++
++ * New upstream version
++ - top tolerates super-wide displays Closes: #165497
++ - ELF note warning gone for some kernels Closes: #165900
++ - Fix ps and top man pages a bit, dropped bugs severity.
++
++ -- Craig Small <csmall@debian.org> Tue, 29 Oct 2002 22:04:36 +1100
++
++procps (1:3.0.4-1) unstable; urgency=low
++
++ * New upstream version
++ - ELF note warning removed Closes: #165093, #165343
++ - top works for most TERM= settings Closes: #164864, #164956
++ * w has FROM column again by default Closes: #165252
++ * debhelper dependency version fixed Closes: #165083
++ * ps.1 looks a bit better now Closes: #16448
++
++ -- Craig Small <csmall@debian.org> Mon, 21 Oct 2002 08:30:04 +1000
++
++procps (1:3.0.3-1) unstable; urgency=low
++
++ * New upstream version
++ - w works with KOI8 locale Closes: #153043
++ - fix top for non-SMP 2.2.xx and 2.0.xx Closes: #164231
++ - negative idle time fixed Closes: #126260
++ - sysctl handles new vlan interface Closes: #140386
++ - vmstat documentation update Closes: #157935, #155684
++ - "skill -n blah blah blah" lets you test options Closes: #158630
++ - fixed ps --sort crash Closes: #164226
++ - vmstat compiles with latest gcc-3.x Closes: #164348
++ - bad (int*) cast in top removed Closes: #164468
++ - Support new/improved statistics interfaces in 2.5 /proc Closes: #164013
++ - top defaults to old layout and sort by pid Closes: #164277
++ - rant moved out of top.1 man page Closes: #164520
++ - top runs much faster Closes: #87779
++
++ -- Craig Small <csmall@debian.org> Sat, 12 Oct 2002 21:44:23 +1000
++
++procps (1:3.0.0-2) unstable; urgency=low
++
++ * Fixed pkill and skill, auto* is so broken. Closes: #163940, #163944
++ * Moved libproc.so.3 into /lib as it's needed early Closes: #163981,#163899
++
++ -- Craig Small <csmall@debian.org> Thu, 10 Oct 2002 07:19:45 +1000
++
++procps (1:3.0.0-1) unstable; urgency=low
++
++ * New upstream source Closes: #163698
++ - top has SMP Closes: #162316, #62282, #94896, #98277, #117040, #117735
++ - SELINUX support Closes: #142892
++ - top defaults to signal 15 to kill pids with Closes: #72158
++ - 64-bit time reduces the overflow problem Closes: #82382, #155908
++ - "w" program better at determining what a user is doing
++ Closes: #88758, 115529
++ - oldps is gone Closes: #101917
++ - Handles /proc/tty/drivers Closes: #108654, #154046
++ - Supports scanf where locale uses , for decimal point Closes: #126873
++ - uptime --help now calls itself uptime Closes: #128880
++ - ps faster Closes: #147731
++ - top calculates screen better Closes: #162296
++ - top allows sorts by pid or swapped memory Closes: #79868, #159446
++ - support for s/390 Closes: #126295
++ - statm buffer size increased Closes: #145085
++ - new top has no typos Closes: #148918
++ - new top can handle lots of tasks Closes: #70900
++ * Fixed init.d file so it follows policy Closes: #121945
++
++ -- Craig Small <csmall@debian.org> Tue, 8 Oct 2002 12:29:45 +1000
++
++procps (1:2.0.7-10) unstable; urgency=low
++
++ * Fixes ps crash when system.map is exact multiple of 1024
++ Thankyou Colin for the patch! Closes: #109237, #142292
++
++ -- Craig Small <csmall@eye-net.com.au> Fri, 12 Apr 2002 21:02:04 +1000
++
++procps (1:2.0.7-9) unstable; urgency=low
++
++ * Sanity checking for Number of CPU Closes: #127561, #122617
++ This will keep the m68k and ARM boys happy.
++ * uptime usage fixed Closes: #138351
++ * kill man page NAME updated Closes: #119400
++ * Better explanation for load average in uptime(1) Closes: #140902
++ * utmp in correct location in w(1) Closes: #115725
++
++ -- Craig Small <csmall@eye-net.com.au> Mon, 8 Apr 2002 14:18:20 +1000
++
++procps (1:2.0.7-8) unstable; urgency=low
++
++ * Removed -ggdb Closes: #117203
++
++ -- Craig Small <csmall@eye-net.com.au> Sat, 27 Oct 2001 07:02:38 +1000
++
++procps (1:2.0.7-7) unstable; urgency=low
++
++ * Added os/390 patches Closes: #113494
++ * w manpage now gives correct location for utmp Closes: #110723
++ * watch wrap-around problem fixed Closes: #111759
++ * Programs are compilied -O2 Closes: #108652
++
++ -- Craig Small <csmall@eye-net.com.au> Wed, 26 Sep 2001 08:08:43 +1000
++
++procps (1:2.0.7-6) unstable; urgency=low
++
++ * Re-fixed command line interpretation Closes: #103101
++
++ -- Craig Small <csmall@eye-net.com.au> Tue, 10 Jul 2001 17:32:02 +1000
++
++procps (1:2.0.7-5) unstable; urgency=low
++
++ * watch now copys strings better. Closes: #95404, #97948, #99780
++ * skill.1 loads tbl Closes: #92242, #67899
++ * long usernames are shown Closes: #86205, #94957
++ * Remove /etc/rcS.d/S30procps with good ole rm Closes: #92184
++ * /etc/init.d/procps.sh calls itself that Closes: #93302
++ * Cannot write config in secure mode Closes: #93948
++
++ -- Craig Small <csmall@debian.org> Sun, 29 Apr 2001 14:55:20 +1000
++
++procps (1:2.0.7-4) unstable; urgency=low
++
++ * watch doesnt crash with long command lines Closes: #88592, #87693
++ * bumped up a buffer in a proc read Closes: #85775
++ * Now we use 24 hour time Closes: #85640
++ * pgrep calls itself pgrep Closes: #86630
++ * Corrected symlink in libproc-dev Closes: #87865
++
++ -- Craig Small <csmall@debian.org> Mon, 19 Mar 2001 10:13:27 +1100
++
++procps (1:2.0.7-3) unstable; urgency=low
++
++ * Conflicts with pgrep, so no more conflicts Closes: #82835
++ * Minor fixes to ps.1 manpage Closes: #81921
++ * watch highlighs correctly Closes: #77737
++ * top wont die with evil HOMEs, Closes: #81452
++ * removed reference to suidregister
++ * Remore -L reference in kill.1 Closes: #85913
++
++ -- Craig Small <csmall@debian.org> Thu, 8 Feb 2001 12:44:58 +1100
++
++procps (1:2.0.7-2) unstable; urgency=medium
++
++ * Moved kill back again, dammit why is the makefile so broken
++ Closes: #82747
++ * Watch uses locale Closes: #82739
++ * top's scanf is protected from evil locale problems Closes: #82671, #69128
++ (Big thankyou to Guillaume for lending a test account)
++
++ -- Craig Small <csmall@debian.org> Fri, 19 Jan 2001 09:15:36 +1100
++
++procps (1:2.0.7-1) unstable; urgency=medium
++
++ * New upstream version (010114)
++ - Merges 2.0.7 code from RedHat Closes: #80832
++ - Made note that Shared memory report will be junk due to kernel
++ Closes: #77818
++ - Remove html and null stuff from man page Closes: #81920
++ - vsize is kB in man page Closes: #82210
++ - man pages look better Closes: #70055, #70941
++ - vmstat increase Closes: #77886
++ - w tries harder to find things Closes: #24531
++ - 15 char user names Closes: #71211
++ * No HOME overflow in top Closes: 81452
++ * Added menu Hints Closes: #80051, #82324
++
++
++ -- Craig Small <csmall@debian.org> Wed, 17 Jan 2001 08:57:24 +1100
++
++procps (1:2.0.6-9) unstable; urgency=medium
++
++ * added libncurses5-dev to build-depends, Closes: #67533
++ * Put kill back into /bin Closes #67580, #67582
++ * Put 2.0.6-7 ps.1 back in Closes: #67451
++
++ -- Craig Small <csmall@debian.org> Tue, 25 Jul 2000 08:13:21 +1000
++
++procps (1:2.0.6-8) unstable; urgency=low
++
++ * New upstream source:
++ * - sysctl EOF bug fixed Closes: #62877
++ * - stop crashes with unmounted /proc Closes: #63512, #55177
++ * - Versions checking tolerates RH /proc/ksyms Closes: #59798
++ * - Top works better with SMP Closes: #34734, #56547, #59703
++
++ -- Craig Small <csmall@debian.org> Fri, 14 Jul 2000 22:33:44 +1000
++
++procps (1:2.0.6-7) unstable; urgency=low
++
++ * Fixed missing version Closes: #62207, #62484, #59112
++ * Stop crashes with umounted /proc Closes: #63512, #55177
++ * Nicer man pages Closes: #63495, #59406
++ * Fixed sysctl eof bug Closes: #62877
++ * watch wraps properly Closes: #60913
++ * watch handles tabs Closes: #46213
++ * watch honors locale settings Closes: #63762
++ * now versioned replaces line for bsdutils
++
++ -- Craig Small <csmall@debian.org> Mon, 29 May 2000 13:31:54 +1000
++
++procps (1:2.0.6-6) unstable; urgency=low
++
++ * New patchlevel (000221)
++ * ps 'f' ASCII art forest fixed. Closes: #57134, #58644
++ * let insane people run ps setuid. Closes: #56701
++ * note that kernel 2.3 is now faster. Closes: #49130
++ * top with WCHAN was leaking memory. Closes: #58172, #52257, #56889
++ * can show current CPU. Closes: #37023
++ * w looks better now. Closes: #55952
++ * init.d/procps removed if exists. Closes: #55137, #55852
++ * Fixed skill/snice man page (thanks man-db maint!) Closes: #53736, #46743
++ * Fixed ps man page Closes: #58365
++
++ -- Craig Small <csmall@debian.org> Wed, 23 Feb 2000 10:31:37 +1100
++
++procps (1:2.0.6-5) unstable; urgency=low
++
++ * New upstream source
++ * kill "_R(smp_|smp2gig_|2gig_)?[0-9a-fA-F]{8,}" Closes: #54394, #53208
++ * added type 'S' and scan past machine types Closes: #54396
++ * Fixed w(1) manpage Closes: #54709
++ * top now agrees with ps for RSS Closes: #52679
++
++ -- Craig Small <csmall@debian.org> Tue, 11 Jan 2000 08:23:56 +1100
++
++procps (1:2.0.6-4) unstable; urgency=low
++
++ * procps init.d script quietly dies if not /etc/default/rcS Closes:
++ #52839
++ * Put the NEWS changelog back in Closes: #52678
++ * Fixed that damn Rsmp annoying message bug Closes: #48686
++ * Remove /etc/init.d/procps Closes: #53818
++
++ -- Craig Small <csmall@debian.org> Mon, 20 Dec 1999 11:14:53 +1100
++
++procps (1:2.0.6-3) unstable; urgency=low
++
++ * Patched ps so it complains if you chmod 711 /proc Closes: #52481
++ * Did the same for top.
++ * Ditto for oldps.
++ * Changed and int to a char* Closes: #52482
++ * sysctl.conf file references sysctl.conf (5) not 8 Closes: #52385
++ * props init.d script changed to procps.sh Closes: #52228
++
++ -- Craig Small <csmall@debian.org> Mon, 13 Dec 1999 11:57:01 +1100
++
++procps (1:2.0.6-2) unstable; urgency=low
++
++ * Changed psmisc from reccomends to suggests
++ * %MEM now works, Closes: #50010 #50055 #50148 #50356
++ * top doesn't crash with > 204 processes Closes: #50055
++ * Another libproc fd leak fixed Closes: #45398
++ * ps silently ignores m and -m for future compatibility Closes: #48308
++ * Added a sysctl.conf and other files as suggested Closes: #51098
++ * Fix start field instability
++ * ps.1 fixed Closes: #35137
++
++ -- Craig Small <csmall@debian.org> Tue, 7 Dec 1999 14:42:51 +1100
++
++procps (1:2.0.6-1) unstable; urgency=low
++
++ * New upstream
++ * sysctl crash fixed, Closes: #49015
++ * libproc file descriptor leak fixed, Closes: #45398
++ * False positive System.map mismatches killed, Closes: #49047
++ * Supports 64 Hz for StrongARM/Shark Closes: #47461
++ * pr_time fixed, Closes: #46223
++ * libc num cpu workaround back in, Closes: #49039
++ * Fixed kill manpage, Closes: #47018
++ * This version definitely, absolutely has kill, Closes: #46762
++
++
++ -- Craig Small <csmall@debian.org> Fri, 5 Nov 1999 12:46:05 +1100
++
++procps (1:2.0.3-5) unstable; urgency=low
++
++ * Changed conflicts with replaces
++
++ -- Craig Small <csmall@debian.org> Wed, 6 Oct 1999 14:36:48 +1000
++
++procps (1:2.0.3-4) unstable; urgency=low
++
++ * support SMP systems with versioned kernel modules Closes: #45621, #46465
++ * Added kill to this (it is removed from bsdutils).
++ * We now need kill manpage, Closes: #46004
++
++ -- Craig Small <csmall@debian.org> Tue, 5 Oct 1999 10:28:01 +1000
++
++procps (1:2.0.3-3) unstable; urgency=low
++
++ * System.map support for non-i386 Closes: #45592, #45250
++ * Do not require /proc/ksyms Closes: #45128, #45132, #45619
++ * Alternative w.1 points to the right spot, Closes: #45331
++ * Copyright for skill and snice and ps fixed, Closes: #45119
++
++ -- Craig Small <csmall@debian.org> Tue, 21 Sep 1999 16:31:59 +1000
++
++procps (1:2.0.3-2) unstable; urgency=medium
++
++ * Now with top! Closes: #45106
++
++ -- Craig Small <csmall@debian.org> Wed, 15 Sep 1999 11:12:34 +1000
++
++procps (1:2.0.3-1) unstable; urgency=low
++
++ * New upstream source
++ * Debian personality does m flag Closes: #44832
++ * Corrected typo in top.1 Closes: #44836
++ * New improved watch Closes: #29970
++
++ -- Craig Small <csmall@debian.org> Mon, 13 Sep 1999 16:59:16 +1000
++
++procps (1:2.0.2-4) unstable; urgency=high
++
++ * Fixed the nasty ps formatting problem (Bug #40859 #40856 #40839 )
++
++ -- Craig Small <csmall@debian.org> Wed, 7 Jul 1999 08:41:54 +1000
++
++procps (1:2.0.2-3) unstable; urgency=low
++
++ * New upstream patches/source
++ * SMB Hz wierdness fixed (Bug #33023 #33284)
++ * non-tty output does not get chopped at 80 columns (bug #36688)
++ * BSD personalities set the default selection and output format (bug #36698)
++ * Fixed collumn spacing problem (Bug #35309)
++ * Work around for borken libs that return 0 processors (Bug #36902)
++ * skill now uses process name not command line (Bug #19208)
++
++ -- Craig Small <csmall@debian.org> Mon, 5 Jul 1999 07:29:47 +1000
++
++procps (1:2.0.2-2) unstable; urgency=low
++
++ * Removed kill and manual page (Bug #36421 #36551 #36375)
++ * Put in patch for bogus sysconf return (Bug #36494 #36532 #36581)
++
++ -- Craig Small <csmall@debian.org> Wed, 28 Apr 1999 09:04:59 +1000
++
++procps (1:2.0.2-1) unstable; urgency=low
++
++ * New upstream version (Bug #34394 #27291 #34250 #34956 #35240 #35247
++ #35520 #35756 #34580 )
++
++ -- Craig Small <csmall@debian.org> Mon, 19 Apr 1999 13:26:48 +1000
++
++procps (1:2.0.0-1) unstable; urgency=low
++
++ * New upstream version (Bug #33083 23347 33462 10556 33266 33371 )
++
++
++ -- Craig Small <csmall@debian.org> Mon, 15 Mar 1999 14:21:57 +1100
++
++procps (1:1.9.0-2) unstable; urgency=low
++
++ * top now resumes (Bug #32106 )
++ * debhelper text problem fixed in postinst (Bug #32963 #33122 #33003 33117 )
++ * oldps and ps now use alternatives (Bug #33083 )
++ * ps s format now not ugly (Bug #28266 )
++ * watch command line help and man page correct (Bug #31702 )
++ * sessreg removed from package (Bug #32294 )
++ * ps doesn't display extra spaces (Bug #27799 )
++ * top has spaces in command lines again (Bug #33060 )
++ * ps now has personality (Bug #22923 #18429 )
++ * moved non-free skill and snice to non-free package.
++
++ -- Craig Small <csmall@debian.org> Tue, 9 Feb 1999 15:10:58 +1100
++
++procps (1:1.9.0-1) unstable; urgency=low
++
++ * New Upstream source
++
++ -- Craig Small <csmall@debian.org> Thu, 4 Feb 1999 14:48:37 +1100
++
++procps (1:1.2.9-3) unstable; urgency=low
++
++ * Linked to ncurses4
++
++ -- Craig Small <csmall@debian.org> Fri, 30 Oct 1998 14:13:02 +1100
++
++procps (1:1.2.9-2) unstable; urgency=low
++
++ * top now has spaces in between command lines (Bug #28178 )
++ * --version or -V now shows proper version.
++
++ -- Craig Small <csmall@debian.org> Mon, 26 Oct 1998 08:55:59 +1100
++
++procps (1:1.2.9-1) unstable; urgency=low
++
++ * New upstream version (Bug #27573 )
++ * Menu entry changed from System to Menu/System (Bug #27438 )
++ * Char variables changed to int for powerpc (Bug #26624 )
++ * libproc now nulls allocated structure (Bug #26225 )
++ * No longer uses psdevtab (yay!) (Bug #25388 )
++ * ps doesn't double space command line parameters (Bug #25306 #24293 )
++ * ps now silently ignores g flag for those BSD heads (Bug #24075 )
++
++ -- Craig Small <csmall@debian.org> Fri, 9 Oct 1998 09:15:11 +1000
++
++procps (1:1.2.7-2) unstable; urgency=low
++
++ * Top can suspend twice (or three times even) (Bug #22997 )
++ * Libraries properly built (Bug #20010 )
++
++ -- Craig Small <csmall@debian.org> Mon, 1 Jun 1998 09:16:09 +1000
++
++procps (1:1.2.7-1) frozen unstable; urgency=high
++
++ * New upstream source, fixes security bug (Bug #21475)
++
++ -- Craig Small <csmall@debian.org> Thu, 23 Apr 1998 08:04:54 +1000
++
++procps (1:1.2.6-2) unstable; urgency=low
++
++ * Fixed Shared library dependencies (bugs #18388 #18394 18392 )
++ * Conflicts with earlier versions of w-bassman (bug #18389 )
++
++ -- Craig Small <csmall@debian.org> Mon, 23 Feb 1998 09:05:54 +1100
++
++procps (1:1.2.6-1) unstable; urgency=low
++
++ * New upstream source.
++ * xload is undiverted (Bug #17102 )
++ * ps_fields.7.gz removed (Bug #18090 )
++ * Colour patches removed, color-related bugs gone (Bug #18008 #17217 #18090 )
++ * POSIX patches removed, cmd line bugs gone (Bug #15537 )
++ * w is now an alternative w.procps (Bug #17960 )
++ * skill now works with process names (Bug #17087 )
++ * ps and top man pages have their field descriptions (Bug #17360 )
++ * ps u fixed (Bug #17313 )
++ * Source code is no longer FUBAR (Bug #17892 )
++ * top now redraws screen after config screen (Bug #11896 )
++ * Circular dependency removed (Bug #16966 )
++ * top does mess up screens with wrong cmd line (Bug #17230 )
++ * top suspends with ctrl-Z (Bug #16703 )
++
++ -- Craig Small <csmall@debian.org> Tue, 17 Feb 1998 08:31:21 +1100
++
++procps (1:1.2.5-2) unstable; urgency=low
++
++ * Moved /bin into /bin/ps (Bug #17001 )
++
++ -- Craig Small <csmall@debian.org> Tue, 13 Jan 1998 07:50:43 +1100
++
++procps (1:1.2.5-1) unstable; urgency=low
++
++ * TTY selection works ( #16724 )
++ * top and ps now accept --colour and *_COLOURS
++ * xproc copyright file not compressed ( #14491 )
++ * All #include <proc/*.h> now #include "proc/*.h" ( #13482 )
++ * Copyright doesn't mention psmisc now ( #16704 )
++ * Moved ps back into /bin ( #16737 #16705 )
++ * New upstream source ( #16795 )
++
++ -- Craig Small <csmall@debian.org> Mon, 12 Jan 1998 08:35:10 +1100
++
++procps (1:1.2.2-1) unstable; urgency=low
++
++ * New maintainer
++ * Updated upstream source to 1.2.2 (instead of 1.2)
++ * Merged Helmut's color/command line patches into upstream.
++ * Copyright file is not compressed ( #14493 #14415 )
++ * psdatabase refreshed when installing ( #10693 )
++ * Fixed +/- line in free ( #10785 #10870 #11566 #12027 #12245 #12374 )
++ * w collumns corrected ( #10898 #13117 )
++ * top saves sort type ( #11553 )
++ * Linked to libc6 ( #11725 )
++ * top doesn't coredump with S option ( #11855 )
++ * skill works with given patch ( #12023 )
++ * libproc-dev has proper sym link ( #12697 )
++ * top -h doesn't change terminal settings ( #13513 )
++ * ps -s has "CAUGHT" not "CATCHED" ( #14342 )
++ * ps_colors.7 and ps_fields.7 reformatted ( #14109 #14544 #14545 )
++ * ps checks for tty before using colors ( #14596 )
++ * top sets stop signal handler later, stopping race ( #14769 )
++ * When using POSIX personality, processes show up ( #14780 )
++ * top checks for valid term type ( #15807 )
++ * xproc now Depends on procps-1.2.*-* ( #10762 #13347 )
++ * xproc dependencies fixed ( #12698 )
++
++ -- Craig Small <csmall@debian.org> Tue, 30 Dec 1997 11:33:54 +1100
++
++procps (1.12.2.1) unstable; urgency=low
++
++ * Non-maintainer release, built for libc6.
++ * Added in free.c from new procps version 1.2.3 (from sunsite), seems to
++ fix all the problems with free reporting bogus valus.
++
++ -- Joey Hess <joeyh@master.debian.org> Fri, 24 Oct 1997 13:34:35 -0400
++
++procps (1.12.2) stable unstable; urgency=low
++
++ * fixed meminfo handling again, as the fix wouldn't work on pre-2.1.x
++ kernels.
++ * fixed free to use the meminfo routines from libproc.
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Fri, 13 Jun 1997 22:42:14 +0200
++
++procps (1.12.1) stable unstable; urgency=low
++
++ * fixed several bugs
++ * replaced utmp handling to support wrappers.
++ * added /proc/meminfo support for 2.1.x kernels.
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Tue, 10 Jun 1997 23:59:41 +0200
++
++procps (1.11.6) frozen unstable; urgency=medium
++
++ * psmisc 1.14 : new upstream version (mainly bugfixes)
++ * added a lot of new serial device major numbers to the device lookup
++ code. Somehow it seems there are new serial devices every other week.
++ * fixed a bug in top: broken .toprc may cause a segmentation fault.
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Sun, 4 May 1997 09:50:30 +0200
++
++procps (1.11.5) frozen unstable; urgency=medium
++
++ * minor changes to make it compile with libc6
++ * fix top behaviour on machines having nonstandard NR_TASKS up to 4k
++ tasks
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Fri, 18 Apr 1997 02:07:46 +0200
++
++procps (1.11.4) unstable; urgency=medium
++
++ * strip libproc.so from unneeded symbols (Bug# 8311)
++ * fixed watch.1 example (Bug# 8169)
++ * partly fixed fuser sigsegv core dump (Bug# 8004)
++ * menu entries for xproc and procps (Bug# 8325)
++ * divertions for xmem and xload. (Bug# 7565)
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Sun, 13 Apr 1997 20:55:05 +0200
++
++procps (1.11.3) unstable; urgency=low
++
++ * fixed uptime again, minor Makefile changes
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Fri, 21 Feb 1997 16:22:04 +0100
++
++procps (1.11.2) unstable; urgency=medium
++
++ * fixed typo in ps_fields.7 (Bug#5457)
++ * fixed typo in debian/rules (Bug #5585)
++ * fixed bug in w introduced in 1.11.1 (Bugs #5489, #5694, #5695, #5705).
++ * added support for non-standard serial devices (long overdue - Bug
++ #5771).
++ * fixed uptime option handling (Bug #6099).
++ * fixed top problems with missing/corrupted utmp (Bug #5819).
++ * fixed manpage problems (Bug #5936).
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Wed, 19 Feb 1997 18:49:26 +0100
++
++procps (1.11.1) unstable; urgency=low
++
++ * fixed bug in w <username>
++ * automatic resize if field length is exceeded. This changed the shared
++ library, so popping the major number.
++ * fixed numeric WCHAN output on Alphas and stupid bug in ps (again,
++ thanks to H. Koenig).
++ * fixed top memory statistics for systems with more than 100M memory or
++ swap.
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Tue, 12 Nov 1996 02:57:18 +0100
++
++procps (1.10.1) unstable; urgency=low
++
++ * merged in ALPHA & Sparc patches
++ (from ftp.azstarnet.com:/pub/linux/axp/glibc)
++ * fixed ps --deselect/-N for pid lists
++ * use shared libs from now on, install shlibs again
++ * manpages for libproc
++ * static lib compiled without -fPIC
++ * added libproc package for development installing libproc headers,
++ manpages and static library.
++ * fixed PROC_REAL bug when PROC_FILLSTATUS isn't set.
++ * fixed color bug in ps --forest
++ * added xproc package for xload, xmem, xidle, xcpustate
++ (XConsole left out as we use xconsole & klogd on debian)
++ * adapted xload manpage for xidle and xmem
++ * fixed xmem to cope with newer kernels (where shared pages are counted
++ once for each additional reference)
++ * fixed top change_fields bug (a field needs 24, not 21 spaces)
++ * fixed several Alpha bugs (thanks to Harald Koenig)
++ * due to popular demand, the old format for time intervals is back.
++ for all program using this, a toggle command line option has been
++ provided. The default behaviour depends on the compile time option
++ NEW_TIME_DEFAULT (see main Makefile)
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Wed, 23 Oct 1996 21:30:54 +0200
++
++procps (1.09.2) unstable; urgency=low
++
++ * fixed cpu nice % in summary
++ * fixed topsetup initialisation in top.h I messed up in last revision
++ * fixed pipe output bug
++ * fixed --deselect bug in SVR4/POSIX mode
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Sun, 20 Oct 1996 13:57:11 +0200
++
++procps (1.09.1) unstable; urgency=low
++
++ * fixed ps -w bug displaying too many empty lines
++ * fixed SIGSEGV bug in ps -www
++ * fixed bug in top not calculating length of the command/args/env fields
++ at the field selection screen in some circumstances.
++ * fixed SIGSEGV bug when using environ field
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Sat, 12 Oct 1996 07:59:29 +0200
++
++procps (1.09) experimental; urgency=low
++
++ * This is an experimental release of the procps suite. A lot of features have
++ been added since the 1.01(a) release:
++ - support for both BSD and POSIX (SVR4) style command line options.
++ - completely configurable display of information.
++ - colour markup of processes exceeding limits or belonging to a user.
++ Please take a look at /usr/doc/procps/NEWS and the manpages for a concise
++ list. This is how the next upstream release of procps may look
++ (i.e. it will look like this if there is not too much resistance).
++
++ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> Sat, 5 Oct 1996 14:26:57 +0200
+--- procps-3.1.15.orig/kill.1
++++ procps-3.1.15/kill.1
+@@ -10,16 +10,11 @@
+ kill \- send a signal to a process
+
+ .SH SYNOPSIS
+-.TS
+-l l.
+-kill pid ... Send SIGTERM to every process listed.
+-kill -signal pid ... Send a signal to every process listed.
+-kill -s signal pid ... Send a signal to every process listed.
+-kill -l List all signal names.
+-kill -L List all signal names in a nice table.
+-kill -l signal Convert a signal number into a name.
+-kill -V,--version Show version of program
+-.TE
++\fBkill\fR [ -\fBsignal\fR | -s \fBsignal\fR ] \fBpid\fR ...
++.br
++\fBkill\fR [ -L | -V, --version ]
++.br
++\fBkill\fR -l [ \fBsignal\fR ]
+
+ .SH DESCRIPTION
+ The default signal for kill is TERM. Use -l or -L to list available signals.
+@@ -105,7 +100,7 @@
+ .fi
+ .PP
+ .SH "SEE ALSO"
+-pkill(1) skill(1) kill(2) renice(1) nice(1) signal(7) killall(1)
++.BR pkill (1), skill (1), kill (2), renice (1), nice (1), signal (7), killall (1).
+
+ .SH STANDARDS
+ This command meets appropriate standards. The -L flag is Linux-specific.
+--- procps-3.1.15.orig/tload.c
++++ procps-3.1.15/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;
+--- procps-3.1.15.orig/pgrep.c
++++ procps-3.1.15/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;
+
+--- procps-3.1.15.orig/top.1
++++ procps-3.1.15/top.1
+@@ -430,8 +430,8 @@
+ The number of\fB major\fR page faults that have occurred for a task.
+ A page fault occurs when a process attempts to read from or write to a virtual
+ page that is not currently present in its address space.
+-A major page fault is when disk access is involved in making that
+-page available.
++A major page fault is when backing storage access (such as a disk) is involved
++in making that page available.
+
+ .TP 3
+ v:\fB nDRT\fR \*(EM Dirty Pages count
diff --git a/recipes/procps/procps-3.2.1/install.patch b/recipes/procps/procps-3.2.1/install.patch
new file mode 100644
index 0000000000..2d16c26f17
--- /dev/null
+++ b/recipes/procps/procps-3.2.1/install.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- procps-3.1.15/Makefile~install 2003-12-24 03:01:55.000000000 +0100
++++ procps-3.1.15/Makefile 2004-02-11 00:45:59.000000000 +0100
+@@ -147,7 +147,7 @@
+ ###### install
+
+ $(BINFILES) : all
+- $(install) --mode a=rx --strip $(notdir $@) $@
++ $(install) --mode a=rx $(notdir $@) $@
+
+ $(MANFILES) : all
+ $(install) --mode a=r $(notdir $@) $@
diff --git a/recipes/procps/procps-3.2.1/pagesz-not-constant.patch b/recipes/procps/procps-3.2.1/pagesz-not-constant.patch
new file mode 100644
index 0000000000..8e9e1ebfe1
--- /dev/null
+++ b/recipes/procps/procps-3.2.1/pagesz-not-constant.patch
@@ -0,0 +1,22 @@
+Index: procps-3.2.1/proc/devname.c
+===================================================================
+--- procps-3.2.1.orig/proc/devname.c 2004-03-18 05:43:50.000000000 +1100
++++ procps-3.2.1/proc/devname.c 2005-04-02 10:40:17.462138000 +1000
+@@ -227,7 +227,7 @@
+
+ /* number --> name */
+ unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
+- static char buf[PAGE_SIZE];
++ static char buf[4096];
+ char *restrict tmp = buf;
+ unsigned dev = dev_t_dev;
+ unsigned i = 0;
+@@ -249,7 +249,7 @@
+ if((flags&ABBREV_TTY) && !strncmp(tmp,"tty", 3) && tmp[3]) tmp += 3;
+ if((flags&ABBREV_PTS) && !strncmp(tmp,"pts/", 4) && tmp[4]) tmp += 4;
+ /* gotta check before we chop or we may chop someone else's memory */
+- if(chop + (unsigned long)(tmp-buf) <= sizeof buf)
++ if(chop + (unsigned long)(tmp-buf) < sizeof buf)
+ tmp[chop] = '\0';
+ /* replace non-ASCII characters with '?' and return the number of chars */
+ for(;;){
diff --git a/recipes/procps/procps-3.2.5/install.patch b/recipes/procps/procps-3.2.5/install.patch
new file mode 100644
index 0000000000..9f1ef6915d
--- /dev/null
+++ b/recipes/procps/procps-3.2.5/install.patch
@@ -0,0 +1,27 @@
+--- procps-3.2.5.virgin/Makefile 2005-01-26 05:55:26.000000000 +0100
++++ procps-3.2.5/Makefile 2005-08-03 04:55:26.346984488 +0200
+@@ -30,7 +30,10 @@
+ install := install -D --owner 0 --group 0
+
+ # Lame x86-64 /lib64 and /usr/lib64 abomination:
+-lib64 := lib$(shell [ -d /lib64 ] && echo 64)
++# lib64 := lib$(shell [ -d /lib64 ] && echo 64)
++
++# Equally lame hack to work around makefile lameness when the host arch is 64bit, but the target is not.
++lib64 := lib
+
+ usr/bin := $(DESTDIR)/usr/bin/
+ bin := $(DESTDIR)/bin/
+@@ -211,10 +214,10 @@
+ ###### install
+
+ $(BINFILES) : all
+- $(install) --mode a=rx $(notdir $@) $@
++ $(install) -m 555 $(notdir $@) $@
+
+ $(MANFILES) : all
+- $(install) --mode a=r $(notdir $@) $@
++ $(install) -m 444 $(notdir $@) $@
+
+ install: $(filter-out $(SKIP) $(addprefix $(DESTDIR),$(SKIP)),$(INSTALL))
+ cd $(usr/bin) && $(ln_f) skill snice
diff --git a/recipes/procps/procps-3.2.5/pagesz-not-constant.patch b/recipes/procps/procps-3.2.5/pagesz-not-constant.patch
new file mode 100644
index 0000000000..8e9e1ebfe1
--- /dev/null
+++ b/recipes/procps/procps-3.2.5/pagesz-not-constant.patch
@@ -0,0 +1,22 @@
+Index: procps-3.2.1/proc/devname.c
+===================================================================
+--- procps-3.2.1.orig/proc/devname.c 2004-03-18 05:43:50.000000000 +1100
++++ procps-3.2.1/proc/devname.c 2005-04-02 10:40:17.462138000 +1000
+@@ -227,7 +227,7 @@
+
+ /* number --> name */
+ unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
+- static char buf[PAGE_SIZE];
++ static char buf[4096];
+ char *restrict tmp = buf;
+ unsigned dev = dev_t_dev;
+ unsigned i = 0;
+@@ -249,7 +249,7 @@
+ if((flags&ABBREV_TTY) && !strncmp(tmp,"tty", 3) && tmp[3]) tmp += 3;
+ if((flags&ABBREV_PTS) && !strncmp(tmp,"pts/", 4) && tmp[4]) tmp += 4;
+ /* gotta check before we chop or we may chop someone else's memory */
+- if(chop + (unsigned long)(tmp-buf) <= sizeof buf)
++ if(chop + (unsigned long)(tmp-buf) < sizeof buf)
+ tmp[chop] = '\0';
+ /* replace non-ASCII characters with '?' and return the number of chars */
+ for(;;){
diff --git a/recipes/procps/procps-3.2.5/procmodule.patch b/recipes/procps/procps-3.2.5/procmodule.patch
new file mode 100644
index 0000000000..fabfabaa59
--- /dev/null
+++ b/recipes/procps/procps-3.2.5/procmodule.patch
@@ -0,0 +1,36 @@
+*** procps-3.2.5/proc/module.mk.orig Sun Jul 24 11:53:49 2005
+--- procps-3.2.5/proc/module.mk Sun Jul 24 11:54:32 2005
+***************
+*** 96,102 ****
+ #################### install rules ###########################
+
+ $(lib)$(SOFILE) : proc/$(SONAME)
+! $(install) --mode a=rx $< $@
+
+ ifneq ($(SOLINK),$(SOFILE))
+ .PHONY: $(lib)$(SOLINK)
+--- 96,102 ----
+ #################### install rules ###########################
+
+ $(lib)$(SOFILE) : proc/$(SONAME)
+! $(install) -m 555 $< $@
+
+ ifneq ($(SOLINK),$(SOFILE))
+ .PHONY: $(lib)$(SOLINK)
+***************
+*** 115,121 ****
+ $(ldconfig)
+
+ $(usr/lib)$(ANAME) : proc/$(ANAME)
+! $(install) --mode a=r $< $@
+
+ # Junk anyway... supposed to go in /usr/include/$(NAME)
+ #INSTALL += $(addprefix $(include),$(HDRFILES))
+--- 115,121 ----
+ $(ldconfig)
+
+ $(usr/lib)$(ANAME) : proc/$(ANAME)
+! $(install) -m 444 $< $@
+
+ # Junk anyway... supposed to go in /usr/include/$(NAME)
+ #INSTALL += $(addprefix $(include),$(HDRFILES))
diff --git a/recipes/procps/procps-3.2.5/psmodule.patch b/recipes/procps/procps-3.2.5/psmodule.patch
new file mode 100644
index 0000000000..f298c1c1c4
--- /dev/null
+++ b/recipes/procps/procps-3.2.5/psmodule.patch
@@ -0,0 +1,21 @@
+*** procps-3.2.5/ps/module.mk.orig Sun Jul 24 11:54:40 2005
+--- procps-3.2.5/ps/module.mk Sun Jul 24 11:55:02 2005
+***************
+*** 33,40 ****
+
+
+ $(bin)ps: ps/ps
+! $(install) --mode a=rx $< $@
+
+ $(man1)ps.1 : ps/ps.1
+! $(install) --mode a=r $< $@
+ -rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
+--- 33,40 ----
+
+
+ $(bin)ps: ps/ps
+! $(install) -m 555 $< $@
+
+ $(man1)ps.1 : ps/ps.1
+! $(install) -m 444 $< $@
+ -rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
diff --git a/recipes/procps/procps-3.2.7/install.patch b/recipes/procps/procps-3.2.7/install.patch
new file mode 100644
index 0000000000..9f1ef6915d
--- /dev/null
+++ b/recipes/procps/procps-3.2.7/install.patch
@@ -0,0 +1,27 @@
+--- procps-3.2.5.virgin/Makefile 2005-01-26 05:55:26.000000000 +0100
++++ procps-3.2.5/Makefile 2005-08-03 04:55:26.346984488 +0200
+@@ -30,7 +30,10 @@
+ install := install -D --owner 0 --group 0
+
+ # Lame x86-64 /lib64 and /usr/lib64 abomination:
+-lib64 := lib$(shell [ -d /lib64 ] && echo 64)
++# lib64 := lib$(shell [ -d /lib64 ] && echo 64)
++
++# Equally lame hack to work around makefile lameness when the host arch is 64bit, but the target is not.
++lib64 := lib
+
+ usr/bin := $(DESTDIR)/usr/bin/
+ bin := $(DESTDIR)/bin/
+@@ -211,10 +214,10 @@
+ ###### install
+
+ $(BINFILES) : all
+- $(install) --mode a=rx $(notdir $@) $@
++ $(install) -m 555 $(notdir $@) $@
+
+ $(MANFILES) : all
+- $(install) --mode a=r $(notdir $@) $@
++ $(install) -m 444 $(notdir $@) $@
+
+ install: $(filter-out $(SKIP) $(addprefix $(DESTDIR),$(SKIP)),$(INSTALL))
+ cd $(usr/bin) && $(ln_f) skill snice
diff --git a/recipes/procps/procps-3.2.7/linux-limits.patch b/recipes/procps/procps-3.2.7/linux-limits.patch
new file mode 100644
index 0000000000..dcd66163ad
--- /dev/null
+++ b/recipes/procps/procps-3.2.7/linux-limits.patch
@@ -0,0 +1,13 @@
+diff --git a/pwdx.c b/pwdx.c
+index cb96a52..29ebce2 100644
+--- a/pwdx.c
++++ b/pwdx.c
+@@ -13,7 +13,7 @@
+ #include <stdlib.h>
+ #include <sys/types.h>
+ #include <regex.h>
+-#include <limits.h>
++#include <linux/limits.h>
+ #include <unistd.h>
+ #include <errno.h>
+
diff --git a/recipes/procps/procps-3.2.7/pagesz-not-constant.patch b/recipes/procps/procps-3.2.7/pagesz-not-constant.patch
new file mode 100644
index 0000000000..8e9e1ebfe1
--- /dev/null
+++ b/recipes/procps/procps-3.2.7/pagesz-not-constant.patch
@@ -0,0 +1,22 @@
+Index: procps-3.2.1/proc/devname.c
+===================================================================
+--- procps-3.2.1.orig/proc/devname.c 2004-03-18 05:43:50.000000000 +1100
++++ procps-3.2.1/proc/devname.c 2005-04-02 10:40:17.462138000 +1000
+@@ -227,7 +227,7 @@
+
+ /* number --> name */
+ unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
+- static char buf[PAGE_SIZE];
++ static char buf[4096];
+ char *restrict tmp = buf;
+ unsigned dev = dev_t_dev;
+ unsigned i = 0;
+@@ -249,7 +249,7 @@
+ if((flags&ABBREV_TTY) && !strncmp(tmp,"tty", 3) && tmp[3]) tmp += 3;
+ if((flags&ABBREV_PTS) && !strncmp(tmp,"pts/", 4) && tmp[4]) tmp += 4;
+ /* gotta check before we chop or we may chop someone else's memory */
+- if(chop + (unsigned long)(tmp-buf) <= sizeof buf)
++ if(chop + (unsigned long)(tmp-buf) < sizeof buf)
+ tmp[chop] = '\0';
+ /* replace non-ASCII characters with '?' and return the number of chars */
+ for(;;){
diff --git a/recipes/procps/procps-3.2.7/procmodule.patch b/recipes/procps/procps-3.2.7/procmodule.patch
new file mode 100644
index 0000000000..fabfabaa59
--- /dev/null
+++ b/recipes/procps/procps-3.2.7/procmodule.patch
@@ -0,0 +1,36 @@
+*** procps-3.2.5/proc/module.mk.orig Sun Jul 24 11:53:49 2005
+--- procps-3.2.5/proc/module.mk Sun Jul 24 11:54:32 2005
+***************
+*** 96,102 ****
+ #################### install rules ###########################
+
+ $(lib)$(SOFILE) : proc/$(SONAME)
+! $(install) --mode a=rx $< $@
+
+ ifneq ($(SOLINK),$(SOFILE))
+ .PHONY: $(lib)$(SOLINK)
+--- 96,102 ----
+ #################### install rules ###########################
+
+ $(lib)$(SOFILE) : proc/$(SONAME)
+! $(install) -m 555 $< $@
+
+ ifneq ($(SOLINK),$(SOFILE))
+ .PHONY: $(lib)$(SOLINK)
+***************
+*** 115,121 ****
+ $(ldconfig)
+
+ $(usr/lib)$(ANAME) : proc/$(ANAME)
+! $(install) --mode a=r $< $@
+
+ # Junk anyway... supposed to go in /usr/include/$(NAME)
+ #INSTALL += $(addprefix $(include),$(HDRFILES))
+--- 115,121 ----
+ $(ldconfig)
+
+ $(usr/lib)$(ANAME) : proc/$(ANAME)
+! $(install) -m 444 $< $@
+
+ # Junk anyway... supposed to go in /usr/include/$(NAME)
+ #INSTALL += $(addprefix $(include),$(HDRFILES))
diff --git a/recipes/procps/procps-3.2.7/procps.init b/recipes/procps/procps-3.2.7/procps.init
new file mode 100644
index 0000000000..739dcf4be7
--- /dev/null
+++ b/recipes/procps/procps-3.2.7/procps.init
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+SYSCTL_CONF="/etc/sysctl.conf"
+if [ -f "${SYSCTL_CONF}" ]; then
+ /sbin/sysctl -q -p "${SYSCTL_CONF}"
+fi
diff --git a/recipes/procps/procps-3.2.7/psmodule.patch b/recipes/procps/procps-3.2.7/psmodule.patch
new file mode 100644
index 0000000000..f298c1c1c4
--- /dev/null
+++ b/recipes/procps/procps-3.2.7/psmodule.patch
@@ -0,0 +1,21 @@
+*** procps-3.2.5/ps/module.mk.orig Sun Jul 24 11:54:40 2005
+--- procps-3.2.5/ps/module.mk Sun Jul 24 11:55:02 2005
+***************
+*** 33,40 ****
+
+
+ $(bin)ps: ps/ps
+! $(install) --mode a=rx $< $@
+
+ $(man1)ps.1 : ps/ps.1
+! $(install) --mode a=r $< $@
+ -rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
+--- 33,40 ----
+
+
+ $(bin)ps: ps/ps
+! $(install) -m 555 $< $@
+
+ $(man1)ps.1 : ps/ps.1
+! $(install) -m 444 $< $@
+ -rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
diff --git a/recipes/procps/procps-3.2.7/sysctl.conf b/recipes/procps/procps-3.2.7/sysctl.conf
new file mode 100644
index 0000000000..34e7488bf7
--- /dev/null
+++ b/recipes/procps/procps-3.2.7/sysctl.conf
@@ -0,0 +1,64 @@
+# This configuration file is taken from Debian.
+#
+# /etc/sysctl.conf - Configuration file for setting system variables
+# See sysctl.conf (5) for information.
+#
+
+#kernel.domainname = example.com
+
+# Uncomment the following to stop low-level messages on console
+#kernel.printk = 4 4 1 7
+
+##############################################################3
+# Functions previously found in netbase
+#
+
+# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
+# Turn on Source Address Verification in all interfaces to
+# prevent some spoofing attacks
+net.ipv4.conf.default.rp_filter=1
+net.ipv4.conf.all.rp_filter=1
+
+# Uncomment the next line to enable TCP/IP SYN cookies
+#net.ipv4.tcp_syncookies=1
+
+# Uncomment the next line to enable packet forwarding for IPv4
+#net.ipv4.ip_forward=1
+
+# Uncomment the next line to enable packet forwarding for IPv6
+#net.ipv6.conf.all.forwarding=1
+
+
+###################################################################
+# Additional settings - these settings can improve the network
+# security of the host and prevent against some network attacks
+# including spoofing attacks and man in the middle attacks through
+# redirection. Some network environments, however, require that these
+# settings are disabled so review and enable them as needed.
+#
+# Ignore ICMP broadcasts
+#net.ipv4.icmp_echo_ignore_broadcasts = 1
+#
+# Ignore bogus ICMP errors
+#net.ipv4.icmp_ignore_bogus_error_responses = 1
+#
+# Do not accept ICMP redirects (prevent MITM attacks)
+#net.ipv4.conf.all.accept_redirects = 0
+#net.ipv6.conf.all.accept_redirects = 0
+# _or_
+# Accept ICMP redirects only for gateways listed in our default
+# gateway list (enabled by default)
+# net.ipv4.conf.all.secure_redirects = 1
+#
+# Do not send ICMP redirects (we are not a router)
+#net.ipv4.conf.all.send_redirects = 0
+#
+# Do not accept IP source route packets (we are not a router)
+#net.ipv4.conf.all.accept_source_route = 0
+#net.ipv6.conf.all.accept_source_route = 0
+#
+# Log Martian Packets
+#net.ipv4.conf.all.log_martians = 1
+#
+
+#kernel.shmmax = 141762560
diff --git a/recipes/procps/procps.inc b/recipes/procps/procps.inc
new file mode 100644
index 0000000000..ddc8030077
--- /dev/null
+++ b/recipes/procps/procps.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Procps is the package that has a bunch \
+of small useful utilities that give information \
+about processes using the /proc filesystem. The package \
+includes the programs ps, top, vmstat, w, kill, and skill."
+HOMEPAGE = "http://procps.sf.net"
+SECTION = "base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "ncurses"
+
+SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz \
+ file://install.patch;patch=1"
+
+inherit autotools
diff --git a/recipes/procps/procps_3.1.15.bb b/recipes/procps/procps_3.1.15.bb
new file mode 100644
index 0000000000..01114e80dc
--- /dev/null
+++ b/recipes/procps/procps_3.1.15.bb
@@ -0,0 +1,9 @@
+require procps.inc
+
+SRC_URI += "file://procps_${PV}-2.diff;patch=1"
+
+EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
+ LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
+ CURSES=-lncurses \
+ install='install -D' \
+ ldconfig=echo"
diff --git a/recipes/procps/procps_3.2.1.bb b/recipes/procps/procps_3.2.1.bb
new file mode 100644
index 0000000000..33df399c5f
--- /dev/null
+++ b/recipes/procps/procps_3.2.1.bb
@@ -0,0 +1,11 @@
+require procps.inc
+
+PR = "r1"
+
+SRC_URI += "file://pagesz-not-constant.patch;patch=1"
+
+EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
+ LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
+ CURSES=-lncurses \
+ install='install -D' \
+ ldconfig=echo"
diff --git a/recipes/procps/procps_3.2.5.bb b/recipes/procps/procps_3.2.5.bb
new file mode 100644
index 0000000000..de7524b2cb
--- /dev/null
+++ b/recipes/procps/procps_3.2.5.bb
@@ -0,0 +1,45 @@
+require procps.inc
+
+PR = "r5"
+
+SRC_URI += "file://procmodule.patch;patch=1 \
+ file://psmodule.patch;patch=1"
+
+FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
+ ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
+ ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
+ ${base_sbindir}/sysctl.${PN}"
+
+EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
+ CPPFLAGS=-I${STAGING_INCDIR} \
+ LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
+ CURSES=-lncurses \
+ install='install -D' \
+ ldconfig=echo"
+
+do_install_append () {
+ mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
+ mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
+ mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
+ mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
+ mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
+ mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
+}
+
+pkg_postinst() {
+ update-alternatives --install ${bindir}/top top top.${PN} 90
+ update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
+ update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
+ update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
+ update-alternatives --install ${bindir}/free free free.${PN} 90
+ update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
+}
+
+pkg_postrm() {
+ update-alternatives --remove top top.${PN}
+ update-alternatives --remove ps ps.${PN}
+ update-alternatives --remove uptime uptime.${PN}
+ update-alternatives --remove kill kill.${PN}
+ update-alternatives --remove free free.${PN}
+ update-alternatives --remove sysctl sysctl.${PN}
+}
diff --git a/recipes/procps/procps_3.2.7.bb b/recipes/procps/procps_3.2.7.bb
new file mode 100644
index 0000000000..689fc33503
--- /dev/null
+++ b/recipes/procps/procps_3.2.7.bb
@@ -0,0 +1,64 @@
+require procps.inc
+
+PR = "r7"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "procps.sh"
+INITSCRIPT_PARAMS = "start 30 S ."
+
+SRC_URI += "file://procmodule.patch;patch=1 \
+ file://psmodule.patch;patch=1 \
+ file://linux-limits.patch;patch=1 \
+ file://sysctl.conf \
+ file://procps.init \
+ "
+
+FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
+ ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
+ ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
+ ${base_sbindir}/sysctl.${PN}"
+
+CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
+
+EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
+ CPPFLAGS=-I${STAGING_INCDIR} \
+ LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
+ CURSES=-lncurses \
+ install='install -D' \
+ ldconfig=echo"
+
+do_install_append () {
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/procps.init ${D}${sysconfdir}/init.d/procps.sh
+
+ mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
+ mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
+ mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
+ mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
+ mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
+ mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
+ mv ${D}${bindir}/pkill ${D}${bindir}/pkill.${PN}
+}
+
+pkg_postinst() {
+ update-alternatives --install ${bindir}/top top top.${PN} 90
+ update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
+ update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
+ update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
+ update-alternatives --install ${bindir}/free free free.${PN} 90
+ update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
+ update-alternatives --install ${bindir}/pkill pkill pkill.${PN} 90
+}
+
+pkg_postrm() {
+ update-alternatives --remove top top.${PN}
+ update-alternatives --remove ps ps.${PN}
+ update-alternatives --remove uptime uptime.${PN}
+ update-alternatives --remove kill kill.${PN}
+ update-alternatives --remove free free.${PN}
+ update-alternatives --remove sysctl sysctl.${PN}
+ update-alternatives --remove pkill pkill.${PN}
+}