Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package procps for openSUSE:Factory checked in at 2022-04-14 17:23:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/procps (Old) and /work/SRC/openSUSE:Factory/.procps.new.1941 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "procps" Thu Apr 14 17:23:21 2022 rev:127 rq:969331 version:3.3.17 Changes: -------- --- /work/SRC/openSUSE:Factory/procps/procps.changes 2022-04-05 19:55:26.562240763 +0200 +++ /work/SRC/openSUSE:Factory/.procps.new.1941/procps.changes 2022-04-14 17:23:32.427128392 +0200 @@ -2,93 +1,0 @@ -Thu Mar 31 07:45:35 UTC 2022 - Dr. Werner Fink <[email protected]> - -- Drop patch procps-ng-4.0.0-aix_sortformats.dif as replaced by - upstream patch 0002-ps-restore-aix-behavior-while-keeping-an-original-fi.patch -- Add upstream patches - * 0001-top-update-one-function-prologue-after-rcfile-change.patch - * 0003-ps-restore-thread-display-when-using-a-pidlist-optio.patch - -------------------------------------------------------------------- -Wed Mar 30 09:52:27 UTC 2022 - Dr. Werner Fink <[email protected]> - -- Drop not needed patch procps-ng-3.3.9-watch.patch as the API - has changed here - -------------------------------------------------------------------- -Wed Mar 30 09:23:58 UTC 2022 - Dr. Werner Fink <[email protected]> - -- Add patch procps-ng-4.0.0-floats.dif to avoid float errors on - 32bit architectures - -------------------------------------------------------------------- -Wed Mar 30 09:12:42 UTC 2022 - Dr. Werner Fink <[email protected]> - -- Add patch procps-ng-4.0.0-aix_sortformats.dif to restore AIX sort - format support as well - -------------------------------------------------------------------- -Tue Mar 29 12:49:48 UTC 2022 - Dr. Werner Fink <[email protected]> - -- Update to procps-ng-4.0.0 - + Warning: new shared library interface with libproc-2 - * Rename pwait to pidwait - * free: Add committed line option merge #25 - * free: Fix -h --si combined options issue #133, #223 - * free: Fix first column justification issue #229, #204, #206, Debian #1001689 - * free: Better spacing for Chinese language issue #213 - * library: renamed to libproc-2 and reset to 0:0:0 - * library: add support for accessing smaps_rollup issue #112, #201 - * library: add support for accessing autogroups - * library: add support for LIBPROC_HIDE_KERNEL env var merge #147 - * library: add support for cpu utilization to pids i/f - * pkill: Check for lt- variants of program name issue #192 - * pgrep: Add newline after regex error message merge #91 - * pgrep: Fix selection where uid/gid > 2^31 merge !146 - * pgrep: Select on cgroup v2 paths issue #168 - * ps: Add OOM and OOMADJ fields issue #198 - * ps: Add IO Accounting fields issue #184 - * ps: Add PSS and USS fields issue #112 - * ps: Add two new autogroup fields - * ps: Ignore SIGURG merge !142 - * slabtop: Don't combine d and o options issue #160 - * sysctl: Add support for systemd glob patterns issue #191 - * sysctl: Check resolved path to be under /proc/sys issue #179 - * sysctl: return non-zero if EINVAL return for write merge #76 - * sysctl.conf.5: Note max line length issue #77 - * top: added LOGID similar to 3.3.13 ps LUID - * top: added EXE identical to 3.3.17 ps EXE - * top: exploit some library smaps_rollup provisions issue #112 - * top: added four new IO accounting fields issue #184 - * top: 'F' key is now a new forest view 'focus' toggle - * top: summary area memory lines can print two abreast - * top: added two new autogroup fields - * top: added long versions of command line options - * top: added cpu utilization & 2 time related fields - * top: the time related fields can now be user scaled - * uptime: print short/pretty format correctly issue #217 - * vmstat: add -y option to remove first line merge !72 -- Remove patch now upstream fixed - * procps-3.3.17-bsc1181976.patch - * procps-ng-3.3.10-bnc634071_procstat2.diff - * procps-ng-3.3.10-fdleak.dif - * bsc1195468-23da4f40.patch -- Port patches - * procps-ng-3.3.10-errno.patch - * 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.11-pmap4suse.patch - * 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-vmstat-terabyte.dif - * procps-ng-3.3.9-w-notruncate.diff - * procps-v3.3.3-columns.dif - * procps-v3.3.3-ia64.diff - * procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff -- Port and rename patch - * procps-ng-3.3.8-accuracy.dif becomes procps-ng-4.0.0-accuracy.dif - * procps-ng-3.3.10-integer-overflow.patch becomes procps-ng-4.0.0-integer-overflow.patch - -------------------------------------------------------------------- Old: ---- 0001-top-update-one-function-prologue-after-rcfile-change.patch 0002-ps-restore-aix-behavior-while-keeping-an-original-fi.patch 0003-ps-restore-thread-display-when-using-a-pidlist-optio.patch procps-ng-4.0.0-accuracy.dif procps-ng-4.0.0-floats.dif procps-ng-4.0.0-integer-overflow.patch procps-ng-4.0.0.tar.xz New: ---- bsc1195468-23da4f40.patch procps-3.3.17-bsc1181976.patch procps-ng-3.3.10-bnc634071_procstat2.diff procps-ng-3.3.10-fdleak.dif procps-ng-3.3.10-integer-overflow.patch procps-ng-3.3.17.tar.xz procps-ng-3.3.8-accuracy.dif procps-ng-3.3.9-watch.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ procps.spec ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:33.079129154 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:33.083129159 +0200 @@ -16,8 +16,8 @@ # -%define somajor 0 -%define libname libproc-2-%{somajor} +%define somajor 8 +%define libname libprocps%{somajor} %if !0%{?usrmerged} %bcond_with bin2usr %else @@ -26,7 +26,7 @@ %bcond_without pidof %bcond_without nls Name: procps -Version: 4.0.0 +Version: 3.3.17 Release: 0 Summary: The ps utilities for /proc License: GPL-2.0-or-later AND LGPL-2.1-or-later @@ -35,14 +35,17 @@ 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-4.0.0-accuracy.dif +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-4.0.0-integer-overflow.patch +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 @@ -57,12 +60,10 @@ 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 -- Avoid error on AIX sort formats -Patch34: 0001-top-update-one-function-prologue-after-rcfile-change.patch -Patch35: 0002-ps-restore-aix-behavior-while-keeping-an-original-fi.patch -Patch36: 0003-ps-restore-thread-display-when-using-a-pidlist-optio.patch -# PATCH-FIX-SUSE -- Avoid float errors on 32bit architectures -Patch37: procps-ng-4.0.0-floats.dif +# PATCH-FIX-UPSTREAM -- bsc#1181976 +Patch34: procps-3.3.17-bsc1181976.patch +# PATCH-FIX-UPSTREAM -- bsc#1195468 +Patch35: bsc1195468-23da4f40.patch BuildRequires: automake BuildRequires: dejagnu BuildRequires: diffutils @@ -120,15 +121,18 @@ the process information pseudo-file system. %prep -%setup -q -n %{name}-ng-%{version} +%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 @@ -139,10 +143,8 @@ %patch31 -p1 %patch32 %patch33 -b .pmap4us -%patch34 -p1 +%patch34 %patch35 -p1 -%patch36 -p1 -%patch37 %build test -s .tarball-version || echo %{version} > .tarball-version @@ -203,11 +205,11 @@ find %{buildroot} -type f -name "*.la" -delete -print rm -rf %{buildroot}%{_datadir}/doc/procps-ng -if cmp -s %{buildroot}%{_mandir}/man1/pidwait.1 %{buildroot}%{_mandir}/man1/pkill.1 +if cmp -s %{buildroot}%{_mandir}/man1/procps.1 %{buildroot}%{_mandir}/man1/ps.1 then - rm -vf %{buildroot}%{_mandir}/man1/pidwait.1 - (cat > %{buildroot}%{_mandir}/man1/pidwait.1)<<-'EOF' - .so man1/pkill.1 + rm -vf %{buildroot}%{_mandir}/man1/procps.1 + (cat > %{buildroot}%{_mandir}/man1/procps.1)<<-'EOF' + .so man1/ps.1 EOF fi @@ -350,7 +352,7 @@ %{_bindir}/pidof %endif %{_bindir}/pmap -%{_bindir}/pidwait +%{_bindir}/pwait %{_bindir}/pwdx %{_bindir}/skill %{_bindir}/slabtop @@ -367,8 +369,9 @@ %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/pidwait.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} @@ -383,17 +386,29 @@ %files devel %defattr (-,root,root,755) -%dir %{_includedir}/procps -%{_includedir}/procps/*.h -%{_libdir}/libproc-2.so -%{_libdir}/pkgconfig/libproc-2.pc -%{_mandir}/man3/procps.3%{?ext_man} -%{_mandir}/man3/procps_misc.3%{?ext_man} -%{_mandir}/man3/procps_pids.3%{?ext_man} +%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}/libproc-2.so.%{somajor}* +%{_libdir}/libprocps.so.%{somajor}* %files lang -f procps-ng.lang ++++++ bsc1195468-23da4f40.patch ++++++ >From 23da4f40ea27afe998e92ca317f2dcb48a6ffc1f Mon Sep 17 00:00:00 2001 From: Tommi Rantala <[email protected]> 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 ++++++ procps-3.3.17-bsc1181976.patch ++++++ >From 3dd1661a3d91671ca6c977c2e514f47d807be79d Mon Sep 17 00:00:00 2001 From: Craig Small <[email protected]> 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 ++++++ procps-ng-3.3.10-bnc634071_procstat2.diff ++++++ --- 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 <elf.h> -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 */ ++++++ procps-ng-3.3.10-errno.patch ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:33.135129219 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:33.139129224 +0200 @@ -10,16 +10,16 @@ 1 file changed, 5 insertions(+) --- free.c -+++ free.c 2022-03-29 11:17:45.442230673 +0000 -@@ -209,6 +209,7 @@ int main(int argc, char **argv) ++++ 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; - struct meminfo_info *mem_info = NULL; + int errsv; /* * For long options that have no equivalent short option, use a -@@ -260,10 +261,12 @@ int main(int argc, char **argv) +@@ -247,10 +248,12 @@ int main(int argc, char **argv) #ifdef HAVE_PROGRAM_INVOCATION_NAME program_invocation_name = program_invocation_short_name; #endif @@ -30,9 +30,9 @@ atexit(close_stdout); + errno = errsv; - while ((c = getopt_long(argc, argv, "bkmghltvCc:ws:V", longopts, NULL)) != -1) + while ((c = getopt_long(argc, argv, "bkmghltCc:ws:V", longopts, NULL)) != -1) switch (c) { -@@ -333,11 +336,13 @@ int main(int argc, char **argv) +@@ -317,11 +320,13 @@ int main(int argc, char **argv) break; case 's': flags |= FREE_REPEAT; ++++++ procps-ng-3.3.10-fdleak.dif ++++++ --- 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 <string.h> #include <sys/ioctl.h> #include <sys/types.h> +#include <sys/stat.h> #include <termios.h> #include <unistd.h> #include <time.h> @@ -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) ++++++ procps-ng-4.0.0-integer-overflow.patch -> procps-ng-3.3.10-integer-overflow.patch ++++++ --- /work/SRC/openSUSE:Factory/procps/procps-ng-4.0.0-integer-overflow.patch 2022-04-05 19:55:26.462241878 +0200 +++ /work/SRC/openSUSE:Factory/.procps.new.1941/procps-ng-3.3.10-integer-overflow.patch 2022-04-14 17:23:31.655127489 +0200 @@ -1,26 +1,61 @@ --- - proc/meminfo.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) + free.c | 19 ++++++++++++++++--- + proc/sysinfo.c | 5 ++++- + 2 files changed, 20 insertions(+), 4 deletions(-) ---- proc/meminfo.c -+++ proc/meminfo.c 2022-03-29 09:50:45.076823155 +0000 -@@ -710,7 +710,9 @@ static int meminfo_read_failed ( - mHr(derived_mem_used) = (unsigned long)mem_used; +--- 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"); - if (mHr(HighFree) < mHr(HighTotal)) -- mHr(derived_mem_hi_used) = mHr(HighTotal) - mHr(HighFree); -+ mHr(derived_mem_hi_used) = mHr(HighTotal) - mHr(HighFree); -+ else -+ mHr(derived_mem_hi_used) = 0; + 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 (0 == mHr(LowTotal)) { - mHr(LowTotal) = mHr(MemTotal); -@@ -718,6 +720,8 @@ static int meminfo_read_failed ( - } - if (mHr(LowFree) < mHr(LowTotal)) - mHr(derived_mem_lo_used) = mHr(LowTotal) - mHr(LowFree); -+ else -+ mHr(derived_mem_lo_used) = 0; - - if (mHr(SwapFree) < mHr(SwapTotal)) - mHr(derived_swap_used) = mHr(SwapTotal) - mHr(SwapFree); + /* 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 ++++++ procps-ng-3.3.10-large_pcpu.patch ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:33.167129257 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:33.171129261 +0200 @@ -3,17 +3,17 @@ 1 file changed, 5 insertions(+), 1 deletion(-) --- top/top.c -+++ top/top.c 2022-03-29 10:29:24.422368662 +0000 -@@ -2457,7 +2457,11 @@ static void zap_fieldstab (void) { ++++ 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 && Cpu_cnt > 1 && !Thread_mode) { - Cpu_pmax = 100.0 * Cpu_cnt; -- if (Cpu_cnt > 10) { -+ if (Cpu_cnt > 1000) { -+ if (Cpu_pmax > 9999999.0) Cpu_pmax = 9999999.0; -+ } else if (Cpu_cnt > 100) { -+ if (Cpu_cnt > 999999.0) Cpu_pmax = 999999.0; -+ } else if (Cpu_cnt > 10) { + 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; ++++++ procps-ng-3.3.10-slab.patch ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:33.179129271 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:33.183129276 +0200 @@ -1,12 +1,12 @@ --- free.1 | 6 ++++++ free.c | 7 ++++++- - proc/meminfo.c | 7 ++++++- - vmstat.c | 7 ++++++- - 4 files changed, 24 insertions(+), 3 deletions(-) + proc/sysinfo.c | 4 ++++ + vmstat.c | 6 +++++- + 4 files changed, 21 insertions(+), 2 deletions(-) --- free.1 -+++ free.1 2022-03-28 11:53:32.173182702 +0000 ++++ 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. @@ -21,33 +21,33 @@ Display the result .I count --- free.c -+++ free.c 2022-03-28 12:05:01.544663755 +0000 -@@ -93,6 +93,7 @@ static void __attribute__ ((__noreturn__ - fputs(_(" -v, --committed show committed memory and commit limit\n"), out); ++++ 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); -@@ -244,6 +245,7 @@ int main(int argc, char **argv) - { "committed", no_argument, NULL, 'v' }, +@@ -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",no_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' }, -@@ -263,7 +265,7 @@ int main(int argc, char **argv) +@@ -250,7 +252,7 @@ int main(int argc, char **argv) textdomain(PACKAGE); atexit(close_stdout); -- while ((c = getopt_long(argc, argv, "bkmghltvc:ws:V", longopts, NULL)) != -1) -+ while ((c = getopt_long(argc, argv, "bkmghltvCc:ws:V", longopts, NULL)) != -1) +- 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); -@@ -349,6 +351,9 @@ int main(int argc, char **argv) +@@ -333,6 +335,9 @@ int main(int argc, char **argv) case 'w': flags |= FREE_WIDE; break; @@ -57,71 +57,60 @@ case HELP_OPTION: usage(stdout); case 'V': ---- proc/meminfo.c -+++ proc/meminfo.c 2022-03-28 12:39:29.291205555 +0000 +--- proc/sysinfo.c ++++ proc/sysinfo.c 2019-12-11 06:20:16.659772479 +0000 @@ -3,6 +3,7 @@ - * - * Copyright (C) 2015 Craig Small <[email protected]> - * Copyright (C) 2016-2022 Jim Warner <[email protected]> + * Copyright (C) 1992-1998 by Michael K. Johnson, [email protected] + * 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 -@@ -640,6 +641,7 @@ static int meminfo_read_failed ( - int size; - unsigned long *valptr; - signed long mem_used; -+ const char *ev; - - // remember history from last time around - memcpy(&info->hist.old, &info->hist.new, sizeof(struct meminfo_data)); -@@ -692,7 +694,10 @@ static int meminfo_read_failed ( - - if (0 == mHr(MemAvailable)) - mHr(MemAvailable) = mHr(MemFree); -- mHr(derived_mem_cached) = mHr(Cached) + mHr(SReclaimable); -+ if ((ev=getenv("PS_FULL_CACHE"))) -+ mHr(derived_mem_cached) = mHr(Cached) + mHr(SReclaimable) + mHr(NFS_Unstable); -+ else -+ mHr(derived_mem_cached) = mHr(Cached) + mHr(SReclaimable); +@@ -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 'available' is greater than 'total' or our calculation of mem_used - overflows, that's symptomatic of running within a lxc container where + /* if kb_main_available is greater than kb_main_total or our calculation of --- vmstat.c -+++ vmstat.c 2022-03-28 12:41:52.744612074 +0000 -@@ -234,6 +234,7 @@ static void __attribute__ ((__noreturn__ - fputs(_(" -p, --partition <dev> partition specific statistics\n"), out); - fputs(_(" -S, --unit <char> 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(_(" -y, --no-first skips first line of output\n"), out); - fputs(USAGE_SEPARATOR, out); -@@ -948,6 +949,7 @@ int main(int argc, char *argv[]) - {"partition", required_argument, NULL, 'p'}, - {"unit", required_argument, NULL, 'S'}, - {"wide", no_argument, NULL, 'w'}, -+ {"full-cache", no_argument, NULL, 'C'}, - {"timestamp", no_argument, NULL, 't'}, - {"help", no_argument, NULL, 'h'}, - {"version", no_argument, NULL, 'V'}, -@@ -964,7 +966,7 @@ int main(int argc, char *argv[]) - atexit(close_stdout); ++++ vmstat.c 2019-12-11 06:22:44.716984764 +0000 +@@ -103,6 +103,7 @@ static void __attribute__ ((__noreturn__ + fputs(_(" -p, --partition <dev> partition specific statistics\n"), out); + fputs(_(" -S, --unit <char> 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:wthVy", longopts, NULL)) != -1) -+ getopt_long(argc, argv, "aCfmnsdDp:S:wthVy", longopts, NULL)) != -1) - switch (c) { - case 'V': - printf(PROCPS_NG_VERSION); -@@ -1031,6 +1033,9 @@ int main(int argc, char *argv[]) - case 't': - t_option = 1; - break; -+ case 'C': -+ setenv("PS_FULL_CACHE", "yes", 1); -+ break; - case 'y': - /* Don't display stats since system restart */ - y_option = 1; + 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); ++++++ procps-ng-3.3.10-xen.dif ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:33.195129289 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:33.199129294 +0200 @@ -1,34 +1,30 @@ ---- - vmstat.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - --- vmstat.c -+++ vmstat.c 2022-03-29 09:21:41.156855432 +0000 -@@ -362,7 +362,7 @@ static void new_format(void) - unsigned long pgpgin[2], pgpgout[2], pswpin[2] = {0,0}, pswpout[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]; -@@ -481,12 +481,12 @@ static void new_format(void) ++++ 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) { -- cpu_idl = (int)cpu_idl + debt; -- debt = 0; -+ cpu_idl = cpu_idl + debt; -+ debt = 0LL; - } -- if ((int)cpu_idl < 0) { -- debt = (int)cpu_idl; -- cpu_idl = 0; -+ if (cpu_idl < 0) { -+ debt = cpu_idl; -+ cpu_idl = 0LL; - } + /* 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 = cpu_use + cpu_sys + cpu_idl + cpu_iow + cpu_sto; + Div = duse + dsys + didl + diow + dstl; ++++++ procps-ng-3.3.11-pmap4suse.patch ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:33.207129304 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:33.211129308 +0200 @@ -4,8 +4,8 @@ 2 files changed, 44 insertions(+), 20 deletions(-) --- pmap.c -+++ pmap.c 2022-03-29 11:46:26.323303275 +0000 -@@ -55,7 +55,9 @@ const char *nls_Address, ++++ pmap.c 2018-06-05 09:37:34.404294888 +0000 +@@ -49,7 +49,9 @@ const char *nls_Address, *nls_Kbytes, *nls_Mode, *nls_RSS, @@ -16,7 +16,7 @@ static void nls_initialize(void) { -@@ -79,7 +81,9 @@ static void nls_initialize(void) +@@ -73,7 +75,9 @@ static void nls_initialize(void) nls_Kbytes = _("Kbytes"); nls_Mode = _("Mode"); nls_RSS = _("RSS"); @@ -26,20 +26,20 @@ } static int justify_print(const char *str, int width, int right) -@@ -146,10 +150,10 @@ static int d_option = 0; - static int n_option = 0; - static int N_option = 0; - static int q_option = 0; --static int x_option = 0; +@@ -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 = 0; + static int X_option; -static int map_desc_showpath; +static int map_desc_showpath = 1; static unsigned shm_minor = ~0u; -@@ -533,12 +537,17 @@ static int one_proc (struct pids_stack * +@@ -522,12 +526,17 @@ static int one_proc(const proc_t * p) char perms[32] = ""; const char *cp2 = NULL; unsigned long long rss = 0ull; @@ -55,12 +55,12 @@ int maxw1=0, maxw2=0, maxw3=0, maxw4=0, maxw5=0; + int maxw6=0, maxw7=0; - printf("%u: %s\n", PIDS_VAL(tgid, s_int, p, Pids_info), PIDS_VAL(cmdline, str, p, Pids_info)); - -@@ -561,13 +570,15 @@ static int one_proc (struct pids_stack * + /* 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(long) == 4) maxw1 = 8; + if (sizeof(KLONG) == 4) maxw1 = 8; - maxw2 = maxw3 = maxw4 = 7; + maxw2 = maxw3 = maxw4 = maxw6 = maxw7 = 7; maxw5 = 5; @@ -74,7 +74,7 @@ maxw5 = justify_print(nls_Mode, maxw5, 0); justify_print(nls_Mapping, 0, 0); } -@@ -607,6 +618,11 @@ static int one_proc (struct pids_stack * +@@ -603,6 +614,11 @@ static int one_proc(const proc_t * p) total_rss += smap_value; continue; } @@ -86,30 +86,29 @@ if (strcmp("Shared_Dirty", smap_key) == 0) { shared_dirty = smap_value; total_shared_dirty += smap_value; -@@ -619,16 +635,20 @@ static int one_proc (struct pids_stack * +@@ -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*lx %*lu %*llu %*llu %*s %s\n", -+ printf("%0*lx %*lu %*llu %*llu %*llu %*llu %*s %s\n", - maxw1, start_To_Avoid_Warning, - maxw2, (unsigned long)(diff >> 10), - maxw3, rss, -+ maxw6, pss, - maxw4, (private_dirty + shared_dirty), -+ maxw7, swap, - maxw5, perms, - cp2); ++ 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; - diff = end = 0; - perms[0] = '\0'; - cp2 = NULL; -@@ -662,7 +682,6 @@ static int one_proc (struct pids_stack * + 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') { @@ -117,7 +116,7 @@ if (perms[1] == 'w') total_private_writeable += diff; else -@@ -714,17 +733,21 @@ static int one_proc (struct pids_stack * +@@ -708,17 +727,21 @@ static int one_proc(const proc_t * p) justify_print("----------------", maxw1, 0); justify_print("-------", maxw2, 1); justify_print("-------", maxw3, 1); @@ -141,7 +140,7 @@ } if (d_option) { printf -@@ -1037,16 +1060,18 @@ int main(int argc, char **argv) +@@ -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': @@ -163,7 +162,7 @@ case 'q': q_option = 1; --- testsuite/pmap.test/pmap.exp -+++ testsuite/pmap.test/pmap.exp 2022-03-29 11:19:45.948044571 +0000 ++++ 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 ++++++ procps-ng-4.0.0.tar.xz -> procps-ng-3.3.17.tar.xz ++++++ ++++ 251323 lines of diff (skipped) ++++++ procps-ng-4.0.0-accuracy.dif -> procps-ng-3.3.8-accuracy.dif ++++++ --- /work/SRC/openSUSE:Factory/procps/procps-ng-4.0.0-accuracy.dif 2022-04-05 19:55:26.438242145 +0200 +++ /work/SRC/openSUSE:Factory/.procps.new.1941/procps-ng-3.3.8-accuracy.dif 2022-04-14 17:23:31.947127831 +0200 @@ -1,175 +1,98 @@ --- - proc/pids.c | 18 +++++++++++++++--- - proc/pids.h | 1 + - ps/common.h | 3 +++ - ps/display.c | 1 + - ps/global.c | 1 + - ps/output.c | 18 +++++++++--------- - 6 files changed, 30 insertions(+), 12 deletions(-) + ps/common.h | 1 + + ps/global.c | 5 ++++- + ps/output.c | 19 ++++++++++--------- + 3 files changed, 15 insertions(+), 10 deletions(-) ---- proc/pids.c -+++ proc/pids.c 2022-03-30 08:53:15.180093896 +0000 -@@ -92,6 +92,7 @@ struct pids_info { - PROCTAB *fetch_PT; // oldlib interface for 'select' & 'reap' - unsigned long hertz; // for the 'TIME' & 'UTILIZATION' calculations - double boot_seconds; // for TIME_ELAPSED & 'UTILIZATION' calculations -+ unsigned long long boot_tics; // for TIME_ELAPSED & 'UTILIZATION' calculations - PROCTAB *get_PT; // oldlib interface for active 'get' - struct stacks_extent *get_ext; // for active 'get' (also within 'extents') - enum pids_fetch_type get_type; // last known type of 'get' request -@@ -282,6 +283,7 @@ setDECL(TICS_USER_C) { (void)I; R->re - setDECL(TIME_ALL) { R->result.real = ((double)P->utime + P->stime) / I->hertz; } - setDECL(TIME_ALL_C) { R->result.real = ((double)P->utime + P->stime + P->cutime + P->cstime) / I->hertz; } - setDECL(TIME_ELAPSED) { double t = (double)P->start_time / I->hertz; R->result.real = I->boot_seconds > t ? I->boot_seconds - t : 0; } -+setDECL(TICS_ELAPSED) { R->result.ull_int = I->boot_tics >= P->start_time ? I->boot_tics - P->start_time : 0; } - setDECL(TIME_START) { R->result.real = (double)P->start_time / I->hertz; } - REG_set(TTY, s_int, tty) - setDECL(TTY_NAME) { char buf[64]; freNAME(str)(R); dev_to_tty(buf, sizeof(buf), P->tty, P->tid, ABBREV_DEV); if (!(R->result.str = strdup(buf))) I->seterr = 1; } -@@ -571,6 +573,7 @@ static struct { - { RS(TIME_ALL), f_stat, NULL, QS(real), 0, TS(real) }, - { RS(TIME_ALL_C), f_stat, NULL, QS(real), 0, TS(real) }, - { RS(TIME_ELAPSED), f_stat, NULL, QS(real), 0, TS(real) }, -+ { RS(TICS_ELAPSED), f_stat, NULL, QS(ull_int), 0, TS(ull_int) }, - { RS(TIME_START), f_stat, NULL, QS(real), 0, TS(real) }, - { RS(TTY), f_stat, NULL, QS(s_int), 0, TS(s_int) }, - { RS(TTY_NAME), f_stat, FF(str), QS(strvers), 0, TS(str) }, -@@ -1441,8 +1444,11 @@ fresh_start: - /* when in a namespace with proc mounted subset=pid, - we will be restricted to process information only */ - info->boot_seconds = 0; -- if (0 >= procps_uptime(&up_secs, NULL)) -+ info->boot_tics = 0; -+ if (0 >= procps_uptime(&up_secs, NULL)) { - info->boot_seconds = up_secs; -+ info->boot_tics = up_secs * info->hertz; -+ } - - if (NULL == info->read_something(info->get_PT, &info->get_proc)) - return NULL; -@@ -1484,8 +1490,11 @@ PROCPS_EXPORT struct pids_fetch *procps_ - /* when in a namespace with proc mounted subset=pid, - we will be restricted to process information only */ - info->boot_seconds = 0; -- if (0 >= procps_uptime(&up_secs, NULL)) -+ info->boot_tics = 0; -+ if (0 >= procps_uptime(&up_secs, NULL)) { - info->boot_seconds = up_secs; -+ info->boot_tics = up_secs * info->hertz; -+ } - - rc = pids_stacks_fetch(info); - -@@ -1589,8 +1598,11 @@ PROCPS_EXPORT struct pids_fetch *procps_ - /* when in a namespace with proc mounted subset=pid, - we will be restricted to process information only */ - info->boot_seconds = 0; -- if (0 >= procps_uptime(&up_secs, NULL)) -+ info->boot_tics = 0; -+ if (0 >= procps_uptime(&up_secs, NULL)) { - info->boot_seconds = up_secs; -+ info->boot_tics = up_secs * info->hertz; -+ } - - rc = pids_stacks_fetch(info); - ---- proc/pids.h -+++ proc/pids.h 2022-03-30 08:53:15.180093896 +0000 -@@ -165,6 +165,7 @@ enum pids_item { - PIDS_TIME_ALL, // real derived from stat: (utime + stime) / hertz - PIDS_TIME_ALL_C, // real derived from stat: (utime + stime + cutime + cstime) / hertz - PIDS_TIME_ELAPSED, // real derived from /proc/uptime - (starttime / hertz) -+ PIDS_TICS_ELAPSED, // ull_int derived from /proc/uptime - starttime - PIDS_TIME_START, // real derived from stat: start_time / hertz - PIDS_TTY, // s_int stat: tty_nr - PIDS_TTY_NAME, // str derived from TTY --- ps/common.h -+++ ps/common.h 2022-03-30 08:53:15.180093896 +0000 -@@ -42,6 +42,8 @@ - #define namREL(e) rel_ ## e - #define makEXT(e) extern int namREL(e); - #define makREL(e) int namREL(e) = -1; -+#define makEXTULL(e) extern unsigned long long namREL(e); -+#define makRELULL(e) unsigned long long namREL(e) = -1; - #define chkREL(e) if (namREL(e) < 0) { \ - Pids_items[Pids_index] = PIDS_ ## e; \ - namREL(e) = (Pids_index < PIDSITEMS) ? Pids_index++ : rel_noop; } -@@ -160,6 +162,7 @@ makEXT(TICS_ALL) - makEXT(TICS_ALL_C) - makEXT(TIME_ALL) - makEXT(TIME_ELAPSED) -+makEXT(TICS_ELAPSED) - makEXT(TICS_BEGAN) - makEXT(TTY) - makEXT(TTY_NAME) ---- ps/display.c -+++ ps/display.c 2022-03-30 08:54:22.410871769 +0000 -@@ -584,6 +584,7 @@ static void finalize_stacks (void) - chkREL(TICS_ALL_C) - chkREL(TIME_ALL) - chkREL(TIME_ELAPSED) -+ chkREL(TICS_ELAPSED) - chkREL(TICS_BEGAN) - // special items with 'extra' used as former pcpu - chkREL(extra) ++++ 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 2022-03-30 08:53:15.180093896 +0000 -@@ -141,6 +141,7 @@ makREL(TICS_ALL) - makREL(TICS_ALL_C) - makREL(TIME_ALL) - makREL(TIME_ELAPSED) -+makREL(TICS_ELAPSED) - makREL(TICS_BEGAN) - makREL(TTY) - makREL(TTY_NAME) ++++ 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 2022-03-30 08:53:15.180093896 +0000 -@@ -517,13 +517,13 @@ setREL1(TIME_ELAPSED) ++++ 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; /* scaled %cpu, 99 means 99% */ + unsigned pcpu = 0; /* scaled %cpu, 99 means 99% */ - unsigned long long seconds; /* seconds of process life */ + unsigned long long jiffies; /* jiffies of process life */ - setREL4(TICS_ALL,TICS_ALL_C,TIME_ELAPSED,UTILIZATION) - pcpu = 0; - if(include_dead_children) total_time = rSv(TICS_ALL_C, ull_int, pp); - else total_time = rSv(TICS_ALL, ull_int, pp); -- seconds = rSv(TIME_ELAPSED, real, pp); + 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 = rSv(TICS_ELAPSED, ull_int, pp); ++ jiffies = cook_jtime(pp); + if(jiffies) pcpu = (total_time * 100ULL) / jiffies; if (pcpu > 99U) pcpu = 99U; return snprintf(outbuf, COLWID, "%2u", pcpu); } -@@ -532,13 +532,13 @@ setREL4(TICS_ALL,TICS_ALL_C,TIME_ELAPSED +@@ -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; /* scaled %cpu, 999 means 99.9% */ + 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 */ - setREL4(TICS_ALL,TICS_ALL_C,TIME_ELAPSED,UTILIZATION) - pcpu = 0; - if(include_dead_children) total_time = rSv(TICS_ALL_C, ull_int, pp); - else total_time = rSv(TICS_ALL, ull_int, pp); -- seconds = rSv(TIME_ELAPSED, real, pp); + 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 = rSv(TICS_ELAPSED, ull_int, pp); ++ 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); -@@ -548,13 +548,13 @@ setREL4(TICS_ALL,TICS_ALL_C,TIME_ELAPSED +@@ -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; /* scaled %cpu, 999 means 99.9% */ + 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 */ - setREL4(TICS_ALL,TICS_ALL_C,TIME_ELAPSED,UTILIZATION) - pcpu = 0; - if(include_dead_children) total_time = rSv(TICS_ALL_C, ull_int, pp); - else total_time = rSv(TICS_ALL, ull_int, pp); -- seconds = rSv(TIME_ELAPSED, real, pp); + 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 = rSv(TICS_ELAPSED, ull_int, pp); ++ jiffies = cook_jtime(pp); + if(jiffies) pcpu = (total_time * 1000ULL) / jiffies; if (pcpu > 999U) pcpu = 999U; return snprintf(outbuf, COLWID, "%3u", pcpu); ++++++ procps-ng-3.3.8-bnc634840.patch ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.327130613 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.327130613 +0200 @@ -12,7 +12,7 @@ --- top/top.c +++ top/top.c 2018-04-04 11:33:59.278280201 +0000 -@@ -3557,7 +3557,13 @@ static void before (char *me) { +@@ -3691,7 +3691,13 @@ static void before (char *me) { sa.sa_flags = 0; for (i = SIGRTMAX; i; i--) { switch (i) { ++++++ procps-ng-3.3.8-ignore-scan_unevictable_pages.patch ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.339130626 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.343130631 +0200 @@ -13,7 +13,7 @@ --- a/sysctl.c +++ b/sysctl.c -@@ -58,6 +58,7 @@ static const char DEFAULT_PRELOAD[] = "/ +@@ -59,6 +59,7 @@ static const char DEFAULT_PRELOAD[] = "/ static const char *DEPRECATED[] = { "base_reachable_time", "retrans_time", ++++++ procps-ng-3.3.8-petabytes.patch ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.355130646 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.359130650 +0200 @@ -3,9 +3,9 @@ 1 file changed, 3 insertions(+), 3 deletions(-) --- top/top.c -+++ top/top.c 2022-03-29 10:24:43.327490984 +0000 -@@ -1564,9 +1564,9 @@ static inline const char *make_str_utf8 - static const char *scale_mem (int target, float num, int width, int justr) { ++++ 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 }; @@ -15,14 +15,14 @@ + static const char *fmttab[] = { "%.0f", "%.1f%c", "%.1f%c", "%.1f%c", "%.1f%c", "%.1f%c", NULL }; #endif static char buf[SMLBUFSIZ]; - char *psfx; -@@ -1576,7 +1576,7 @@ static const char *scale_mem (int target - if (Rc.zero_suppress && 0 >= num) + 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], num, *psfx))) + && (width >= snprintf(buf, sizeof(buf), fmttab[i], scaled_num, *psfx))) goto end_justifies; ++++++ procps-ng-3.3.8-readeof.patch ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.367130659 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.371130664 +0200 @@ -3,9 +3,9 @@ 1 file changed, 10 insertions(+), 10 deletions(-) --- proc/readproc.c -+++ proc/readproc.c 2022-03-28 11:51:04.751862744 +0000 -@@ -728,7 +728,7 @@ static int file2str(const char *director - } ++++ 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; @@ -13,9 +13,9 @@ while (0 < (num = read(fd, ub->buf + tot_read, ub->siz - tot_read))) { tot_read += num; if (tot_read < ub->siz) break; -@@ -752,25 +752,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 */ +@@ -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; @@ -30,38 +30,38 @@ /* 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 */ -- } +- 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 */ - } -@@ -804,7 +804,7 @@ static char **file2strvec(const char *di - c = sizeof(char*); /* one extra for NULL term */ + /* 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') -@@ -817,7 +817,7 @@ static char **file2strvec(const char *di - q = ret = (char**) (endbuf+align); /* ==> free(*ret) to dealloc */ + 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 */ + 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 */ ++++++ procps-ng-3.3.8-tinfo.dif ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.383130678 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.383130678 +0200 @@ -4,9 +4,9 @@ 2 files changed, 9 insertions(+), 1 deletion(-) --- Makefile.am -+++ Makefile.am 2022-03-29 10:32:27.691037616 +0000 -@@ -190,7 +190,7 @@ if CYGWIN - top_top_SOURCES += lib/strverscmp.c ++++ 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) @@ -15,8 +15,8 @@ if BUILD_SKILL --- configure.ac -+++ configure.ac 2022-03-29 10:33:50.621534246 +0000 -@@ -233,8 +233,16 @@ else ++++ configure.ac 2018-04-04 12:29:23.364676155 +0000 +@@ -194,8 +194,16 @@ else else WATCH_NCURSES_LIBS="$NCURSES_LIBS" fi @@ -31,6 +31,6 @@ AC_SUBST([NCURSES_LIBS]) +AC_SUBST([TOP_NCURSES_LIBS]) AC_SUBST([WATCH_NCURSES_LIBS]) + AC_SUBST([WATCH_NCURSES_CFLAGS]) - AC_ARG_WITH([systemd], ++++++ procps-ng-3.3.8-vmstat-terabyte.dif ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.395130692 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.395130692 +0200 @@ -3,16 +3,16 @@ 1 file changed, 2 insertions(+), 2 deletions(-) --- vmstat.c -+++ vmstat.c 2022-03-29 10:36:49.654287539 +0000 -@@ -337,8 +337,8 @@ static void new_header(void) ++++ 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); +- 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); } ++++++ procps-ng-3.3.9-w-notruncate.diff ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.411130711 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.415130716 +0200 @@ -4,7 +4,7 @@ 2 files changed, 18 insertions(+), 3 deletions(-) --- w.1 -+++ w.1 2022-03-23 15:02:32.728894724 +0000 ++++ w.1 2021-02-10 09:47:10.894888530 +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. @@ -16,32 +16,32 @@ Toggle printing the .B from --- w.c -+++ w.c 2022-03-28 11:20:25.453174765 +0000 -@@ -450,7 +450,7 @@ static int find_best_proc( ++++ w.c 2021-02-10 09:51:09.750284453 +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) + 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, pcpu; - unsigned i; -@@ -481,7 +481,13 @@ static void showinfo( - strncpy(uname, u->ut_user, UT_NAMESIZE); + unsigned long long jcpu; + int ut_pid_found; +@@ -424,7 +424,13 @@ 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); -+ } -+ printf("%-*.*s%-*.*s", userlen + 1, userlen, uname, utlnlen + 1, utlnlen, u->ut_line); - if (from) - print_from(u, ip_addresses, fromlen); + 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); ++ } ++ 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 -@@ -526,6 +532,7 @@ static void __attribute__ ((__noreturn__ +@@ -478,6 +484,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); @@ -49,7 +49,7 @@ 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); -@@ -562,6 +569,7 @@ int main(int argc, char **argv) +@@ -514,6 +521,7 @@ int main(int argc, char **argv) {"no-header", no_argument, NULL, 'h'}, {"no-current", no_argument, NULL, 'u'}, {"short", no_argument, NULL, 's'}, @@ -57,7 +57,7 @@ {"from", no_argument, NULL, 'f'}, {"old-style", no_argument, NULL, 'o'}, {"ip-addr", no_argument, NULL, 'i'}, -@@ -583,7 +591,7 @@ int main(int argc, char **argv) +@@ -535,7 +543,7 @@ int main(int argc, char **argv) #endif while ((ch = @@ -66,7 +66,7 @@ switch (ch) { case 'h': header = 0; -@@ -591,6 +599,10 @@ int main(int argc, char **argv) +@@ -546,6 +554,10 @@ int main(int argc, char **argv) case 's': longform = 0; break; ++++++ procps-ng-3.3.9-watch.patch ++++++ --- 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; ++++++ procps-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.443130748 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.447130753 +0200 @@ -1,2 +1,2 @@ -addFilter(".*W:.*shared-lib-calls-exit.*libproc-2\.so.*") +addFilter(".*W:.*shared-lib-calls-exit.*libprocps\.so.*") ++++++ procps-v3.3.3-columns.dif ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.455130762 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.459130767 +0200 @@ -3,8 +3,8 @@ 1 file changed, 10 insertions(+), 3 deletions(-) --- ps/global.c -+++ ps/global.c 2022-03-29 09:31:24.242140877 +0000 -@@ -257,8 +257,11 @@ static void set_screen_size(void){ ++++ 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; @@ -18,7 +18,7 @@ columns = getenv("COLUMNS"); if(columns && *columns){ -@@ -400,6 +403,7 @@ static const char *set_personality(void) +@@ -290,6 +293,7 @@ static const char *set_personality(void) return NULL; case_aix: @@ -26,7 +26,7 @@ bsd_j_format = "FB_j"; bsd_l_format = "FB_l"; /* bsd_s_format not used */ -@@ -427,6 +431,7 @@ static const char *set_personality(void) +@@ -317,6 +321,7 @@ static const char *set_personality(void) case_sunos4: personality = PER_NO_DEFAULT_g; @@ -34,7 +34,7 @@ prefer_bsd_defaults = 1; bsd_j_format = "FB_j"; bsd_l_format = "FB_l"; -@@ -452,12 +457,14 @@ static const char *set_personality(void) +@@ -342,12 +347,14 @@ static const char *set_personality(void) case_hp: case_hpux: personality = PER_HPUX_x; @@ -49,10 +49,10 @@ return NULL; case_posix: -@@ -498,8 +505,8 @@ void reset_global(void){ - } - // --- <pids> interface -------------------------------------------------- - +@@ -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(); ++++++ procps-v3.3.3-ia64.diff ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.471130781 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.471130781 +0200 @@ -1,6 +1,6 @@ --- proc/devname.c +++ proc/devname.c 2012-06-01 13:35:43.452010553 +0000 -@@ -51,6 +51,10 @@ +@@ -53,6 +53,10 @@ #define minor <-- do not use --> #endif ++++++ procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff ++++++ --- /var/tmp/diff_new_pack.6PpGQ5/_old 2022-04-14 17:23:34.487130800 +0200 +++ /var/tmp/diff_new_pack.6PpGQ5/_new 2022-04-14 17:23:34.491130804 +0200 @@ -4,35 +4,35 @@ 2 files changed, 14 insertions(+) --- sysctl.8 -+++ sysctl.8 2022-03-29 10:21:47.926686046 +0000 -@@ -117,6 +117,8 @@ will read files from directories in the - order from top to bottom. Once a file of a given filename is loaded, any - file of the same name in subsequent directories is ignored. - ++++ 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-<kernelversion> +.br /etc/sysctl.d/*.conf .br /run/sysctl.d/*.conf --- sysctl.c -+++ sysctl.c 2022-03-29 10:20:51.795708321 +0000 -@@ -40,6 +40,7 @@ ++++ sysctl.c 2021-02-10 10:04:25.290952318 +0000 +@@ -39,6 +39,7 @@ #include <string.h> #include <sys/stat.h> #include <sys/types.h> +#include <sys/utsname.h> #include <unistd.h> - #include <ctype.h> -@@ -794,6 +795,7 @@ static int sortpairs(const void *A, cons - static int PreloadSystem(SettingList *setlist) + #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", -@@ -858,6 +860,16 @@ static int PreloadSystem(SettingList *se +@@ -685,6 +687,16 @@ static int PreloadSystem(void) } qsort(cfgs, ncfgs, sizeof(struct cfg *), sortpairs); @@ -42,7 +42,7 @@ + if (access(buf, R_OK) == 0) { + if (!Quiet) + printf("* Applying %s ...\n", buf); -+ Preload(setlist, buf); ++ Preload(buf); + } + } +
