commit 844627c63447bcfbafb80c6486d05951fc8a42a8e57a041d3ae9cd246df75235 Author: Adrian Schröter Date: Fri May 3 19:37:37 2024 +0200 Sync from SUSE:SLFO:Main procps revision 4ce427c82fbf58eedd37dd3607aae2eb diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/CVE-2023-4016.patch b/CVE-2023-4016.patch new file mode 100644 index 0000000..1124fe4 --- /dev/null +++ b/CVE-2023-4016.patch @@ -0,0 +1,102 @@ +From 2c933ecba3bb1d3041a5a7a53a7b4078a6003413 Mon Sep 17 00:00:00 2001 +From: Craig Small +Date: Thu, 10 Aug 2023 21:18:38 +1000 +Subject: [PATCH] ps: Fix possible buffer overflow in -C option + +ps allocates memory using malloc(length of arg * len of struct). +In certain strange circumstances, the arg length could be very large +and the multiplecation will overflow, allocating a small amount of +memory. + +Subsequent strncpy() will then write into unallocated memory. +The fix is to use calloc. It's slower but this is a one-time +allocation. Other malloc(x * y) calls have also been replaced +by calloc(x, y) + +References: + https://www.freelists.org/post/procps/ps-buffer-overflow-CVE-20234016 + https://nvd.nist.gov/vuln/detail/CVE-2023-4016 + https://gitlab.com/procps-ng/procps/-/issues/297 + https://bugs.debian.org/1042887 + +Signed-off-by: Craig Small +--- + ps/parser.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +--- ps/parser.c ++++ ps/parser.c 2023-08-15 12:19:13.375422122 +0000 +@@ -183,8 +183,7 @@ static const char *parse_list(const char + int need_item; + const char *err; /* error code that could or did happen */ + /*** prepare to operate ***/ +- node = malloc(sizeof(selection_node)); +- node->u = malloc(strlen(arg)*sizeof(sel_union)); /* waste is insignificant */ ++ node = xmalloc(sizeof(selection_node)); + node->n = 0; + buf = strdup(arg); + /*** sanity check and count items ***/ +@@ -205,6 +204,7 @@ static const char *parse_list(const char + } while (*++walk); + if(need_item) goto parse_error; + node->n = items; ++ node->u = xcalloc(items*sizeof(sel_union)); + /*** actually parse the list ***/ + walk = buf; + while(items--){ +@@ -569,8 +569,8 @@ static const char *parse_bsd_option(void + /* put our tty on a tiny list */ + { + selection_node *node; +- node = malloc(sizeof(selection_node)); +- node->u = malloc(sizeof(sel_union)); ++ node = xmalloc(sizeof(selection_node)); ++ node->u = xmalloc(sizeof(sel_union)); + node->u[0].tty = cached_tty; + node->typecode = SEL_TTY; + node->n = 1; +@@ -706,8 +706,8 @@ static const char *parse_bsd_option(void + if(!arg){ + /* Wow, obsolete BSD syntax. Put our tty on a tiny list. */ + selection_node *node; +- node = malloc(sizeof(selection_node)); +- node->u = malloc(sizeof(sel_union)); ++ node = xmalloc(sizeof(selection_node)); ++ node->u = xmalloc(sizeof(sel_union)); + node->u[0].tty = cached_tty; + node->typecode = SEL_TTY; + node->n = 1; +@@ -1030,16 +1030,16 @@ static const char *parse_trailing_pids(v + argp = ps_argv + thisarg; + thisarg = ps_argc - 1; /* we must be at the end now */ + +- pidnode = malloc(sizeof(selection_node)); +- pidnode->u = malloc(i*sizeof(sel_union)); /* waste is insignificant */ ++ pidnode = xmalloc(sizeof(selection_node)); ++ pidnode->u = xcalloc(i*sizeof(sel_union)); /* waste is insignificant */ + pidnode->n = 0; + +- grpnode = malloc(sizeof(selection_node)); +- grpnode->u = malloc(i*sizeof(sel_union)); /* waste is insignificant */ ++ grpnode = xmalloc(sizeof(selection_node)); ++ grpnode->u = xcalloc(i*sizeof(sel_union)); /* waste is insignificant */ + grpnode->n = 0; + +- sidnode = malloc(sizeof(selection_node)); +- sidnode->u = malloc(i*sizeof(sel_union)); /* waste is insignificant */ ++ sidnode = xmalloc(sizeof(selection_node)); ++ sidnode->u = xcalloc(i*sizeof(sel_union)); /* waste is insignificant */ + sidnode->n = 0; + + while(i--){ +--- proc/libprocps.sym ++++ proc/libprocps.sym 2023-08-15 12:43:18.905661726 +0000 +@@ -67,6 +67,8 @@ global: + unix_print_signals; + uptime; + xalloc_err_handler; ++ xcalloc; ++ xmalloc; + local: + *; + }; diff --git a/bsc1195468-23da4f40.patch b/bsc1195468-23da4f40.patch new file mode 100644 index 0000000..d0f0102 --- /dev/null +++ b/bsc1195468-23da4f40.patch @@ -0,0 +1,33 @@ +From 23da4f40ea27afe998e92ca317f2dcb48a6ffc1f Mon Sep 17 00:00:00 2001 +From: Tommi Rantala +Date: Mon, 11 Oct 2021 13:33:18 +0300 +Subject: [PATCH] ps: ignore SIGURG + +Stop registering signal handler for SIGURG, to avoid ps failure if +someone sends such signal. Without the signal handler, SIGURG will +just be ignored. + + Signal 23 (URG) caught by ps (3.3.16). + ps:ps/display.c:66: please report this bug + +https://man7.org/linux/man-pages/man7/signal.7.html +https://www.freebsd.org/cgi/man.cgi?sektion=3&query=signal +--- + ps/display.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ps/display.c b/ps/display.c +index 04803c3b..346e21a7 100644 +--- a/ps/display.c ++++ b/ps/display.c +@@ -673,6 +673,7 @@ int main(int argc, char *argv[]){ + case SIGKILL: /* can not catch */ + case SIGSTOP: /* can not catch */ + case SIGWINCH: /* don't care if window size changes */ ++ case SIGURG: /* Urgent condition on socket (4.2BSD) */ + ; + } + } while (0); +-- +GitLab + diff --git a/procps-3.3.17-bsc1181976.patch b/procps-3.3.17-bsc1181976.patch new file mode 100644 index 0000000..fcb2f74 --- /dev/null +++ b/procps-3.3.17-bsc1181976.patch @@ -0,0 +1,45 @@ +From 3dd1661a3d91671ca6c977c2e514f47d807be79d Mon Sep 17 00:00:00 2001 +From: Craig Small +Date: Mon, 29 Mar 2021 22:11:27 +1100 +Subject: [PATCH] docs: psr ps field is last run processor + +The ps.1 manpage incorrectly stated that psr field showed the +processor the process was assigned to. However if the assignment +has changed but the process has not run, then the field doesn't +change. + +Some digging by @srikard showed it wasn't the processor assigned +but the last one it was run on. The man page now correctly +describes psr in that way. + +References: + procps-ng/procps#187 +--- + ps/ps.1 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git ps/ps.1 ps/ps.1 +index 8678123..b433655 100644 +--- ps/ps.1 ++++ ps/ps.1 +|@@ -4,7 +4,7 @@ +| .\" Quick hack conversion by Albert Cahalan, 1998. +| .\" Licensed under version 2 of the Gnu General Public License. +| .\" +|-.TH PS "1" "2021-03-05" "procps-ng" "User Commands" +|+.TH PS "1" "2021-03-29" "procps-ng" "User Commands" +| .\" +| .\" To render this page: +| .\" groff -t -b -man -X -P-resolution -P100 -Tps ps.1 & +@@ -1518,7 +1518,7 @@ priority of the process. Higher number means lower priority. + T} + + psr PSR T{ +-processor that process is currently assigned to. ++processor that process last executed on. + T} + + rgid RGID T{ +-- +2.26.2 + diff --git a/procps-3.3.17-ignore-sysctl_conf.patch b/procps-3.3.17-ignore-sysctl_conf.patch new file mode 100644 index 0000000..4cfecee --- /dev/null +++ b/procps-3.3.17-ignore-sysctl_conf.patch @@ -0,0 +1,11 @@ +--- procps-3.3.17/sysctl.c.old 2021-02-09 11:11:25.000000000 +0100 ++++ procps-3.3.17/sysctl.c 2023-12-14 13:56:36.785976315 +0100 +@@ -546,6 +546,8 @@ + fp = (globbuf.gl_pathv[j][0] == '-' && !globbuf.gl_pathv[j][1]) + ? stdin : fopen(globbuf.gl_pathv[j], "r"); + if (!fp) { ++ if (strcmp ("/usr/lib/sysctl.d/99-sysctl.conf", globbuf.gl_pathv[j]) == 0) ++ continue; + xwarn(_("cannot open \"%s\""), globbuf.gl_pathv[j]); + rc = -1; + goto out; diff --git a/procps-3.3.17-library-bsc1181475.patch b/procps-3.3.17-library-bsc1181475.patch new file mode 100644 index 0000000..208638c --- /dev/null +++ b/procps-3.3.17-library-bsc1181475.patch @@ -0,0 +1,41 @@ +--- + free.1 | 2 +- + proc/sysinfo.c | 9 +++++---- + 2 files changed, 6 insertions(+), 5 deletions(-) + +--- free.1 ++++ free.1 2022-12-15 09:40:32.807087343 +0000 +@@ -19,7 +19,7 @@ columns are: + Total installed memory (MemTotal and SwapTotal in /proc/meminfo) + .TP + \fBused\fR +-Used memory (calculated as \fBtotal\fR - \fBfree\fR - \fBbuffers\fR - \fBcache\fR) ++Used memory (calculated as \fBtotal\fR - \fBavailable\fR) + .TP + \fBfree\fR + Unused memory (MemFree and SwapFree in /proc/meminfo) +--- proc/sysinfo.c ++++ proc/sysinfo.c 2022-06-22 11:29:39.240066488 +0000 +@@ -794,10 +794,6 @@ nextline: + where such values will be dramatically distorted over those of the host. */ + if (kb_main_available > kb_main_total) + kb_main_available = kb_main_free; +- mem_used = kb_main_total - kb_main_free - kb_main_cached - kb_main_buffers; +- if (mem_used < 0) +- mem_used = kb_main_total - kb_main_free; +- kb_main_used = (unsigned long)mem_used; + + /* zero? might need fallback for 2.6.27 <= kernel 100.0 || pct_misc < 0) pct_misc = 0; + pct_swap = kb_swap_total ? (float)kb_swap_used * (100.0 / (float)kb_swap_total) : 0; diff --git a/procps-ng-3.3.10-bnc634071_procstat2.diff b/procps-ng-3.3.10-bnc634071_procstat2.diff new file mode 100644 index 0000000..fbc178b --- /dev/null +++ b/procps-ng-3.3.10-bnc634071_procstat2.diff @@ -0,0 +1,61 @@ +--- + proc/libprocps.sym | 1 + + proc/sysinfo.c | 13 +++++++++++-- + proc/sysinfo.h | 2 ++ + 3 files changed, 14 insertions(+), 2 deletions(-) + +--- proc/libprocps.sym ++++ proc/libprocps.sym 2018-04-04 11:30:51.841725161 +0000 +@@ -60,6 +60,7 @@ global: + signal_name_to_number; + signal_number_to_name; + smp_num_cpus; ++ __smp_num_cpus; + sprint_uptime; + strtosig; + tty_to_dev; +--- proc/sysinfo.c ++++ proc/sysinfo.c 2018-04-04 11:33:26.306886237 +0000 +@@ -47,7 +47,8 @@ + #endif + #include + +-long smp_num_cpus; /* number of CPUs */ ++#undef smp_num_cpus ++long smp_num_cpus=-1; /* number of CPUs */ + long page_bytes; /* this architecture's page size */ + + #define BAD_OPEN_MESSAGE \ +@@ -1166,7 +1167,11 @@ out: + + /////////////////////////////////////////////////////////////////////////// + +-void cpuinfo (void) { ++long __smp_num_cpus (void) { ++ ++ if (smp_num_cpus != -1) ++ return(smp_num_cpus); ++ + // ought to count CPUs in /proc/stat instead of relying + // on glibc, which foolishly tries to parse /proc/cpuinfo + // note: that may have been the case but now /proc/stat +@@ -1181,4 +1186,8 @@ void cpuinfo (void) { + smp_num_cpus = sysconf(_SC_NPROCESSORS_ONLN); + if (smp_num_cpus<1) /* SPARC glibc is buggy */ + smp_num_cpus=1; ++ ++ return smp_num_cpus; + } ++ ++void cpuinfo (void) { (void)__smp_num_cpus(); } +--- proc/sysinfo.h ++++ proc/sysinfo.h 2018-04-04 11:30:51.841725161 +0000 +@@ -8,6 +8,8 @@ EXTERN_C_BEGIN + + extern unsigned long long Hertz; /* clock tick frequency */ + extern long smp_num_cpus; /* number of CPUs */ ++extern long __smp_num_cpus(void); ++#define smp_num_cpus __smp_num_cpus() + extern int have_privs; /* boolean, true if setuid or similar */ + extern long page_bytes; /* this architecture's bytes per page */ + diff --git a/procps-ng-3.3.10-errno.patch b/procps-ng-3.3.10-errno.patch new file mode 100644 index 0000000..48c0aae --- /dev/null +++ b/procps-ng-3.3.10-errno.patch @@ -0,0 +1,48 @@ +setlocale() sets errno to ENOENT ... + +open("/usr/lib/locale/de_DE.UTF-8/LC_NUMERIC", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) +open("/usr/lib/locale/de_DE.utf8/LC_NUMERIC", O_RDONLY|O_CLOEXEC) = 3 + +and this causes a problem later on (bsc#908516) + +--- + free.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- free.c ++++ free.c 2018-04-04 12:47:06.360757839 +0000 +@@ -197,6 +197,7 @@ int main(int argc, char **argv) + { + int c, flags = 0, unit_set = 0; + struct commandline_arguments args; ++ int errsv; + + /* + * For long options that have no equivalent short option, use a +@@ -247,10 +248,12 @@ int main(int argc, char **argv) + #ifdef HAVE_PROGRAM_INVOCATION_NAME + program_invocation_name = program_invocation_short_name; + #endif ++ errsv = errno; + setlocale (LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); + atexit(close_stdout); ++ errno = errsv; + + while ((c = getopt_long(argc, argv, "bkmghltCc:ws:V", longopts, NULL)) != -1) + switch (c) { +@@ -317,11 +320,13 @@ int main(int argc, char **argv) + break; + case 's': + flags |= FREE_REPEAT; ++ errsv = errno; + errno = 0; + args.repeat_interval = (1000000 * strtod_nol_or_err(optarg, "seconds argument failed")); + if (args.repeat_interval < 1) + xerrx(EXIT_FAILURE, + _("seconds argument `%s' is not positive number"), optarg); ++ errno = errsv; + break; + case 'c': + flags |= FREE_REPEAT; diff --git a/procps-ng-3.3.10-fdleak.dif b/procps-ng-3.3.10-fdleak.dif new file mode 100644 index 0000000..ee7d736 --- /dev/null +++ b/procps-ng-3.3.10-fdleak.dif @@ -0,0 +1,38 @@ +--- + vmstat.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +--- vmstat.c ++++ vmstat.c 2018-04-04 11:16:07.577968520 +0000 +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -708,13 +709,12 @@ static void slabheader(void) + + static void slabformat(void) + { +- FILE *fSlab; ++ struct stat fSlab; + struct slab_cache *slabs; + unsigned long nSlab, i, j, k; + const char format[] = "%-24s %6u %6u %6u %6u\n"; + +- fSlab = fopen("/proc/slabinfo", "rb"); +- if (!fSlab) { ++ if (stat("/proc/slabinfo", &fSlab) < 0) { + xwarnx(_("your kernel does not support slabinfo or your permissions are insufficient")); + return; + } +@@ -746,7 +746,6 @@ static void slabformat(void) + } + free(slabs); + } +- fclose(fSlab); + } + + static void disksum_format(void) diff --git a/procps-ng-3.3.10-integer-overflow.patch b/procps-ng-3.3.10-integer-overflow.patch new file mode 100644 index 0000000..d6482dd --- /dev/null +++ b/procps-ng-3.3.10-integer-overflow.patch @@ -0,0 +1,61 @@ +--- + free.c | 19 ++++++++++++++++--- + proc/sysinfo.c | 5 ++++- + 2 files changed, 20 insertions(+), 4 deletions(-) + +--- free.c ++++ free.c 2021-02-10 09:58:35.409695062 +0000 +@@ -134,7 +134,7 @@ static const char *scale_size(unsigned l + if (args.exponent > 1) { + /* In desired scale. */ + snprintf(buf, sizeof(buf), "%ld", +- (long int)((size * 1024.0) / power(base, args.exponent-1)) ++ (long int)(((long long int)size * 1024) / power(base, args.exponent-1)) + ); + return buf; + } +@@ -381,15 +381,28 @@ int main(int argc, char **argv) + * to print the high info, even if it is zero. + */ + if (flags & FREE_LOHI) { ++ unsigned long kb_low_used; ++ unsigned long kb_high_used; ++ ++ if (kb_low_total > kb_low_free) ++ kb_low_used = kb_low_total - kb_low_free; ++ else ++ kb_low_used = 0; ++ ++ if (kb_high_total > kb_high_free) ++ kb_high_used = kb_high_total - kb_high_free; ++ else ++ kb_high_used = 0; ++ + printf("%-9s", _("Low:")); + printf("%11s", scale_size(kb_low_total, flags, args)); +- printf(" %11s", scale_size(kb_low_total - kb_low_free, flags, args)); ++ printf(" %11s", scale_size(kb_low_used, flags, args)); + printf(" %11s", scale_size(kb_low_free, flags, args)); + printf("\n"); + + printf("%-9s", _("High:")); + printf("%11s", scale_size(kb_high_total, flags, args)); +- printf(" %11s", scale_size(kb_high_total - kb_high_free, flags, args)); ++ printf(" %11s", scale_size(kb_high_used, flags, args)); + printf(" %11s", scale_size(kb_high_free, flags, args)); + printf("\n"); + } +--- proc/sysinfo.c ++++ proc/sysinfo.c 2021-02-10 10:00:35.227385913 +0000 +@@ -783,7 +783,10 @@ nextline: + kb_main_cached = kb_page_cache + kb_slab_reclaimable; + if ((ev=getenv("PS_FULL_CACHE"))) + kb_main_cached += kb_swap_cached + kb_nfs_unstable; +- kb_swap_used = kb_swap_total - kb_swap_free; ++ if (kb_swap_total > kb_swap_free) ++ kb_swap_used = kb_swap_total - kb_swap_free; ++ else ++ kb_swap_used = 0; + + /* if kb_main_available is greater than kb_main_total or our calculation of + mem_used overflows, that's symptomatic of running within a lxc container diff --git a/procps-ng-3.3.10-large_pcpu.patch b/procps-ng-3.3.10-large_pcpu.patch new file mode 100644 index 0000000..2f344de --- /dev/null +++ b/procps-ng-3.3.10-large_pcpu.patch @@ -0,0 +1,19 @@ +--- + top/top.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- top/top.c ++++ top/top.c 2018-04-04 12:09:16.087193018 +0000 +@@ -2404,7 +2404,11 @@ static void zap_fieldstab (void) { + Cpu_pmax = 99.9; + if (Rc.mode_irixps && smp_num_cpus > 1 && !Thread_mode) { + Cpu_pmax = 100.0 * smp_num_cpus; +- if (smp_num_cpus > 10) { ++ if (smp_num_cpus > 1000) { ++ if (Cpu_pmax > 9999999.0) Cpu_pmax = 9999999.0; ++ } else if (smp_num_cpus > 100) { ++ if (Cpu_pmax > 999999.0) Cpu_pmax = 999999.0; ++ } else if (smp_num_cpus > 10) { + if (Cpu_pmax > 99999.0) Cpu_pmax = 99999.0; + } else { + if (Cpu_pmax > 999.9) Cpu_pmax = 999.9; diff --git a/procps-ng-3.3.10-slab.patch b/procps-ng-3.3.10-slab.patch new file mode 100644 index 0000000..e444d47 --- /dev/null +++ b/procps-ng-3.3.10-slab.patch @@ -0,0 +1,115 @@ +--- + free.1 | 6 ++++++ + free.c | 7 ++++++- + proc/sysinfo.c | 4 ++++ + vmstat.c | 6 +++++- + 4 files changed, 21 insertions(+), 2 deletions(-) + +--- free.1 ++++ free.1 2019-12-11 06:20:16.659772479 +0000 +@@ -100,6 +100,12 @@ Switch to the wide mode. The wide mode p + than 80 characters. In this mode \fBbuffers\fR and \fBcache\fR + are reported in two separate columns. + .TP ++\fB\-C\fR, \fB\-\-full\-cache\fR ++Add to the plain \fBCached\fR in-memory cache for files also more cache lines as ++the \fBNFS_Unstable\fR pages sent to the server, but not yet committed to stable storage ++and the \fBSwapCached\fR memory that once was swapped out but is swapped back. ++Can be also enabled by the environment variable \fBPS_FULL_CACHE\fR. ++.TP + \fB\-c\fR, \fB\-\-count\fR \fIcount\fR + Display the result + .I count +--- free.c ++++ free.c 2019-12-11 06:20:16.659772479 +0000 +@@ -90,6 +90,7 @@ static void __attribute__ ((__noreturn__ + fputs(_(" -t, --total show total for RAM + swap\n"), out); + fputs(_(" -s N, --seconds N repeat printing every N seconds\n"), out); + fputs(_(" -c N, --count N repeat printing N times, then exit\n"), out); ++ fputs(_(" -C, --full-cache add further cache lines to main cache\n"), out); + fputs(_(" -w, --wide wide output\n"), out); + fputs(USAGE_SEPARATOR, out); + fputs(_(" --help display this help and exit\n"), out); +@@ -231,6 +232,7 @@ int main(int argc, char **argv) + { "total", no_argument, NULL, 't' }, + { "seconds", required_argument, NULL, 's' }, + { "count", required_argument, NULL, 'c' }, ++ { "full-cache",required_argument, NULL, HELP_OPTION }, + { "wide", no_argument, NULL, 'w' }, + { "help", no_argument, NULL, HELP_OPTION }, + { "version", no_argument, NULL, 'V' }, +@@ -250,7 +252,7 @@ int main(int argc, char **argv) + textdomain(PACKAGE); + atexit(close_stdout); + +- while ((c = getopt_long(argc, argv, "bkmghltc:ws:V", longopts, NULL)) != -1) ++ while ((c = getopt_long(argc, argv, "bkmghltCc:ws:V", longopts, NULL)) != -1) + switch (c) { + case 'b': + check_unit_set(&unit_set); +@@ -333,6 +335,9 @@ int main(int argc, char **argv) + case 'w': + flags |= FREE_WIDE; + break; ++ case 'C': ++ setenv("PS_FULL_CACHE", "yes", 1); ++ break; + case HELP_OPTION: + usage(stdout); + case 'V': +--- proc/sysinfo.c ++++ proc/sysinfo.c 2019-12-11 06:20:16.659772479 +0000 +@@ -3,6 +3,7 @@ + * Copyright (C) 1992-1998 by Michael K. Johnson, johnsonm@redhat.com + * Copyright 1998-2003 Albert Cahalan + * June 2003, Fabian Frederick, disk and slab info ++ * Copyright (c) 2008 Bart Van Assche. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -700,6 +701,7 @@ void meminfo(void){ + int linux_version_code = procps_linux_version(); + mem_table_struct findme = { namebuf, NULL}; + mem_table_struct *found; ++ const char *ev; + char *head; + char *tail; + static const mem_table_struct mem_table[] = { +@@ -779,6 +781,8 @@ nextline: + kb_inactive = kb_inact_dirty + kb_inact_clean + kb_inact_laundry; + } + kb_main_cached = kb_page_cache + kb_slab_reclaimable; ++ if ((ev=getenv("PS_FULL_CACHE"))) ++ kb_main_cached += kb_swap_cached + kb_nfs_unstable; + kb_swap_used = kb_swap_total - kb_swap_free; + + /* if kb_main_available is greater than kb_main_total or our calculation of +--- vmstat.c ++++ vmstat.c 2019-12-11 06:22:44.716984764 +0000 +@@ -103,6 +103,7 @@ static void __attribute__ ((__noreturn__ + fputs(_(" -p, --partition partition specific statistics\n"), out); + fputs(_(" -S, --unit define display unit\n"), out); + fputs(_(" -w, --wide wide output\n"), out); ++ fputs(_(" -C, --full-cache add further cache lines to main cache\n"), out); + fputs(_(" -t, --timestamp show timestamp\n"), out); + fputs(USAGE_SEPARATOR, out); + fputs(USAGE_HELP, out); +@@ -899,7 +900,7 @@ int main(int argc, char *argv[]) + atexit(close_stdout); + + while ((c = +- getopt_long(argc, argv, "afmnsdDp:S:wthV", longopts, ++ getopt_long(argc, argv, "aCfmnsdDp:S:wthV", longopts, + NULL)) != -1) + switch (c) { + case 'V': +@@ -968,6 +969,9 @@ int main(int argc, char *argv[]) + case 't': + t_option = 1; + break; ++ case 'C': ++ setenv("PS_FULL_CACHE", "yes", 1); ++ break; + default: + /* no other aguments defined yet. */ + usage(stderr); diff --git a/procps-ng-3.3.10-xen.dif b/procps-ng-3.3.10-xen.dif new file mode 100644 index 0000000..7babd2d --- /dev/null +++ b/procps-ng-3.3.10-xen.dif @@ -0,0 +1,29 @@ +--- vmstat.c ++++ vmstat.c 2015-01-27 14:57:19.467491788 +0000 +@@ -295,7 +295,7 @@ static void new_format(void) + unsigned int intr[2], ctxt[2]; + unsigned int sleep_half; + unsigned long kb_per_page = sysconf(_SC_PAGESIZE) / 1024ul; +- int debt = 0; /* handle idle ticks running backwards */ ++ long long debt = 0; /* handle idle ticks running backwards */ + struct tm *tm_ptr; + time_t the_time; + char timebuf[32]; +@@ -386,12 +386,12 @@ static void new_format(void) + + /* idle can run backwards for a moment -- kernel "feature" */ + if (debt) { +- didl = (int)didl + debt; +- debt = 0; ++ didl = (long long)didl + debt; ++ debt = 0LL; + } +- if ((int)didl < 0) { +- debt = (int)didl; +- didl = 0; ++ if ((long long)didl < 0) { ++ debt = (long long)didl; ++ didl = 0ULL; + } + + Div = duse + dsys + didl + diow + dstl; diff --git a/procps-ng-3.3.11-pmap4suse.patch b/procps-ng-3.3.11-pmap4suse.patch new file mode 100644 index 0000000..efcaffa --- /dev/null +++ b/procps-ng-3.3.11-pmap4suse.patch @@ -0,0 +1,216 @@ +--- + pmap.c | 47 ++++++++++++++++++++++++++++++++----------- + testsuite/pmap.test/pmap.exp | 17 +++++++-------- + 2 files changed, 44 insertions(+), 20 deletions(-) + +--- pmap.c ++++ pmap.c 2018-06-05 09:37:34.404294888 +0000 +@@ -49,7 +49,9 @@ const char *nls_Address, + *nls_Kbytes, + *nls_Mode, + *nls_RSS, +- *nls_Dirty; ++ *nls_PSS, ++ *nls_Dirty, ++ *nls_Swap; + + static void nls_initialize(void) + { +@@ -73,7 +75,9 @@ static void nls_initialize(void) + nls_Kbytes = _("Kbytes"); + nls_Mode = _("Mode"); + nls_RSS = _("RSS"); ++ nls_PSS = _("PSS"); + nls_Dirty = _("Dirty"); ++ nls_Swap = _("Swap"); + } + + static int justify_print(const char *str, int width, int right) +@@ -141,10 +145,10 @@ static int d_option; + static int n_option; + static int N_option; + static int q_option; +-static int x_option; ++static int x_option = 1; + static int X_option; + +-static int map_desc_showpath; ++static int map_desc_showpath = 1; + + static unsigned shm_minor = ~0u; + +@@ -522,12 +526,17 @@ static int one_proc(const proc_t * p) + char perms[32] = ""; + const char *cp2 = NULL; + unsigned long long rss = 0ull; ++ unsigned long long pss = 0ull; ++ unsigned long long swap = 0ull; + unsigned long long private_dirty = 0ull; + unsigned long long shared_dirty = 0ull; + unsigned long long total_rss = 0ull; ++ unsigned long long total_pss = 0ull; ++ unsigned long long total_swap = 0ull; + unsigned long long total_private_dirty = 0ull; + unsigned long long total_shared_dirty = 0ull; + int maxw1=0, maxw2=0, maxw3=0, maxw4=0, maxw5=0; ++ int maxw6=0, maxw7=0; + + /* Overkill, but who knows what is proper? The "w" prog uses + * the tty width to determine this. +@@ -557,13 +566,15 @@ static int one_proc(const proc_t * p) + if (x_option) { + maxw1 = 16; + if (sizeof(KLONG) == 4) maxw1 = 8; +- maxw2 = maxw3 = maxw4 = 7; ++ maxw2 = maxw3 = maxw4 = maxw6 = maxw7 = 7; + maxw5 = 5; + if (!q_option) { + maxw1 = justify_print(nls_Address, maxw1, 0); + maxw2 = justify_print(nls_Kbytes, maxw2, 1); + maxw3 = justify_print(nls_RSS, maxw3, 1); ++ maxw6 = justify_print(nls_PSS, maxw6, 1); + maxw4 = justify_print(nls_Dirty, maxw4, 1); ++ maxw7 = justify_print(nls_Swap, maxw7, 1); + maxw5 = justify_print(nls_Mode, maxw5, 0); + justify_print(nls_Mapping, 0, 0); + } +@@ -603,6 +614,11 @@ static int one_proc(const proc_t * p) + total_rss += smap_value; + continue; + } ++ if (strncmp("Pss", smap_key, 3) == 0) { ++ pss = smap_value; ++ total_pss += smap_value; ++ continue; ++ } + if (strcmp("Shared_Dirty", smap_key) == 0) { + shared_dirty = smap_value; + total_shared_dirty += smap_value; +@@ -615,15 +631,19 @@ static int one_proc(const proc_t * p) + } + if (strcmp("Swap", smap_key) == 0) { + /* doesn't matter as long as last */ +- if (cp2) printf("%0*" KLF "x %*lu %*llu %*llu %*s %s\n", ++ swap = smap_value; ++ total_swap += smap_value; ++ if (cp2) printf("%0*" KLF "x %*lu %*llu %*llu %*llu %*llu %*s %s\n", + maxw1, start, + maxw2, (unsigned long)(diff >> 10), + maxw3, rss, ++ maxw6, pss, + maxw4, (private_dirty + shared_dirty), ++ maxw7, swap, + maxw5, perms, + cp2); + /* reset some counters */ +- rss = shared_dirty = private_dirty = 0ull; ++ rss = pss = shared_dirty = private_dirty = swap = 0ull; + start = diff = end = 0; + perms[0] = '\0'; + cp2 = NULL; +@@ -656,7 +676,6 @@ static int one_proc(const proc_t * p) + if (perms[3] == 's') + total_shared += diff; + if (perms[3] == 'p') { +- perms[3] = '-'; + if (perms[1] == 'w') + total_private_writeable += diff; + else +@@ -708,17 +727,21 @@ static int one_proc(const proc_t * p) + justify_print("----------------", maxw1, 0); + justify_print("-------", maxw2, 1); + justify_print("-------", maxw3, 1); ++ justify_print("-------", maxw6, 1); + justify_print("-------", maxw4, 1); ++ justify_print("-------", maxw7, 1); + printf("\n"); + + printf("%-*s ", maxw1, _("total kB")); +- printf("%*ld %*llu %*llu\n", ++ printf("%*ld %*llu %*llu %*llu %*llu\n", + maxw2, (total_shared + + total_private_writeable + + total_private_readonly) >> 10, + maxw3, total_rss, ++ maxw6, total_pss, + maxw4, (total_shared_dirty + +- total_private_dirty)); ++ total_private_dirty), ++ maxw7, total_swap); + } + if (d_option) { + printf +@@ -1028,16 +1051,18 @@ int main(int argc, char **argv) + while ((c = getopt_long(argc, argv, "xXrdqA:hVcC:nN:p", longopts, NULL)) != -1) + switch (c) { + case 'x': +- x_option = 1; ++ x_option = !x_option; + break; + case 'X': + X_option++; ++ x_option = 0; + break; + case 'r': + xwarnx(_("option -r is ignored as SunOS compatibility")); + break; + case 'd': +- d_option = 1; ++ d_option = !d_option; ++ x_option = 0; + break; + case 'q': + q_option = 1; +--- testsuite/pmap.test/pmap.exp ++++ testsuite/pmap.test/pmap.exp 2018-06-05 09:23:53.955370363 +0000 +@@ -8,16 +8,16 @@ set pmap_procname "${mypid}:\\s+\\S+\[^\ + set pmap_initname "1:\\s+\\S+\[^\\r\]+\\s+" + set pmap_std_header $pmap_procname + set pmap_device_header "${pmap_procname}Address\\s+Kbytes\\s+Mode\\s+Offset\\s+Device\\s+Mapping\\s+" +-set pmap_ext_header "${pmap_procname}Address\\s+Kbytes\\s+RSS\\s+Dirty\\s+Mode\\s+Mapping\\s+" ++set pmap_ext_header "${pmap_procname}Address\\s+Kbytes\\s+RSS\\s+PSS\\s+Dirty\\s+Swap\\s+Mode\\s+Mapping\\s+" + set pmap_generic_header "${pmap_procname}\\s+\(?:\[A-Z\]\[a-z\]+ +\)+" + +-set pmap_std_items "\(\[0-9a-f\]+\\s+\\d+K \[rwx-\]{5}\\s+\\S+\[^\\r\]+\\s*\)+" +-set pmap_device_items "\(\[0-9a-f\]+\\s+\\d+ \[rwx-\]{5}\\s+\[0-9a-f\]+\\s+\[0-9a-f\]{3}:\[0-9a-f\]{5}\\s+\\S+\[^\\r\]+\\s*\)+" +-set pmap_ext_items "\(\[0-9a-f\]+\\s+\\d+\\s+\\d+\\s+\\d+ \[rwx-\]{5}\\s+\\S+\[^\\r\]+\\s*\)+" ++set pmap_std_items "\(\[0-9a-f\]+\\s+\\d+K \[rwxp-\]{5}\\s+\\S+\[^\\r\]+\\s*\)+" ++set pmap_device_items "\(\[0-9a-f\]+\\s+\\d+ \[rwxp-\]{5}\\s+\[0-9a-f\]+\\s+\[0-9a-f\]{3}:\[0-9a-f\]{5}\\s+\\S+\[^\\r\]+\\s*\)+" ++set pmap_ext_items "\(\[0-9a-f\]+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+ \[rwxp-\]{5}\\s+\\S+\[^\\r\]+\\s*\)+" + + set pmap_std_footer "total\\s+\\d+K\\s*\$" + set pmap_device_footer "mapped:\\s+\\d+K\\s+writeable\/private:\\s+\\d+K\\s+shared:\\s+\\d+K\\s*\$" +-set pmap_ext_footer "\[ -\]+\\s+total kB\\s+\\d+(\\s+\[\\d-\]+){2,3}\\s*\$" ++set pmap_ext_footer "total kB\\s+\\d+(\\s+\[\\d-\]+){4,5}\\s*\$" + + set test "pmap with no arguments" + spawn $pmap +@@ -26,17 +26,16 @@ expect_pass "$test" "Usage:\\s+\(lt-\)?p + + set test "pmap standard output" + spawn $pmap $mypid +-expect_table $test $pmap_std_header $pmap_std_items $pmap_std_footer ++expect_table $test $pmap_ext_header $pmap_ext_items $pmap_ext_footer + + set test "pmap standard output with quiet" + spawn $pmap -q $mypid +-expect_table $test $pmap_procname $pmap_std_items "\$" ++expect_table $test $pmap_procname $pmap_ext_items "\$" + + set test "pmap device output" + spawn $pmap -d $mypid + expect_table $test $pmap_device_header $pmap_device_items $pmap_device_footer + +- + set test "pmap device output quiet (dq)" + spawn $pmap -dq $mypid + expect_table $test $pmap_procname $pmap_device_items "\$" +@@ -47,7 +46,7 @@ expect_table $test $pmap_procname $pmap_ + + set test "pmap extended output" + spawn $pmap -x $mypid +-expect_table $test $pmap_ext_header $pmap_ext_items $pmap_ext_footer ++expect_table $test $pmap_std_header $pmap_std_items $pmap_std_footer + + # -X and -XX have no real format as its dependent on smaps + set test "pmap extra extended output" diff --git a/procps-ng-3.3.17-logind.patch b/procps-ng-3.3.17-logind.patch new file mode 100644 index 0000000..bed9e0f --- /dev/null +++ b/procps-ng-3.3.17-logind.patch @@ -0,0 +1,407 @@ +diff -ur procps-3.3.17/configure.ac procps-3.3.17-no-utmp/configure.ac +--- procps-3.3.17/configure.ac 2023-10-27 17:02:55.230522174 +0200 ++++ procps-3.3.17-no-utmp/configure.ac 2023-10-27 17:05:56.027565296 +0200 +@@ -214,6 +214,13 @@ + AS_IF([test "x$with_systemd" != "xno"], [ + PKG_CHECK_MODULES([SYSTEMD], [libsystemd]) + AC_DEFINE(WITH_SYSTEMD, 1, [enable systemd support]) ++ ++ # The functions needed to replace utmp with logind are only available ++ # with systemd v254 or later. ++ old_LIBS="$LIBS" ++ LIBS="$LIBS $SYSTEMD_LIBS" ++ AC_CHECK_FUNCS([sd_session_get_leader]) ++ LIBS="$old_LIBS" + ]) + AM_CONDITIONAL([WITH_SYSTEMD], [test x$with_systemd != xno]) + +diff -ur procps-3.3.17/proc/whattime.c procps-3.3.17-no-utmp/proc/whattime.c +--- procps-3.3.17/proc/whattime.c 2021-02-09 11:11:25.000000000 +0100 ++++ procps-3.3.17-no-utmp/proc/whattime.c 2023-10-27 17:05:56.027565296 +0200 +@@ -38,6 +38,15 @@ + #include "whattime.h" + #include "sysinfo.h" + ++#ifdef WITH_SYSTEMD ++#include ++#include ++#endif ++#ifdef WITH_ELOGIND ++#include ++#include ++#endif ++ + static char buf[256]; + static double av[3]; + +@@ -98,6 +107,11 @@ + /* count the number of users */ + + numuser = 0; ++#if defined(WITH_SYSTEMD) || defined(WITH_ELOGIND) ++ if (sd_booted() > 0) ++ numuser = sd_get_sessions(NULL); ++ else { ++#endif + setutent(); + while ((utmpstruct = getutent())) { + if ((utmpstruct->ut_type == USER_PROCESS) && +@@ -105,6 +119,10 @@ + numuser++; + } + endutent(); ++#if defined(WITH_SYSTEMD) || defined(WITH_ELOGIND) ++ } ++#endif ++ + + pos += sprintf(buf + pos, "%2d user%s, ", numuser, numuser == 1 ? "" : "s"); + +Datei procps-3.3.17/screen.620TQo/23075..f05 ist ein Socket, während Datei procps-3.3.17-no-utmp/screen.620TQo/23075..f05 ein Socket ist. +diff -ur procps-3.3.17/w.c procps-3.3.17-no-utmp/w.c +--- procps-3.3.17/w.c 2023-10-27 17:02:55.194521966 +0200 ++++ procps-3.3.17-no-utmp/w.c 2023-10-27 18:10:00.371042829 +0200 +@@ -56,11 +56,22 @@ + #include + #include + #ifdef HAVE_UTMPX_H +-# include ++#include ++#ifndef HAVE_UT_HOSTSIZE_IN_UTMPX ++#include ++#endif + #else + # include + #endif + #include ++#ifdef WITH_SYSTEMD ++# include ++# include ++#endif ++#ifdef WITH_ELOGIND ++# include ++# include ++#endif + + static int ignoreuser = 0; /* for '-u' */ + static int oldstyle = 0; /* for '-o' */ +@@ -72,12 +83,6 @@ + typedef struct utmp utmp_t; + #endif + +-#if !defined(UT_HOSTSIZE) || defined(__UT_HOSTSIZE) +-# define UT_HOSTSIZE __UT_HOSTSIZE +-# define UT_LINESIZE __UT_LINESIZE +-# define UT_NAMESIZE __UT_NAMESIZE +-#endif +- + #ifdef W_SHOWFROM + # define FROM_STRING "on" + #else +@@ -198,7 +203,25 @@ + + + /* This routine prints either the hostname or the IP address of the remote */ +-static void print_from(const utmp_t *restrict const u, const int ip_addresses, const int fromlen) { ++static void print_from( ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ const char *session, ++#endif ++ const utmp_t *restrict const u, const int ip_addresses, const int fromlen) { ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ if (session) { ++ char *host = NULL; ++ int r; ++ ++ r = sd_session_get_remote_host(session, &host); ++ if (r < 0 || host == NULL) ++ print_host("", 0, fromlen); ++ else { ++ print_host(host, strlen(host), fromlen == 0?strlen(host):fromlen); ++ free(host); ++ } ++ } else { ++#endif + char buf[fromlen + 1]; + char buf_ipv6[INET6_ADDRSTRLEN]; + int len; +@@ -243,6 +266,9 @@ + #else + print_host(u->ut_host, UT_HOSTSIZE, fromlen); + #endif ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ } ++#endif + } + + +@@ -341,7 +367,11 @@ + * the user for that login session is doing currently. This the + * essential core of 'w'. + */ +-static const proc_t *getproc(const utmp_t * restrict const u, ++static const proc_t *getproc( ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ const char *session, ++#endif ++ const utmp_t * restrict const u, + const char *restrict const tty, + unsigned long long *restrict const jcpu, + int *restrict const found_utpid) +@@ -351,9 +381,16 @@ + const proc_t *best = NULL; + const proc_t *secondbest = NULL; + unsigned uid = ~0U; ++ pid_t ut_pid = -1; + + *found_utpid = 0; + if (!ignoreuser) { ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ if (session) { ++ if (sd_session_get_uid(session, &uid) < 0) ++ return 0; ++ } else { ++#endif + char buf[UT_NAMESIZE + 1]; + /* pointer to static data */ + struct passwd *passwd_data; +@@ -364,12 +401,21 @@ + return NULL; + uid = passwd_data->pw_uid; + /* OK to have passwd_data go out of scope here */ ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ } ++#endif + } + line = tty_to_dev(tty); + *jcpu = 0; ++ if (u) ++ ut_pid = u->ut_pid; ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ else ++ sd_session_get_leader(session, &ut_pid); ++#endif + for (; *pptr; pptr++) { +- const proc_t *restrict const tmp = *pptr; +- if (unlikely(tmp->tgid == u->ut_pid)) { ++ const proc_t *restrict const tmp = *pptr; ++ if (unlikely(tmp->tgid == ut_pid)) { + *found_utpid = 1; + if (!best) + best = tmp; +@@ -393,7 +439,11 @@ + return best ? best : secondbest; + } + +-static void showinfo(utmp_t * u, int formtype, int maxcmd, int from, ++static void showinfo( ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ const char *session, const char *name, ++#endif ++ utmp_t * u, int formtype, int maxcmd, int from, + int userlen, int fromlen, const int ip_addresses) + { + unsigned long long jcpu; +@@ -402,14 +452,36 @@ + char uname[UT_NAMESIZE + 1] = "", tty[5 + UT_LINESIZE + 1] = "/dev/"; + const proc_t *best; + ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ if (session) { ++ char *sd_tty; ++ ++ if (sd_session_get_tty(session, &sd_tty) >= 0) { ++ for (i = 0; i < strlen (sd_tty); i++) ++ /* clean up tty if garbled */ ++ if (isalnum(sd_tty[i]) || (sd_tty[i] == '/')) ++ tty[i + 5] = sd_tty[i]; ++ else ++ tty[i + 5] = '\0'; ++ free(sd_tty); ++ } ++ } else { ++#endif + for (i = 0; i < UT_LINESIZE; i++) + /* clean up tty if garbled */ + if (isalnum(u->ut_line[i]) || (u->ut_line[i] == '/')) + tty[i + 5] = u->ut_line[i]; + else + tty[i + 5] = '\0'; ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ } ++#endif + +- best = getproc(u, tty + 5, &jcpu, &ut_pid_found); ++ best = getproc( ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ session, ++#endif ++ u, tty + 5, &jcpu, &ut_pid_found); + + /* + * just skip if stale utmp entry (i.e. login proc doesn't +@@ -420,26 +492,56 @@ + if (!ut_pid_found) + return; + ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ if (name) ++ strncpy(uname, name, UT_NAMESIZE); ++ else ++#endif ++ strncpy(uname, u->ut_user, UT_NAMESIZE); + /* force NUL term for printf */ +- strncpy(uname, u->ut_user, UT_NAMESIZE); ++ uname[UT_NAMESIZE] = '\0'; + + if (formtype) { +- int utlnlen = 8; +- if (formtype > 1) { +- userlen = strnlen(uname, UT_NAMESIZE); +- fromlen = strnlen(u->ut_host, UT_HOSTSIZE); +- utlnlen = strnlen(u->ut_line, UT_LINESIZE); +- maxcmd = MAX_CMD_WIDTH; ++ int utlnlen = 8; ++ if (formtype > 1) { ++ userlen = strnlen(uname, UT_NAMESIZE); ++ if (u) { ++ fromlen = strnlen(u->ut_host, UT_HOSTSIZE); ++ utlnlen = strnlen(u->ut_line, UT_LINESIZE); ++ } else { ++ fromlen = 0; ++ utlnlen = strlen (tty+5); + } +- printf("%-*.*s%-*.*s", userlen + 1, userlen, uname, utlnlen + 1, utlnlen, u->ut_line); ++ maxcmd = MAX_CMD_WIDTH; ++ } ++ printf("%-*.*s%-*.*s", userlen + 1, userlen, uname, utlnlen + 1, utlnlen, tty+5); ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ if (session) { ++ uint64_t ltime; ++ + if (from) +- print_from(u, ip_addresses, fromlen); ++ print_from(session, NULL, ip_addresses, fromlen); ++ ++ sd_session_get_start_time(session, <ime); ++ print_logintime(ltime/((uint64_t) 1000000ULL), stdout); ++ } else { ++#endif ++ if (from) ++ print_from( ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ NULL, ++#endif ++ u, ip_addresses, fromlen); ++ + #ifdef HAVE_UTMPX_H + print_logintime(u->ut_tv.tv_sec, stdout); + #else + print_logintime(u->ut_time, stdout); + #endif +- if (*u->ut_line == ':') ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ } ++#endif ++ if (u && *u->ut_line == ':') + /* idle unknown for xdm logins */ + printf(" ?xdm? "); + else +@@ -454,11 +556,15 @@ + } else + printf(" ? "); + } else { +- printf("%-*.*s%-9.8s", userlen + 1, userlen, u->ut_user, +- u->ut_line); ++ printf("%-*.*s%-9.8s", userlen + 1, userlen, uname, ++ tty+5); + if (from) +- print_from(u, ip_addresses, fromlen); +- if (*u->ut_line == ':') ++ print_from( ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ session, ++#endif ++ u, ip_addresses, fromlen); ++ if (u && *u->ut_line == ':') + /* idle unknown for xdm logins */ + printf(" ?xdm? "); + else +@@ -635,7 +741,40 @@ + else + printf(_(" IDLE WHAT\n")); + } +- ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ if (sd_booted() > 0) { ++ char **sessions_list; ++ int sessions; ++ int i; ++ ++ sessions = sd_get_sessions (&sessions_list); ++ if (sessions < 0 && sessions != -ENOENT) ++ error(EXIT_FAILURE, -sessions, _("error getting sessions")); ++ ++ if (sessions >= 0) { ++ for (int i = 0; i < sessions; i++) { ++ char *name; ++ int r; ++ ++ if ((r = sd_session_get_username(sessions_list[i], &name)) < 0) ++ error(EXIT_FAILURE, -r, _("get user name failed")); ++ ++ if (user) { ++ if (!strcmp(name, user)) ++ showinfo(sessions_list[i], name, NULL, longform, ++ maxcmd, from, userlen, fromlen, ++ ip_addresses); ++ } else { ++ showinfo(sessions_list[i], name, NULL, longform, maxcmd, ++ from, userlen, fromlen, ip_addresses); ++ } ++ free(name); ++ free(sessions_list[i]); ++ } ++ free(sessions_list); ++ } ++ } else { ++#endif + #ifdef HAVE_UTMPX_H + setutxent(); + #else +@@ -654,7 +793,11 @@ + if (u->ut_type != USER_PROCESS) + continue; + if (!strncmp(u->ut_user, user, UT_NAMESIZE)) +- showinfo(u, longform, maxcmd, from, userlen, ++ showinfo( ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ NULL, NULL, ++#endif ++ u, longform, maxcmd, from, userlen, + fromlen, ip_addresses); + } + } else { +@@ -669,7 +812,11 @@ + if (u->ut_type != USER_PROCESS) + continue; + if (*u->ut_user) +- showinfo(u, longform, maxcmd, from, userlen, ++ showinfo( ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ NULL, NULL, ++#endif ++ u, longform, maxcmd, from, userlen, + fromlen, ip_addresses); + } + } +@@ -678,6 +825,9 @@ + #else + endutent(); + #endif ++#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER) ++ } ++#endif + + return EXIT_SUCCESS; + } diff --git a/procps-ng-3.3.17.tar.xz b/procps-ng-3.3.17.tar.xz new file mode 100644 index 0000000..be1edc5 --- /dev/null +++ b/procps-ng-3.3.17.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4518b3e7aafd34ec07d0063d250fd474999b20b200218c3ae56f5d2113f141b4 +size 1008428 diff --git a/procps-ng-3.3.8-accuracy.dif b/procps-ng-3.3.8-accuracy.dif new file mode 100644 index 0000000..352b730 --- /dev/null +++ b/procps-ng-3.3.8-accuracy.dif @@ -0,0 +1,99 @@ +--- + ps/common.h | 1 + + ps/global.c | 5 ++++- + ps/output.c | 19 ++++++++++--------- + 3 files changed, 15 insertions(+), 10 deletions(-) + +--- ps/common.h ++++ ps/common.h 2018-04-04 11:14:33.915688098 +0000 +@@ -303,6 +303,7 @@ extern int running_only; + extern int screen_cols; + extern int screen_rows; + extern time_t seconds_since_boot; ++extern unsigned long long jiffies_since_boot; + extern selection_node *selection_list; + extern unsigned simple_select; + extern sort_node *sort_list; +--- ps/global.c ++++ ps/global.c 2018-04-04 11:14:33.915688098 +0000 +@@ -78,6 +78,7 @@ int prefer_bsd_defaults = -1 + int screen_cols = -1; + int screen_rows = -1; + time_t seconds_since_boot = -1; ++unsigned long long jiffies_since_boot = -1; + selection_node *selection_list = (selection_node *)0xdeadbeef; + unsigned simple_select = 0xffffffff; + sort_node *sort_list = (sort_node *)0xdeadbeef; /* ready-to-use sort list */ +@@ -361,6 +362,7 @@ static const char *set_personality(void) + /************ Call this to reinitialize everything ***************/ + void reset_global(void){ + static proc_t p; ++ double uptime_secs; + reset_selection_list(); + look_up_our_self(&p); + set_screen_size(); +@@ -383,7 +385,8 @@ void reset_global(void){ + negate_selection = 0; + page_size = getpagesize(); + running_only = 0; +- seconds_since_boot = uptime(0,0); ++ seconds_since_boot = uptime(&uptime_secs,0); ++ jiffies_since_boot = ((long double)uptime_secs * Hertz); + selection_list = NULL; + simple_select = 0; + sort_list = NULL; +--- ps/output.c ++++ ps/output.c 2018-04-04 11:14:33.915688098 +0000 +@@ -134,6 +134,7 @@ static int sr_ ## NAME (const proc_t* P, + #define cook_time(P) (P->utime + P->stime) / Hertz + + #define cook_etime(P) (((unsigned long long)seconds_since_boot >= (P->start_time / Hertz)) ? ((unsigned long long)seconds_since_boot - (P->start_time / Hertz)) : 0) ++#define cook_jtime(P) (((unsigned long long)jiffies_since_boot >= (P->start_time)) ? ((unsigned long long)jiffies_since_boot - (P->start_time)) : 0) + + #define CMP_COOKED_TIME(NAME) \ + static int sr_ ## NAME (const proc_t* P, const proc_t* Q) { \ +@@ -507,11 +508,11 @@ static int pr_etimes(char *restrict cons + static int pr_c(char *restrict const outbuf, const proc_t *restrict const pp){ + unsigned long long total_time; /* jiffies used by this process */ + unsigned pcpu = 0; /* scaled %cpu, 99 means 99% */ +- unsigned long long seconds; /* seconds of process life */ ++ unsigned long long jiffies; /* jiffies of process life */ + total_time = pp->utime + pp->stime; + if(include_dead_children) total_time += (pp->cutime + pp->cstime); +- seconds = cook_etime(pp); +- if(seconds) pcpu = (total_time * 100ULL / Hertz) / seconds; ++ jiffies = cook_jtime(pp); ++ if(jiffies) pcpu = (total_time * 100ULL) / jiffies; + if (pcpu > 99U) pcpu = 99U; + return snprintf(outbuf, COLWID, "%2u", pcpu); + } +@@ -519,11 +520,11 @@ static int pr_c(char *restrict const out + static int pr_pcpu(char *restrict const outbuf, const proc_t *restrict const pp){ + unsigned long long total_time; /* jiffies used by this process */ + unsigned pcpu = 0; /* scaled %cpu, 999 means 99.9% */ +- unsigned long long seconds; /* seconds of process life */ ++ unsigned long long jiffies; /* jiffies of process life */ + total_time = pp->utime + pp->stime; + if(include_dead_children) total_time += (pp->cutime + pp->cstime); +- seconds = cook_etime(pp); +- if(seconds) pcpu = (total_time * 1000ULL / Hertz) / seconds; ++ jiffies = cook_jtime(pp); ++ if(jiffies) pcpu = (total_time * 1000ULL) / jiffies; + if (pcpu > 999U) + return snprintf(outbuf, COLWID, "%u", pcpu/10U); + return snprintf(outbuf, COLWID, "%u.%u", pcpu/10U, pcpu%10U); +@@ -532,11 +533,11 @@ static int pr_pcpu(char *restrict const + static int pr_cp(char *restrict const outbuf, const proc_t *restrict const pp){ + unsigned long long total_time; /* jiffies used by this process */ + unsigned pcpu = 0; /* scaled %cpu, 999 means 99.9% */ +- unsigned long long seconds; /* seconds of process life */ ++ unsigned long long jiffies; /* jiffies of process life */ + total_time = pp->utime + pp->stime; + if(include_dead_children) total_time += (pp->cutime + pp->cstime); +- seconds = cook_etime(pp); +- if(seconds) pcpu = (total_time * 1000ULL / Hertz) / seconds; ++ jiffies = cook_jtime(pp); ++ if(jiffies) pcpu = (total_time * 1000ULL) / jiffies; + if (pcpu > 999U) pcpu = 999U; + return snprintf(outbuf, COLWID, "%3u", pcpu); + } diff --git a/procps-ng-3.3.8-bnc634840.patch b/procps-ng-3.3.8-bnc634840.patch new file mode 100644 index 0000000..8420855 --- /dev/null +++ b/procps-ng-3.3.8-bnc634840.patch @@ -0,0 +1,29 @@ +Do not setup SIGHUP signal handler if we are in the batch mode + +Top enables a signal handler for the SIGHUP signal (loss of terminal). While +this makes sense for top's default interactive mode, it doesn't make any sense +for batch mode. If you run top in nohup just to collect data over time and +disconnect top finishes which is not what one would expect. +Index: procps-3.2.8/top.c + +--- + top/top.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +--- top/top.c ++++ top/top.c 2018-04-04 11:33:59.278280201 +0000 +@@ -3691,7 +3691,13 @@ static void before (char *me) { + sa.sa_flags = 0; + for (i = SIGRTMAX; i; i--) { + switch (i) { +- case SIGALRM: case SIGHUP: case SIGINT: ++ case SIGHUP: ++ if (Batch) ++ sa.sa_handler = SIG_IGN; ++ else ++ sa.sa_handler = sig_endpgm; ++ break; ++ case SIGALRM: case SIGINT: + case SIGPIPE: case SIGQUIT: case SIGTERM: + case SIGUSR1: case SIGUSR2: + sa.sa_handler = sig_endpgm; diff --git a/procps-ng-3.3.8-ignore-scan_unevictable_pages.patch b/procps-ng-3.3.8-ignore-scan_unevictable_pages.patch new file mode 100644 index 0000000..8f64330 --- /dev/null +++ b/procps-ng-3.3.8-ignore-scan_unevictable_pages.patch @@ -0,0 +1,23 @@ +From: Takashi Iwai +Subject: Ignore scan_unevictable_pages entry in sysctl, too +References: bnc#868888 + +scan_unevictable_pages sysctl is deprecated in the recent kernel. +Ignore it for avoiding the kernel warning message. + +Signed-off-by: Takashi Iwai + +--- + sysctl.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sysctl.c ++++ b/sysctl.c +@@ -59,6 +59,7 @@ static const char DEFAULT_PRELOAD[] = "/ + static const char *DEPRECATED[] = { + "base_reachable_time", + "retrans_time", ++ "scan_unevictable_pages", + "" + }; + static bool IgnoreDeprecated; diff --git a/procps-ng-3.3.8-petabytes.patch b/procps-ng-3.3.8-petabytes.patch new file mode 100644 index 0000000..de342cd --- /dev/null +++ b/procps-ng-3.3.8-petabytes.patch @@ -0,0 +1,27 @@ +--- + top/top.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- top/top.c ++++ top/top.c 2018-04-04 11:49:56.472660056 +0000 +@@ -1626,9 +1626,9 @@ static inline const char *make_str_utf8 + static const char *scale_mem (int target, unsigned long num, int width, int justr) { + // SK_Kb SK_Mb SK_Gb SK_Tb SK_Pb SK_Eb + #ifdef BOOST_MEMORY +- static const char *fmttab[] = { "%.0f", "%#.1f%c", "%#.3f%c", "%#.3f%c", "%#.3f%c", NULL }; ++ static const char *fmttab[] = { "%.0f", "%#.1f%c", "%#.3f%c", "%#.3f%c", "%#.3f%c", "%#.3f%c", NULL }; + #else +- static const char *fmttab[] = { "%.0f", "%.1f%c", "%.1f%c", "%.1f%c", "%.1f%c", NULL }; ++ static const char *fmttab[] = { "%.0f", "%.1f%c", "%.1f%c", "%.1f%c", "%.1f%c", "%.1f%c", NULL }; + #endif + static char buf[SMLBUFSIZ]; + float scaled_num; +@@ -1640,7 +1640,7 @@ static const char *scale_mem (int target + goto end_justifies; + + scaled_num = num; +- for (i = SK_Kb, psfx = Scaled_sfxtab; i < SK_Eb; psfx++, i++) { ++ for (i = SK_Kb, psfx = Scaled_sfxtab; i <= SK_Eb; psfx++, i++) { + if (i >= target + && (width >= snprintf(buf, sizeof(buf), fmttab[i], scaled_num, *psfx))) + goto end_justifies; diff --git a/procps-ng-3.3.8-readeof.patch b/procps-ng-3.3.8-readeof.patch new file mode 100644 index 0000000..ccdaf20 --- /dev/null +++ b/procps-ng-3.3.8-readeof.patch @@ -0,0 +1,66 @@ +--- + proc/readproc.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +--- proc/readproc.c ++++ proc/readproc.c 2018-06-05 08:54:06.408030693 +0000 +@@ -675,7 +675,7 @@ static int file2str(const char *director + else ub->buf = xcalloc((ub->siz = buffGRW)); + len = snprintf(path, sizeof path, "%s/%s", directory, what); + if (len <= 0 || (size_t)len >= sizeof path) return -1; +- if (-1 == (fd = open(path, O_RDONLY, 0))) return -1; ++ if (-1 == (fd = open(path, O_RDONLY, O_NOATIME))) return -1; + while (0 < (num = read(fd, ub->buf + tot_read, ub->siz - tot_read))) { + tot_read += num; + if (tot_read < ub->siz) break; +@@ -695,25 +695,25 @@ 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, *strp; +- int fd, tot = 0, n, c, end_of_file = 0; +- int align; ++ int fd, c, end_of_file = 0; ++ ssize_t n, align, tot = 0; + + const int len = snprintf(buf, sizeof buf, "%s/%s", directory, what); + if(len <= 0 || (size_t)len >= sizeof buf) return NULL; +- 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)) ++ if (n < sizeof buf - 1) + end_of_file = 1; +- if (n <= 0 && tot <= 0) { /* nothing read now, nothing read before */ ++ if (n <= 0 && tot <= 0) /* nothing read now, nothing read before */ + break; /* process died between our open and read */ +- } ++ + /* ARG_LEN is our guesstimated median length of a command-line argument + or environment variable (the minimum is 1, the maximum is 131072) */ + #define ARG_LEN 64 +- if (tot >= INT_MAX / (ARG_LEN + (int)sizeof(char*)) * ARG_LEN - n) { ++ if (tot >= INT_MAX / (ARG_LEN + sizeof(char*)) * ARG_LEN - n) { + end_of_file = 1; /* integer overflow: null-terminate and break */ + n = 0; /* but tot > 0 */ + } +@@ -741,7 +741,7 @@ static char** file2strvec(const char* di + c = sizeof(char*); /* one extra for NULL term */ + for (p = rbuf; p < endbuf; p++) { + if (!*p || *p == '\n') { +- if (c >= INT_MAX - (tot + (int)sizeof(char*) + align)) break; ++ if (c >= INT_MAX - (tot + sizeof(char*) + align)) break; + c += sizeof(char*); + } + if (*p == '\n') +@@ -753,7 +753,7 @@ static char** file2strvec(const char* di + q = ret = (char**) (endbuf+align); /* ==> free(*ret) to dealloc */ + for (strp = p = rbuf; p < endbuf; p++) { + if (!*p) { /* NUL char implies that */ +- if (c < 2 * (int)sizeof(char*)) break; ++ if (c < 2 * sizeof(char*)) break; + c -= sizeof(char*); + *q++ = strp; /* point ptrs to the strings */ + strp = p+1; /* next string -> next char */ diff --git a/procps-ng-3.3.8-tinfo.dif b/procps-ng-3.3.8-tinfo.dif new file mode 100644 index 0000000..ed19e57 --- /dev/null +++ b/procps-ng-3.3.8-tinfo.dif @@ -0,0 +1,35 @@ +--- + Makefile.am | 2 +- + configure.ac | 8 ++++++++ + 2 files changed, 9 insertions(+), 1 deletion(-) + +--- Makefile.am ++++ Makefile.am 2018-04-04 12:28:14.937957527 +0000 +@@ -171,7 +171,7 @@ else + slabtop_LDADD = $(LDADD) @NCURSES_LIBS@ + endif + +-top_top_LDADD = $(LDADD) @NCURSES_LIBS@ $(DL_LIB) ++top_top_LDADD = $(LDADD) @TOP_NCURSES_LIBS@ $(DL_LIB) + endif + + if BUILD_SKILL +--- configure.ac ++++ configure.ac 2018-04-04 12:29:23.364676155 +0000 +@@ -194,8 +194,16 @@ else + else + WATCH_NCURSES_LIBS="$NCURSES_LIBS" + fi ++ cf_tinfo="" ++ AC_CHECK_LIB(tinfo, setupterm, [cf_tinfo="tinfo"]) ++ if test x$cf_tinfo = xtinfo ; then ++ TOP_NCURSES_LIBS="-ltinfo" ++ else ++ TOP_NCURSES_LIBS="$NCURSES_LIBS" ++ fi + fi + AC_SUBST([NCURSES_LIBS]) ++AC_SUBST([TOP_NCURSES_LIBS]) + AC_SUBST([WATCH_NCURSES_LIBS]) + AC_SUBST([WATCH_NCURSES_CFLAGS]) + diff --git a/procps-ng-3.3.8-vmstat-terabyte.dif b/procps-ng-3.3.8-vmstat-terabyte.dif new file mode 100644 index 0000000..d2f8212 --- /dev/null +++ b/procps-ng-3.3.8-vmstat-terabyte.dif @@ -0,0 +1,17 @@ +--- + vmstat.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- vmstat.c ++++ vmstat.c 2016-07-11 13:18:04.993371059 +0000 +@@ -273,8 +273,8 @@ static void new_header(void) + + static unsigned long unitConvert(unsigned long size) + { +- float cvSize; +- cvSize = (float)size / dataUnit * ((statMode == SLABSTAT) ? 1 : 1024); ++ long double cvSize; ++ cvSize = (long double)size / dataUnit * ((statMode == SLABSTAT) ? 1 : 1024); + return ((unsigned long)cvSize); + } + diff --git a/procps-ng-3.3.9-w-notruncate.diff b/procps-ng-3.3.9-w-notruncate.diff new file mode 100644 index 0000000..d78b760 --- /dev/null +++ b/procps-ng-3.3.9-w-notruncate.diff @@ -0,0 +1,80 @@ +--- + w.1 | 3 +++ + w.c | 19 ++++++++++++++++--- + 2 files changed, 19 insertions(+), 3 deletions(-) + +--- w.1 ++++ w.1 2023-08-18 08:21:51.764340794 +0000 +@@ -40,6 +40,9 @@ and a + \fB\-s\fR, \fB\-\-short\fR + Use the short format. Don't print the login time, JCPU or PCPU times. + .TP ++\fB\-n\fR, \fB\-\-no\-truncat\fR ++Do not truncate the output format. This option might become renamed in future versions. ++.TP + \fB\-f\fR, \fB\-\-from\fR + Toggle printing the + .B from +--- w.c ++++ w.c 2023-08-18 08:37:32.143482035 +0000 +@@ -394,7 +394,7 @@ static const proc_t *getproc(const utmp_ + } + + static void showinfo(utmp_t * u, int formtype, int maxcmd, int from, +- const int userlen, const int fromlen, const int ip_addresses) ++ int userlen, int fromlen, const int ip_addresses) + { + unsigned long long jcpu; + int ut_pid_found; +@@ -424,7 +424,14 @@ static void showinfo(utmp_t * u, int for + strncpy(uname, u->ut_user, UT_NAMESIZE); + + if (formtype) { +- printf("%-*.*s%-9.8s", userlen + 1, userlen, uname, u->ut_line); ++ int utlnlen = 8; ++ if (formtype > 1) { ++ userlen = strnlen(uname, UT_NAMESIZE); ++ fromlen = strnlen(u->ut_host, UT_HOSTSIZE); ++ utlnlen = strnlen(u->ut_line, UT_LINESIZE); ++ maxcmd = MAX_CMD_WIDTH; ++ } ++ printf("%-*.*s%-*.*s", userlen + 1, userlen, uname, utlnlen + 1, utlnlen, u->ut_line); + if (from) + print_from(u, ip_addresses, fromlen); + #ifdef HAVE_UTMPX_H +@@ -478,6 +485,7 @@ static void __attribute__ ((__noreturn__ + fputs(_(" -h, --no-header do not print header\n"),out); + fputs(_(" -u, --no-current ignore current process username\n"),out); + fputs(_(" -s, --short short format\n"),out); ++ fputs(_(" -n, --no-truncat non truncated listing (large)\n"),out); + fputs(_(" -f, --from show remote hostname field\n"),out); + fputs(_(" -o, --old-style old style output\n"),out); + fputs(_(" -i, --ip-addr display IP address instead of hostname (if possible)\n"), out); +@@ -514,6 +522,7 @@ int main(int argc, char **argv) + {"no-header", no_argument, NULL, 'h'}, + {"no-current", no_argument, NULL, 'u'}, + {"short", no_argument, NULL, 's'}, ++ {"no-truncat", no_argument, NULL, 'n'}, + {"from", no_argument, NULL, 'f'}, + {"old-style", no_argument, NULL, 'o'}, + {"ip-addr", no_argument, NULL, 'i'}, +@@ -535,7 +544,7 @@ int main(int argc, char **argv) + #endif + + while ((ch = +- getopt_long(argc, argv, "husfoVi", longopts, NULL)) != -1) ++ getopt_long(argc, argv, "husnfoVi", longopts, NULL)) != -1) + switch (ch) { + case 'h': + header = 0; +@@ -546,6 +555,10 @@ int main(int argc, char **argv) + case 's': + longform = 0; + break; ++ case 'n': ++ longform = 2; ++ header = 0; ++ break; + case 'f': + from = !from; + break; diff --git a/procps-ng-3.3.9-watch.patch b/procps-ng-3.3.9-watch.patch new file mode 100644 index 0000000..b3ea05d --- /dev/null +++ b/procps-ng-3.3.9-watch.patch @@ -0,0 +1,14 @@ +--- + proc/libprocps.sym | 1 + + 1 file changed, 1 insertion(+) + +--- proc/libprocps.sym ++++ proc/libprocps.sym 2016-07-11 12:45:32.463107052 +0000 +@@ -13,6 +13,7 @@ global: + get_ns_id; + get_ns_name; + get_pid_digits; ++ get_proc_stats; + get_slabinfo; + getbtime; + getdiskstat; diff --git a/procps-rpmlintrc b/procps-rpmlintrc new file mode 100644 index 0000000..0bb1e23 --- /dev/null +++ b/procps-rpmlintrc @@ -0,0 +1 @@ +addFilter(".*W:.*shared-lib-calls-exit.*libprocps\.so.*") diff --git a/procps-v3.3.3-columns.dif b/procps-v3.3.3-columns.dif new file mode 100644 index 0000000..a4df3c0 --- /dev/null +++ b/procps-v3.3.3-columns.dif @@ -0,0 +1,61 @@ +--- + ps/global.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +--- ps/global.c ++++ ps/global.c 2016-07-11 13:04:59.600533764 +0000 +@@ -147,8 +147,11 @@ static void set_screen_size(void){ + screen_cols = ws.ws_col; // hmmm, NetBSD subtracts 1 + screen_rows = ws.ws_row; + +- // TODO: delete this line +- if(!isatty(STDOUT_FILENO)) screen_cols = OUTBUF_SIZE; ++ if(!isatty(STDOUT_FILENO)){ ++ screen_cols = OUTBUF_SIZE; ++ screen_rows = OUTBUF_SIZE; ++ if (personality&PER_UNIX_COLS) return; // SysV/UNIX98 based personality ++ } + + columns = getenv("COLUMNS"); + if(columns && *columns){ +@@ -290,6 +293,7 @@ static const char *set_personality(void) + return NULL; + + case_aix: ++ personality |= PER_UNIX_COLS; + bsd_j_format = "FB_j"; + bsd_l_format = "FB_l"; + /* bsd_s_format not used */ +@@ -317,6 +321,7 @@ static const char *set_personality(void) + + case_sunos4: + personality = PER_NO_DEFAULT_g; ++ personality |= PER_UNIX_COLS; + prefer_bsd_defaults = 1; + bsd_j_format = "FB_j"; + bsd_l_format = "FB_l"; +@@ -342,12 +347,14 @@ static const char *set_personality(void) + case_hp: + case_hpux: + personality = PER_HPUX_x; ++ personality |= PER_UNIX_COLS; + return NULL; + + case_svr4: + case_sysv: + case_sco: + personality = PER_SVR4_x; ++ personality |= PER_UNIX_COLS; + return NULL; + + case_posix: +@@ -365,8 +372,8 @@ void reset_global(void){ + double uptime_secs; + reset_selection_list(); + look_up_our_self(&p); +- set_screen_size(); + set_personality(); ++ set_screen_size(); + + all_processes = 0; + bsd_c_option = 0; diff --git a/procps-v3.3.3-ia64.diff b/procps-v3.3.3-ia64.diff new file mode 100644 index 0000000..8d1eb4c --- /dev/null +++ b/procps-v3.3.3-ia64.diff @@ -0,0 +1,13 @@ +--- proc/devname.c ++++ proc/devname.c 2012-06-01 13:35:43.452010553 +0000 +@@ -53,6 +53,10 @@ + #define minor <-- do not use --> + #endif + ++#ifndef PAGE_SIZE ++# define PAGE_SIZE (sysconf(_SC_PAGESIZE)) ++#endif ++ + typedef struct tty_map_node { + struct tty_map_node *next; + unsigned short devfs_type; // bool diff --git a/procps-v3.3.3-pwdx.patch b/procps-v3.3.3-pwdx.patch new file mode 100644 index 0000000..00b39e8 --- /dev/null +++ b/procps-v3.3.3-pwdx.patch @@ -0,0 +1,14 @@ +--- + pwdx.c | 1 + + 1 file changed, 1 insertion(+) + +--- pwdx.c ++++ pwdx.c 2016-07-11 13:17:16.154313659 +0000 +@@ -109,6 +109,7 @@ int main(int argc, char *argv[]) + buflen = 10 + strlen(argv[i]) + 1; + buf = xmalloc(buflen); + ++ errno = 0; + if (check_pid_argument(argv[i])) + xerrx(EXIT_FAILURE, _("invalid process id: %s"), + argv[i]); diff --git a/procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff b/procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff new file mode 100644 index 0000000..b9ef207 --- /dev/null +++ b/procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff @@ -0,0 +1,51 @@ +--- + sysctl.8 | 2 ++ + sysctl.c | 12 ++++++++++++ + 2 files changed, 14 insertions(+) + +--- sysctl.8 ++++ sysctl.8 2021-02-10 10:05:27.781748090 +0000 +@@ -81,6 +81,8 @@ directories in the following list in giv + Once a file of a given filename is loaded, any file of the same name + in subsequent directories is ignored. + .br ++/boot/sysctl.conf- ++.br + /etc/sysctl.d/*.conf + .br + /run/sysctl.d/*.conf +--- sysctl.c ++++ sysctl.c 2021-02-10 10:04:25.290952318 +0000 +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + #include + + #include "c.h" +@@ -621,6 +622,7 @@ static int sortpairs(const void *A, cons + static int PreloadSystem(void) + { + unsigned di, i; ++ struct utsname uts; + const char *dirs[] = { + "/etc/sysctl.d", + "/run/sysctl.d", +@@ -685,6 +687,16 @@ static int PreloadSystem(void) + } + qsort(cfgs, ncfgs, sizeof(struct cfg *), sortpairs); + ++ if (uname(&uts) == 0) { ++ char buf[PATH_MAX]; ++ snprintf(buf, sizeof(buf), "/boot/sysctl.conf-%s", uts.release); ++ if (access(buf, R_OK) == 0) { ++ if (!Quiet) ++ printf("* Applying %s ...\n", buf); ++ Preload(buf); ++ } ++ } ++ + for (i = 0; i < ncfgs; ++i) { + if (!Quiet) + printf(_("* Applying %s ...\n"), cfgs[i]->value); diff --git a/procps.changes b/procps.changes new file mode 100644 index 0000000..4f1a738 --- /dev/null +++ b/procps.changes @@ -0,0 +1,2227 @@ +------------------------------------------------------------------- +Thu Dec 14 13:26:05 UTC 2023 - Thorsten Kukuk + +- procps-3.3.17-ignore-sysctl_conf.patch: ignore dangling symlink + to missing /etc/sysctl.conf file [bsc#1217990] + +------------------------------------------------------------------- +Mon Oct 30 07:03:50 UTC 2023 - Thorsten Kukuk + +- procps-ng-3.3.17-logind.patch: Fix crash of "w -s -h" + +------------------------------------------------------------------- +Fri Aug 18 09:08:36 UTC 2023 - Dr. Werner Fink + +- Modify patches + * procps-ng-3.3.9-w-notruncate.diff + * procps-ng-3.3.17-logind.patch + to real to not truncate output of w with option -n + +------------------------------------------------------------------- +Wed Aug 16 13:50:25 UTC 2023 - Thorsten Kukuk + +- procps-ng-3.3.17-logind.patch: Backport from 4.x git, prefer + logind over utmp (jsc#PED-3144) + +------------------------------------------------------------------- +Tue Aug 15 12:24:00 UTC 2023 - Dr. Werner Fink + +- Add patch CVE-2023-4016.patch + * CVE-2023-4016: ps buffer overflow (bsc#1214290) + +------------------------------------------------------------------- +Tue Dec 27 13:14:52 UTC 2022 - Ludwig Nussel + +- Replace transitional %usrmerged macro with regular version check (boo#1206798) + +------------------------------------------------------------------- +Thu Dec 15 09:45:46 UTC 2022 - Dr. Werner Fink + +- Extend patch procps-3.3.17-library-bsc1181475.patch (bsc#1206412) +- Make sure that correct library version is installed (bsc#1206412) + +------------------------------------------------------------------- +Thu Jun 23 11:28:42 UTC 2022 - Dr. Werner Fink + +- Some older products do not know about /usr/share/man/uk + +------------------------------------------------------------------- +Wed Jun 22 12:12:35 UTC 2022 - Dr. Werner Fink + +- Add the patches + * procps-3.3.17-library-bsc1181475.patch + * procps-3.3.17-top-bsc1181475.patch + which are backports of current newlib tree to solve bug bsc#1181475 + * 'free' command reports misleading "used" value + +------------------------------------------------------------------- +Fri Feb 4 09:21:59 UTC 2022 - Dr. Werner Fink + +- Add patch bsc1195468-23da4f40.patch to fix bsc#1195468 that is + ignore SIGURG + +------------------------------------------------------------------- +Thu Jan 20 13:17:34 UTC 2022 - Dr. Werner Fink + +- Correct used URLs + +------------------------------------------------------------------- +Fri Jul 2 13:24:08 UTC 2021 - Dr. Werner Fink + +- Skip test suite on emulated riscv64 systems as the qemu process + is unexpected on the command lines of processes + +------------------------------------------------------------------- +Wed Mar 31 10:18:10 UTC 2021 - Dr. Werner Fink + +- Add upstream patch procps-3.3.17-bsc1181976.patch based on + commit 3dd1661a to fix bsc#1181976 that is change descripton + of psr, which is for 39th field of /proc/[pid]/stat + +------------------------------------------------------------------- +Wed Mar 10 21:34:06 UTC 2021 - Antoine Belvire + +- Don't install translated man pages for non-installed binaries + (uptime, kill). + +------------------------------------------------------------------- +Mon Feb 22 18:57:37 UTC 2021 - Antoine Belvire + +- Remove /usr/share/man/uk dir to file list for lang sub package: + It's now provided by filesystem. + +------------------------------------------------------------------- +Thu Feb 11 08:46:36 UTC 2021 - Dr. Werner Fink + +- Add /usr/share/man/uk dir to file list for lang sub package + +------------------------------------------------------------------- +Wed Feb 10 17:32:06 UTC 2021 - Antoine Belvire + +- Fix directory for Ukrainian man pages translations. +- Move localized man pages to lang package. +- Remove obsolete conditionals. +- Remove obsolete --enable-oomem option. +- Run spec-cleaner. + +------------------------------------------------------------------- +Wed Feb 10 10:09:35 UTC 2021 - Dr. Werner Fink + +- Update to procps-ng-3.3.17 + * library: Incremented to 8:3:0 + (no removals or additions, internal changes only) + * all: properly handle utf8 cmdline translations issue #176 + * kill: Pass int to signalled process merge #32 + * pgrep: Pass int to signalled process merge #32 + * pgrep: Check sanity of SG_ARG_MAX issue #152 + * pgrep: Add older than selection merge #79 + * pidof: Quiet mode merge #83 + * pidof: show worker threads Redhat #1803640 + * ps.1: Mention stime alias issue #164 + * ps: check also match on truncated 16 char comm names + * ps: Add exe output option Redhat #1399206 + * ps: A lot more sorting available merge #99 + * pwait: New command waits for a process merge #97 + * sysctl: Match systemd directory order Debian #950788 + * sysctl: Document directory order Debian #951550 + * top: ensure config file backward compatibility Debian #951335 + * top: add command line 'e' for symmetry with 'E' issue #165 + * top: add '4' toggle for two abreast cpu display issue #172 + * top: add '!' toggle for combining multiple cpus + * top: fix potential SEGV involving -p switch merge #114 + * vmstat: Wide mode gives wider proc columns merge #48 + * watch: Add environment variable for interval merge #62 + * watch: Add no linewrap option issue #182 + * watch: Support more colors merge #106,#109 + * free,uptime,slabtop: complain about extra ops issue #181 +- Remove now obsolete upstream patches + * procps-check-sanity-of-SC_ARG_MAX.patch + * procps-ng-3e1c00d0.patch +- Port patches + * procps-ng-3.3.10-integer-overflow.patch + * procps-ng-3.3.10-large_pcpu.patch + * procps-ng-3.3.8-accuracy.dif + * procps-ng-3.3.8-bnc634840.patch + * procps-ng-3.3.8-petabytes.patch + * procps-ng-3.3.8-tinfo.dif + * procps-ng-3.3.9-w-notruncate.diff + * procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff + +------------------------------------------------------------------- +Tue Feb 2 21:44:58 UTC 2021 - Antoine Belvire + +- Package translations in procps-lang. + +------------------------------------------------------------------- +Fri Oct 16 10:17:57 UTC 2020 - Ludwig Nussel + +- prepare usrmerge (boo#1029961) + +------------------------------------------------------------------- +Wed Oct 7 08:53:42 UTC 2020 - Martin Liška + +- Add upstream procps-check-sanity-of-SC_ARG_MAX.patch in order to fix + pgrep: cannot allocate 4611686018427387903 bytes when ulimit -s is unlimited. + +------------------------------------------------------------------- +Thu Sep 24 15:24:11 UTC 2020 - Dr. Werner Fink + +- Replace patch procps-ng-3.3.16-comm_len.patch with upstream + commitment patch procps-ng-3e1c00d0.patch (bsc#1158830) + +------------------------------------------------------------------- +Wed Aug 26 12:01:42 UTC 2020 - Thorsten Kukuk + +- Enable pidof by default + +------------------------------------------------------------------- +Wed Dec 11 13:53:07 UTC 2019 - Dr. Werner Fink + +- Update to procps-ng-3.3.16 + * library: Increment to 8:2:0 + No removals or functions + Internal changes only, so revision is incremented. + Previous version should have been 8:1:0 not 8:0:1 + * docs: Use correct symbols for -h option in free.1 Debian #898774 + * docs: ps.1 now warns about command name length issue #101 + * docs: install translated man pages issue #146 + * pgrep: Match on runstate issue #109, Debian #919381 + * snice: Fix matching on pid merge #89 + * top: can now exploit 256-color terminals issue #96 + * top: preserves 'other filters' in configuration file issue #99 + * top: can now collapse/expand forest view children issue #99 + * top: parent %CPU time includes collapsed children + * top: improve xterm support for vim navigation keys issue #135 + * top: avoid segmentation fault at program termination Redhat #1737552 +- Port patches (mostly changed offsets of the hunks) + * procps-ng-3.3.10-fdleak.dif + * procps-ng-3.3.10-large_pcpu.patch + * procps-ng-3.3.10-slab.patch + * procps-ng-3.3.10-xen.dif + * procps-ng-3.3.8-bnc634840.patch + * procps-ng-3.3.8-petabytes.patch + * procps-ng-3.3.8-readeof.patch + * procps-ng-3.3.8-tinfo.dif + * procps-ng-3.3.8-vmstat-terabyte.dif + * procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff +- Delete patches now upstream + * procps-ng-3.3.15-typo.patch + * procps-ng-3.3.8-top.1.diff +- Add aptch procps-ng-3.3.16-comm_len.patch + * "ps -C" does not allow anymore an argument longer than 15 + characters (bsc#1158830) + +------------------------------------------------------------------- +Wed Jun 6 10:56:31 UTC 2018 - werner@suse.de + +- Reference patch procps-ng-3.3.15-typo.patch this patch add a + missed parenthesis for a nroff macro that is \*We become \*(We + in line 2186 of top/top.1 + +------------------------------------------------------------------- +Tue Jun 5 09:24:20 UTC 2018 - werner@suse.de + +- Update to procps-ng-3.3.15 (bsc#1092100) + * library: Increment to 8:0:1 + No removals, no new functions + Changes: slab and pid structures + * library: Just check for SIGLOST and don't delete it issue #93 + * library: Fix integer overflow and LPE in file2strvec CVE-2018-1124 + * library: Use size_t for alloc functions CVE-2018-1126 + * library: Increase comm size to 64 + * pgrep: Fix stack-based buffer overflow CVE-2018-1125 + * pgrep: Remove >15 warning as comm can be longer issue #92 + * ps: Fix buffer overflow in output buffer, causing DOS CVE-2018-1123 + * ps: Increase command name selection field to 64 + * top: Don't use cwd for location of config CVE-2018-1122 +- Increase so major number + +------------------------------------------------------------------- +Thu Apr 12 09:26:45 UTC 2018 - werner@suse.de + +- Update to procps-ng-3.3.14 + * update translations + * library: build on non-glibc systems + * free: fix scaling on 32-bit systems + * Revert "Support running with child namespaces" + +------------------------------------------------------------------- +Thu Apr 5 17:52:38 UTC 2018 - jengelh@inai.de + +- Update descriptions. + +------------------------------------------------------------------- +Thu Apr 5 09:03:49 UTC 2018 - werner@suse.de + +- Remove sysvinit boot script +- Add procps-rpmlintrc + +------------------------------------------------------------------- +Wed Apr 4 13:16:25 UTC 2018 - werner@suse.de + +- Update to procps-ng-3.3.13 + * library: Increment to 7:0:1 + No changes, no removals + New fuctions: numa_init, numa_max_node, numa_node_of_cpu, + numa_uninit, xalloc_err_handler + * doc: Document I idle state in ps.1 and top.1 Debian #886967 + * free: fix some of the SI multiples issue #45 + * kill: -l space between name parses correctly Debian #854407 + * library: dont use vm_min_free on non Linux Debian #831396 + * library: dont use SIGPWR on FreeBSD Debian #832148 + * library: don't strip off wchan prefixes (ps & top) Redhat #1322111 + * pgrep: warn about 15+ char name only if -f not used + * pgrep/pkill: only match in same namespace by default merge #41 + * pidof: specify separator between pids merge #58 + * pkill: Return 0 only if we can kill process Debian #852758 + * pmap: fix duplicate output line under '-x' option Redhat #1374061 + * ps: avoid eip/esp address truncations Debian #846361 + * ps: recognizes SCHED_DEADLINE as valid CPU scheduler + * ps: display NUMA node under which a thread ran issue #58 + * ps: Add seconds display for cputime and time merge #43 + * ps: Add LUID field merge #57 Redhat #1518986 + * sysctl: Permit empty string for value issue #74 + * sysctl: Don't segv when file not available issue #76 + * sysctl: Read and write large buffers merge #56 + * top: add config file support for XDG specification + * top: eliminated minor libnuma memory leak + * top: show fewer memory decimal places (configurable) issue #50 + * top: provide command line switch for memory scaling Redhat #1034466, issue #53 + * top: provide command line switch for CPU States issue #55 + * top: provides more accurate cpu usage at startup Redhat #1182327 + * top: display NUMA node under which a thread ran issue #58 + * top: fix argument parsing quirk resulting in SEGV Redhat #1450429 + * top: delay interval accepts non-locale radix point Redhat #1182248 + * top: address a wishlist man page NLS suggestion Debian #865689 + * top: fix potential distortion in 'Mem' graph display issue #64 + * top: provide proper multi-byte string handling issue #68 + * top: startup defaults are fully customizable Redhat #1153049, #1499410, issues #6, #78 + * see man page 6c. SYSTEM Configuration File + * watch: define HOST_NAME_MAX where not defined Debian #830734 + * vmstat: Fix alignment for disk partition format issue #69 + * watch: Support ANSI 39,49 reset sequences issue #73 +- Removed now patch now upstream + 0001-Preload-sysctl-lines-even-if-longer-than-stdio-buffe.patch + 0002-Add-flexible-buffered-I-O-based-on-fopencookie-3.patch + 0003-Use-new-standard-I-O-for-reading-writing-sysctl-valu.patch + procps-ng-3.3.12-stable_secret.patch + procps-ng-3.3.12-strtod.patch + procps-ng-3.3.12-sysctl-a.patch + procps-ng-3.3.12-sysctl-iobuf.patch +- Port patches + procps-ng-3.3.10-bnc634071_procstat2.diff + procps-ng-3.3.10-errno.patch + procps-ng-3.3.10-fdleak.dif + procps-ng-3.3.10-integer-overflow.patch + procps-ng-3.3.10-large_pcpu.patch + procps-ng-3.3.10-slab.patch + procps-ng-3.3.11-pmap4suse.patch + procps-ng-3.3.8-accuracy.dif + procps-ng-3.3.8-bnc634840.patch + procps-ng-3.3.8-ignore-scan_unevictable_pages.patch + procps-ng-3.3.8-petabytes.patch + procps-ng-3.3.8-readeof.patch + procps-ng-3.3.8-tinfo.dif + procps-ng-3.3.8-top.1.diff + procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff + +------------------------------------------------------------------- +Thu Feb 22 15:10:44 UTC 2018 - fvogt@suse.com + +- Use %license (boo#1082318) + +------------------------------------------------------------------- +Tue Jan 30 09:39:14 UTC 2018 - werner@suse.de + +- Remove patch procps-ng-3.3.12-sysctl-iobuf-write.patch (bsc#1077746) +- Add patches + 0001-Preload-sysctl-lines-even-if-longer-than-stdio-buffe.patch + 0002-Add-flexible-buffered-I-O-based-on-fopencookie-3.patch + 0003-Use-new-standard-I-O-for-reading-writing-sysctl-valu.patch + from my project https://gitlab.com/bitstreamout/procps/tree/procio + which implements a flexible buffer for reading and writing values + below /proc/sys (bsc#1039941) + +------------------------------------------------------------------- +Tue Dec 19 15:58:21 UTC 2017 - werner@suse.de + +- Add patch procps-ng-3.3.12-sysctl-iobuf-write.patch to use + increased buffer on writing /proc/sys/net/ipv4/ip_local_reserved_ports + +------------------------------------------------------------------- +Wed Aug 2 16:49:08 UTC 2017 - schwab@linux-m68k.org + +- procps-ng-3.3.12-sysctl-iobuf.patch: fix crash + +------------------------------------------------------------------- +Thu Jul 6 09:13:36 UTC 2017 - werner@suse.de + +- Add patch procps-ng-3.3.12-sysctl-iobuf.patch to increase I/O + buffer for reading and writing values below /proc/sys (bsc#1039941) +- Add patch procps-ng-3.3.12-stable_secret.patch to avoid messages + on unset /proc/sys/net/ipv6/conf/*/stable_secret due EIO + +------------------------------------------------------------------- +Fri Jun 16 07:44:49 UTC 2017 - mpluskal@suse.com + +- Drop support for xinetd (systat.xinetd) + * xinetd is being obsoleted + * provided service is considered unsecure and is unlikely to be + used anyways +- Small packaging cleanup with spec-cleaner + +------------------------------------------------------------------- +Mon May 22 08:25:17 UTC 2017 - werner@suse.de + +- Add patch procps-ng-3.3.12-sysctl-a.patch (bsc#1039941, had been + accepted upstream) that is allow content lines below /proc/sys + longer than 1024 characters + +------------------------------------------------------------------- +Wed Apr 26 12:45:15 UTC 2017 - werner@suse.de + +- Explain option --no-truncate of command w + +------------------------------------------------------------------- +Thu Jan 19 12:20:06 UTC 2017 - werner@suse.de + +- Remove -L option on screen call dues API change, now we depend + on environment variables only. + +------------------------------------------------------------------- +Mon Dec 12 13:42:04 UTC 2016 - dimstar@opensuse.org + +- Only buildrequire pkgconfig(libsystemd) instead of + pkgconfig(libsystemd-login): The latter was merged into + libsystemd in version 209. + +------------------------------------------------------------------- +Tue Aug 9 16:08:03 UTC 2016 - werner@suse.de + +- Avoid fillup and insserv on modern systems (bsc#992845) + +------------------------------------------------------------------- +Tue Jul 12 16:01:19 UTC 2016 - werner@suse.de + +- Use test suite but avoid the w command due dummy utmp + * This requires dejagnu for the runtest command + * This requires screen to be able to provide a tty +- Add patch procps-ng-3.3.12-strtod.patch to fix missed extern + declaration of strtod_nol_or_err() + +------------------------------------------------------------------- +Mon Jul 11 13:28:02 UTC 2016 - werner@suse.de + +- Update to procps-ng-3.3.12 + * libprocps API 6:0:0 + * build: formerly optional --enable-oomem unconditional + * free: man document rewritten for shared Debian #755233 + * free: interpret intervals in non-locale way Debian #692113 + * kill: report error if cannot kill process Debian #733172 + * library: refine calculation of 'cached' memory + * library: find tty quicker Debian #770215 + * library: eliminate threads display inconsistencies Redhat #1284091 + * pidof: check cmd if space found in argv0 + * pmap: fixed detail parsing on long mapping lines + * pmap: fix occasional incorrect memory usage values Redhat #1262864 + * ps: sort by cgroup Debian #692279 + * ps: display control group name with -o cgname + * ps: fallback to attr/current for context Debian #786956 + * ps: enabled broken 'thcount' option Redhat #1174313 + * tests: conditionally add prctl Debian #816237 + * top: displays the 3 new linux-4.5 RES memory fields + * top: man page memory fields corrected + new narrative + * top: added display of CGNAME (control group name) + * top: is now more responsive to cpus brought online + * top: namespace cols use suppressible zero + * top: zero suppress ('0') includes out-of-memory & nice + * top: better 'i' toggle management when scrolled + * top: the '=' key now includes active locate requests + * vmstat: devices exceeding 15 chars now displayed Redhat #586078 + * watch: hostname added to header + * watch: better handling ANSI including esc[m Debian #830313 + * watch: use locale-independent float Debian #692113 + +------------------------------------------------------------------- +Mon May 30 11:44:59 UTC 2016 - werner@suse.de + +- Avoid line doubling of pmap output due new SwapPss entry (boo#982090) + +------------------------------------------------------------------- +Wed Jan 27 10:01:13 UTC 2016 - werner@suse.de + +- Remove SUSE version of pmap as this stumble over new entries + in processes smaps files (boo#962275) +- Add patch procps-ng-3.3.11-pmap4suse.patch to let upstream pmap + behave similar to old suse pmap + +------------------------------------------------------------------- +Tue Nov 10 11:56:23 UTC 2015 - werner@suse.de + +- Pmap: support "SwapPss" which shows proportional swap share + of a process similar to the PSS (proportional set size) + of a process which is the count of pages it has in memory. + +------------------------------------------------------------------- +Fri Sep 18 12:41:05 UTC 2015 - werner@suse.de + +- Update to procps-ng-3.3.11 + * libprocps API 5:0:0 + * pgrep: don't crash with -a -w flags. Merge 33, Debian #768190 + * skill: command line with signal number interpreted correctly + * pmap: print process name even if smaps is unreadable Debian #775624 + * ps: sort by etimes column, uses etime Debian #794619 + * ps, top: Add support for LXC containers. Ubuntu #1174911 + * w: work with smaller window sizes Debian #183394 + * w: correctly find "best" proc with pid wrap + * library: use merged systemd library Debian #731256 + * kill,skill,pkill: fix option parsing + * top once again will fully honor a saved rcfile, + without requiring --disable-modern-top. Debian #762928, #762947 + * vmstat: Not crash if partition appears before disk Debian #736628 + * free: -s without -c works Debian #733758 +- Remove the patch procps-v3.3.4-w-simply-work.diff as now upstream +- Port our legacy pmap to new procps-ng-3.3.11 + +------------------------------------------------------------------- +Fri Jul 10 07:32:20 UTC 2015 - werner@suse.de + +- Make it build with every ncurses library ABI + +------------------------------------------------------------------- +Tue Jun 2 06:43:46 UTC 2015 - werner@suse.de + +- Reintroduce the corrected patch procps-ng-3.3.9-w-notruncate.diff + to have a working --no-truncat option back for `w' (boo#932950) + +------------------------------------------------------------------- +Wed May 20 13:33:02 UTC 2015 - lnussel@suse.de + +- restore original top defaults. The new ones result in half of the display + occupied with cpu information and the other half with systemd children. + +------------------------------------------------------------------- +Sun Mar 15 17:18:57 UTC 2015 - jengelh@inai.de + +- Remove redundant ldconfig requires + +------------------------------------------------------------------- +Tue Feb 3 15:24:19 UTC 2015 - werner@suse.de + +- Update to procps-ng-3.3.10 + * sysctl --system loads default config file - Debian #732920 + * ps doesn't exit on SIGCONT + * top better accommodates discontinuous NUMA nodes + * ps cmdline trailing spaces suppressed under zsh, redhat #1057600 + * kill restores the '-HUP -1' functionality + * vmstat -d / -p segfault eliminated when /sys is not mounted + * pgrep properly shows full command line when -au are combined + * vmstat supports timestamps with -t/--timestamp option + * top is now immune to distortions when system time is reset + * top standardized the key support with prompted input + * top missing summary area info added to man document, ubuntu #574624 + * top properly responds to the current locale LC_NUMERIC setting + * top provides alternate graph modes for cpu states and memory usage + * top offers new startup defaults, plus ./configure --disable-modern-top + * top exploits MemAvailable field and offers improved memory statistics + * ps new --quick-pid option, a more efficient alternative to --pid option + * usernames up to 32 characters now accommodated (up from 19), redhat #1112734 + * free exploits MemAvailable field and offers improved memory statistics + * free considers slabs in displayed totals, debian #565518, ubuntu #126329 + * watch supports new ANSI styles and background colors +- Remove the patches now upstream + 0023-top-do-not-forget-the-fscanf-s-terminating-null-byte.patch + 0024-sysctl-system-loads-default-config-file.patch + 0025-Split-help-lines-to-help-translators.patch + 0026-library-fixing-uninitialized-variable-pos-in-whattim.patch + 0027-pgrep-Fixing-memory-leak-in-do_regcomp.patch + 0028-sysctl-Fixing-memory-leaks-in-PreloadSystem.patch + 0029-ps-ignore-SIGCONT.patch + 0031-vmstat-wide-output-still-not-wide-enough.patch + 0032-library-skip-replacement-of-trailing-0-in-read_unvec.patch + 0033-kill-for-PID-1-restored.patch + 0034-Check-for-presence-of-disks-in-vmstat.patch + 0035-PID-2-to-9-for-kill-too.patch + 0035-top-provide-for-discontinuous-not-active-NUMA-nodes.patch + 0036-pgrep-fails-to-show-full-command-line-with-au.patch + 0036-top-restore-the-former-behavior-after-stderr-redirec.patch + 0037-fail-on-null-string-for-arguments.patch + 0037-top-avoid-name-conflict-in-the-next-version-of-stdli.patch + 0038-Update-help-files.patch + 0038-top-protect-against-distortion-when-system-time-rese.patch + 0039-vmstat-Support-for-timestamps-with-t-fix-for-wd.patch + 0040-watch-Don-t-leak-extra-fds-to-the-child.patch + 0041-vmstat-Fixing-format-security-flaws.patch + 0043-Added-get-trans-target-to-Makefile.patch + 0044-top-avoid-a-nan-when-the-delay-interval-is-very-low.patch + 0045-library-properly-handle-memory-used-by-tmpfs.patch + 0045-top-standardize-Esc-key-support-with-prompted-input.patch + 0046-Minor-i18n-fixes.patch + 0046-top-miscellaneous-accumulated-changes-to-program-cod.patch + 0047-sysctl-increase-max-supported-line-length-of-the-con.patch + 0049-fix-url-for-rsync.patch + 0051-top-update-copyright-dates-plus-1-preprocessor-chang.patch + 0052-top-refactor-man-document-so-as-to-allow-translation.patch + 0053-top-minimize-the-usage-of-apostrophes-in-man-documen.patch + 0054-top-swap-opening-quotes-for-back-tics-in-man-documen.patch + 0055-misc-fix-man-doc-spelling-and-grammar-for-translatio.patch + 0058-library-reverting-tmpfs-subtraction-from-cached-18-F.patch + 0060-top-miscellaneous-accumulated-changes-to-man-documen.patch + bsc901202-add-better-help-output.patch + procps-ng-3.3.8-selinux.patch + procps-v3.3.3-buffersize.diff +- Modify and rename patches + procps-ng-3.3.8-bnc634071_procstat2.diff becomes procps-ng-3.3.10-bnc634071_procstat2.diff + procps-ng-3.3.9-errno.patch becomes procps-ng-3.3.10-errno.patch + procps-v3.3.3-fdleak.dif becomes procps-ng-3.3.10-fdleak.dif + procps-v3.3.3-integer-overflow.patch becomes procps-ng-3.3.10-integer-overflow.patch + procps-v3.3.4-large_pcpu.patch becomes procps-ng-3.3.10-large_pcpu.patch + procps-v3.3.3-slab.patch becomes procps-ng-3.3.10-slab.patch + procps-v3.3.4-xen.dif becomes procps-ng-3.3.10-xen.dif + +------------------------------------------------------------------- +Fri Jan 23 15:53:29 UTC 2015 - werner@suse.de + +- Modify patch procps-v3.3.3-slab.patch to be able to make the adding + further cache lines to cache output of the free command switchable. +- This requires modifing the patches + 0045-library-properly-handle-memory-used-by-tmpfs.patch + 0058-library-reverting-tmpfs-subtraction-from-cached-18-F.patch + procps-ng-3.3.9-errno.patch + procps-v3.3.3-integer-overflow.patch + procps-v3.3.3-slab.patch + +------------------------------------------------------------------- +Tue Dec 16 15:32:40 UTC 2014 - werner@suse.de + +- Add upstream patch bsc901202-add-better-help-output.patch + which includes the commits + 0f649e2cd2eef94075f1975248953f8c5b85d9f4 + 4ba9ff5c0df7e94d03a555ac4cec947f6fac2ba6 + b4951bfea367eef551b053e9f0240d717c353c11 + to fix the bug bsc#901202 + +------------------------------------------------------------------- +Fri Dec 5 10:07:22 UTC 2014 - werner@suse.de + +- Add patch procps-ng-3.3.9-errno.patch to avoid leftover errno + from setlocale() (bsc#908516) + +------------------------------------------------------------------- +Thu Sep 11 20:36:54 UTC 2014 - jengelh@inai.de + +- Correct package name in descriptions: procps, not props + +------------------------------------------------------------------- +Thu Jun 26 07:17:08 UTC 2014 - werner@suse.de + +- Remove patches + procps-v3.3.3-chroot.diff + procps-v3.3.5-top-locale.patch + as already included in upstream code (bnc#884502) + +------------------------------------------------------------------- +Wed May 21 13:39:58 UTC 2014 - werner@suse.de + +- Require the systemd libraries for build to allow the move + of systemd.pc back to systemd + +------------------------------------------------------------------- +Fri May 16 09:44:19 UTC 2014 - werner@suse.de + +- Update to procps-ng-3.3.9 + * kernel namespaces support added to skill, pgrep, ps and top + * pidof was reimplemented from scratch (replacing sysvinit pidof) + * ps has configurable libselinux support (--enable-libselinux) + * ps provides for display of systemd slice unit (--with-systemd) + * free can once again report non-zero 'shared' memory + * sysctl provides '--system' to ignore missing /etc/sysctl.conf + * watch interval capacity was increased - debian #720445 + * pwdx no longer fails in a nonexistent locale - debian #718766 + * top clarified summary area Mem/Swap stats - debian #718670 + * top batch mode -w (width) abend fixed - debian #721204 + * top man page removed 'Bd/Ed' mdoc macros - debian #725713 + * top no longer clears screen at exit - redhat #977561 + * top adapted to potential libnuma stderr message - redhat #998678 + * top added missing batch mode newline - redhat #1008674 +- Modify patches + procps-ng-3.3.8-watch.patch becomes procps-ng-3.3.9-watch.patch + procps-v3.3.4-w-notruncate.diff becomes procps-ng-3.3.9-w-notruncate.diff + procps-ng-3.3.8-top.1.diff + procps-ng-3.3.8-top.1.diff + procps-v3.3.4-large_pcpu.patch + procps-ng-3.3.8-bnc634071_procstat2.diff +- Remove patches now upstream + procps-v3.3.4-stealtime.patch is upstream + procps-ng-3.3.8-libselinux.patch + procps-ng-3.3.8-shmem.patch + 0001-top-add-the-major-version-to-dlopen-of-libnuma-sonam.patch + 0002-top-trade-two-groff_mdoc-macros-for-groff-equivalent.patch + 0003-library-for-atexit-support-fix-fileutils-for-EPIPE.patch + 0004-top-enable-screen-contents-preservation-at-end-of-jo.patch + 0005-top-refine-some-miscellaneous-signals-interrupt-stuf.patch + 0006-top-cursor-repositioning-includes-line-oriented-inpu.patch + 0007-top-correct-improve-or-otherwise-tweak-some-comments.patch + 0008-top-tweak-cursor-state-code-to-swat-an-obscure-bugle.patch + 0009-top-correct-cursor-positioning-for-all-Z-or-C-cases.patch + 0010-ps-address-a-potential-newline-quirk-the-libselinux.patch + 0012-top-hint-that-Summary-Area-cached-is-Mem-not-Swap.patch + 0013-top-modest-efficiency-change-to-message-line-handlin.patch + 0014-top-correct-improve-and-otherwise-tweak-configs_read.patch + 0015-top-swat-bug-affecting-batch-mode-and-width-provisio.patch + 0018-top-restore-the-lost-final-newline-when-in-Batch-mod.patch + 0019-top-swat-bug-impacting-idle-mode-user-filtering.patch + 0021-top-address-some-potential-libnuma-display-corruptio.patch + 0022-top-fix-miscellaneous-spelling-errors-in-man-documen.patch + 0023-top-expand-on-column-highlight-quirks-in-man-documen.patch + 0024-top-add-some-flexibility-to-dlopen-for-numa-support.patch + 0025-top-minimize-the-statistics-overhead-for-numa-suppor.patch + 0026-top-eliminate-yet-more-gcc-subscript-resolution-bloa.patch + 0032-top-do-not-lie-about-purported-alphabetical-ordering.patch + 0033-top-follow-usual-name-conventions-for-global-variabl.patch +- Add patches from upstream + 0023-top-do-not-forget-the-fscanf-s-terminating-null-byte.patch + 0024-sysctl-system-loads-default-config-file.patch + 0025-Split-help-lines-to-help-translators.patch + 0026-library-fixing-uninitialized-variable-pos-in-whattim.patch + 0027-pgrep-Fixing-memory-leak-in-do_regcomp.patch + 0028-sysctl-Fixing-memory-leaks-in-PreloadSystem.patch + 0029-ps-ignore-SIGCONT.patch + 0031-vmstat-wide-output-still-not-wide-enough.patch + 0032-library-skip-replacement-of-trailing-0-in-read_unvec.patch + 0033-kill-for-PID-1-restored.patch + 0034-Check-for-presence-of-disks-in-vmstat.patch + 0035-PID-2-to-9-for-kill-too.patch + 0036-pgrep-fails-to-show-full-command-line-with-au.patch + 0037-fail-on-null-string-for-arguments.patch + 0038-Update-help-files.patch + 0039-vmstat-Support-for-timestamps-with-t-fix-for-wd.patch + 0040-watch-Don-t-leak-extra-fds-to-the-child.patch + 0041-vmstat-Fixing-format-security-flaws.patch + 0043-Added-get-trans-target-to-Makefile.patch + 0045-library-properly-handle-memory-used-by-tmpfs.patch + 0046-Minor-i18n-fixes.patch + 0047-sysctl-increase-max-supported-line-length-of-the-con.patch + 0049-fix-url-for-rsync.patch + 0051-top-update-copyright-dates-plus-1-preprocessor-chang.patch + 0052-top-refactor-man-document-so-as-to-allow-translation.patch + 0053-top-minimize-the-usage-of-apostrophes-in-man-documen.patch + 0054-top-swap-opening-quotes-for-back-tics-in-man-documen.patch + 0055-misc-fix-man-doc-spelling-and-grammar-for-translatio.patch + 0058-library-reverting-tmpfs-subtraction-from-cached-18-F.patch + 0060-top-miscellaneous-accumulated-changes-to-man-documen.patch + +------------------------------------------------------------------- +Thu May 15 11:50:39 UTC 2014 - werner@suse.de + +- Fix missing job in D states in idle mode of top, therefore + update to latest top of procps-ng git HEAD + * Rename the patches + 0001-top-enable-screen-contents-preservation-at-endofjob.patch + 0001-top-refine-some-miscellaneous-signals-interrupt-stuf.patch + 0001-top-trade-two-groff_mdoc-macros-for-groff-equivalent.patch + 0002-library-for-atexit-support-fix-fileutils-for-EPIPE.patch + 0002-top-cursor-repositioning-includes-line-oriented-inpu.patch + to + 0002-top-trade-two-groff_mdoc-macros-for-groff-equivalent.patch + 0003-library-for-atexit-support-fix-fileutils-for-EPIPE.patch + 0004-top-enable-screen-contents-preservation-at-end-of-jo.patch + 0005-top-refine-some-miscellaneous-signals-interrupt-stuf.patch + 0006-top-cursor-repositioning-includes-line-oriented-inpu.patch + * Add upstream patches + 0002-top-trade-two-groff_mdoc-macros-for-groff-equivalent.patch + 0003-library-for-atexit-support-fix-fileutils-for-EPIPE.patch + 0004-top-enable-screen-contents-preservation-at-end-of-jo.patch + 0005-top-refine-some-miscellaneous-signals-interrupt-stuf.patch + 0006-top-cursor-repositioning-includes-line-oriented-inpu.patch + 0007-top-correct-improve-or-otherwise-tweak-some-comments.patch + 0008-top-tweak-cursor-state-code-to-swat-an-obscure-bugle.patch + 0009-top-correct-cursor-positioning-for-all-Z-or-C-cases.patch + 0010-ps-address-a-potential-newline-quirk-the-libselinux.patch + 0012-top-hint-that-Summary-Area-cached-is-Mem-not-Swap.patch + 0013-top-modest-efficiency-change-to-message-line-handlin.patch + 0014-top-correct-improve-and-otherwise-tweak-configs_read.patch + 0015-top-swat-bug-affecting-batch-mode-and-width-provisio.patch + 0018-top-restore-the-lost-final-newline-when-in-Batch-mod.patch + 0019-top-swat-bug-impacting-idle-mode-user-filtering.patch + 0021-top-address-some-potential-libnuma-display-corruptio.patch + 0022-top-fix-miscellaneous-spelling-errors-in-man-documen.patch + 0023-top-expand-on-column-highlight-quirks-in-man-documen.patch + 0024-top-add-some-flexibility-to-dlopen-for-numa-support.patch + 0025-top-minimize-the-statistics-overhead-for-numa-suppor.patch + 0026-top-eliminate-yet-more-gcc-subscript-resolution-bloa.patch + 0032-top-do-not-lie-about-purported-alphabetical-ordering.patch + 0033-top-follow-usual-name-conventions-for-global-variabl.patch + 0035-top-provide-for-discontinuous-not-active-NUMA-nodes.patch + 0036-top-restore-the-former-behavior-after-stderr-redirec.patch + 0037-top-avoid-name-conflict-in-the-next-version-of-stdli.patch + 0038-top-protect-against-distortion-when-system-time-rese.patch + 0044-top-avoid-a-nan-when-the-delay-interval-is-very-low.patch + 0045-top-standardize-Esc-key-support-with-prompted-input.patch + 0046-top-miscellaneous-accumulated-changes-to-program-cod.patch + * Modify patches + 0001-top-add-the-major-version-to-dlopen-of-libnuma-sonam.patch + procps-ng-3.3.8-libselinux.patch + +------------------------------------------------------------------- +Tue Mar 25 12:43:12 CET 2014 - tiwai@suse.de + +- Ignore scan_unevictable_pages sysctl entry (bnc#868888) + procps-ng-3.3.8-ignore-scan_unevictable_pages.patch + +------------------------------------------------------------------- +Tue Dec 17 13:17:36 UTC 2013 - werner@suse.de + +- Change patch procps-ng-3.3.8-accuracy.dif to really use finally + jiffies to calculate %CPU output (bnc#855861) + +------------------------------------------------------------------- +Mon Oct 7 13:35:36 UTC 2013 - werner@suse.de + +- Be aware of new VmFlags entry in /proc//smaps + +------------------------------------------------------------------- +Mon Sep 30 13:06:55 UTC 2013 - werner@suse.de + +- Enable legacy pmap +- Fix crash of legacy pmap (bnc#842340) + +------------------------------------------------------------------- +Fri Aug 30 14:58:48 UTC 2013 - werner@suse.de + +- Add patch procps-ng-3.3.8-shmem.patch to show shared memory in + 'free' again +- Add patch procps-ng-3.3.8-libselinux.patch to be able to enable + selinux + +------------------------------------------------------------------- +Fri Aug 2 13:00:57 UTC 2013 - werner@suse.de + +- Add patch procps-ng-3.3.8-vmstat-terabyte.dif to readd last + trifle rest of the old terabyte patch (is this really required?) + +------------------------------------------------------------------- +Thu Jul 25 11:31:34 UTC 2013 - werner@suse.de + +- Add three upstream patches + 0001-top-enable-screen-contents-preservation-at-endofjob.patch + 0001-top-refine-some-miscellaneous-signals-interrupt-stuf.patch + 0002-top-cursor-repositioning-includes-line-oriented-inpu.patch + +------------------------------------------------------------------- +Wed Jun 26 14:17:34 UTC 2013 - werner@suse.de + +- Add tow upstream patches + 0001-top-trade-two-groff_mdoc-macros-for-groff-equivalent.patch + 0002-library-for-atexit-support-fix-fileutils-for-EPIPE.patch + +------------------------------------------------------------------- +Fri Jun 21 11:45:19 UTC 2013 - werner@suse.de + +- Add upstream patch to use pecific libnuma.so.1 shared libray for + top instead of the devel version libnuma.so + +------------------------------------------------------------------- +Wed May 29 13:55:41 UTC 2013 - werner@suse.de + +- Update to procps-ng-3.3.8 + * top adds extensions for linux NUMA/Node capability + * top has reverted to former %CPU and %MEM precision + but also provides a '--enable-wide-percent' option + Debian #707648 + * eliminate the potential library segmentation fault + Debian #706259, RedHat #951391 + * top now accomodates a window manager like 'screen' + RedHat #962022 + * ps shows systemd unit and user unit for a process +- Update to procps-ng-3.3.7 + * top adds a powerful new filter feature wherein any + window can include or exlude selected fields which + contain specific values - Debian #682082 & #682083 + * top preserves user input for later recall and edit + * top provides true input editing vs. just backspace + * top user filtering with exclusion - Debian #682086 + * top field management resize errors no longer fatal + * top is more responsive to window resize (SIGWINCH) + * top will now preserve user's context when signaled +- Update to procps-ng-3.3.6 + * top adds a powerful new feature where the contents + of some file or output from a program, pipeline or + shell script can be viewed in its own scrollable & + searchable window while pausing the normal display + * top highlights matches with 'locate/next' commands + * top adds summary/task area memory scaling commands + * top adds a command to suppress insignificant zeros + * top adds a command line sort field override switch + * top provides a default PID for kill, nice commands + * top allows core dump generation, if a signal would + * pmap adds 2 new options based on smaps, -X and -XX + * Adjusted pmap pidlist storage Debian #688180 + * programs will permit core-dumps RedHat #87825, 512857 + * receiving a signal is not a crash RedHat #871824, 441656 + * ps: Fixed negative etime RedHat #871819, #433266 + * pkill -c option returns Debian #693783 + * pmap uses correct types for memory allocation Debian #688180 + * expose freeproc, adds function to API Debian #681653 + +------------------------------------------------------------------- +Mon May 27 11:07:58 UTC 2013 - lnussel@suse.de + +- move sysctl defaults to aaa_base (bnc#820443) + +------------------------------------------------------------------- +Fri May 24 09:32:38 UTC 2013 - lnussel@suse.de + +- enable hard- and symlink protection (bnc#821585) + +------------------------------------------------------------------- +Sun Feb 10 21:24:36 UTC 2013 - crrodriguez@opensuse.org + +- boot.sysctl is not suitable for distros with systemd, this + task is performed by systemd-sysctl(8) now. + - the "ad-hoc" test for pmap does not work in all systems, remove it. + +------------------------------------------------------------------- +Tue Jan 15 11:11:48 UTC 2013 - werner@suse.de + +- Make rpmlint happy + +------------------------------------------------------------------- +Fri Jan 11 16:35:15 UTC 2013 - jengelh@inai.de + +- Remove redundant tags/sections +- Update homepage URLs + +------------------------------------------------------------------- +Tue Dec 18 17:47:48 UTC 2012 - werner@suse.de + +- Add procps-v3.3.5-top-locale.patch (bnc#794678) + +------------------------------------------------------------------- +Tue Oct 30 14:34:52 UTC 2012 - werner@suse.de + +- Update to procps-ng-3.3.5 + * Stop SIGFPE on vmstat at times + * Added debian patch for kfreebsd bug, Debian #674785 + * Bump the soname + +------------------------------------------------------------------- +Tue Oct 30 12:35:12 UTC 2012 - werner@suse.de + +- Update to procps-ng-3.3.4 + * Removed ps -aux bogus message + * w get -i option to display IP addresses + * watch 8bit fixes Debian #675069 + * Fixed FTBFS for non-linux Debian #677055 + * pkill -u doesn't need space Debian #676239 + * top enables intra-column horizontal scrolling + * top can display a task's environment + * top can display major/minor pg fault deltas, Debian #84992 + * top provides additional control over column widths + * top offers user controlled left/right justification + +------------------------------------------------------------------- +Thu Jul 5 08:13:42 UTC 2012 - werner@suse.de + +- Allow numeric user ids in top even if it does not exist in passwd + as such an id may listed due an uid from an chroot environment + +------------------------------------------------------------------- +Wed Jun 6 12:00:54 UTC 2012 - werner@suse.de + +- Avoid to be fooled by a former errno due not existing system + file as this might cause failing pwdx + +------------------------------------------------------------------- +Wed Jun 6 11:43:55 UTC 2012 - werner@suse.de + +- Avoid UNKNOWN version due git checkout, use tag version + +------------------------------------------------------------------- +Wed Jun 6 11:17:37 UTC 2012 - werner@suse.de + +- Make our w-notruncate patch file lines dynamically that is use + the string and not the umtp field lengths + +------------------------------------------------------------------- +Wed Jun 6 10:35:41 UTC 2012 - werner@suse.de + +- Make /bin -> /usr/bin a %bcond + +------------------------------------------------------------------- +Wed Jun 6 09:44:35 UTC 2012 - werner@suse.de + +- Allow SUSE specific pmap to list results for more than one pid + +------------------------------------------------------------------- +Wed Jun 6 09:30:13 UTC 2012 - werner@suse.de + +- Make SUSE specific pmap smart, that is detect only new entries + in smaps if environment variable MALLOC_CHECK_ is set, for + older kernels ignore entries which are not found. + +------------------------------------------------------------------- +Tue Jun 5 12:35:19 UTC 2012 - werner@suse.de + +- For legacy readd SUSE specific pmap + +------------------------------------------------------------------- +Mon Jun 4 14:17:34 UTC 2012 - werner@suse.de + +- Update to procps-ng-3.3.3 + * watch -g command repeats until something changes + * Changed labels of kB etc to KiB Debian #662786 + * top supports hotplugged memory and cpus Debian #351934, #459287 + * top %cpu not distorted when switch to/from threads Debian #441166 + * top can read old toprc configuration files Debian #651213, #651863 + * top supports input paste once again Debian #663334 + * top -p avoids SEGV when pid doesn't exist Debian 668335 + * Various DejaGNU test cases fixed + * pgrep.1 graoff syntax fix Debian #665425 + * sysctl avoid crash when -p file has unexpected input + * sysctl .conf off-by-one error Debian #669128 + * libprocps: protect locale env getting overwrite RedHat #548711 + * Documentation catch up (fixed prior to 3.3.3) + . top repeating "%" wastes space Debian #322984 + . top -U user name parse error Debian #623200 + . top memory leaks Debian #627257 + . top impossible task swap statistics Debian #628462 + . top forest view segfault Debian #650864 +- Update to procps-ng-3.3.2 + * Redefined library to use version-info + * NLS added! Programs can use po files to localise the output to suite + any supported languages. + * Imported a bunch of distribution patches: + watch: support unicode + watch: add precision wait time option -p + watch: interpret ANSI color code sequences + watch: add -exec and -beep flags and has better quoting + w: use environment to set user and from/host column widths + w: use COLUMNS environment if TIOCGWINSZ fails + w: bassman emulation with -o option + vmstat: do not scale si/so just like bi/bo + libprocps-ng: sysinfo.c: truncate the vmstat figure to 32 bits + tload: remote unneeded optarg and optind variables + sysctl: fix up some option processing + skill: kill prints perror + skill: do not treat skill null parameter as 0 + skill: fix too greedy option parser + libprocps-ng: readproc.c: some type conversion help + ps: rename SZ to SIZE + ps: add sorting to %mem for ps + pmap: provide information for -x option + pgrep: distinguish between invalid commandline parameters and '-?' + pgrep: fix compiler warning saved_start_time might be used uninitialized + pgrep: add -c option for counting number of matched proceesses + pwdx & libprocps-ng: Hurd does not have MAX_PATH defined + ps: --sort does not work with time argument + skill: add CR to warning line + contrib: minimal ps: define mips PAGE_SIZE + libproc-ng: prettyfy proc mount messages + ps: add build option to disable ps option warning + libproc-ng: support building without WCHAR support + sysctl: remove index() for buildroot + * top now has a search capability + * User import is validated better to stop negative values for intervals etc +- Update to procps-ng-3.3.1 + * Added DejaGNU regression testing + * Fixed pgrep -u not finding processes Debian#649591 + * Fixed pgrep crashing + * vmstat -p finds partitions. Was Debian patch vmstat_part_format + fixes closed bugs RH#485243 and Debian#588677 + * watch 8-bit clean, Was Debian patch watch_8bitchar + * slabtop prints plain ASCII in once mode +- Update to procps-ng-3.3.0 + * Debian, Fedora and openSUSE fork of procps. + https://gitorious.org/procps + * environment/build changes: + . autotools integrated + . procps-ng specific options + --enable-oomem (add out-of-memory flds) + --disable-kill (do not build kill pgm) + --enable-w-from (from as default for w) + * library changes: + . added control groups support + . added supplementary groups support + . introduced proc_t memory management + . enabled hot-plugged cpu support + . introduced new api's + readeither (readproc.c) + readproctab3 (readproc.c) + escaped_copy (escape.c) + * free changes: + . rewritten/modernized + improved help + includes long options + added new processing options + . updated manual page + * ps changes: + . added new fields + cgroups,etimes,supgid,supgrp,tgid + . exploited new library api's + * top changes: + . redesigned fields management + . added new fields + cgroups,gid,nmin,nth,pgrp,ruid, + sid,suid,supgids,supgrps,suser, + tgid,tpgid + . added horizontal/vertical scrolling + . added flexible output override via -w + . added COMMAND column forest view via V + . added hot-plugged cpu/memory support + . improved user filtering via u|U + . improved signal handling + . restored zero delay functionality + . introduced true line input editing + . exploited new library api's + . improved performance up to 300% + +------------------------------------------------------------------- +Tue Dec 20 10:51:18 UTC 2011 - werner@suse.de + +- Avoid segfault with top when /proc is not readable (bnc#733753) + +------------------------------------------------------------------- +Tue Nov 22 16:57:06 UTC 2011 - werner@suse.de + +- Work around stupid build system + +------------------------------------------------------------------- +Tue Nov 22 13:43:26 UTC 2011 - werner@suse.de + +- Add patch to use libtinfo if available + +------------------------------------------------------------------- +Thu Oct 20 09:38:08 UTC 2011 - idonmez@suse.com + +- Disable auto-closing of cd tray bnc#659153 + +------------------------------------------------------------------- +Fri Sep 30 15:59:27 UTC 2011 - uli@suse.com + +- cross-build fix: use %__cc macro + +------------------------------------------------------------------- +Fri Aug 26 12:41:30 UTC 2011 - lnussel@suse.de + +- add some docu to /etc/sysctl.conf (bnc#700174) + +------------------------------------------------------------------- +Fri Aug 26 09:36:03 UTC 2011 - lnussel@suse.de + +- make --system switch compatible with udev/systemd scheme + +------------------------------------------------------------------- +Wed Aug 24 10:09:36 UTC 2011 - werner@suse.de + +- Add large (p)cpu patch from Tony Ernst (bnc#713482) +- Add petabytes patch from Tony Ernst (bnc#713482) + +------------------------------------------------------------------- +Fri Jul 22 15:43:44 UTC 2011 - werner@suse.de + +- Ignore new smaps entries AnonHugePages and Locked (bnc#706942) + +------------------------------------------------------------------- +Tue May 17 14:42:31 UTC 2011 - lnussel@suse.de + +- load sysctls earlier (bnc#664550) +- move distro defaults to /lib/sysctl.d to avoid .rpmnew files +- enable IPv6 privacy by default (bnc#678066) + +------------------------------------------------------------------- +Thu May 5 17:49:30 CEST 2011 - jeffm@suse.de + +- boot.sysctl: Add support for loading defaults from + /boot/sysctl.conf-$(uname -r) before loading /etc/sysctl.conf + to allow each kernel flavor to adjust defaults without + different kernel configuration options. + +------------------------------------------------------------------- +Tue Mar 22 17:31:22 UTC 2011 - idoenmez@novell.com + +- Fix procps-3.2.8.dif: use -Wl for linker options + +------------------------------------------------------------------- +Fri Dec 3 17:56:27 CET 2010 - werner@suse.de + +- pmap: get and ignore Anonymous tag in smaps (bnc#656826) + +------------------------------------------------------------------- +Fri Oct 29 12:17:40 CEST 2010 - werner@suse.de + +- Fix race in parallel make + +------------------------------------------------------------------- +Fri Oct 29 11:47:52 CEST 2010 - werner@suse.de + +- On IA64 the priorities from 0 upto 100 are reserved for the + implementation + +------------------------------------------------------------------- +Fri Oct 29 10:14:51 CEST 2010 - werner@suse.de + +- Avoid running HZ initialization twice by using priority for + the constructors for excuting before main() +- Add test on "Unknown HZ value!" + +------------------------------------------------------------------- +Thu Oct 28 14:06:16 UTC 2010 - seife@b1-systems.de + +- fix "Unknown HZ value!" error (bnc#649501) + +------------------------------------------------------------------- +Mon Oct 4 18:58:50 CEST 2010 - werner@suse.de + +- Fix build on newer systems + +------------------------------------------------------------------- +Mon Sep 20 12:30:21 CEST 2010 - werner@suse.de + +- Ignore SIGHUP within batch mode of top (bnc#634840) + +------------------------------------------------------------------- +Tue Sep 7 18:34:50 CEST 2010 - werner@suse.de + +- Add change to avoid repeated read of /proc/stat (bnc#634071) +- Add change to avoid repeated call of sysconf() (bnc#634071) + +------------------------------------------------------------------- +Mon Jun 28 06:38:35 UTC 2010 - jengelh@medozas.de + +- use %_smp_mflags + +------------------------------------------------------------------- +Wed Jun 23 10:11:18 CEST 2010 - mszeredi@suse.cz + +- Avoid integer overflows in free(1) [bnc#411002] + +------------------------------------------------------------------- +Tue Mar 2 16:24:46 CET 2010 - werner@suse.de + +- Add three changes from SLES11-SP1 (change for bnc#576073 is + the same as for bnc#513542) +- Include patch for fate##307524 into major patch of pmap +- Inlcude patch for gcc 4.5 into major patch for accuracy + +------------------------------------------------------------------- +Mon Feb 22 22:25:48 CET 2010 - seife@opensuse.org + +- fix build with gcc 4.5 ("=>" is no nonger valid, now it's ">=") + +------------------------------------------------------------------- +Thu Feb 18 12:12:04 CET 2010 - werner@suse.de + +- Modify accuracy for %CPU calculation to avoid apperent CPU load + above 100% (bnc#496705) + +------------------------------------------------------------------- +Wed Feb 3 11:22:54 CET 2010 - kukuk@suse.de + +- Adjust pmap for new kernel [bnc#576073] + +------------------------------------------------------------------- +Fri Jan 29 15:24:32 CET 2010 - werner@suse.de + +- Sysctl: ignore not existing directories in case of -e (bnc#559866) +- Ps: Ignore the environment variable $COLUMS if stdout is not a + terminal but only for $PS_PERSONALITY="posix" (bnc#497087) + +------------------------------------------------------------------- +Wed Jan 20 13:58:43 CET 2010 - mmarek@suse.cz + +- Tune some kernel.sched_* variables on s390(x) (bnc#557307). + +------------------------------------------------------------------- +Tue Dec 15 00:26:38 CET 2009 - jengelh@medozas.de + +- enable parallel building + +------------------------------------------------------------------- +Wed Nov 25 13:23:10 CET 2009 - werner@suse.de + +- Add a commented line to sysctl.conf how to disable IPv6 (bnc#558325) + +------------------------------------------------------------------- +Thu Sep 10 10:13:00 CEST 2009 - werner@suse.de + +- Yet an other fd leak found by David Binderman (bnc#536207) + +------------------------------------------------------------------- +Thu Aug 27 15:28:22 UTC 2009 - garloff@novell.com + +- Add support for displaying oom_score (fate##307524). + +------------------------------------------------------------------- +Wed Aug 19 14:45:52 CEST 2009 - werner@suse.de + +- Be aware that on XEN and VMware systems Div can become zero (bnc#529981) + +------------------------------------------------------------------- +Thu Aug 13 11:24:10 CEST 2009 - mt@suse.de + +- Moved /usr/bin/pgrep and pkill to /bin with symlinks in + /usr/bin to make it possible to use them at boot time. + +------------------------------------------------------------------- +Tue Jun 16 16:31:45 CEST 2009 - werner@suse.de + +- The kernel people forgotten to inform me about new smaps layout + * ignore KernelPageSize and MMUPageSize in pmap (bnc#513542) + +------------------------------------------------------------------- +Mon May 11 12:42:59 CEST 2009 - werner@suse.de + +- Update to procps-3.2.8 + * ps: allow "+" in sort specifications, as in man page + * ps: recognize SCHED_ISO and SCHED_IDLE + * ps: document SCHED_BATCH and add a "see also" for stime + * ps: man page less ambiguous + * top: normal exit code should be 0 + * top: misc fixes + * pgrep: usage error should exit with 2 + * vmstat: use EXIT_FAILURE -- thanks Yoshio Nakamura + * sysctl: fix crash -- thanks Steinar Gunderson + * watch: tolerate umlauts + * pmap: range limits with -A low,high + * update /dev/tty* info to May 2009 devices.txt + * don't read off end of string const +- Adapt our patches + +------------------------------------------------------------------- +Fri May 8 15:51:36 CEST 2009 - werner@suse.de + +- top: shows correct values on 32bit arch (bnc#497544) + +------------------------------------------------------------------- +Wed Mar 11 15:52:42 CET 2009 - werner@suse.de + +- top: show MB in case of TB of physical memory (bnc#484271) + +------------------------------------------------------------------- +Mon Feb 9 11:38:54 CET 2009 - werner@suse.de + +- boot.sysctl: be more quiet (bnc#473729) + +------------------------------------------------------------------- +Mon Dec 15 17:56:31 CET 2008 - werner@suse.de + +- Add c option patch to pgrep for counting matches (bnc#459081) + +------------------------------------------------------------------- +Wed Dec 10 13:38:35 CET 2008 - werner@suse.de + +- Make steal time part in vmstat active (bnc#457383) +- Modify the patch for bnc#435544 to show summary CPU even on + big irons (bnc#457980) + +------------------------------------------------------------------- +Wed Oct 22 13:07:41 CEST 2008 - werner@suse.de + +- Add patch for support of cgroups of processes (fate#305346) + +------------------------------------------------------------------- +Wed Oct 15 15:44:02 CEST 2008 - werner@suse.de + +- Do not crash if terminal is not big enough (bnc#435544) + +------------------------------------------------------------------- +Wed Oct 8 12:04:21 CEST 2008 - werner@suse.de + +- pmap: seek also for Swap entry in smaps (bnc#433146) + +------------------------------------------------------------------- +Tue Sep 16 19:04:31 CEST 2008 - werner@suse.de + +- Increase accuracy for %CPU calculation (bnc#426229) + +------------------------------------------------------------------- +Mon Aug 25 14:43:02 CEST 2008 - prusnak@suse.cz + +- enabled SELinux support [Fate#303662] + +------------------------------------------------------------------- +Wed Jul 30 16:04:30 CEST 2008 - werner@suse.de + +- Make boot script know about new upcoming startpar and insserv + +------------------------------------------------------------------- +Thu Jul 10 18:24:14 CEST 2008 - werner@suse.de + +- Annoying change in /proc/meminfo makes info about free memory + useless ... thanks Bart Van Assche for spotting (bnc#405246) + +------------------------------------------------------------------- +Fri Mar 28 11:42:02 CET 2008 - werner@suse.de + +- Handle new Pss entry in smaps (bnc#374236) + +------------------------------------------------------------------- +Thu Feb 14 12:06:17 CET 2008 - werner@suse.de + +- Also ignore empty proc files in sysctl (bnc #347322, #361049) + +------------------------------------------------------------------- +Wed Feb 6 16:54:05 CET 2008 - werner@suse.de + +- Do not delete secondary IPs on deleting primary IP (bnc#212053) + +------------------------------------------------------------------- +Thu Jan 17 19:08:42 CET 2008 - werner@suse.de + +- Use ASCII quote instead of acute accent (bug #354407) + +------------------------------------------------------------------- +Wed Dec 12 12:11:39 CET 2007 - werner@suse.de + +- Add workaround for change in glibc 2.6.1 which is that a dir can + not be opened with both open(2) and opendir(2) (bug #347322) + +------------------------------------------------------------------- +Fri Oct 26 10:47:06 CEST 2007 - jdelvare@suse.de + +- Read the time of system boot from /proc/stat (entry: btime) + instead of computing it as the difference between the current + time and the uptime. This avoids getting inconsistent results + from one run to the next. [#304596] + +------------------------------------------------------------------- +Mon Jun 11 17:23:52 CEST 2007 - werner@suse.de + +- Handle new Referenced entry in smaps (bug #281770) + +------------------------------------------------------------------- +Wed Jun 6 18:21:02 CEST 2007 - werner@suse.de + +- increase the number of possible inotify(7) watches [#281147] + +------------------------------------------------------------------- +Thu Mar 29 12:24:25 CEST 2007 - rguenther@suse.de + +- Add ncurses-devel BuildRequires + +------------------------------------------------------------------- +Fri Jan 12 19:07:33 CET 2007 - werner@suse.de + +- Add missing Required-Start to boot.sysctl [#231677] + +------------------------------------------------------------------- +Thu Aug 3 14:41:54 CEST 2006 - werner@suse.de + +- Read upto EOF [#194598] + +------------------------------------------------------------------- +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... diff --git a/procps.spec b/procps.spec new file mode 100644 index 0000000..71fc07f --- /dev/null +++ b/procps.spec @@ -0,0 +1,431 @@ +# +# spec file for package procps +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define somajor 8 +%define libname libprocps%{somajor} +%if 0%{?suse_version} < 1550 +%bcond_with bin2usr +%else +%bcond_without bin2usr +%endif +%bcond_without pidof +%bcond_without nls +Name: procps +Version: 3.3.17 +Release: 0 +Summary: The ps utilities for /proc +License: GPL-2.0-or-later AND LGPL-2.1-or-later +Group: System/Monitoring +URL: https://sf.net/projects/procps-ng/ +Source: https://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-%{version}.tar.xz +#Alternate: https://gitlab.com/procps-ng/procps/-/archive/v%{version}/procps-v%{version}.tar.gz +Source1: procps-rpmlintrc +Patch0: procps-ng-3.3.9-watch.patch +Patch1: procps-v3.3.3-ia64.diff +Patch3: procps-ng-3.3.9-w-notruncate.diff +Patch7: procps-ng-3.3.8-readeof.patch +Patch8: procps-ng-3.3.10-slab.patch +Patch10: procps-ng-3.3.8-accuracy.dif +Patch11: procps-ng-3.3.10-xen.dif +Patch12: procps-ng-3.3.10-fdleak.dif +Patch13: procps-v3.3.3-columns.dif +Patch14: procps-ng-3.3.10-integer-overflow.patch +Patch15: procps-ng-3.3.10-bnc634071_procstat2.diff +Patch16: procps-ng-3.3.8-bnc634840.patch +Patch17: procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff +Patch18: procps-ng-3.3.8-petabytes.patch +Patch19: procps-ng-3.3.10-large_pcpu.patch +Patch20: procps-ng-3.3.8-tinfo.dif +Patch21: procps-v3.3.3-pwdx.patch +# PATCH-FIX-OPENSUSE -- trifle rest of the old terabyte patch +Patch28: procps-ng-3.3.8-vmstat-terabyte.dif +# PATCH-FIX-SUSE -- Ignore scan_unevictable_pages in sysctl +Patch31: procps-ng-3.3.8-ignore-scan_unevictable_pages.patch +# PATCH-FIX-SUSE -- Avoid errno set by setlocale() +Patch32: procps-ng-3.3.10-errno.patch +# PATCH-FEATURE-SUSE -- Let upstream pmap behave similar to old suse pmap +Patch33: procps-ng-3.3.11-pmap4suse.patch +# PATCH-FIX-UPSTREAM -- bsc#1181976 +Patch34: procps-3.3.17-bsc1181976.patch +# PATCH-FIX-UPSTREAM -- bsc#1195468 +Patch35: bsc1195468-23da4f40.patch +# PATCH-FIX-UPSTREAM -- bsc#1214290 +Patch36: CVE-2023-4016.patch +# PATCH-BACKPORT-FROM-UPSTREAM -- bsc#1181475: 'free' command reports misleading "used" value +Patch42: procps-3.3.17-library-bsc1181475.patch +Patch43: procps-3.3.17-top-bsc1181475.patch +Patch44: procps-ng-3.3.17-logind.patch +Patch45: procps-3.3.17-ignore-sysctl_conf.patch +BuildRequires: automake +BuildRequires: dejagnu +BuildRequires: diffutils +BuildRequires: libselinux-devel +BuildRequires: libtool +BuildRequires: ncurses-devel +BuildRequires: pkgconfig +BuildRequires: screen +BuildRequires: xz +BuildRequires: pkgconfig(libsystemd) +Provides: ps = %{version}-%{release} +Obsoletes: ps < %{version}-%{release} +Requires: %{libname} = %{version}-%{release} +%ifarch ia64 x86_64 ppc64 ppc %{sparc} +BuildRequires: libnuma-devel +%endif +%lang_package + +%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. + +%package devel +Summary: Development files for procps +License: GPL-2.0-or-later AND LGPL-2.1-or-later +Group: Development/Libraries/C and C++ +Requires: %{libname} = %{version} + +%description devel +The procps library can be used to read informations out from /proc +the process information pseudo-file system. + +This subpackage contains the header files for libprocps. + +%package -n %{libname} +Summary: The procps library +License: LGPL-2.1-or-later +Group: System/Libraries + +%description -n %{libname} +The procps library can be used to read informations out from /proc +the process information pseudo-file system. + +%prep +%setup -q +%patch0 +%patch1 +%patch3 -b .trcate +%patch7 -b .rof +%patch8 -b .cache +%patch10 -b .acc +%patch11 +%patch12 +%patch13 -b .column +%patch14 -b .ovrflw +%patch15 +%patch16 +%patch17 -b .sysctl +%patch18 +%patch19 +%patch20 +%patch21 +%patch28 +%patch31 -p1 +%patch32 +%patch33 -b .pmap4us +%patch34 +%patch35 -p1 +%patch36 -p0 +%patch42 +%patch43 +%patch44 -p1 +%patch45 -p1 + +%build +test -s .tarball-version || echo %{version} > .tarball-version +#./autogen.sh +autoreconf -fiv +major=$(sed -rn 's/^#define\s+NCURSES_VERSION_MAJOR\s+([0-9]+)/\1/p' %{_includedir}/ncurses.h) +export NCURSESW_CFLAGS="$(ncursesw${major}-config --cflags)" +export NCURSESW_LIBS="$(ncursesw${major}-config --libs)" +export LFS_CFLAGS="$(getconf LFS_CFLAGS)" +%global optflags %{optflags} -D_GNU_SOURCE $LFS_CFLAGS -DCPU_ZEROTICS -DUSE_X_COLHDR -pipe +%configure \ + --disable-static \ +%if !%{with nls} + --disable-nls \ +%endif + --disable-rpath \ + --disable-kill \ +%if !%{with pidof} + --disable-pidof \ +%endif + --enable-watch8bit \ + --enable-shared \ + --enable-skill \ + --enable-w-from \ + --enable-sigwinch \ + --enable-wide-percent \ + --enable-wide-memory \ + --enable-w-from \ + --enable-libselinux \ + --with-pic=yes \ + --with-systemd \ + --with-gnu-ld \ + --disable-modern-top +%make_build + +LD_LIBRARY_PATH=$PWD/proc/.libs \ +./pmap $$ || { + uname -a + echo /proc/$$/maps + cat /proc/$$/maps + echo /proc/$$/smaps + cat /proc/$$/smaps + exit 1 +} + +%install +%make_install +install -d %{buildroot}/bin +install -d %{buildroot}/sbin + +# clean unwanted files (e.g. coreutils) +rm -f %{buildroot}%{_bindir}/kill +rm -f %{buildroot}%{_bindir}/uptime +rm -f %{buildroot}%{_mandir}/man1/kill.1 +rm -f %{buildroot}%{_mandir}/*/man1/kill.1 +rm -f %{buildroot}%{_mandir}/man1/uptime.1 +rm -f %{buildroot}%{_mandir}/*/man1/uptime.1 +find %{buildroot} -type f -name "*.la" -delete -print +rm -rf %{buildroot}%{_datadir}/doc/procps-ng + +if cmp -s %{buildroot}%{_mandir}/man1/procps.1 %{buildroot}%{_mandir}/man1/ps.1 +then + rm -vf %{buildroot}%{_mandir}/man1/procps.1 + (cat > %{buildroot}%{_mandir}/man1/procps.1)<<-'EOF' + .so man1/ps.1 + EOF +fi + +%if %{with bin2usr} +# +# Identical binaries +# +if cmp -s %{buildroot}/%{_bindir}/pgrep %{buildroot}/%{_bindir}/pkill +then + rm -vf %{buildroot}/%{_bindir}/pkill + pushd %{buildroot}/%{_bindir} + ln pgrep pkill + popd +fi +if cmp -s %{buildroot}/%{_bindir}/snice %{buildroot}/%{_bindir}/skill +then + rm -vf %{buildroot}/%{_bindir}/skill + pushd %{buildroot}/%{_bindir} + ln snice skill + popd +fi +%if 0%{?suse_version} < 1550 +ln -s %{_bindir}/ps %{buildroot}/bin/ +ln -s %{_bindir}/pgrep %{buildroot}/bin/ +ln -s %{_bindir}/pkill %{buildroot}/bin/ +ln -s %{_sbindir}/sysctl %{buildroot}/sbin/ +%endif +%else +mv %{buildroot}%{_bindir}/ps %{buildroot}/bin/ +mv %{buildroot}%{_bindir}/pgrep %{buildroot}/bin/ +mv %{buildroot}%{_bindir}/pkill %{buildroot}/bin/ +mv %{buildroot}%{_sbindir}/sysctl %{buildroot}/sbin/ +# +# Identical binaries +# +if cmp -s %{buildroot}/bin/pgrep %{buildroot}/bin/pkill +then + rm -vf %{buildroot}/bin/pkill + pushd %{buildroot}/bin + ln pgrep pkill + popd +fi +if cmp -s %{buildroot}/%{_bindir}/snice %{buildroot}/%{_bindir}/skill +then + rm -vf %{buildroot}/%{_bindir}/skill + pushd %{buildroot}/%{_bindir} + ln snice skill + popd +fi +ln -s /bin/ps %{buildroot}%{_bindir}/ps +ln -s /bin/pgrep %{buildroot}%{_bindir}/pgrep +ln -s /bin/pkill %{buildroot}%{_bindir}/pkill +ln -s /sbin/sysctl %{buildroot}%{_sbindir}/sysctl +%endif + +%find_lang procps-ng --with-man --all-name + +%post -n %{libname} -p /sbin/ldconfig +%postun -n %{libname} -p /sbin/ldconfig + +%check +# +# Skip w test as there is no valid utmp +# +rm -rvf testsuite/w.test +# +# Provide a tty for testing +# +LANG=POSIX +LC_ALL=$LANG +unset LC_CTYPE +SCREENDIR=$(mktemp -d ${PWD}/screen.XXXXXX) || exit 1 +SCREENRC=${SCREENDIR}/bash +export SCREENRC SCREENDIR +exec 0< /dev/null +SCREENLOG=${SCREENDIR}/log +cat > $SCREENRC<<-EOF + deflogin off + deflog on + logfile $SCREENLOG + logfile flush 1 + logtstamp off + log on + setsid on + scrollback 0 + silence on + utf8 on + EOF +TMPDIR=$(mktemp -d /tmp/bash.XXXXXXXXXX) || exit 1 +> $SCREENLOG +tail -q -s 0.5 -f $SCREENLOG & pid=$! +env HOME=$PWD TERM=$TERM TMPDIR=$TMPDIR SCREENRC=$SCREENRC SCREENDIR=$SCREENDIR \ + screen -D -m make check +kill -TERM $pid +error=no +for log in test-suite.log testsuite/*.log +do + if grep -E '^(XFAIL|FAIL|ERROR):' $log + then + cat $log + error=yes + fi +done +%if 0%{?qemu_user_space_build} +if test -x /usr/bin/qemu-%_build_arch +then + echo Do not fail as pgrep as well as ps will find unexpected qemu-%_build_arch on command lines + exit 0 +fi +%endif +test $error = no || exit 1 + +%files +%defattr (-,root,root,755) +%license COPYING COPYING.LIB +%doc NEWS Documentation/bugs.md Documentation/FAQ +%if %{with bin2usr} +%if 0%{?suse_version} < 1550 +%verify(link) /bin/ps +%verify(link) /bin/pgrep +%verify(link) /bin/pkill +%verify(link) /sbin/sysctl +%endif +%{_bindir}/ps +%{_bindir}/pgrep +%{_bindir}/pkill +%{_sbindir}/sysctl +%else +/bin/ps +/bin/pgrep +/bin/pkill +/sbin/sysctl +%verify(link) %{_bindir}/ps +%verify(link) %{_bindir}/pgrep +%verify(link) %{_bindir}/pkill +%verify(link) %{_sbindir}/sysctl +%endif +%{_bindir}/free +%if %{with pidof} +%{_bindir}/pidof +%endif +%{_bindir}/pmap +%{_bindir}/pwait +%{_bindir}/pwdx +%{_bindir}/skill +%{_bindir}/slabtop +%{_bindir}/snice +%{_bindir}/tload +%{_bindir}/top +%{_bindir}/vmstat +%{_bindir}/w +%{_bindir}/watch +%{_mandir}/man1/free.1%{?ext_man} +%{_mandir}/man1/pgrep.1%{?ext_man} +%if %{with pidof} +%{_mandir}/man1/pidof.1%{?ext_man} +%endif +%{_mandir}/man1/pkill.1%{?ext_man} +%{_mandir}/man1/pmap.1%{?ext_man} +%{_mandir}/man1/procps.1%{?ext_man} +%{_mandir}/man1/ps.1%{?ext_man} +%{_mandir}/man1/pwait.1%{?ext_man} +%{_mandir}/man1/pwdx.1%{?ext_man} +%{_mandir}/man1/skill.1%{?ext_man} +%{_mandir}/man1/slabtop.1%{?ext_man} +%{_mandir}/man1/snice.1%{?ext_man} +%{_mandir}/man1/tload.1%{?ext_man} +%{_mandir}/man1/top.1%{?ext_man} +%{_mandir}/man1/w.1%{?ext_man} +%{_mandir}/man1/watch.1%{?ext_man} +%{_mandir}/man5/sysctl.conf.5%{?ext_man} +%{_mandir}/man8/vmstat.8%{?ext_man} +%{_mandir}/man8/sysctl.8%{?ext_man} + +%files devel +%defattr (-,root,root,755) +%dir %{_includedir}/proc +%{_includedir}/proc/alloc.h +%{_includedir}/proc/devname.h +%{_includedir}/proc/escape.h +%{_includedir}/proc/numa.h +%{_includedir}/proc/procps.h +%{_includedir}/proc/pwcache.h +%{_includedir}/proc/readproc.h +%{_includedir}/proc/sig.h +%{_includedir}/proc/slab.h +%{_includedir}/proc/sysinfo.h +%{_includedir}/proc/version.h +%{_includedir}/proc/wchan.h +%{_includedir}/proc/whattime.h +%{_libdir}/libprocps.so +%{_libdir}/pkgconfig/libprocps.pc +%{_mandir}/man3/openproc.3%{?ext_man} +%{_mandir}/man3/readproc.3%{?ext_man} +%{_mandir}/man3/readproctab.3%{?ext_man} + +%files -n %{libname} +%defattr (-,root,root,755) +%{_libdir}/libprocps.so.%{somajor}* + +%files lang -f procps-ng.lang +%if 0%{?suse_version} < 1550 +%dir %{_mandir}/uk/ +%endif + +%changelog