This commit is contained in:
commit
89c55072f6
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
53
boot.sysctl
Normal file
53
boot.sysctl
Normal file
@ -0,0 +1,53 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright (c) 2001 SuSE GmbH Nuernberg, Germany. All rights reserved.
|
||||
#
|
||||
# /etc/init.d/boot.sysctl
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: boot.sysctl
|
||||
# Should-Start: setserial boot.isapnp $local_fs
|
||||
# Required-Stop:
|
||||
# Default-Start: B
|
||||
# Default-Stop:
|
||||
# Description: run sysctl with a given config file or create it
|
||||
### END INIT INFO
|
||||
|
||||
. /etc/rc.status
|
||||
. /etc/sysconfig/sysctl
|
||||
|
||||
rc_reset
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
#
|
||||
# run sysctl if the config file exists
|
||||
# otherwise generate it
|
||||
# the values set here might be overridden by the settings
|
||||
# in /etc/sysconfig/sysctl
|
||||
#
|
||||
if [ -x /sbin/sysctl ] ; then
|
||||
if [ ! -e /etc/sysctl.conf ]; then
|
||||
echo -n "Sysctl: no file /etc/sysctl.conf"
|
||||
rc_failed 5
|
||||
else
|
||||
echo "Setting current sysctl status from /etc/sysctl.conf"
|
||||
sysctl -e -p /etc/sysctl.conf
|
||||
fi
|
||||
rc_status -v -r
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
# skip / do nothing
|
||||
;;
|
||||
status)
|
||||
rc_failed 4
|
||||
rc_status -v
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
rc_exit
|
20
procps-3.2.2-100cpus.diff
Normal file
20
procps-3.2.2-100cpus.diff
Normal file
@ -0,0 +1,20 @@
|
||||
--- procps-3.2.5/top.c
|
||||
+++ procps-3.2.5/top.c
|
||||
@@ -1168,7 +1168,7 @@
|
||||
{ "GgGg", " TTY ", " %-8.8s", 8, -1, SF(TTY), "Controlling Tty", L_stat },
|
||||
{ "HhHh", " PR", " %3d", -1, -1, SF(PRI), "Priority", L_stat },
|
||||
{ "IiIi", " NI", " %3d", -1, -1, SF(NCE), "Nice value", L_stat },
|
||||
- { "JjYy", " #C", " %2u", -1, -1, SF(CPN), "Last used cpu (SMP)", L_stat },
|
||||
+ { "JjYy", " #C", " %3u", -1, -1, SF(CPN), "Last used cpu (SMP)", L_stat },
|
||||
{ "KkEe", " %CPU", " %#4.1f", -1, -1, SF(CPU), "CPU usage", L_stat },
|
||||
{ "LlWw", " TIME", " %6.6s", 6, -1, SF(TME), "CPU Time", L_stat },
|
||||
{ "MmRr", " TIME+ ", " %9.9s", 9, -1, SF(TME), "CPU Time, hundredths", L_stat },
|
||||
@@ -1192,7 +1192,7 @@
|
||||
{ "..Qq", " A", " %4.4s", 4, SK_no, SF(PID), "Accessed Page count", L_stat },
|
||||
{ "..Nn", " TRS", " %4.4s", 4, SK_Kb, SF(PID), "Code in memory (kb)", L_stat },
|
||||
{ "..Rr", " WP", " %4.4s", 4, SK_no, SF(PID), "Unwritable Pages", L_stat },
|
||||
- { "Jj[{", " #C", " %2u", -1, -1, SF(CPN), "Last used cpu (SMP)", L_stat },
|
||||
+ { "Jj[{", " #C", " %3u", -1, -1, SF(CPN), "Last used cpu (SMP)", L_stat },
|
||||
{ "..\\|"," Bad", " %2u", -1, -1, SF(CPN), "-- must ignore | --", 0 },
|
||||
{ "..]}", " Bad", " %2u", -1, -1, SF(CPN), "-- not used --", 0 },
|
||||
{ "..^~", " Bad", " %2u", -1, -1, SF(CPN), "-- not used --", 0 },
|
13
procps-3.2.2-ia64.diff
Normal file
13
procps-3.2.2-ia64.diff
Normal file
@ -0,0 +1,13 @@
|
||||
--- procps-3.2.5/proc/devname.c
|
||||
+++ procps-3.2.5/proc/devname.c
|
||||
@@ -42,6 +42,10 @@
|
||||
#define major <-- do not use -->
|
||||
#define minor <-- do not use -->
|
||||
#endif
|
||||
+#ifdef __ia64__
|
||||
+#undef PAGE_SIZE
|
||||
+#define PAGE_SIZE (64*1024)
|
||||
+#endif
|
||||
|
||||
typedef struct tty_map_node {
|
||||
struct tty_map_node *next;
|
10
procps-3.2.2-top-termsize.patch
Normal file
10
procps-3.2.2-top-termsize.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- procps-3.2.5/top.h
|
||||
+++ procps-3.2.5/top.h
|
||||
@@ -132,6 +132,7 @@
|
||||
#define _PUFF(fmt,arg...) \
|
||||
do { \
|
||||
char _str[ROWBUFSIZ]; \
|
||||
+ if (Pseudo_row >= Screen_rows-1) break; \
|
||||
int _len = 1 + snprintf(_str, sizeof(_str), fmt, ## arg); \
|
||||
putp ( Batch ? _str : \
|
||||
({ \
|
87
procps-3.2.2-w-notruncate.diff
Normal file
87
procps-3.2.2-w-notruncate.diff
Normal file
@ -0,0 +1,87 @@
|
||||
Only in procps-3.2.0/proc: .depend
|
||||
Only in procps-3.2.0/proc: alloc.o
|
||||
Only in procps-3.2.0/proc: devname.o
|
||||
Only in procps-3.2.0/proc: escape.o
|
||||
Only in procps-3.2.0/proc: ksym.o
|
||||
Only in procps-3.2.0/proc: libproc.a
|
||||
Only in procps-3.2.0/proc: prof.o
|
||||
Only in procps-3.2.0/proc: pwcache.o
|
||||
Only in procps-3.2.0/proc: readproc.o
|
||||
Only in procps-3.2.0/proc: sig.o
|
||||
Only in procps-3.2.0/proc: slab.o
|
||||
Only in procps-3.2.0/proc: status.o
|
||||
Only in procps-3.2.0/proc: sysinfo.o
|
||||
Only in procps-3.2.0/proc: version.o
|
||||
Only in procps-3.2.0/proc: whattime.o
|
||||
Only in procps-3.2.0: w
|
||||
================================================================================
|
||||
--- procps-3.2.5/w.c
|
||||
+++ procps-3.2.5/w.c
|
||||
@@ -191,7 +191,25 @@
|
||||
return;
|
||||
|
||||
strncpy(uname, u->ut_user, USERSZ); /* force NUL term for printf */
|
||||
- if (formtype) {
|
||||
+ switch(formtype) {
|
||||
+ case 2:
|
||||
+ printf("%s %s", uname, u->ut_line);
|
||||
+ if (from)
|
||||
+ print_host(u->ut_host, sizeof u->ut_host);
|
||||
+ print_logintime(u->ut_time, stdout);
|
||||
+ if (*u->ut_line == ':') /* idle unknown for xdm logins */
|
||||
+ printf(" ?xdm? ");
|
||||
+ else
|
||||
+ print_time_ival7(idletime(tty), 0, stdout);
|
||||
+ print_time_ival7(jcpu/Hertz, (jcpu%Hertz)*(100./Hertz), stdout);
|
||||
+ if (best) {
|
||||
+ unsigned long long pcpu = best->utime + best->stime;
|
||||
+ print_time_ival7(pcpu/Hertz, (pcpu%Hertz)*(100./Hertz), stdout);
|
||||
+ } else
|
||||
+ printf(" ? ");
|
||||
+ break;
|
||||
+
|
||||
+ case 1:
|
||||
printf("%-9.8s%-9.8s", uname, u->ut_line);
|
||||
if (from)
|
||||
print_host(u->ut_host, sizeof u->ut_host);
|
||||
@@ -206,7 +224,8 @@
|
||||
print_time_ival7(pcpu/Hertz, (pcpu%Hertz)*(100./Hertz), stdout);
|
||||
} else
|
||||
printf(" ? ");
|
||||
- } else {
|
||||
+ break;
|
||||
+ case 0:
|
||||
printf("%-9.8s%-9.8s", u->ut_user, u->ut_line);
|
||||
if (from)
|
||||
print_host(u->ut_host, sizeof u->ut_host);
|
||||
@@ -214,6 +233,8 @@
|
||||
printf(" ?xdm? ");
|
||||
else
|
||||
print_time_ival7(idletime(tty), 0, stdout);
|
||||
+
|
||||
+ break;
|
||||
}
|
||||
fputs(" ", stdout);
|
||||
if (likely(best)) {
|
||||
@@ -238,11 +259,12 @@
|
||||
#endif
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
- for (args=0; (ch = getopt(argc, argv, "hlusfV")) != EOF; args++)
|
||||
+ for (args=0; (ch = getopt(argc, argv, "hlusnfV")) != EOF; args++)
|
||||
switch (ch) {
|
||||
case 'h': header = 0; break;
|
||||
case 'l': longform = 1; break;
|
||||
case 's': longform = 0; break;
|
||||
+ case 'n': longform = 2; header=0; break;
|
||||
case 'f': from = !from; break;
|
||||
case 'V': display_version(); exit(0);
|
||||
case 'u': ignoreuser = 1; break;
|
||||
@@ -251,6 +273,7 @@
|
||||
" -h skip header\n"
|
||||
" -l long listing (default)\n"
|
||||
" -s short listing\n"
|
||||
+ " -n non truncated listing (large)\n"
|
||||
" -u ignore uid of processes\n"
|
||||
" -f toggle FROM field (default %s)\n"
|
||||
" -V display version\n", FROM_STRING);
|
19
procps-3.2.2-w-simply-work.diff
Normal file
19
procps-3.2.2-w-simply-work.diff
Normal file
@ -0,0 +1,19 @@
|
||||
--- procps-3.2.5/w.c
|
||||
+++ procps-3.2.5/w.c
|
||||
@@ -285,10 +285,16 @@
|
||||
|
||||
if (ioctl(1, TIOCGWINSZ, &win) != -1 && win.ws_col > 0)
|
||||
maxcmd = win.ws_col;
|
||||
+#if 0
|
||||
+/* I have no idea why I shouldn't be allowed to see the result
|
||||
+ with a line wrap. The other solution would be to create a
|
||||
+ wcat alias, which does w|cat to work around this, but this
|
||||
+ would be stupid in my opinion. */
|
||||
if (maxcmd < 71) {
|
||||
fprintf(stderr, "%d column window is too narrow\n", maxcmd);
|
||||
exit(1);
|
||||
}
|
||||
+#endif
|
||||
maxcmd -= 29 + (from ? 16 : 0) + (longform ? 20 : 0);
|
||||
if (maxcmd < 3)
|
||||
fprintf(stderr, "warning: screen width %d suboptimal.\n", win.ws_col);
|
11
procps-3.2.3-buffersize.diff
Normal file
11
procps-3.2.3-buffersize.diff
Normal file
@ -0,0 +1,11 @@
|
||||
--- procps-3.2.5/proc/sysinfo.c
|
||||
+++ procps-3.2.5/proc/sysinfo.c
|
||||
@@ -43,7 +43,7 @@
|
||||
#define VMINFO_FILE "/proc/vmstat"
|
||||
static int vminfo_fd = -1;
|
||||
|
||||
-static char buf[1024];
|
||||
+static char buf[4096];
|
||||
|
||||
/* This macro opens filename only if necessary and seeks to 0 so
|
||||
* that successive calls to the functions are more efficient.
|
52
procps-3.2.3-make.diff
Normal file
52
procps-3.2.3-make.diff
Normal file
@ -0,0 +1,52 @@
|
||||
Index: procps-3.2.3/Makefile
|
||||
================================================================================
|
||||
--- procps-3.2.5/Makefile
|
||||
+++ procps-3.2.5/Makefile
|
||||
@@ -27,7 +27,7 @@
|
||||
ldconfig := ldconfig
|
||||
ln_f := ln -f
|
||||
ln_sf := ln -sf
|
||||
-install := install -D --owner 0 --group 0
|
||||
+install := install -D
|
||||
|
||||
# Lame x86-64 /lib64 and /usr/lib64 abomination:
|
||||
lib64 := lib$(shell [ -d /lib64 ] && echo 64)
|
||||
@@ -91,7 +91,8 @@
|
||||
-Wstrict-prototypes -Wmissing-prototypes
|
||||
# Note that some stuff below is conditional on CFLAGS containing
|
||||
# an option that starts with "-g". (-g, -g2, -g3, -ggdb, etc.)
|
||||
-CFLAGS := -O2 -s
|
||||
+RPM_OPT_FLAGS = -O2 -s
|
||||
+CFLAGS = $(RPM_OPT_FLAGS)
|
||||
ALL_CFLAGS := $(PKG_CFLAGS) $(CFLAGS)
|
||||
|
||||
PKG_LDFLAGS := -Wl,-warn-common
|
||||
--- procps-3.2.5/proc/module.mk
|
||||
+++ procps-3.2.5/proc/module.mk
|
||||
@@ -17,7 +17,7 @@
|
||||
# numbers for future use, the ELF soname can be set equal to the
|
||||
# file name until some future date when a stable ABI is declared.
|
||||
|
||||
-SHARED := 1
|
||||
+SHARED := 0
|
||||
|
||||
# for lib$(NAME).so and /usr/include/($NAME) and such
|
||||
NAME := proc
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
############
|
||||
|
||||
-FPIC := -fpic
|
||||
+FPIC := -fPIC
|
||||
|
||||
ifeq ($(SHARED),1)
|
||||
ALL += proc/$(SONAME)
|
||||
@@ -50,7 +50,7 @@
|
||||
else
|
||||
ALL += proc/$(ANAME)
|
||||
#INSTALL += $(usr/lib)$(ANAME)
|
||||
-LIBFLAGS := -DSHARED=0
|
||||
+LIBFLAGS := -DSHARED=0 $(FPIC)
|
||||
LIBPROC := proc/$(ANAME)
|
||||
endif
|
||||
|
17
procps-3.2.5-CPU-states.patch
Normal file
17
procps-3.2.5-CPU-states.patch
Normal file
@ -0,0 +1,17 @@
|
||||
--- top.c
|
||||
+++ top.c
|
||||
@@ -930,6 +930,14 @@
|
||||
rewind(fp);
|
||||
fflush(fp);
|
||||
|
||||
+ /* save the previous values of cpus[Cpu_tot](i.e. u_sav, s_sav, n_sav, i_sav,
|
||||
+ * w_sav, x_sav, y_sav) to cpus[cpu_max] before any changes to cpus[], so these
|
||||
+ * values are not overwritten when copying cpus[cpu_max] back to cpus[Cpu_tot]
|
||||
+ * at the end of this function.
|
||||
+ */
|
||||
+ if (cpu_max != Cpu_tot)
|
||||
+ memcpy(&cpus[cpu_max], &cpus[Cpu_tot], sizeof(CPU_t));
|
||||
+
|
||||
// first value the last slot with the cpu summary line
|
||||
if (!fgets(buf, sizeof(buf), fp)) std_err("failed /proc/stat read");
|
||||
cpus[cpu_max].x = 0; // FIXME: can't tell by kernel version number
|
11
procps-3.2.5-eof.diff
Normal file
11
procps-3.2.5-eof.diff
Normal file
@ -0,0 +1,11 @@
|
||||
--- procps-3.2.5/top.c
|
||||
+++ procps-3.2.5/top.c
|
||||
@@ -3285,7 +3285,7 @@
|
||||
if (rc <= 0) {
|
||||
// EOF is pretty much a "can't happen" except for a kernel bug.
|
||||
// We should quickly die via SIGHUP, and thus not spin here.
|
||||
- // if (rc == 0) end_pgm(0); /* EOF from terminal */
|
||||
+ if (rc == 0) end_pgm(0); /* EOF from terminal */
|
||||
fcntl(STDIN_FILENO, F_SETFL, file_flags);
|
||||
select(1, &fs, NULL, NULL, &tv);
|
||||
fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK|file_flags);
|
679
procps-3.2.5-pmap-smaps-rml-2.patch
Normal file
679
procps-3.2.5-pmap-smaps-rml-2.patch
Normal file
@ -0,0 +1,679 @@
|
||||
pmap.1 | 76 +++++---
|
||||
pmap.c | 559 +++++++++++++++++++++++++++++------------------------------------
|
||||
2 files changed, 297 insertions(+), 338 deletions(-)
|
||||
|
||||
diff -urN procps-3.2.5/pmap.1 procps/pmap.1
|
||||
--- procps-3.2.5/pmap.1 2005-10-11 14:49:20.000000000 -0400
|
||||
+++ procps/pmap.1 2005-10-12 10:39:28.000000000 -0400
|
||||
@@ -1,39 +1,57 @@
|
||||
-'\" t
|
||||
-.\" (The preceding line is a note to broken versions of man to tell
|
||||
-.\" them to pre-process this man page with tbl)
|
||||
-.\" Man page for pmap.
|
||||
-.\" Licensed under version 2 of the GNU General Public License.
|
||||
-.\" Written by Albert Cahalan.
|
||||
+.\" pmap.1 - manpage for the pmap(1) utility, part of procps
|
||||
.\"
|
||||
-.TH PMAP 1 "October 26, 2002" "Linux" "Linux User's Manual"
|
||||
+.\" Copyright (C) 2005 Robert Love
|
||||
+.\" Licensed under the terms of the GNU General Public License, v2
|
||||
+.TH PMAP 1 "12 Oct 2005" "Linux" "Linux User's Manual"
|
||||
.SH NAME
|
||||
-pmap \- report memory map of a process
|
||||
+pmap \- display information about process memory mappings
|
||||
|
||||
.SH SYNOPSIS
|
||||
-.nf
|
||||
-pmap [ -x | -d ] [ -q ] pids...
|
||||
-pmap -V
|
||||
-.fi
|
||||
+.BI "pmap [ \-d | \-q | \-h | \-V ] " pid
|
||||
|
||||
.SH DESCRIPTION
|
||||
-The pmap command reports the memory map of a process or processes.
|
||||
-
|
||||
-.SH "GENERAL OPTIONS"
|
||||
-.TS
|
||||
-l l l.
|
||||
--x extended Show the extended format.
|
||||
--d device Show the device format.
|
||||
--q quiet Do not display some header/footer lines.
|
||||
--V show version Displays version of program.
|
||||
-.TE
|
||||
+.BR pmap (1)
|
||||
+displays information about a process's memory mappings, such as its stack,
|
||||
+data segment, mapped files, and so on.
|
||||
+.P
|
||||
+The
|
||||
+.BR pmap (1)
|
||||
+utility will show, for each mapping of a given process, the starting byte
|
||||
+address in the process's address space, the size, the RSS (size of the mapping
|
||||
+in physical memory), the amount of dirty pages, the permission, the device node,
|
||||
+the offset, and the file backing the mapping, if any.
|
||||
+.P
|
||||
+As the last line of output, the
|
||||
+.BR pmap (1)
|
||||
+utility will tally up the total size of all mappings as well as show the
|
||||
+total size of writable/private mappings and of shared mappings.
|
||||
+
|
||||
+.SH OPTIONS
|
||||
+.TP
|
||||
+.B\-d, \-\^\-device
|
||||
+Display major and minor device numbers.
|
||||
+.TP
|
||||
+.B\-q, \-\^\-quiet
|
||||
+Hide header and memory statistics.
|
||||
+.TP
|
||||
+.B\-h, \-\^\-help
|
||||
+Show pmap usage.
|
||||
+.TP
|
||||
+.B\-V, \-\^\-version
|
||||
+Display version information.
|
||||
+
|
||||
+.SH FILES
|
||||
+.IR /proc/pid/maps " and
|
||||
+.IR /proc/pid/smaps " \-\- memory mapping information"
|
||||
|
||||
.SH "SEE ALSO"
|
||||
-ps(1) pgrep(1)
|
||||
+.BR ps (1),
|
||||
+.BR top (1),
|
||||
+.BR free (1),
|
||||
+.BR vmstat (1)
|
||||
|
||||
-.SH STANDARDS
|
||||
-No standards apply, but pmap looks an awful lot like a SunOS command.
|
||||
+.SH AUTHORS
|
||||
+Written by Chris Rivera.
|
||||
|
||||
-.SH AUTHOR
|
||||
-Albert Cahalan <albert@users.sf.net> wrote pmap in 2002, and is the current
|
||||
-maintainer of the procps collection. Please send bug reports
|
||||
-to <procps-feedback@lists.sf.net>.
|
||||
+The procps package is maintained by Albert Calahan. Please send
|
||||
+bug reports to <albert@users.sf.net>.
|
||||
diff -urN procps-3.2.5/pmap.c procps/pmap.c
|
||||
--- procps-3.2.5/pmap.c 2005-10-11 14:49:21.000000000 -0400
|
||||
+++ procps/pmap.c 2005-10-12 10:52:09.000000000 -0400
|
||||
@@ -1,331 +1,272 @@
|
||||
/*
|
||||
- * Copyright 2002 by Albert Cahalan; all rights reserved.
|
||||
- * This file may be used subject to the terms and conditions of the
|
||||
- * GNU Library General Public License Version 2, or any later version
|
||||
- * at your option, as published by the Free Software Foundation.
|
||||
- * This program is distributed in the hope that it will be useful,
|
||||
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- * GNU Library General Public License for more details.
|
||||
+ * pmap - print the address space map of a process
|
||||
+ *
|
||||
+ * Chris Rivera <chrismrivera@gmail.com>
|
||||
+ * Robert Love <rml@novell.com>
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License, v2, as
|
||||
+ * published by the Free Software Foundation
|
||||
+ *
|
||||
+ * Copyright (C) 2003, 2005 Chris Rivera
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
-#include <ctype.h>
|
||||
-#include <sys/types.h>
|
||||
-#include <sys/stat.h>
|
||||
-#include <fcntl.h>
|
||||
#include <string.h>
|
||||
-#include <unistd.h>
|
||||
-
|
||||
-#include <sys/ipc.h>
|
||||
-#include <sys/shm.h>
|
||||
+#include <errno.h>
|
||||
+#include <getopt.h>
|
||||
|
||||
#include "proc/readproc.h"
|
||||
#include "proc/version.h"
|
||||
-#include "proc/escape.h"
|
||||
-
|
||||
-static void usage(void) NORETURN;
|
||||
-static void usage(void){
|
||||
- fprintf(stderr,
|
||||
- "Usage: pmap [-x | -d] [-q] pid...\n"
|
||||
- "-x show details\n"
|
||||
- "-d show offset and device number\n"
|
||||
- "-q quiet; less header/footer info\n"
|
||||
- "-V show the version number\n"
|
||||
- );
|
||||
- exit(1);
|
||||
-}
|
||||
-
|
||||
|
||||
-static int V_option;
|
||||
-static int r_option; // ignored -- for SunOS compatibility
|
||||
-static int x_option;
|
||||
-static int d_option;
|
||||
-static int q_option;
|
||||
-
|
||||
-
|
||||
-static unsigned shm_minor = ~0u;
|
||||
-
|
||||
-static void discover_shm_minor(void){
|
||||
- void *addr;
|
||||
- int shmid;
|
||||
- char mapbuf[256];
|
||||
-
|
||||
- if(!freopen("/proc/self/maps", "r", stdin)) return;
|
||||
-
|
||||
- // create
|
||||
- shmid = shmget(IPC_PRIVATE, 42, IPC_CREAT | 0666);
|
||||
- if(shmid==-1) return; // failed; oh well
|
||||
- // attach
|
||||
- addr = shmat(shmid, NULL, SHM_RDONLY);
|
||||
- if(addr==(void*)-1) goto out_destroy;
|
||||
-
|
||||
- while(fgets(mapbuf, sizeof mapbuf, stdin)){
|
||||
- char flags[32];
|
||||
- char *tmp; // to clean up unprintables
|
||||
- unsigned KLONG start, end;
|
||||
- unsigned long long file_offset, inode;
|
||||
- unsigned dev_major, dev_minor;
|
||||
- sscanf(mapbuf,"%"KLF"x-%"KLF"x %31s %Lx %x:%x %Lu", &start, &end, flags, &file_offset, &dev_major, &dev_minor, &inode);
|
||||
- tmp = strchr(mapbuf,'\n');
|
||||
- if(tmp) *tmp='\0';
|
||||
- tmp = mapbuf;
|
||||
- while(*tmp){
|
||||
- if(!isprint(*tmp)) *tmp='?';
|
||||
- tmp++;
|
||||
- }
|
||||
- if(start > (unsigned long)addr) continue;
|
||||
- if(dev_major) continue;
|
||||
- if(flags[3] != 's') continue;
|
||||
- if(strstr(mapbuf,"/SYSV")){
|
||||
- shm_minor = dev_minor;
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
+#define BUFFERSIZE 4096
|
||||
+#define OBJECTSIZE 128
|
||||
|
||||
- if(shmdt(addr)) perror("shmdt");
|
||||
+struct smap {
|
||||
+ unsigned long size;
|
||||
+ unsigned long rss;
|
||||
+ unsigned long shared_clean;
|
||||
+ unsigned long shared_dirty;
|
||||
+ unsigned long private_clean;
|
||||
+ unsigned long private_dirty;
|
||||
+};
|
||||
+
|
||||
+static unsigned long mapped;
|
||||
+static unsigned long shared;
|
||||
+static unsigned long private;
|
||||
+static unsigned long rss;
|
||||
+static unsigned long dirty;
|
||||
+static FILE *smaps_fp;
|
||||
+
|
||||
+static void usage(const char *cmd)
|
||||
+{
|
||||
+ fprintf(stderr, "usage: %s [options] pid\n", cmd);
|
||||
+ fprintf(stderr, " -d, --device "
|
||||
+ "display offset and device numbers\n");
|
||||
+ fprintf(stderr, " -q, --quiet "
|
||||
+ "hide header and memory statistics\n");
|
||||
+ fprintf(stderr, " -V, --version "
|
||||
+ "display version information\n");
|
||||
+ fprintf(stderr, " -h, --help "
|
||||
+ "display this help\n");
|
||||
+}
|
||||
|
||||
-out_destroy:
|
||||
- if(shmctl(shmid, IPC_RMID, NULL)) perror("IPC_RMID");
|
||||
+static int get_smap_data(struct smap *smap)
|
||||
+{
|
||||
+ unsigned long long data;
|
||||
+ int assigned;
|
||||
+ char buff[BUFFERSIZE];
|
||||
+
|
||||
+ /* get main line */
|
||||
+ if (!fgets(buff, BUFFERSIZE - 1, smaps_fp))
|
||||
+ return 1;
|
||||
+
|
||||
+ assigned = sscanf(buff, "%llx-", &data);
|
||||
+ if (assigned != 1)
|
||||
+ return 1;
|
||||
+
|
||||
+ /* get size */
|
||||
+ if (!fgets(buff, BUFFERSIZE, smaps_fp))
|
||||
+ return 1;
|
||||
+
|
||||
+ assigned = sscanf(buff, "Size: %lld", &data);
|
||||
+ if (assigned != 1)
|
||||
+ return 1;
|
||||
+ smap->size = data;
|
||||
+
|
||||
+ /* get rss */
|
||||
+ if (!fgets(buff, BUFFERSIZE, smaps_fp))
|
||||
+ return 1;
|
||||
+
|
||||
+ assigned = sscanf(buff, "Rss: %lld", &data);
|
||||
+ if (assigned != 1)
|
||||
+ return 1;
|
||||
+ smap->rss = data;
|
||||
+ rss += data;
|
||||
+
|
||||
+ /* get shared clean */
|
||||
+ if (!fgets(buff, BUFFERSIZE, smaps_fp))
|
||||
+ return 1;
|
||||
+
|
||||
+ assigned = sscanf(buff, "Shared_Clean: %lld", &data);
|
||||
+ if (assigned != 1)
|
||||
+ return 1;
|
||||
+ smap->shared_clean = data;
|
||||
+
|
||||
+ /* get shared dirty */
|
||||
+ if (!fgets(buff, BUFFERSIZE, smaps_fp))
|
||||
+ return 1;
|
||||
+
|
||||
+ assigned = sscanf(buff, "Shared_Dirty: %lld", &data);
|
||||
+ if (assigned != 1)
|
||||
+ return 1;
|
||||
+ smap->shared_dirty = data;
|
||||
+ dirty += data;
|
||||
+
|
||||
+ /* get private clean */
|
||||
+ if (!fgets(buff, BUFFERSIZE, smaps_fp))
|
||||
+ return 1;
|
||||
+
|
||||
+ assigned = sscanf(buff, "Private_Clean: %lld", &data);
|
||||
+ if (assigned != 1)
|
||||
+ return 1;
|
||||
+ smap->private_clean = data;
|
||||
+
|
||||
+ /* get private dirty */
|
||||
+ if (!fgets(buff, BUFFERSIZE, smaps_fp))
|
||||
+ return 1;
|
||||
+
|
||||
+ assigned = sscanf(buff, "Private_Dirty: %lld", &data);
|
||||
+ if (assigned != 1)
|
||||
+ return 1;
|
||||
+ smap->private_dirty = data;
|
||||
+ dirty += data;
|
||||
|
||||
- return;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
+static void parse_line(pid_t pid, const char *line, int show_devices)
|
||||
+{
|
||||
+ unsigned long long low, high, size, offset;
|
||||
+ unsigned long major, minor;
|
||||
+ struct smap smap = { .rss = 0 };
|
||||
+ int assigned;
|
||||
+ char read_perm, write_perm, exec_perm, access_type;
|
||||
+ char obj_buff[OBJECTSIZE] = "[anon]";
|
||||
+
|
||||
+ assigned = sscanf(line, "%llx-%llx %c%c%c%c %llx %lx:%lx %*u %"
|
||||
+ STRINGIFY(OBJECTSIZE) "s", &low, &high, &read_perm,
|
||||
+ &write_perm, &exec_perm, &access_type, &offset, &major,
|
||||
+ &minor, obj_buff);
|
||||
+
|
||||
+ if (assigned < 9) {
|
||||
+ fprintf(stderr, "failed to parse /proc/%d/maps\n", pid);
|
||||
+ exit(EXIT_FAILURE);
|
||||
+ }
|
||||
+
|
||||
+ size = high - low;
|
||||
+ size /= 1024;
|
||||
+ mapped += size;
|
||||
+
|
||||
+ if (smaps_fp && get_smap_data(&smap)) {
|
||||
+ fprintf(stderr, "failed to parse /proc/%d/smaps\n", pid);
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
+ if (access_type == 's')
|
||||
+ shared += size;
|
||||
+ else if (access_type == 'p' && write_perm == 'w')
|
||||
+ private += size;
|
||||
+
|
||||
+ printf("%08llx %6lluK ", low, size);
|
||||
+
|
||||
+ if (smaps_fp) {
|
||||
+ printf("%6luK ", smap.rss);
|
||||
+ printf("%6luK ", smap.private_dirty + smap.shared_dirty);
|
||||
+ }
|
||||
|
||||
-static const char *mapping_name(proc_t *p, unsigned KLONG addr, unsigned KLONG len, const char *mapbuf, unsigned showpath, unsigned dev_major, unsigned dev_minor, unsigned long long inode){
|
||||
- const char *cp;
|
||||
-
|
||||
- if(!dev_major && dev_minor==shm_minor && strstr(mapbuf,"/SYSV")){
|
||||
- static char shmbuf[64];
|
||||
- snprintf(shmbuf, sizeof shmbuf, " [ shmid=0x%Lx ]", inode);
|
||||
- return shmbuf;
|
||||
- }
|
||||
-
|
||||
- cp = strrchr(mapbuf,'/');
|
||||
- if(cp){
|
||||
- if(showpath) return strchr(mapbuf,'/');
|
||||
- return cp[1] ? cp+1 : cp;
|
||||
- }
|
||||
-
|
||||
- cp = strchr(mapbuf,'/');
|
||||
- if(cp){
|
||||
- if(showpath) return cp;
|
||||
- return strrchr(cp,'/') + 1; // it WILL succeed
|
||||
- }
|
||||
-
|
||||
- cp = " [ anon ]";
|
||||
- if( (p->start_stack >= addr) && (p->start_stack <= addr+len) ) cp = " [ stack ]";
|
||||
- return cp;
|
||||
-}
|
||||
+ printf("%c%c%c%c ", read_perm, write_perm, exec_perm, access_type);
|
||||
|
||||
-static int one_proc(proc_t *p){
|
||||
- char buf[32];
|
||||
- char mapbuf[9600];
|
||||
- char cmdbuf[512];
|
||||
- unsigned long total_shared = 0ul;
|
||||
- unsigned long total_private_readonly = 0ul;
|
||||
- unsigned long total_private_writeable = 0ul;
|
||||
-
|
||||
- // Overkill, but who knows what is proper? The "w" prog
|
||||
- // uses the tty width to determine this.
|
||||
- int maxcmd = 0xfffff;
|
||||
-
|
||||
- sprintf(buf,"/proc/%u/maps",p->tgid);
|
||||
- if(!freopen(buf, "r", stdin)) return 1;
|
||||
-
|
||||
- escape_command(cmdbuf, p, sizeof cmdbuf, &maxcmd, ESC_ARGS|ESC_BRACKETS);
|
||||
- printf("%u: %s\n", p->tgid, cmdbuf);
|
||||
-
|
||||
- if(!q_option && (x_option|d_option)){
|
||||
- if(x_option){
|
||||
- if(sizeof(KLONG)==4) printf("Address Kbytes RSS Anon Locked Mode Mapping\n");
|
||||
- else printf("Address Kbytes RSS Anon Locked Mode Mapping\n");
|
||||
- }
|
||||
- if(d_option){
|
||||
- if(sizeof(KLONG)==4) printf("Address Kbytes Mode Offset Device Mapping\n");
|
||||
- else printf("Address Kbytes Mode Offset Device Mapping\n");
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- while(fgets(mapbuf,sizeof mapbuf,stdin)){
|
||||
- char flags[32];
|
||||
- char *tmp; // to clean up unprintables
|
||||
- unsigned KLONG start, end, diff;
|
||||
- unsigned long long file_offset, inode;
|
||||
- unsigned dev_major, dev_minor;
|
||||
- sscanf(mapbuf,"%"KLF"x-%"KLF"x %31s %Lx %x:%x %Lu", &start, &end, flags, &file_offset, &dev_major, &dev_minor, &inode);
|
||||
- tmp = strchr(mapbuf,'\n');
|
||||
- if(tmp) *tmp='\0';
|
||||
- tmp = mapbuf;
|
||||
- while(*tmp){
|
||||
- if(!isprint(*tmp)) *tmp='?';
|
||||
- tmp++;
|
||||
- }
|
||||
-
|
||||
- diff = end-start;
|
||||
- if(flags[3]=='s') total_shared += diff;
|
||||
- if(flags[3]=='p'){
|
||||
- flags[3] = '-';
|
||||
- if(flags[1]=='w') total_private_writeable += diff;
|
||||
- else total_private_readonly += diff;
|
||||
- }
|
||||
-
|
||||
- // format used by Solaris 9 and procps-3.2.0+
|
||||
- // an 'R' if swap not reserved (MAP_NORESERVE, SysV ISM shared mem, etc.)
|
||||
- flags[4] = '-';
|
||||
- flags[5] = '\0';
|
||||
-
|
||||
- if(x_option){
|
||||
- const char *cp = mapping_name(p, start, diff, mapbuf, 0, dev_major, dev_minor, inode);
|
||||
- printf(
|
||||
- (sizeof(KLONG)==8)
|
||||
- ? "%016"KLF"x %7lu - - - %s %s\n"
|
||||
- : "%08lx %7lu - - - %s %s\n",
|
||||
- start,
|
||||
- (unsigned long)(diff>>10),
|
||||
- flags,
|
||||
- cp
|
||||
- );
|
||||
- }
|
||||
- if(d_option){
|
||||
- const char *cp = mapping_name(p, start, diff, mapbuf, 0, dev_major, dev_minor, inode);
|
||||
- printf(
|
||||
- (sizeof(KLONG)==8)
|
||||
- ? "%016"KLF"x %7lu %s %016Lx %03x:%05x %s\n"
|
||||
- : "%08lx %7lu %s %016Lx %03x:%05x %s\n",
|
||||
- start,
|
||||
- (unsigned long)(diff>>10),
|
||||
- flags,
|
||||
- file_offset,
|
||||
- dev_major, dev_minor,
|
||||
- cp
|
||||
- );
|
||||
- }
|
||||
- if(!x_option && !d_option){
|
||||
- const char *cp = mapping_name(p, start, diff, mapbuf, 1, dev_major, dev_minor, inode);
|
||||
- printf(
|
||||
- (sizeof(KLONG)==8)
|
||||
- ? "%016"KLF"x %6luK %s %s\n"
|
||||
- : "%08lx %6luK %s %s\n",
|
||||
- start,
|
||||
- (unsigned long)(diff>>10),
|
||||
- flags,
|
||||
- cp
|
||||
- );
|
||||
- }
|
||||
-
|
||||
- }
|
||||
-
|
||||
- if(!q_option){
|
||||
- if(x_option){
|
||||
- if(sizeof(KLONG)==8){
|
||||
- printf("---------------- ------ ------ ------ ------\n");
|
||||
- printf(
|
||||
- "total kB %15ld - - -\n",
|
||||
- (total_shared + total_private_writeable + total_private_readonly) >> 10
|
||||
- );
|
||||
- }else{
|
||||
- printf("-------- ------- ------- ------- -------\n");
|
||||
- printf(
|
||||
- "total kB %7ld - - -\n",
|
||||
- (total_shared + total_private_writeable + total_private_readonly) >> 10
|
||||
- );
|
||||
- }
|
||||
- }
|
||||
- if(d_option){
|
||||
- printf(
|
||||
- "mapped: %ldK writeable/private: %ldK shared: %ldK\n",
|
||||
- (total_shared + total_private_writeable + total_private_readonly) >> 10,
|
||||
- total_private_writeable >> 10,
|
||||
- total_shared >> 10
|
||||
- );
|
||||
- }
|
||||
- if(!x_option && !d_option){
|
||||
- if(sizeof(KLONG)==8) printf(" total %16ldK\n", (total_shared + total_private_writeable + total_private_readonly) >> 10);
|
||||
- else printf(" total %8ldK\n", (total_shared + total_private_writeable + total_private_readonly) >> 10);
|
||||
- }
|
||||
- }
|
||||
+ if (show_devices)
|
||||
+ printf("%08llx %02lx:%02lx ", offset, major, minor);
|
||||
|
||||
- return 0;
|
||||
+ printf("%s\n", obj_buff);
|
||||
}
|
||||
|
||||
+int main(int argc, char *argv[])
|
||||
+{
|
||||
+ proc_t proc;
|
||||
+ FILE *fp;
|
||||
+ char path[PATH_MAX];
|
||||
+ char buff[BUFFERSIZE];
|
||||
+ int o, show_devices = 0, quiet = 0;
|
||||
+ pid_t pid;
|
||||
+
|
||||
+ struct option longopts[] = {
|
||||
+ { "help", 0, NULL, 'h' },
|
||||
+ { "version", 0, NULL, 'V' },
|
||||
+ { "quiet", 0, NULL, 'q' },
|
||||
+ { "device", 0, NULL, 'd' },
|
||||
+ { NULL, 0, NULL, 0 }
|
||||
+ };
|
||||
+
|
||||
+ while ((o = getopt_long(argc, argv, "hqdV", longopts, NULL)) != -1) {
|
||||
+ switch (o) {
|
||||
+ case 'V':
|
||||
+ display_version();
|
||||
+ return 0;
|
||||
+ case 'q':
|
||||
+ quiet = 1;
|
||||
+ break;
|
||||
+ case 'd':
|
||||
+ show_devices = 1;
|
||||
+ break;
|
||||
+ case 'h':
|
||||
+ usage(argv[0]);
|
||||
+ return 0;
|
||||
+ default:
|
||||
+ usage(argv[0]);
|
||||
+ return 1;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (argc - optind > 0) {
|
||||
+ errno = 0;
|
||||
+ pid = strtoul(argv[optind], NULL, 10);
|
||||
+ if (errno) {
|
||||
+ perror("strtoul");
|
||||
+ exit(EXIT_FAILURE);
|
||||
+ }
|
||||
+ } else {
|
||||
+ usage(argv[0]);
|
||||
+ exit(EXIT_FAILURE);
|
||||
+ }
|
||||
+
|
||||
+ if (!get_proc_stats(pid, &proc)) {
|
||||
+ fprintf(stderr, "error getting process information for pid "
|
||||
+ "%d from /proc/%d\n", pid, pid);
|
||||
+ exit(EXIT_FAILURE);
|
||||
+ }
|
||||
+
|
||||
+ printf("%d: %s\n", pid, proc.cmd);
|
||||
+
|
||||
+ snprintf(path, PATH_MAX, "/proc/%d/maps", pid);
|
||||
+ fp = fopen(path, "r");
|
||||
+ if (!fp) {
|
||||
+ perror("fopen");
|
||||
+ exit(EXIT_FAILURE);
|
||||
+ }
|
||||
+
|
||||
+ snprintf(path, PATH_MAX, "/proc/%d/smaps", pid);
|
||||
+ smaps_fp = fopen(path, "r");
|
||||
+
|
||||
+ if (!quiet) {
|
||||
+ printf("START SIZE ");
|
||||
+
|
||||
+ if (smaps_fp) {
|
||||
+ printf(" RSS ");
|
||||
+ printf(" DIRTY ");
|
||||
+ }
|
||||
+
|
||||
+ if (show_devices)
|
||||
+ printf("PERM OFFSET DEVICE MAPPING\n");
|
||||
+ else
|
||||
+ printf("PERM MAPPING\n");
|
||||
+ }
|
||||
+
|
||||
+ while (fgets(buff, BUFFERSIZE - 1, fp))
|
||||
+ parse_line(pid, buff, show_devices);
|
||||
+
|
||||
+ if (!quiet) {
|
||||
+ if (smaps_fp)
|
||||
+ printf("Total: %6luK %6luK %6luK\n\n", mapped, rss, dirty);
|
||||
+ else
|
||||
+ printf("mapped: %luK ", mapped);
|
||||
+
|
||||
+ printf("%luK writable-private, %luK readonly-private, and %luK shared\n",
|
||||
+ private, mapped - private - shared, shared);
|
||||
+ }
|
||||
|
||||
-int main(int argc, char *argv[]){
|
||||
- unsigned *pidlist;
|
||||
- unsigned count = 0;
|
||||
- PROCTAB* PT;
|
||||
- proc_t p;
|
||||
- int ret = 0;
|
||||
-
|
||||
- if(argc<2) usage();
|
||||
- pidlist = malloc(sizeof(unsigned)*argc); // a bit more than needed perhaps
|
||||
-
|
||||
- while(*++argv){
|
||||
- if(!strcmp("--version",*argv)){
|
||||
- V_option++;
|
||||
- continue;
|
||||
- }
|
||||
- if(**argv=='-'){
|
||||
- char *walk = *argv;
|
||||
- if(!walk[1]) usage();
|
||||
- while(*++walk){
|
||||
- switch(*walk){
|
||||
- case 'V':
|
||||
- V_option++;
|
||||
- break;
|
||||
- case 'x':
|
||||
- x_option++;
|
||||
- break;
|
||||
- case 'r':
|
||||
- r_option++;
|
||||
- break;
|
||||
- case 'd':
|
||||
- d_option++;
|
||||
- break;
|
||||
- case 'q':
|
||||
- q_option++;
|
||||
- break;
|
||||
- default:
|
||||
- usage();
|
||||
- }
|
||||
- }
|
||||
- }else{
|
||||
- char *walk = *argv;
|
||||
- char *endp;
|
||||
- unsigned long pid;
|
||||
- if(!strncmp("/proc/",walk,6)){
|
||||
- walk += 6;
|
||||
- // user allowed to do: pmap /proc/*
|
||||
- if(*walk<'0' || *walk>'9') continue;
|
||||
- }
|
||||
- if(*walk<'0' || *walk>'9') usage();
|
||||
- pid = strtoul(walk, &endp, 0);
|
||||
- if(pid<1ul || pid>0x7ffffffful || *endp) usage();
|
||||
- pidlist[count++] = pid;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if( (x_option|V_option|r_option|d_option|q_option) >> 1 ) usage(); // dupes
|
||||
- if(V_option){
|
||||
- if(count|x_option|r_option|d_option|q_option) usage();
|
||||
- fprintf(stdout, "pmap (%s)\n", procps_version);
|
||||
- return 0;
|
||||
- }
|
||||
- if(count<1) usage(); // no processes
|
||||
- if(d_option && x_option) usage();
|
||||
-
|
||||
- discover_shm_minor();
|
||||
-
|
||||
- pidlist[count] = 0; // old libproc interface is zero-terminated
|
||||
- PT = openproc(PROC_FILLSTAT|PROC_FILLARG|PROC_PID, pidlist);
|
||||
- while(readproc(PT, &p)){
|
||||
- ret |= one_proc(&p);
|
||||
- if(p.cmdline) free((void*)*p.cmdline);
|
||||
- count--;
|
||||
- }
|
||||
- closeproc(PT);
|
||||
-
|
||||
- if(count) ret |= 42; // didn't find all processes asked for
|
||||
- return ret;
|
||||
+ return 0;
|
||||
}
|
14
procps-3.2.5-top-rc.patch
Normal file
14
procps-3.2.5-top-rc.patch
Normal file
@ -0,0 +1,14 @@
|
||||
--- procps-3.2.5/top.c.rc 2005-06-28 22:36:24.000000000 +0200
|
||||
+++ procps-3.2.5/top.c 2005-06-28 22:40:27.000000000 +0200
|
||||
@@ -2393,7 +2393,10 @@
|
||||
int i;
|
||||
|
||||
for (i = 0; i < GROUPSMAX; i++) {
|
||||
- win_names(&Winstk[i], Winstk[i].rc.winname);
|
||||
+ /* Please, never use something like sprintf(x, "%s", x); ... see win_names() */
|
||||
+ char buf[WINNAMSIZ];
|
||||
+ strncpy(buf, Winstk[i].rc.winname, WINNAMSIZ);
|
||||
+ win_names(&Winstk[i], buf);
|
||||
capsmk(&Winstk[i]);
|
||||
}
|
||||
// rely on this next guy to force a call (eventually) to reframewins
|
95
procps-3.2.7-cpu_hotplug.patch
Normal file
95
procps-3.2.7-cpu_hotplug.patch
Normal file
@ -0,0 +1,95 @@
|
||||
--- procps-3.2.7/top.c
|
||||
+++ procps-3.2.7/top.c 2006-06-26 16:46:39.000000000 +0200
|
||||
@@ -912,6 +912,7 @@
|
||||
static CPU_t *cpus_refresh (CPU_t *cpus)
|
||||
{
|
||||
static FILE *fp = NULL;
|
||||
+ static int cpu_max;
|
||||
int i;
|
||||
int num;
|
||||
// enough for a /proc/stat CPU line (not the intr line)
|
||||
@@ -926,36 +927,34 @@
|
||||
can hold tics representing the /proc/stat cpu summary (the first
|
||||
line read) -- that slot supports our View_CPUSUM toggle */
|
||||
cpus = alloc_c((1 + Cpu_tot) * sizeof(CPU_t));
|
||||
- }
|
||||
+ cpu_max = Cpu_tot;
|
||||
+ } else if (cpu_max > Cpu_tot)
|
||||
+ /* move saved CUPs summary to cpu_max possition */
|
||||
+ memcpy(&cpus[cpu_max], &cpus[Cpu_tot], sizeof(CPU_t));
|
||||
+
|
||||
rewind(fp);
|
||||
fflush(fp);
|
||||
|
||||
// first value the last slot with the cpu summary line
|
||||
if (!fgets(buf, sizeof(buf), fp)) std_err("failed /proc/stat read");
|
||||
- cpus[Cpu_tot].x = 0; // FIXME: can't tell by kernel version number
|
||||
- cpus[Cpu_tot].y = 0; // FIXME: can't tell by kernel version number
|
||||
- cpus[Cpu_tot].z = 0; // FIXME: can't tell by kernel version number
|
||||
+ cpus[cpu_max].x = 0; // FIXME: can't tell by kernel version number
|
||||
+ cpus[cpu_max].y = 0; // FIXME: can't tell by kernel version number
|
||||
+ cpus[cpu_max].z = 0; // FIXME: can't tell by kernel version number
|
||||
num = sscanf(buf, "cpu %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu",
|
||||
- &cpus[Cpu_tot].u,
|
||||
- &cpus[Cpu_tot].n,
|
||||
- &cpus[Cpu_tot].s,
|
||||
- &cpus[Cpu_tot].i,
|
||||
- &cpus[Cpu_tot].w,
|
||||
- &cpus[Cpu_tot].x,
|
||||
- &cpus[Cpu_tot].y,
|
||||
- &cpus[Cpu_tot].z
|
||||
+ &cpus[cpu_max].u,
|
||||
+ &cpus[cpu_max].n,
|
||||
+ &cpus[cpu_max].s,
|
||||
+ &cpus[cpu_max].i,
|
||||
+ &cpus[cpu_max].w,
|
||||
+ &cpus[cpu_max].x,
|
||||
+ &cpus[cpu_max].y,
|
||||
+ &cpus[cpu_max].z
|
||||
);
|
||||
if (num < 4)
|
||||
std_err("failed /proc/stat read");
|
||||
|
||||
- // and just in case we're 2.2.xx compiled without SMP support...
|
||||
- if (Cpu_tot == 1) {
|
||||
- cpus[1].id = 0;
|
||||
- memcpy(cpus, &cpus[1], sizeof(CPU_t));
|
||||
- }
|
||||
-
|
||||
// now value each separate cpu's tics
|
||||
- for (i = 0; 1 < Cpu_tot && i < Cpu_tot; i++) {
|
||||
+ for (i = 0; ; i++) {
|
||||
if (!fgets(buf, sizeof(buf), fp)) std_err("failed /proc/stat read");
|
||||
cpus[i].x = 0; // FIXME: can't tell by kernel version number
|
||||
cpus[i].y = 0; // FIXME: can't tell by kernel version number
|
||||
@@ -964,9 +963,28 @@
|
||||
&cpus[i].id,
|
||||
&cpus[i].u, &cpus[i].n, &cpus[i].s, &cpus[i].i, &cpus[i].w, &cpus[i].x, &cpus[i].y, &cpus[i].z
|
||||
);
|
||||
- if (num < 4)
|
||||
- std_err("failed /proc/stat read");
|
||||
+ if (num < 4) {
|
||||
+ Cpu_tot = i;
|
||||
+ break;
|
||||
+ }
|
||||
+ if (i == cpu_max - 1) {
|
||||
+ // Bump cpu_max and extend cpus
|
||||
+ cpu_max++;
|
||||
+ cpus = realloc(cpus, (1 + cpu_max) * sizeof(CPU_t));
|
||||
+ if (!cpus) std_err("realloc failed");
|
||||
+ memcpy(&cpus[cpu_max], &cpus[cpu_max-1], sizeof(CPU_t));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (cpu_max > Cpu_tot)
|
||||
+ memcpy(&cpus[Cpu_tot], &cpus[cpu_max], sizeof(CPU_t));
|
||||
+
|
||||
+ // and just in case we're 2.2.xx compiled without SMP support...
|
||||
+ if (Cpu_tot == 1) {
|
||||
+ cpus[1].id = 0;
|
||||
+ memcpy(cpus, &cpus[1], sizeof(CPU_t));
|
||||
}
|
||||
+
|
||||
return cpus;
|
||||
}
|
||||
|
27
procps-3.2.7-manycpus.diff
Normal file
27
procps-3.2.7-manycpus.diff
Normal file
@ -0,0 +1,27 @@
|
||||
--- procps-3.2.7/top.c
|
||||
+++ procps-3.2.7/top.c 2006-06-26 16:26:56.000000000 +0200
|
||||
@@ -2480,21 +2480,21 @@
|
||||
static const char err_num_cpus[] = "\aSorry, terminal is not big enough";
|
||||
#ifdef WARN_NOT_SMP
|
||||
// standardized 'smp' errors
|
||||
- static const char err_smp[] = "\aSorry, only 1 cpu detected";
|
||||
+ static const char err_smp[] = "\aSorry, only one cpu detected";
|
||||
#endif
|
||||
|
||||
switch (c) {
|
||||
case '1':
|
||||
if (Cpu_tot+7 > Screen_rows && !CHKw(Curwin, View_CPUSUM)) {
|
||||
show_msg(err_num_cpus);
|
||||
- break;
|
||||
- }
|
||||
+ } else {
|
||||
#ifdef WARN_NOT_SMP
|
||||
if (Cpu_tot > 1) TOGw(Curwin, View_CPUSUM);
|
||||
else show_msg(err_smp);
|
||||
#else
|
||||
TOGw(Curwin, View_CPUSUM);
|
||||
#endif
|
||||
+ }
|
||||
break;
|
||||
|
||||
case 'a':
|
77
procps-3.2.7-readeof.patch
Normal file
77
procps-3.2.7-readeof.patch
Normal file
@ -0,0 +1,77 @@
|
||||
--- proc/readproc.c
|
||||
+++ proc/readproc.c 2006-07-28 11:20:18.000000000 +0000
|
||||
@@ -412,7 +412,7 @@ static int file2str(const char *director
|
||||
int fd, num_read;
|
||||
|
||||
sprintf(filename, "%s/%s", directory, what);
|
||||
- fd = open(filename, O_RDONLY, 0);
|
||||
+ fd = open(filename, O_RDONLY, O_NOATIME);
|
||||
if(unlikely(fd==-1)) return -1;
|
||||
num_read = read(fd, ret, cap - 1);
|
||||
close(fd);
|
||||
@@ -423,37 +423,41 @@ static int file2str(const char *director
|
||||
|
||||
static char** file2strvec(const char* directory, const char* what) {
|
||||
char buf[2048]; /* read buf bytes at a time */
|
||||
- char *p, *rbuf = 0, *endbuf, **q, **ret;
|
||||
- int fd, tot = 0, n, c, end_of_file = 0;
|
||||
+ char *p, *rbuf = (char*)0, *endbuf, **q, **ret;
|
||||
+ int fd, tot = 0, n, c;
|
||||
int align;
|
||||
|
||||
sprintf(buf, "%s/%s", directory, what);
|
||||
- fd = open(buf, O_RDONLY, 0);
|
||||
+ fd = open(buf, O_RDONLY, O_NOATIME);
|
||||
if(fd==-1) return NULL;
|
||||
|
||||
/* read whole file into a memory buffer, allocating as we go */
|
||||
while ((n = read(fd, buf, sizeof buf - 1)) > 0) {
|
||||
- if (n < (int)(sizeof buf - 1))
|
||||
- end_of_file = 1;
|
||||
- if (n == 0 && rbuf == 0)
|
||||
- return NULL; /* process died between our open and read */
|
||||
if (n < 0) {
|
||||
+ if (errno == EINTR)
|
||||
+ continue;
|
||||
if (rbuf)
|
||||
free(rbuf);
|
||||
- return NULL; /* read error */
|
||||
+ return NULL; /* read error! */
|
||||
+ }
|
||||
+ if (n == 0) {
|
||||
+ if(rbuf == (char*)0)
|
||||
+ return NULL; /* process died between our open and read */
|
||||
+ break; /* we're done */
|
||||
+ }
|
||||
+ if (n < (int)(sizeof(buf) - 1)) {
|
||||
+ if (buf[n-1]) /* last read char not null */
|
||||
+ buf[n++] = '\0'; /* so append null-terminator */
|
||||
}
|
||||
- if (end_of_file && buf[n-1]) /* last read char not null */
|
||||
- buf[n++] = '\0'; /* so append null-terminator */
|
||||
rbuf = xrealloc(rbuf, tot + n); /* allocate more memory */
|
||||
memcpy(rbuf + tot, buf, n); /* copy buffer into it */
|
||||
tot += n; /* increment total byte ctr */
|
||||
- if (end_of_file)
|
||||
- break;
|
||||
}
|
||||
close(fd);
|
||||
- if (n <= 0 && !end_of_file) {
|
||||
- if (rbuf) free(rbuf);
|
||||
- return NULL; /* read error */
|
||||
+ if (tot == 0) {
|
||||
+ if (rbuf)
|
||||
+ free(rbuf);
|
||||
+ return NULL; /* read error? */
|
||||
}
|
||||
endbuf = rbuf + tot; /* count space for pointers */
|
||||
align = (sizeof(char*)-1) - ((tot + sizeof(char*)-1) & (sizeof(char*)-1));
|
||||
@@ -482,7 +486,7 @@ int read_cmdline(char *restrict const ds
|
||||
unsigned n = 0;
|
||||
dst[0] = '\0';
|
||||
snprintf(name, sizeof name, "/proc/%u/cmdline", pid);
|
||||
- fd = open(name, O_RDONLY);
|
||||
+ fd = open(name, O_RDONLY, O_NOATIME);
|
||||
if(fd==-1) return 0;
|
||||
for(;;){
|
||||
ssize_t r = read(fd,dst+n,sz-n);
|
11
procps-3.2.7-top.1.diff
Normal file
11
procps-3.2.7-top.1.diff
Normal file
@ -0,0 +1,11 @@
|
||||
--- procps-3.2.7/top.1
|
||||
+++ procps-3.2.7/top.1 2006-06-26 16:34:01.000000000 +0200
|
||||
@@ -20,7 +20,7 @@
|
||||
..
|
||||
.\" Setup ////////////////////////////////////////////////////////////////
|
||||
\# ** Comment out '.nr' or set to 0 to eliminate WIDTH fiddlin' !
|
||||
-.nr half_xtra 4
|
||||
+.nr half_xtra 0
|
||||
.
|
||||
.ll +(\n[half_xtra] + \n[half_xtra])
|
||||
.
|
3
procps-3.2.7.tar.bz2
Normal file
3
procps-3.2.7.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5aae203ea63433a37eb91ec84d08519c5979a881e2d18a94ffcb7e84ff277357
|
||||
size 229702
|
815
procps.changes
Normal file
815
procps.changes
Normal file
@ -0,0 +1,815 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 28 13:31:56 CEST 2006 - werner@suse.de
|
||||
|
||||
- Don't stop reading if the read buffer boundary is reached [#194598]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 28 13:21:45 CEST 2006 - olh@suse.de
|
||||
|
||||
- remove unneeded boot.ldconfig from boot.sysctl
|
||||
boot.sysctl should depend on boot.localfs (#181972)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 26 17:07:41 CEST 2006 - werner@suse.de
|
||||
|
||||
- Update to version 3.2.7
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 18 18:37:56 CEST 2006 - werner@suse.de
|
||||
|
||||
- Add stealtime patch (bug #86394)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 20 16:40:36 CET 2006 - hvogel@suse.de
|
||||
|
||||
- fix %CPU column format [#159480]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 16 17:39:47 CET 2006 - hvogel@suse.de
|
||||
|
||||
- make CPU states consistent [#158572]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 15 12:15:48 CET 2006 - hvogel@suse.de
|
||||
|
||||
- fix last patch to not lead to constant CPU usage [#156395]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 20 11:59:10 CET 2006 - hvogel@suse.de
|
||||
|
||||
- dont crash if a CPU is hotplugged [#151285]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 8 17:04:55 CET 2006 - hvogel@suse.de
|
||||
|
||||
- fix ~/.toprc handling [#140319]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 27 02:20:47 CET 2006 - mls@suse.de
|
||||
|
||||
- converted neededforbuild to BuildRequires
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 24 17:14:57 CET 2006 - mmj@suse.de
|
||||
|
||||
- Add support for terabytes of memory [#145014]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 4 10:43:06 CET 2006 - mmj@suse.de
|
||||
|
||||
- Document 'H' - Threads in top.1 (thanks Tony Ernst)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 31 10:07:43 CET 2005 - mmj@suse.de
|
||||
|
||||
- Update to 3.2.6:
|
||||
o vmstat: /proc/stat buffer big enough for 1024 CPUs
|
||||
o dietlibc needs termios.h for struct winsize
|
||||
o top: can do per-task display
|
||||
o more MIPS crud
|
||||
o begin prep for setuid
|
||||
o top: fix %CPU max on 2..9 CPU SMP
|
||||
o ps: fix crash related to realloc
|
||||
o ps: man page more detailed
|
||||
o spelling fixes
|
||||
o top: crash on resize fixed
|
||||
o vmstat: -p handles /dev/ and does not overflow
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 13 10:52:43 CEST 2005 - mmj@suse.de
|
||||
|
||||
- Updated patch from rml
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 12 01:44:50 CEST 2005 - mmj@suse.de
|
||||
|
||||
- Add patch from Chris Rivera for "smaps" that provides per-mapping
|
||||
RSS information.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 18 19:09:43 CEST 2005 - mmj@suse.de
|
||||
|
||||
- Fix potential bufferoverflow in pwdx [#78074]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 8 10:23:05 CET 2005 - mmj@suse.de
|
||||
|
||||
- Update to 3.2.5:
|
||||
* display problem on 64-bit systems fixed
|
||||
* top: variable-width PID and PPID
|
||||
* top: variable-width %CPU
|
||||
* sysctl: better error messages
|
||||
* ps: security labels can contain any printable ASCII
|
||||
* top: help and version message on stdout, with exit(0)
|
||||
* ps: SIGTSTP and SIGTTOU shouldn't print bug email address
|
||||
* slabtop: compile with glibc 2.2.17 (and older, likely)
|
||||
* slabtop: fix overflow on huge NUMA boxes
|
||||
* slabtop: accept any slabinfo 2.x format
|
||||
* ps: alignment after WCHAN fixed
|
||||
* pmap: when no -x or -d option, show full path
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 11 12:47:11 CET 2005 - mmj@suse.de
|
||||
|
||||
- Make our CFLAGS and RPM_OPT_FLAGS actually get used [#49378]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 7 19:36:33 CET 2004 - mmj@suse.de
|
||||
|
||||
- Update to procps-3.2.4:
|
||||
* support 64-bit MIPS with n32 binary
|
||||
* sparc32 optimized for sparc32 again
|
||||
* pwdx: new command
|
||||
* ps: UTF-8 username + command
|
||||
* ps: more room for some columns
|
||||
* ps: tolerate SubDomain security module CONTEXT/LABEL data
|
||||
* watch: passes COLUMNS and LINES in environment
|
||||
* top: in batch mode, tolerate unknown $TERM
|
||||
* pkill: quiet about processes that die before kill()
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 27 10:29:29 CEST 2004 - mmj@suse.de
|
||||
|
||||
- Increase buffer size for reading proc files. [#44776]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 23 17:21:49 CEST 2004 - lmuelle@suse.de
|
||||
|
||||
- Ensure to activate boot.sysctl if we do a first installation, [#44481].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 15 13:36:30 CEST 2004 - lmuelle@suse.de
|
||||
|
||||
- Add default sysctl.conf file.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 16 10:38:12 CEST 2004 - garloff@suse.de
|
||||
|
||||
- Update to procps-3.2.3:
|
||||
* avoid truncating long usernames
|
||||
* avoid warning about -lncurses when not linking (more)
|
||||
* new names for shared libraries (packagers: watch out!)
|
||||
* build fixes and manpages updates
|
||||
* wchan now '*' for multi-threaded processes
|
||||
* ps: STAT shows l for multi-threaded processes
|
||||
* vmstat: some overflow problems fixed -- thanks Holger Kiehl
|
||||
- Use ps manpage from from the package.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 3 22:45:52 CEST 2004 - garloff@suse.de
|
||||
|
||||
- Update to procps-3.2.2:
|
||||
* build tweaks and docu updates
|
||||
* ps: k option and personality-specific -x support
|
||||
* sysctl: -a and -N options, better error handling
|
||||
* top: tolerate sparse CPU numbering, cope with terminals
|
||||
lacking ram & sram, avoid xterm clear-to-eol at eol
|
||||
* vmstat: fix -d
|
||||
* watch: sub-second intervals
|
||||
- Rediff patches.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 2 14:05:27 CEST 2004 - uli@suse.de
|
||||
|
||||
- fixed crash in small terminal (bug #37651)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 30 13:19:14 CEST 2004 - stepan@suse.de
|
||||
|
||||
- Fix ps.1 [#35584]
|
||||
- update to 3.2.1 to get rid of incompatible SE Linux patches.
|
||||
3.2.1 is a bugfix release:
|
||||
* ps: STAT flags for fg process group and session leader
|
||||
* ps: STAT flags for swapped out process dropped (was broken)
|
||||
* ps: new -M and Z options for security data (SE Linux, etc.)
|
||||
* slabtop: detect broken /proc/slabinfo -- thanks to Fabian
|
||||
Frederick
|
||||
* slabtop: ensure that error messages show up on the screen --
|
||||
FF again
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 29 17:40:23 CEST 2004 - mmj@suse.de
|
||||
|
||||
- Fix top.1 man page and include pmap.1 [#35584]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Mar 21 10:12:44 CET 2004 - adrian@suse.de
|
||||
|
||||
- show the result of w also with line wrapps, like in good old times.
|
||||
(ok'ed by stepan)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 3 17:00:29 CET 2004 - stepan@suse.de
|
||||
|
||||
- add notruncate option to w (for powermanagement code)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 1 15:37:23 CET 2004 - stepan@suse.de
|
||||
|
||||
- fix handling of many CPUs in top (#34347)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 24 11:56:33 CET 2004 - stepan@suse.de
|
||||
|
||||
- update to procps 3.2.0
|
||||
* build on IA-64 again
|
||||
* pmap: output like Solaris 9, not Solaris 7
|
||||
* ps: also handle SELinux on the 2.4.xx kernels
|
||||
* top: during a ^Z, the terminal was messed up
|
||||
* future-proof the tty handling
|
||||
* add slabtop
|
||||
* pmap: detect the primary stack
|
||||
* pmap: -d format
|
||||
* free: report high and low memory
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 20 16:19:00 CET 2004 - ro@suse.de
|
||||
|
||||
- boot.sysctl: do nothing for stop case
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Feb 15 14:35:29 CET 2004 - kukuk@suse.de
|
||||
|
||||
- Disable some tests not working on all architectures
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Feb 14 17:07:56 CET 2004 - kukuk@suse.de
|
||||
|
||||
- Rename package to procps
|
||||
- Move procinfo and psmisc into seperate packages
|
||||
- Update to 3.1.15 (includes SELinux support)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 23 19:19:20 CET 2004 - bk@suse.de
|
||||
|
||||
- pstree: UTF-8: never draw >1 '+' at end of line(no change for ASCII)
|
||||
- pstree: Fix -G which uses VT100 line drawing: use the full width
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 17 11:37:15 CET 2003 - stepan@suse.de
|
||||
|
||||
- fix package to build as user. Thanks to olh.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 23 14:39:16 CEST 2003 - stepan@suse.de
|
||||
|
||||
- update to procps 3.1.14
|
||||
* ps fully supports thread display (H, -L, m, -m, and -T)
|
||||
* top can show CPU usage for IO-wait, IRQ, and softirq
|
||||
* can set $PS_FORMAT to choose your own default ps format
|
||||
* better width control ("ps -o pid,wchan:42,args")
|
||||
* width of ps PID column adjusts to your system
|
||||
* vmstat lets you choose units you like: 1000, 1024, 1000000...
|
||||
* top can sort by any column (old sort keys available too)
|
||||
* top can select a single user to display
|
||||
* top can be put in multi-window mode and/or color mode
|
||||
* vmstat has the -s option, as found on UNIX and BSD systems
|
||||
* vmstat has the -f option, as found on UNIX and BSD systems
|
||||
* watch doesn't eat the first blank line by mistake
|
||||
* vmstat uses a fast O(1) algorithm on 2.5.xx kernels
|
||||
* pmap command is SunOS-compatible
|
||||
* vmstat shows IO-wait time
|
||||
* pgrep and pkill can find the oldest matching process
|
||||
* sysctl handles the Linux 2.5.xx VLAN interfaces
|
||||
* ps has a new "-F" format (very nice, like DYNIX/ptx has)
|
||||
* ps with proper BSD process selection
|
||||
* better handling of very long uptimes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 14 16:14:31 CEST 2003 - stepan@suse.de
|
||||
|
||||
- fix 32bit build on AMD64
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 1 12:23:58 CEST 2003 - stepan@suse.de
|
||||
|
||||
- update to procps 3.1.13
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 20 15:18:56 CEST 2003 - schwab@suse.de
|
||||
|
||||
- Handle EOF from terminal [#31126].
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 15 11:30:19 CEST 2003 - stepan@suse.de
|
||||
|
||||
- fix "#C" display problem with more than 99 CPUs. (#28163)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 5 19:06:37 CEST 2003 - stepan@suse.de
|
||||
|
||||
- top: fix 4G overflow on 64bit platforms (bug #28539)
|
||||
(procps-3.1.11-bigproc.diff)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 8 22:10:18 CEST 2003 - stepan@suse.de
|
||||
|
||||
- update procps to version 3.1.11:
|
||||
* compile with gcc 2.95 again (C99 issue)
|
||||
- fix sysctl insertion (bug #28593)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 14 10:15:14 CEST 2003 - stepan@suse.de
|
||||
|
||||
- update procps to version 3.1.10
|
||||
* handle GPLONLY_ symbols
|
||||
* kill: better man page
|
||||
* skill: better man page
|
||||
* ps: PID-like columns change width as needed
|
||||
* top: COMMAND instead of Command
|
||||
* vmstat: -m displays slabinfo
|
||||
* vmstat: -d displays disk stats
|
||||
- update psmisc to 21.3 (has our patch included)
|
||||
* SELinux SID selection uses -d instead of -S to stop the
|
||||
confusion of signal names.
|
||||
* Doesnt segfault on long cmdnames, thanks Ben Low
|
||||
* More fixes for types, also some GCC 3.2 fixes
|
||||
* Changed a long to a long long in pstree.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 4 13:50:34 CEST 2003 - stepan@suse.de
|
||||
|
||||
- update to version 3.1.9
|
||||
* memory sizes fixed for 64-bit w/ gcc 3.x
|
||||
* ps: detect broken OS install w/o /proc mounted
|
||||
* top: fix suspend/resume behavior
|
||||
* top: ditch warning until a _good_ interface is found
|
||||
* kill: more info in the man page
|
||||
* ps: document the -o, o, -O, and O options
|
||||
* vmstat: choose units you like: 1000, 1024, 1000000...
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 13 08:37:07 CEST 2003 - coolo@suse.de
|
||||
|
||||
- fixing cwd
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 12 13:24:50 CEST 2003 - coolo@suse.de
|
||||
|
||||
- use %find_lang
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 3 10:48:56 CEST 2003 - coolo@suse.de
|
||||
|
||||
- use BuildRoot
|
||||
- use %_mandir
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 14 16:03:13 CEST 2003 - stepan@suse.de
|
||||
|
||||
- drop XConsole and xcpustate as there are the almost identical
|
||||
tools xconsole and xosview. This drops X11 dependencies of this
|
||||
package completely.
|
||||
- fix default permissions of locale directories (bug #26120)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 27 16:28:26 CET 2003 - stepan@suse.de
|
||||
|
||||
- fix truncating bug in pstree when specifying -al
|
||||
- merge psmisc diffs
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 21 14:01:41 CET 2003 - stepan@suse.de
|
||||
|
||||
- update procps to 3.1.8
|
||||
- update xcpustate to 2.6beta
|
||||
- fix build on itanium
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 5 17:25:45 CET 2003 - stepan@suse.de
|
||||
|
||||
- add xinetd config file for systat service
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 4 18:52:40 CET 2003 - stepan@suse.de
|
||||
|
||||
- update procps to 3.1.6
|
||||
* includes discontig mem fixes
|
||||
* includes fix for missing processes (bug #23526)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 24 17:16:26 CET 2003 - stepan@suse.de
|
||||
|
||||
- new, working discontig patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 19 13:54:58 CET 2003 - stepan@suse.de
|
||||
|
||||
- fix broken ps with discontig kernel (bug #23788)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 3 15:41:43 CET 2003 - schwab@suse.de
|
||||
|
||||
- Don't package uptime, now part of coreutils.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 27 15:07:40 CET 2002 - stepan@suse.de
|
||||
|
||||
- fix newlines in string again, to satisfy compiler (killall)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 22 16:09:01 CET 2002 - stepan@suse.de
|
||||
|
||||
- make x utility build triggerable by %{build_with_x}
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 14 14:55:13 CET 2002 - werner@suse.de
|
||||
|
||||
- Stupid compiler does not accept newlines in strings.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 15 15:41:18 CEST 2002 - werner@suse.de
|
||||
|
||||
- Fix bug #20604: new procps version 2.0.10
|
||||
- port all required patches to 2.0.10
|
||||
- Update psmisc to 21.2
|
||||
- port all required patches to 21.2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 10 23:22:10 CEST 2002 - adrian@suse.de
|
||||
|
||||
- fix split alias
|
||||
-Obsoletes: ps:/usr/X11R6/bin/xcpustate
|
||||
+Provides: ps:/usr/X11R6/bin/xcpustate
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 22 10:05:16 CEST 2002 - kukuk@suse.de
|
||||
|
||||
- fix PreRequires.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 16 13:54:35 CEST 2002 - werner@suse.de
|
||||
|
||||
- Add PreReq (bug #17963)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 15 23:24:08 CEST 2002 - ro@suse.de
|
||||
|
||||
- modify required-start in boot.sysctl: boot.setup is gone
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 6 13:49:58 CEST 2002 - werner@suse.de
|
||||
|
||||
- Statistics of cpu usage: no negative averages (bug #17449)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 5 09:38:42 CEST 2002 - kukuk@suse.de
|
||||
|
||||
- boot.sysclt: rename serial to setserial, setserial and
|
||||
boot.isapnp are "should-start".
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 20 14:57:38 CET 2002 - ro@suse.de
|
||||
|
||||
- boot.sysctl: don't write out sysctl.conf if it doesn't exist
|
||||
sysctl can't read the file of a complete dump
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 22 17:03:16 CET 2002 - werner@suse.de
|
||||
|
||||
- Fix bug #12816: generate signal list with signal cpp macros
|
||||
to get it correct on all architectures. Make SIG prefix
|
||||
work of signal names.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 1 12:50:25 CET 2002 - ro@suse.de
|
||||
|
||||
- added stop/status for sysctl boot script
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 21 17:47:45 CET 2002 - ro@suse.de
|
||||
|
||||
- added boot-script for sysctl (inactive by default)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 7 17:11:39 CET 2002 - ro@suse.de
|
||||
|
||||
- fixed segfault (thanks to andreas)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 20 16:41:52 CET 2001 - werner@suse.de
|
||||
|
||||
- Make it compile
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 20 15:28:58 CET 2001 - werner@suse.de
|
||||
|
||||
- Sometimes it happens that /proc can not be open, then we have
|
||||
to exit gratefully :^)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 9 16:34:53 CET 2001 - schwab@suse.de
|
||||
|
||||
- Fix idle time overflow in vmstat.
|
||||
- Fix missing declarations.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 17 16:28:26 CEST 2001 - werner@suse.de
|
||||
|
||||
- Fix lsdev from procinfo
|
||||
- Use the correct type for uptime integers (procinfo)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 4 18:33:49 CEST 2001 - werner@suse.de
|
||||
|
||||
- Move fuser from /usr/bin/ to /bin/
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 4 17:38:38 CEST 2001 - werner@suse.de
|
||||
|
||||
- Fix bug #9797: update to psmisc-20.1
|
||||
- Update procinfo to procinfo-18
|
||||
- Add bigbuff, retcode, sysctl-error, and biguid patch frm RH
|
||||
(last one should fix bug #9933)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 24 19:19:07 CEST 2001 - werner@suse.de
|
||||
|
||||
- Package split (#7078)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 20 18:37:14 CEST 2001 - werner@suse.de
|
||||
|
||||
- tty in proc's stat is an int
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 29 18:47:33 CEST 2001 - ro@suse.de
|
||||
|
||||
- initialize page_size before first use
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 28 11:40:36 CEST 2001 - schwab@suse.de
|
||||
|
||||
- Kill improper use of PAGE_SIZE.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 27 20:53:17 CEST 2001 - werner@suse.de
|
||||
|
||||
- Make it work again
|
||||
- Make w know about locale
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 13 11:14:37 CET 2001 - schwab@suse.de
|
||||
|
||||
- Use getpagesize instead of PAGE_SHIFT.
|
||||
- Don't compile with -fwritable-strings.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 12 19:17:11 CET 2001 - werner@suse.de
|
||||
|
||||
- Skip oldps
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 9 15:49:40 CET 2001 - werner@suse.de
|
||||
|
||||
- Make it run on a IA64
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 19 11:51:53 CET 2001 - werner@suse.de
|
||||
|
||||
- Make program watch recognize locale environment (bug#6395)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 25 16:08:13 CET 2001 - werner@suse.de
|
||||
|
||||
- Make `fuser -s -k' work (bug#6143)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 22 17:13:52 CET 2001 - werner@suse.de
|
||||
|
||||
- Avoid segfaults on mmap'ed buffer by adding '\0'
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 10 13:12:59 CET 2001 - werner@suse.de
|
||||
|
||||
- Fix format handling (bug#5386)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 20 17:33:39 CET 2000 - werner@suse.de
|
||||
|
||||
- Reset locale during sscanf calls to POSIX
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 19 20:05:24 MET 2000 - werner@suse.de
|
||||
|
||||
- Use %llu for input (sscanf) and output (printf) format of
|
||||
unsigned long long (free.c, top.c, and sysinfo.c).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 13 15:58:47 CET 2000 - werner@suse.de
|
||||
|
||||
- Update to procps 2.0.7: now SMP should be visible in top
|
||||
- Remove sessreg from file list
|
||||
- Add pgrep and pkill to file list
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 4 09:11:51 CET 2000 - ro@suse.de
|
||||
|
||||
- don't try to strip man-pages
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 22 18:50:56 CET 2000 - uli@suse.de
|
||||
|
||||
- fixed to build on PPC
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 17 09:44:00 CET 2000 - ro@suse.de
|
||||
|
||||
- compile-fix for old sessreg (glibc/X11 clash atexit)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 27 11:56:10 CEST 2000 - kukuk@suse.de
|
||||
|
||||
- Add Group tag
|
||||
- Use docdir macro
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 8 15:16:39 CEST 2000 - ro@suse.de
|
||||
|
||||
- procinfo fixed for smp/alpha
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 28 18:44:11 CET 2000 - werner@suse.de
|
||||
|
||||
- Install some docus (closes bug #1509)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 25 10:57:01 CET 2000 - kukuk@suse.de
|
||||
|
||||
- Fix problem that glibc and ncurses uses the same define for
|
||||
different things.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 24 17:24:30 CET 2000 - schwab@suse.de
|
||||
|
||||
- procps: fix scanf format string
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 4 14:53:50 CET 2000 - kasal@suse.cz
|
||||
|
||||
- remove smp_num_cpus -- it's done in 2.0.6
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 19 15:06:13 MET 2000 - ro@suse.de
|
||||
|
||||
- usr/man -> usr/share/man
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 19 12:52:12 CET 2000 - kasal@suse.de
|
||||
|
||||
- fixed "ps u" -- ie. fixed read_total_main()
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 6 16:01:23 CET 1999 - werner@suse.de
|
||||
|
||||
- Argh: fix Makefile to install sysctl.conf.5 man page
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 6 15:02:02 CET 1999 - werner@suse.de
|
||||
|
||||
- Install sysctl tool of procps 2.0.6
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 3 18:52:38 CET 1999 - kasal@suse.de
|
||||
|
||||
- upgraded procps to 2.0.6, to get the package compiled on sparc
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 24 17:09:50 CET 1999 - kettner@suse.de
|
||||
|
||||
- fixed bug in procinfo on AXP
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de
|
||||
|
||||
- ran old prepare_spec on spec file to switch to new prepare_spec.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 7 16:20:07 CEST 1999 - werner@suse.de
|
||||
|
||||
- Avoid SEGV if /proc isn't mounted (e.g. in single user mode)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 7 00:28:33 CEST 1999 - werner@suse.de
|
||||
|
||||
- Fix some maunal page (missed tbl mark, some nasty .TH's)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 18 14:09:14 CEST 1999 - werner@suse.de
|
||||
|
||||
- Update procinfo (ver 17), procps (ver 2.0.2) but hold
|
||||
ver 1.2.11 (sessreg, XConsole, libproc for xcpustate),
|
||||
update psmisc (ver 18)
|
||||
- Patch procps 2.0.2 with debian diff and make ps
|
||||
usable again (select bits should be 0x0a0a to see
|
||||
all ttys if ps is called).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 14 11:26:45 MEST 1999 - bk@suse.de
|
||||
|
||||
- updated procinfo patckage from version 15 to 16
|
||||
* annoying interrupt warning("recompile me!") is gone
|
||||
* display on SMP has been fixed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 6 17:45:53 MEST 1999 - bk@suse.de
|
||||
|
||||
- update to procps-1.2.11
|
||||
- fixed segfault in /usr/bin/w
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 22 17:35:00 MET 1999 - florian@suse.de
|
||||
|
||||
- update to procps-1.2.10
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 30 16:03:32 MET 1998 - ro@suse.de
|
||||
|
||||
- update to procinfo-15 and procps-1.2.9
|
||||
- extra source for xcpustate-2.5 (no more in procps)
|
||||
- patched xcpustate to display mem,swap,net for linux
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 7 09:52:22 MEST 1998 - florian@suse.de
|
||||
|
||||
- add "-g" option to killall to kill a complete process group
|
||||
- update to procps 1.2.7
|
||||
- update to procinfo 13
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 13 11:44:00 MET 1998 - bs@suse.de
|
||||
|
||||
- switched version to `date` (problem with version for update).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 2 16:26:13 MET 1998 - florian@suse.de
|
||||
|
||||
- update to psmisc 17
|
||||
- update to procps 1.2.6
|
||||
- update to procinfo 12
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 17 12:57:28 MEST 1997 - ro@suse.de
|
||||
|
||||
- ready for autobuild
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Sat Jul 5 10:08:27 MEST 1997 - florian@suse.de
|
||||
|
||||
|
||||
- updated to 1.12.2 again (with fixes)
|
||||
|
||||
- fix output of free
|
||||
|
||||
- top with wrong options won't destroy the display
|
||||
|
||||
- XConsole is not suid-root anymore as "xconsole" can be used without
|
||||
being suid root
|
||||
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Mon Jun 30 20:41:43 MEST 1997 - bs@suse.de
|
||||
|
||||
- switched back to version 1.11.6
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Sun Jun 22 18:57:49 MEST 1997 - florian@suse.de
|
||||
|
||||
|
||||
- update to version 1.12.2
|
||||
|
||||
- add procinfo 0.11
|
||||
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Tue May 20 14:10:37 MEST 1997 - florian@suse.de
|
||||
|
||||
|
||||
- update to version 1.11.6
|
||||
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Sun Apr 13 23:04:29 MEST 1997 - florian@suse.de
|
||||
|
||||
|
||||
- update to new version 1.11.3
|
||||
|
||||
- update to psmisc 12a
|
||||
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Wed Jan 22 22:24:11 CET 1997 - florian@suse.de
|
||||
|
||||
|
||||
- update to version 1.11.1
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Sun Aug 25 19:28:50 MET DST 1996 - florian@suse.de
|
||||
|
||||
|
||||
|
||||
new version 1.01
|
||||
'top' is completely new
|
||||
people might get a much faster 'ps', if they delete '/etc/psdevtab'
|
||||
and call 'ps' as root...
|
574
procps.spec
Normal file
574
procps.spec
Normal file
@ -0,0 +1,574 @@
|
||||
#
|
||||
# spec file for package procps (Version 3.2.7)
|
||||
#
|
||||
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# This file and all modifications and additions to the pristine
|
||||
# package are under the same license as the package itself.
|
||||
#
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# norootforbuild
|
||||
|
||||
Name: procps
|
||||
URL: http://procps.sf.net
|
||||
License: GPL, LGPL
|
||||
Group: System/Monitoring
|
||||
PreReq: %fillup_prereq %insserv_prereq
|
||||
Autoreqprov: on
|
||||
Version: 3.2.7
|
||||
Release: 3
|
||||
Summary: ps utilities for /proc
|
||||
Provides: ps
|
||||
Obsoletes: ps
|
||||
Source: http://procps.sourceforge.net/procps-%version.tar.bz2
|
||||
Source1: boot.sysctl
|
||||
Source2: systat.xinetd
|
||||
Source3: sysctl.conf
|
||||
Patch: procps-3.2.3-make.diff
|
||||
Patch1: procps-3.2.2-100cpus.diff
|
||||
Patch2: procps-3.2.5-eof.diff
|
||||
Patch3: procps-3.2.2-ia64.diff
|
||||
Patch6: procps-3.2.7-manycpus.diff
|
||||
Patch7: procps-3.2.2-w-notruncate.diff
|
||||
Patch8: procps-3.2.2-w-simply-work.diff
|
||||
Patch9: procps-3.2.7-top.1.diff
|
||||
Patch10: procps-3.2.2-top-termsize.patch
|
||||
Patch11: procps-3.2.3-buffersize.diff
|
||||
Patch12: pwdx-bufferoverflow.diff
|
||||
Patch13: procps-3.2.5-pmap-smaps-rml-2.patch
|
||||
Patch15: procps-3.2.5-top-rc.patch
|
||||
Patch16: procps-3.2.7-cpu_hotplug.patch
|
||||
Patch17: procps-3.2.5-CPU-states.patch
|
||||
Patch18: procps-3.2.7-readeof.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
The procps package contains a set of system utilities that provide
|
||||
system information. Procps includes ps, free, skill, snice, tload, top,
|
||||
uptime, vmstat, w, and watch. The ps command displays a snapshot of
|
||||
running processes. The top command provides a repetitive update of the
|
||||
statuses of running processes. The free command displays the amounts of
|
||||
free and used memory on your system. The skill command sends a
|
||||
terminate command (or another specified signal) to a specified set of
|
||||
processes. The snice command is used to change the scheduling priority
|
||||
of specified processes. The tload command prints a graph of the current
|
||||
system load average to a specified tty. The uptime command displays the
|
||||
current time, how long the system has been running, how many users are
|
||||
logged on, and system load averages for the past one, five, and fifteen
|
||||
minutes. The w command displays a list of the users who are currently
|
||||
logged on and what they are running. The watch program watches a
|
||||
running program. The vmstat command displays virtual memory statistics
|
||||
about processes, memory, paging, block I/O, traps, and CPU activity.
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Albert Cahalan <albert@users.sf.net>
|
||||
(and many more)
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17
|
||||
%patch18
|
||||
|
||||
%build
|
||||
make CFLAGS="-Wall -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $RPM_OPT_FLAGS -pipe" \
|
||||
CC="gcc"
|
||||
|
||||
%install
|
||||
make DESTDIR=$RPM_BUILD_ROOT install
|
||||
install -d $RPM_BUILD_ROOT/etc/init.d $RPM_BUILD_ROOT/etc/xinetd.d
|
||||
install -m 755 %SOURCE1 $RPM_BUILD_ROOT/etc/init.d
|
||||
install -m 644 %SOURCE2 $RPM_BUILD_ROOT/etc/xinetd.d/systat
|
||||
install -m 644 %SOURCE3 $RPM_BUILD_ROOT/etc
|
||||
# clean unwanted files (coreutils)
|
||||
rm -f $RPM_BUILD_ROOT/bin/kill
|
||||
rm -f $RPM_BUILD_ROOT/usr/bin/uptime
|
||||
rm -f $RPM_BUILD_ROOT%_mandir/man1/kill.1
|
||||
rm -f $RPM_BUILD_ROOT%_mandir/man1/uptime.1
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%post
|
||||
%{fillup_and_insserv -ny boot.sysctl boot.sysctl}
|
||||
|
||||
%postun
|
||||
%insserv_cleanup
|
||||
|
||||
%files
|
||||
%defattr (-,root,root,755)
|
||||
%doc NEWS README COPYING
|
||||
%config /etc/init.d/boot.sysctl
|
||||
%config(noreplace) /etc/sysctl.conf
|
||||
%config(noreplace) /etc/xinetd.d/systat
|
||||
/bin/ps
|
||||
/sbin/sysctl
|
||||
/usr/bin/free
|
||||
/usr/bin/pgrep
|
||||
/usr/bin/pkill
|
||||
/usr/bin/pmap
|
||||
/usr/bin/pwdx
|
||||
/usr/bin/skill
|
||||
/usr/bin/slabtop
|
||||
/usr/bin/snice
|
||||
/usr/bin/tload
|
||||
/usr/bin/top
|
||||
/usr/bin/vmstat
|
||||
/usr/bin/w
|
||||
/usr/bin/watch
|
||||
%_mandir/man1/free.1.gz
|
||||
%_mandir/man1/pgrep.1.gz
|
||||
%_mandir/man1/pkill.1.gz
|
||||
%_mandir/man1/pmap.1.gz
|
||||
%_mandir/man1/ps.1.gz
|
||||
%_mandir/man1/pwdx.1.gz
|
||||
%_mandir/man1/skill.1.gz
|
||||
%_mandir/man1/slabtop.1.gz
|
||||
%_mandir/man1/snice.1.gz
|
||||
%_mandir/man1/tload.1.gz
|
||||
%_mandir/man1/top.1.gz
|
||||
%_mandir/man1/w.1.gz
|
||||
%_mandir/man1/watch.1.gz
|
||||
%_mandir/man5/sysctl.conf.5.gz
|
||||
%_mandir/man8/vmstat.8.gz
|
||||
%_mandir/man8/sysctl.8.gz
|
||||
|
||||
%changelog -n procps
|
||||
* Fri Jul 28 2006 - werner@suse.de
|
||||
- Don't stop reading if the read buffer boundary is reached [#194598]
|
||||
* Fri Jul 28 2006 - olh@suse.de
|
||||
- remove unneeded boot.ldconfig from boot.sysctl
|
||||
boot.sysctl should depend on boot.localfs (#181972)
|
||||
* Mon Jun 26 2006 - werner@suse.de
|
||||
- Update to version 3.2.7
|
||||
* Thu May 18 2006 - werner@suse.de
|
||||
- Add stealtime patch (bug #86394)
|
||||
* Mon Mar 20 2006 - hvogel@suse.de
|
||||
- fix %%CPU column format [#159480]
|
||||
* Thu Mar 16 2006 - hvogel@suse.de
|
||||
- make CPU states consistent [#158572]
|
||||
* Wed Mar 15 2006 - hvogel@suse.de
|
||||
- fix last patch to not lead to constant CPU usage [#156395]
|
||||
* Mon Feb 20 2006 - hvogel@suse.de
|
||||
- dont crash if a CPU is hotplugged [#151285]
|
||||
* Wed Feb 08 2006 - hvogel@suse.de
|
||||
- fix ~/.toprc handling [#140319]
|
||||
* Fri Jan 27 2006 - mls@suse.de
|
||||
- converted neededforbuild to BuildRequires
|
||||
* Tue Jan 24 2006 - mmj@suse.de
|
||||
- Add support for terabytes of memory [#145014]
|
||||
* Wed Jan 04 2006 - mmj@suse.de
|
||||
- Document 'H' - Threads in top.1 (thanks Tony Ernst)
|
||||
* Mon Oct 31 2005 - mmj@suse.de
|
||||
- Update to 3.2.6:
|
||||
o vmstat: /proc/stat buffer big enough for 1024 CPUs
|
||||
o dietlibc needs termios.h for struct winsize
|
||||
o top: can do per-task display
|
||||
o more MIPS crud
|
||||
o begin prep for setuid
|
||||
o top: fix %%CPU max on 2..9 CPU SMP
|
||||
o ps: fix crash related to realloc
|
||||
o ps: man page more detailed
|
||||
o spelling fixes
|
||||
o top: crash on resize fixed
|
||||
o vmstat: -p handles /dev/ and does not overflow
|
||||
* Thu Oct 13 2005 - mmj@suse.de
|
||||
- Updated patch from rml
|
||||
* Wed Oct 12 2005 - mmj@suse.de
|
||||
- Add patch from Chris Rivera for "smaps" that provides per-mapping
|
||||
RSS information.
|
||||
* Mon Apr 18 2005 - mmj@suse.de
|
||||
- Fix potential bufferoverflow in pwdx [#78074]
|
||||
* Tue Feb 08 2005 - mmj@suse.de
|
||||
- Update to 3.2.5:
|
||||
* display problem on 64-bit systems fixed
|
||||
* top: variable-width PID and PPID
|
||||
* top: variable-width %%CPU
|
||||
* sysctl: better error messages
|
||||
* ps: security labels can contain any printable ASCII
|
||||
* top: help and version message on stdout, with exit(0)
|
||||
* ps: SIGTSTP and SIGTTOU shouldn't print bug email address
|
||||
* slabtop: compile with glibc 2.2.17 (and older, likely)
|
||||
* slabtop: fix overflow on huge NUMA boxes
|
||||
* slabtop: accept any slabinfo 2.x format
|
||||
* ps: alignment after WCHAN fixed
|
||||
* pmap: when no -x or -d option, show full path
|
||||
* Tue Jan 11 2005 - mmj@suse.de
|
||||
- Make our CFLAGS and RPM_OPT_FLAGS actually get used [#49378]
|
||||
* Tue Dec 07 2004 - mmj@suse.de
|
||||
- Update to procps-3.2.4:
|
||||
* support 64-bit MIPS with n32 binary
|
||||
* sparc32 optimized for sparc32 again
|
||||
* pwdx: new command
|
||||
* ps: UTF-8 username + command
|
||||
* ps: more room for some columns
|
||||
* ps: tolerate SubDomain security module CONTEXT/LABEL data
|
||||
* watch: passes COLUMNS and LINES in environment
|
||||
* top: in batch mode, tolerate unknown $TERM
|
||||
* pkill: quiet about processes that die before kill()
|
||||
* Wed Oct 27 2004 - mmj@suse.de
|
||||
- Increase buffer size for reading proc files. [#44776]
|
||||
* Thu Sep 23 2004 - lmuelle@suse.de
|
||||
- Ensure to activate boot.sysctl if we do a first installation, [#44481].
|
||||
* Wed Sep 15 2004 - lmuelle@suse.de
|
||||
- Add default sysctl.conf file.
|
||||
* Mon Aug 16 2004 - garloff@suse.de
|
||||
- Update to procps-3.2.3:
|
||||
* avoid truncating long usernames
|
||||
* avoid warning about -lncurses when not linking (more)
|
||||
* new names for shared libraries (packagers: watch out!)
|
||||
* build fixes and manpages updates
|
||||
* wchan now '*' for multi-threaded processes
|
||||
* ps: STAT shows l for multi-threaded processes
|
||||
* vmstat: some overflow problems fixed -- thanks Holger Kiehl
|
||||
- Use ps manpage from from the package.
|
||||
* Tue Aug 03 2004 - garloff@suse.de
|
||||
- Update to procps-3.2.2:
|
||||
* build tweaks and docu updates
|
||||
* ps: k option and personality-specific -x support
|
||||
* sysctl: -a and -N options, better error handling
|
||||
* top: tolerate sparse CPU numbering, cope with terminals
|
||||
lacking ram & sram, avoid xterm clear-to-eol at eol
|
||||
* vmstat: fix -d
|
||||
* watch: sub-second intervals
|
||||
- Rediff patches.
|
||||
* Wed Jun 02 2004 - uli@suse.de
|
||||
- fixed crash in small terminal (bug #37651)
|
||||
* Tue Mar 30 2004 - stepan@suse.de
|
||||
- Fix ps.1 [#35584]
|
||||
- update to 3.2.1 to get rid of incompatible SE Linux patches.
|
||||
3.2.1 is a bugfix release:
|
||||
* ps: STAT flags for fg process group and session leader
|
||||
* ps: STAT flags for swapped out process dropped (was broken)
|
||||
* ps: new -M and Z options for security data (SE Linux, etc.)
|
||||
* slabtop: detect broken /proc/slabinfo -- thanks to Fabian
|
||||
Frederick
|
||||
* slabtop: ensure that error messages show up on the screen --
|
||||
FF again
|
||||
* Mon Mar 29 2004 - mmj@suse.de
|
||||
- Fix top.1 man page and include pmap.1 [#35584]
|
||||
* Sun Mar 21 2004 - adrian@suse.de
|
||||
- show the result of w also with line wrapps, like in good old times.
|
||||
(ok'ed by stepan)
|
||||
* Wed Mar 03 2004 - stepan@suse.de
|
||||
- add notruncate option to w (for powermanagement code)
|
||||
* Mon Mar 01 2004 - stepan@suse.de
|
||||
- fix handling of many CPUs in top (#34347)
|
||||
* Tue Feb 24 2004 - stepan@suse.de
|
||||
- update to procps 3.2.0
|
||||
* build on IA-64 again
|
||||
* pmap: output like Solaris 9, not Solaris 7
|
||||
* ps: also handle SELinux on the 2.4.xx kernels
|
||||
* top: during a ^Z, the terminal was messed up
|
||||
* future-proof the tty handling
|
||||
* add slabtop
|
||||
* pmap: detect the primary stack
|
||||
* pmap: -d format
|
||||
* free: report high and low memory
|
||||
* Fri Feb 20 2004 - ro@suse.de
|
||||
- boot.sysctl: do nothing for stop case
|
||||
* Sun Feb 15 2004 - kukuk@suse.de
|
||||
- Disable some tests not working on all architectures
|
||||
* Sat Feb 14 2004 - kukuk@suse.de
|
||||
- Rename package to procps
|
||||
- Move procinfo and psmisc into seperate packages
|
||||
- Update to 3.1.15 (includes SELinux support)
|
||||
* Fri Jan 23 2004 - bk@suse.de
|
||||
- pstree: UTF-8: never draw >1 '+' at end of line(no change for ASCII)
|
||||
- pstree: Fix -G which uses VT100 line drawing: use the full width
|
||||
* Mon Nov 17 2003 - stepan@suse.de
|
||||
- fix package to build as user. Thanks to olh.
|
||||
* Thu Oct 23 2003 - stepan@suse.de
|
||||
- update to procps 3.1.14
|
||||
* ps fully supports thread display (H, -L, m, -m, and -T)
|
||||
* top can show CPU usage for IO-wait, IRQ, and softirq
|
||||
* can set $PS_FORMAT to choose your own default ps format
|
||||
* better width control ("ps -o pid,wchan:42,args")
|
||||
* width of ps PID column adjusts to your system
|
||||
* vmstat lets you choose units you like: 1000, 1024, 1000000...
|
||||
* top can sort by any column (old sort keys available too)
|
||||
* top can select a single user to display
|
||||
* top can be put in multi-window mode and/or color mode
|
||||
* vmstat has the -s option, as found on UNIX and BSD systems
|
||||
* vmstat has the -f option, as found on UNIX and BSD systems
|
||||
* watch doesn't eat the first blank line by mistake
|
||||
* vmstat uses a fast O(1) algorithm on 2.5.xx kernels
|
||||
* pmap command is SunOS-compatible
|
||||
* vmstat shows IO-wait time
|
||||
* pgrep and pkill can find the oldest matching process
|
||||
* sysctl handles the Linux 2.5.xx VLAN interfaces
|
||||
* ps has a new "-F" format (very nice, like DYNIX/ptx has)
|
||||
* ps with proper BSD process selection
|
||||
* better handling of very long uptimes
|
||||
* Tue Oct 14 2003 - stepan@suse.de
|
||||
- fix 32bit build on AMD64
|
||||
* Wed Oct 01 2003 - stepan@suse.de
|
||||
- update to procps 3.1.13
|
||||
* Sat Sep 20 2003 - schwab@suse.de
|
||||
- Handle EOF from terminal [#31126].
|
||||
* Mon Sep 15 2003 - stepan@suse.de
|
||||
- fix "#C" display problem with more than 99 CPUs. (#28163)
|
||||
* Fri Sep 05 2003 - stepan@suse.de
|
||||
- top: fix 4G overflow on 64bit platforms (bug #28539)
|
||||
(procps-3.1.11-bigproc.diff)
|
||||
* Fri Aug 08 2003 - stepan@suse.de
|
||||
- update procps to version 3.1.11:
|
||||
* compile with gcc 2.95 again (C99 issue)
|
||||
- fix sysctl insertion (bug #28593)
|
||||
* Mon Jul 14 2003 - stepan@suse.de
|
||||
- update procps to version 3.1.10
|
||||
* handle GPLONLY_ symbols
|
||||
* kill: better man page
|
||||
* skill: better man page
|
||||
* ps: PID-like columns change width as needed
|
||||
* top: COMMAND instead of Command
|
||||
* vmstat: -m displays slabinfo
|
||||
* vmstat: -d displays disk stats
|
||||
- update psmisc to 21.3 (has our patch included)
|
||||
* SELinux SID selection uses -d instead of -S to stop the
|
||||
confusion of signal names.
|
||||
* Doesnt segfault on long cmdnames, thanks Ben Low
|
||||
* More fixes for types, also some GCC 3.2 fixes
|
||||
* Changed a long to a long long in pstree.
|
||||
* Fri Jul 04 2003 - stepan@suse.de
|
||||
- update to version 3.1.9
|
||||
* memory sizes fixed for 64-bit w/ gcc 3.x
|
||||
* ps: detect broken OS install w/o /proc mounted
|
||||
* top: fix suspend/resume behavior
|
||||
* top: ditch warning until a _good_ interface is found
|
||||
* kill: more info in the man page
|
||||
* ps: document the -o, o, -O, and O options
|
||||
* vmstat: choose units you like: 1000, 1024, 1000000...
|
||||
* Fri Jun 13 2003 - coolo@suse.de
|
||||
- fixing cwd
|
||||
* Thu Jun 12 2003 - coolo@suse.de
|
||||
- use %%find_lang
|
||||
* Tue Jun 03 2003 - coolo@suse.de
|
||||
- use BuildRoot
|
||||
- use %%_mandir
|
||||
* Wed May 14 2003 - stepan@suse.de
|
||||
- drop XConsole and xcpustate as there are the almost identical
|
||||
tools xconsole and xosview. This drops X11 dependencies of this
|
||||
package completely.
|
||||
- fix default permissions of locale directories (bug #26120)
|
||||
* Thu Mar 27 2003 - stepan@suse.de
|
||||
- fix truncating bug in pstree when specifying -al
|
||||
- merge psmisc diffs
|
||||
* Fri Mar 21 2003 - stepan@suse.de
|
||||
- update procps to 3.1.8
|
||||
- update xcpustate to 2.6beta
|
||||
- fix build on itanium
|
||||
* Wed Mar 05 2003 - stepan@suse.de
|
||||
- add xinetd config file for systat service
|
||||
* Tue Mar 04 2003 - stepan@suse.de
|
||||
- update procps to 3.1.6
|
||||
* includes discontig mem fixes
|
||||
* includes fix for missing processes (bug #23526)
|
||||
* Mon Feb 24 2003 - stepan@suse.de
|
||||
- new, working discontig patch
|
||||
* Wed Feb 19 2003 - stepan@suse.de
|
||||
- fix broken ps with discontig kernel (bug #23788)
|
||||
* Mon Feb 03 2003 - schwab@suse.de
|
||||
- Don't package uptime, now part of coreutils.
|
||||
* Wed Nov 27 2002 - stepan@suse.de
|
||||
- fix newlines in string again, to satisfy compiler (killall)
|
||||
* Fri Nov 22 2002 - stepan@suse.de
|
||||
- make x utility build triggerable by %%{build_with_x}
|
||||
* Thu Nov 14 2002 - werner@suse.de
|
||||
- Stupid compiler does not accept newlines in strings.
|
||||
* Tue Oct 15 2002 - werner@suse.de
|
||||
- Fix bug #20604: new procps version 2.0.10
|
||||
- port all required patches to 2.0.10
|
||||
- Update psmisc to 21.2
|
||||
- port all required patches to 21.2
|
||||
* Tue Sep 10 2002 - adrian@suse.de
|
||||
- fix split alias
|
||||
-Obsoletes: ps:/usr/X11R6/bin/xcpustate
|
||||
+Provides: ps:/usr/X11R6/bin/xcpustate
|
||||
* Thu Aug 22 2002 - kukuk@suse.de
|
||||
- fix PreRequires.
|
||||
* Fri Aug 16 2002 - werner@suse.de
|
||||
- Add PreReq (bug #17963)
|
||||
* Thu Aug 15 2002 - ro@suse.de
|
||||
- modify required-start in boot.sysctl: boot.setup is gone
|
||||
* Tue Aug 06 2002 - werner@suse.de
|
||||
- Statistics of cpu usage: no negative averages (bug #17449)
|
||||
* Mon Aug 05 2002 - kukuk@suse.de
|
||||
- boot.sysclt: rename serial to setserial, setserial and
|
||||
boot.isapnp are "should-start".
|
||||
* Wed Mar 20 2002 - ro@suse.de
|
||||
- boot.sysctl: don't write out sysctl.conf if it doesn't exist
|
||||
sysctl can't read the file of a complete dump
|
||||
* Fri Feb 22 2002 - werner@suse.de
|
||||
- Fix bug #12816: generate signal list with signal cpp macros
|
||||
to get it correct on all architectures. Make SIG prefix
|
||||
work of signal names.
|
||||
* Fri Feb 01 2002 - ro@suse.de
|
||||
- added stop/status for sysctl boot script
|
||||
* Mon Jan 21 2002 - ro@suse.de
|
||||
- added boot-script for sysctl (inactive by default)
|
||||
* Mon Jan 07 2002 - ro@suse.de
|
||||
- fixed segfault (thanks to andreas)
|
||||
* Thu Dec 20 2001 - werner@suse.de
|
||||
- Make it compile
|
||||
* Thu Dec 20 2001 - werner@suse.de
|
||||
- Sometimes it happens that /proc can not be open, then we have
|
||||
to exit gratefully :^)
|
||||
* Fri Nov 09 2001 - schwab@suse.de
|
||||
- Fix idle time overflow in vmstat.
|
||||
- Fix missing declarations.
|
||||
* Mon Sep 17 2001 - werner@suse.de
|
||||
- Fix lsdev from procinfo
|
||||
- Use the correct type for uptime integers (procinfo)
|
||||
* Tue Sep 04 2001 - werner@suse.de
|
||||
- Move fuser from /usr/bin/ to /bin/
|
||||
* Tue Sep 04 2001 - werner@suse.de
|
||||
- Fix bug #9797: update to psmisc-20.1
|
||||
- Update procinfo to procinfo-18
|
||||
- Add bigbuff, retcode, sysctl-error, and biguid patch frm RH
|
||||
(last one should fix bug #9933)
|
||||
* Tue Apr 24 2001 - werner@suse.de
|
||||
- Package split (#7078)
|
||||
* Fri Apr 20 2001 - werner@suse.de
|
||||
- tty in proc's stat is an int
|
||||
* Thu Mar 29 2001 - ro@suse.de
|
||||
- initialize page_size before first use
|
||||
* Wed Mar 28 2001 - schwab@suse.de
|
||||
- Kill improper use of PAGE_SIZE.
|
||||
* Tue Mar 27 2001 - werner@suse.de
|
||||
- Make it work again
|
||||
- Make w know about locale
|
||||
* Tue Mar 13 2001 - schwab@suse.de
|
||||
- Use getpagesize instead of PAGE_SHIFT.
|
||||
- Don't compile with -fwritable-strings.
|
||||
* Mon Mar 12 2001 - werner@suse.de
|
||||
- Skip oldps
|
||||
* Fri Mar 09 2001 - werner@suse.de
|
||||
- Make it run on a IA64
|
||||
* Mon Feb 19 2001 - werner@suse.de
|
||||
- Make program watch recognize locale environment (bug#6395)
|
||||
* Thu Jan 25 2001 - werner@suse.de
|
||||
- Make `fuser -s -k' work (bug#6143)
|
||||
* Mon Jan 22 2001 - werner@suse.de
|
||||
- Avoid segfaults on mmap'ed buffer by adding '\0'
|
||||
* Wed Jan 10 2001 - werner@suse.de
|
||||
- Fix format handling (bug#5386)
|
||||
* Wed Dec 20 2000 - werner@suse.de
|
||||
- Reset locale during sscanf calls to POSIX
|
||||
* Tue Dec 19 2000 - werner@suse.de
|
||||
- Use %%llu for input (sscanf) and output (printf) format of
|
||||
unsigned long long (free.c, top.c, and sysinfo.c).
|
||||
* Wed Dec 13 2000 - werner@suse.de
|
||||
- Update to procps 2.0.7: now SMP should be visible in top
|
||||
- Remove sessreg from file list
|
||||
- Add pgrep and pkill to file list
|
||||
* Mon Dec 04 2000 - ro@suse.de
|
||||
- don't try to strip man-pages
|
||||
* Wed Nov 22 2000 - uli@suse.de
|
||||
- fixed to build on PPC
|
||||
* Fri Nov 17 2000 - ro@suse.de
|
||||
- compile-fix for old sessreg (glibc/X11 clash atexit)
|
||||
* Sat May 27 2000 - kukuk@suse.de
|
||||
- Add Group tag
|
||||
- Use docdir macro
|
||||
* Mon May 08 2000 - ro@suse.de
|
||||
- procinfo fixed for smp/alpha
|
||||
* Mon Feb 28 2000 - werner@suse.de
|
||||
- Install some docus (closes bug #1509)
|
||||
* Fri Feb 25 2000 - kukuk@suse.de
|
||||
- Fix problem that glibc and ncurses uses the same define for
|
||||
different things.
|
||||
* Thu Feb 24 2000 - schwab@suse.de
|
||||
- procps: fix scanf format string
|
||||
* Fri Feb 04 2000 - kasal@suse.cz
|
||||
- remove smp_num_cpus -- it's done in 2.0.6
|
||||
* Wed Jan 19 2000 - ro@suse.de
|
||||
- usr/man -> usr/share/man
|
||||
* Wed Jan 19 2000 - kasal@suse.de
|
||||
- fixed "ps u" -- ie. fixed read_total_main()
|
||||
* Mon Dec 06 1999 - werner@suse.de
|
||||
- Argh: fix Makefile to install sysctl.conf.5 man page
|
||||
* Mon Dec 06 1999 - werner@suse.de
|
||||
- Install sysctl tool of procps 2.0.6
|
||||
* Fri Dec 03 1999 - kasal@suse.de
|
||||
- upgraded procps to 2.0.6, to get the package compiled on sparc
|
||||
* Wed Nov 24 1999 - kettner@suse.de
|
||||
- fixed bug in procinfo on AXP
|
||||
* Mon Sep 13 1999 - bs@suse.de
|
||||
- ran old prepare_spec on spec file to switch to new prepare_spec.
|
||||
* Tue Sep 07 1999 - werner@suse.de
|
||||
- Avoid SEGV if /proc isn't mounted (e.g. in single user mode)
|
||||
* Tue Sep 07 1999 - werner@suse.de
|
||||
- Fix some maunal page (missed tbl mark, some nasty .TH's)
|
||||
* Wed Aug 18 1999 - werner@suse.de
|
||||
- Update procinfo (ver 17), procps (ver 2.0.2) but hold
|
||||
ver 1.2.11 (sessreg, XConsole, libproc for xcpustate),
|
||||
update psmisc (ver 18)
|
||||
- Patch procps 2.0.2 with debian diff and make ps
|
||||
usable again (select bits should be 0x0a0a to see
|
||||
all ttys if ps is called).
|
||||
* Wed Apr 14 1999 - bk@suse.de
|
||||
- updated procinfo patckage from version 15 to 16
|
||||
* annoying interrupt warning("recompile me!") is gone
|
||||
* display on SMP has been fixed
|
||||
* Tue Apr 06 1999 - bk@suse.de
|
||||
- update to procps-1.2.11
|
||||
- fixed segfault in /usr/bin/w
|
||||
* Mon Mar 22 1999 - florian@suse.de
|
||||
- update to procps-1.2.10
|
||||
* Fri Oct 30 1998 - ro@suse.de
|
||||
- update to procinfo-15 and procps-1.2.9
|
||||
- extra source for xcpustate-2.5 (no more in procps)
|
||||
- patched xcpustate to display mem,swap,net for linux
|
||||
* Thu May 07 1998 - florian@suse.de
|
||||
- add "-g" option to killall to kill a complete process group
|
||||
- update to procps 1.2.7
|
||||
- update to procinfo 13
|
||||
* Fri Mar 13 1998 - bs@suse.de
|
||||
- switched version to `date` (problem with version for update).
|
||||
* Mon Mar 02 1998 - florian@suse.de
|
||||
- update to psmisc 17
|
||||
- update to procps 1.2.6
|
||||
- update to procinfo 12
|
||||
* Fri Oct 17 1997 - ro@suse.de
|
||||
- ready for autobuild
|
||||
* Sat Jul 05 1997 - florian@suse.de
|
||||
- updated to 1.12.2 again (with fixes)
|
||||
- fix output of free
|
||||
- top with wrong options won't destroy the display
|
||||
- XConsole is not suid-root anymore as "xconsole" can be used without
|
||||
being suid root
|
||||
* Mon Jun 30 1997 - bs@suse.de
|
||||
- switched back to version 1.11.6
|
||||
* Sun Jun 22 1997 - florian@suse.de
|
||||
- update to version 1.12.2
|
||||
- add procinfo 0.11
|
||||
* Tue May 20 1997 - florian@suse.de
|
||||
- update to version 1.11.6
|
||||
* Sun Apr 13 1997 - florian@suse.de
|
||||
- update to new version 1.11.3
|
||||
- update to psmisc 12a
|
||||
* Wed Jan 22 1997 - florian@suse.de
|
||||
- update to version 1.11.1
|
||||
* Thu Jan 02 1997 - florian@suse.de
|
||||
new version 1.01
|
||||
'top' is completely new
|
||||
people might get a much faster 'ps', if they delete '/etc/psdevtab'
|
||||
and call 'ps' as root...
|
10
pwdx-bufferoverflow.diff
Normal file
10
pwdx-bufferoverflow.diff
Normal file
@ -0,0 +1,10 @@
|
||||
--- procps-3.2.7/pwdx.c
|
||||
+++ procps-3.2.7/pwdx.c 2006-06-26 16:38:12.000000000 +0200
|
||||
@@ -60,6 +60,7 @@
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (regexec(&re, argv[i], 0, NULL, 0) != 0) {
|
||||
snprintf(buf, sizeof buf, "pwdx: invalid process id: %s\n", argv[i]);
|
||||
+ buf[sizeof(buf)-1] = '\0';
|
||||
die(buf);
|
||||
}
|
||||
if (!strcmp("-V", argv[i]) || !strcmp("--version", argv[i]))
|
7
sysctl.conf
Normal file
7
sysctl.conf
Normal file
@ -0,0 +1,7 @@
|
||||
# Disable response to broadcasts.
|
||||
# You don't want yourself becoming a Smurf amplifier.
|
||||
net.ipv4.icmp_echo_ignore_broadcasts = 1
|
||||
# enable route verification on all interfaces
|
||||
net.ipv4.conf.all.rp_filter = 1
|
||||
# enable ipV6 forwarding
|
||||
#net.ipv6.conf.all.forwarding = 1
|
17
systat.xinetd
Normal file
17
systat.xinetd
Normal file
@ -0,0 +1,17 @@
|
||||
# Finger, systat and netstat give out user information which may be
|
||||
# valuable to potential "system crackers." Many sites choose to disable
|
||||
# some or all of these services to improve security.
|
||||
# Try "telnet localhost systat" and "telnet localhost netstat" to see that
|
||||
# information yourself!
|
||||
#
|
||||
service systat
|
||||
{
|
||||
disable = yes
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
wait = no
|
||||
user = nobody
|
||||
server = /bin/ps
|
||||
server_args = -auwwx
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user