Hello community, here is the log from the commit of package procps for openSUSE:Factory checked in at 2016-08-18 09:15:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/procps (Old) and /work/SRC/openSUSE:Factory/.procps.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "procps" Changes: -------- --- /work/SRC/openSUSE:Factory/procps/procps.changes 2016-06-03 16:35:44.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.procps.new/procps.changes 2016-08-18 09:15:09.000000000 +0200 @@ -1,0 +2,47 @@ +Tue Aug 9 16:08:03 UTC 2016 - [email protected] + +- Avoid fillup and insserv on modern systems (bsc#992845) + +------------------------------------------------------------------- +Tue Jul 12 16:01:19 UTC 2016 - [email protected] + +- 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 - [email protected] + +- 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 + +------------------------------------------------------------------- Old: ---- procps-ng-3.3.11.tar.xz New: ---- procps-ng-3.3.12-strtod.patch procps-ng-3.3.12.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ procps.spec ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:10.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:10.000000000 +0200 @@ -18,13 +18,14 @@ %bcond_with bin2usr %bcond_with pidof -%define somajor 5 +%define somajor 6 %define libname libprocps%{somajor} Name: procps #Also: http://gitorious.org/procps/ Url: http://sf.net/projects/procps-ng/ BuildRequires: automake +BuildRequires: dejagnu %ifarch ia64 x86_64 ppc64 ppc %sparc BuildRequires: libnuma-devel %endif @@ -35,22 +36,26 @@ %if 0%{?suse_version} > 1310 BuildRequires: pkgconfig(libsystemd-login) %else -%if 0%{?suse_version} > 1230 +%if 0%{?suse_version} >= 1230 BuildRequires: pkgconfig(libsystemd) %endif %endif +BuildRequires: screen BuildRequires: xz -Version: 3.3.11 +Version: 3.3.12 Release: 0 Provides: ps = %version-%release Obsoletes: ps < %version-%release +%if 0%{?suse_version} < 1230 Requires(post): %fillup_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq +%endif Summary: The ps utilities for /proc License: GPL-2.0+ and LGPL-2.1+ Group: System/Monitoring -Source: http://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-3.3.11.tar.xz +#Alternate: https://gitlab.com/procps-ng/procps/repository/archive.tar.bz2?ref=v3.3.12 +Source: http://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-3.3.12.tar.xz Source2: boot.sysctl Source3: systat.xinetd Patch0: procps-ng-3.3.9-watch.patch @@ -73,6 +78,8 @@ 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 -- Avoid error due missed declaration +Patch30: procps-ng-3.3.12-strtod.patch # 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() @@ -125,12 +132,12 @@ %patch1 %patch3 -b .trcate %patch5 -%patch7 +%patch7 -b .rof %patch8 -b .cache -%patch10 +%patch10 -b .acc %patch11 %patch12 -%patch13 +%patch13 -b .column %patch14 %patch15 %patch16 @@ -140,11 +147,15 @@ %patch20 %patch21 %patch28 +%patch30 %patch31 -p1 %patch32 %patch33 %build +# +# +# test -s .tarball-version || echo %{version} > .tarball-version #./autogen.sh autoreconf @@ -181,6 +192,7 @@ --disable-modern-top make %{?_smp_mflags} +LD_LIBRARY_PATH=$PWD/proc/.libs \ ./pmap $$ || { uname -a echo /proc/$$/maps @@ -210,6 +222,23 @@ rm -rf %{buildroot}%{_datadir}/doc/procps-ng %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 ln -s %{_bindir}/ps %{buildroot}/bin/ ln -s %{_bindir}/pgrep %{buildroot}/bin/ ln -s %{_bindir}/pkill %{buildroot}/bin/ @@ -219,26 +248,84 @@ 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 -%post %if 0%{?suse_version} < 1230 +%post %{fillup_and_insserv -ny boot.sysctl boot.sysctl} -%endif -# + %postun %insserv_cleanup +%endif %post -n %{libname} -p /sbin/ldconfig %postun -n %{libname} -p /sbin/ldconfig %check -make 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 + 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 -L -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 +test $error = no || exit 1 %files %defattr (-,root,root,755) ++++++ procps-ng-3.3.10-bnc634071_procstat2.diff ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:10.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:10.000000000 +0200 @@ -1,6 +1,12 @@ +--- + 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 2014-05-16 10:01:38.000000000 +0000 -@@ -59,6 +59,7 @@ global: ++++ proc/libprocps.sym 2016-07-11 13:11:10.857365085 +0000 +@@ -54,6 +54,7 @@ global: signal_name_to_number; signal_number_to_name; smp_num_cpus; @@ -9,7 +15,7 @@ strtosig; tty_to_dev; --- proc/sysinfo.c -+++ proc/sysinfo.c 2015-01-27 15:17:46.241518734 +0000 ++++ proc/sysinfo.c 2016-07-11 13:11:10.857365085 +0000 @@ -37,7 +37,8 @@ #include <netinet/in.h> /* htons */ #endif @@ -20,7 +26,7 @@ long page_bytes; /* this architecture's page size */ #define BAD_OPEN_MESSAGE \ -@@ -1069,7 +1070,11 @@ out: +@@ -1076,7 +1077,11 @@ out: /////////////////////////////////////////////////////////////////////////// @@ -33,7 +39,7 @@ // 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 -@@ -1084,4 +1089,8 @@ void cpuinfo (void) { +@@ -1091,4 +1096,8 @@ void cpuinfo (void) { smp_num_cpus = sysconf(_SC_NPROCESSORS_ONLN); if (smp_num_cpus<1) /* SPARC glibc is buggy */ smp_num_cpus=1; @@ -43,7 +49,7 @@ + +void cpuinfo (void) { (void)__smp_num_cpus(); } --- proc/sysinfo.h -+++ proc/sysinfo.h 2015-01-27 15:18:35.169518781 +0000 ++++ proc/sysinfo.h 2016-07-11 13:11:10.857365085 +0000 @@ -8,6 +8,8 @@ EXTERN_C_BEGIN extern unsigned long long Hertz; /* clock tick frequency */ ++++++ procps-ng-3.3.10-errno.patch ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:10.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:10.000000000 +0200 @@ -10,7 +10,7 @@ 1 file changed, 5 insertions(+) --- free.c -+++ free.c 2015-09-18 12:38:22.565518967 +0000 ++++ free.c 2016-07-11 13:22:25.480344200 +0000 @@ -205,6 +205,7 @@ int main(int argc, char **argv) int c, flags = 0, unit_set = 0; char *endptr; @@ -32,15 +32,13 @@ while ((c = getopt_long(argc, argv, "bkmghltCc:ws:V", longopts, NULL)) != -1) switch (c) { -@@ -325,6 +328,7 @@ int main(int argc, char **argv) +@@ -325,11 +328,13 @@ int main(int argc, char **argv) break; case 's': flags |= FREE_REPEAT; + errsv = errno; errno = 0; - args.repeat_interval = (1000000 * strtof(optarg, &endptr)); - if (errno || optarg == endptr || (endptr && *endptr)) -@@ -332,6 +336,7 @@ int main(int argc, char **argv) + 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); ++++++ procps-ng-3.3.10-integer-overflow.patch ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:10.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:10.000000000 +0200 @@ -4,8 +4,8 @@ 2 files changed, 19 insertions(+), 3 deletions(-) --- free.c -+++ free.c 2015-01-27 15:07:37.000000000 +0000 -@@ -389,15 +389,28 @@ int main(int argc, char **argv) ++++ free.c 2016-07-11 13:05:52.351515040 +0000 +@@ -387,15 +387,28 @@ int main(int argc, char **argv) * to print the high info, even if it is zero. */ if (flags & FREE_LOHI) { @@ -37,16 +37,16 @@ printf("\n"); } --- proc/sysinfo.c -+++ proc/sysinfo.c 2015-09-18 12:28:40.046018780 +0000 ++++ proc/sysinfo.c 2016-07-11 13:08:00.145047300 +0000 @@ -709,7 +709,10 @@ nextline: - kb_main_cached = kb_page_cache + kb_slab; + kb_main_cached = kb_page_cache + kb_slab_reclaimable; if ((ev=getenv("PS_FULL_CACHE"))) - kb_main_cached += kb_slab_reclaimable + kb_swap_cached + kb_nfs_unstable; + 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; ++ kb_swap_used = kb_swap_total - kb_swap_free; + else -+ kb_swap_used = 0; ++ 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 ++++++ procps-ng-3.3.10-large_pcpu.patch ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:10.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:10.000000000 +0200 @@ -1,6 +1,10 @@ +--- + top/top.c | 17 +++++++++++++++-- + 1 file changed, 15 insertions(+), 2 deletions(-) + --- top/top.c -+++ top/top.c 2015-01-27 15:25:34.329519296 +0000 -@@ -2302,8 +2302,15 @@ static void zap_fieldstab (void) { ++++ top/top.c 2016-07-11 13:14:56.681005709 +0000 +@@ -2295,8 +2295,15 @@ static void zap_fieldstab (void) { Fieldstab[EU_CPU].width = 5; if (Rc.mode_irixps && smp_num_cpus > 1 && !Thread_mode) { Cpu_pmax = 100.0 * smp_num_cpus; @@ -17,7 +21,7 @@ } else { if (Cpu_pmax > 999.9) Cpu_pmax = 999.9; } -@@ -2313,12 +2320,18 @@ static void zap_fieldstab (void) { +@@ -2306,12 +2313,18 @@ static void zap_fieldstab (void) { Fieldstab[EU_CPU].width = 4; if (Rc.mode_irixps && smp_num_cpus > 1 && !Thread_mode) { Cpu_pmax = 100.0 * smp_num_cpus; ++++++ procps-ng-3.3.10-slab.patch ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:10.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:10.000000000 +0200 @@ -6,15 +6,14 @@ 4 files changed, 22 insertions(+), 2 deletions(-) --- free.1 -+++ free.1 2015-01-27 14:38:35.000000000 +0000 -@@ -101,6 +101,13 @@ Switch to the wide mode. The wide mode p ++++ free.1 2016-07-11 12:50:09.681730441 +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, -+the \fBSReclaimable\fR as part of \fISlab\fR, that might be reclaimed, such as caches, ++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 @@ -22,7 +21,7 @@ Display the result .I count --- free.c -+++ free.c 2015-09-18 12:18:41.257517943 +0000 ++++ free.c 2016-07-11 12:50:09.681730441 +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); @@ -48,7 +47,7 @@ switch (c) { case 'b': check_unit_set(&unit_set); -@@ -343,6 +345,9 @@ int main(int argc, char **argv) +@@ -341,6 +343,9 @@ int main(int argc, char **argv) case 'w': flags |= FREE_WIDE; break; @@ -59,7 +58,7 @@ usage(stdout); case 'V': --- proc/sysinfo.c -+++ proc/sysinfo.c 2015-09-18 12:20:41.721518774 +0000 ++++ proc/sysinfo.c 2016-07-11 12:57:46.980885685 +0000 @@ -3,6 +3,7 @@ * Copyright (C) 1992-1998 by Michael K. Johnson, [email protected] * Copyright 1998-2003 Albert Cahalan @@ -79,14 +78,14 @@ @@ -705,6 +707,8 @@ nextline: kb_inactive = kb_inact_dirty + kb_inact_clean + kb_inact_laundry; } - kb_main_cached = kb_page_cache + kb_slab; + kb_main_cached = kb_page_cache + kb_slab_reclaimable; + if ((ev=getenv("PS_FULL_CACHE"))) -+ kb_main_cached += kb_slab_reclaimable + kb_swap_cached + kb_nfs_unstable; ++ 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 2015-01-27 14:51:24.000000000 +0000 ++++ vmstat.c 2016-07-11 12:50:09.685730365 +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); ++++++ procps-ng-3.3.11-pmap4suse.patch ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:10.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:10.000000000 +0200 @@ -1,6 +1,7 @@ --- - pmap.c | 50 +++++++++++++++++++++++++++++++++++++------------- - 1 file changed, 37 insertions(+), 13 deletions(-) + pmap.c | 50 +++++++++++++++++++++++++++++++------------ + testsuite/pmap.test/pmap.exp | 17 ++++++-------- + 2 files changed, 45 insertions(+), 22 deletions(-) --- pmap.c +++ pmap.c 2016-05-30 11:36:45.447592219 +0000 @@ -163,3 +164,56 @@ break; case 'q': q_option = 1; +--- testsuite/pmap.test/pmap.exp ++++ testsuite/pmap.test/pmap.exp 2016-07-12 15:12:26.592609617 +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" ++++++ procps-ng-3.3.12-strtod.patch ++++++ --- include/strutils.h | 2 +- lib/strutils.c | 22 ++++++++++++---------- lib/test_strtod_nol.c | 7 ++++--- 3 files changed, 17 insertions(+), 14 deletions(-) --- include/strutils.h +++ include/strutils.h 2016-07-12 16:28:56.748950404 +0000 @@ -7,6 +7,6 @@ extern long strtol_or_err(const char *str, const char *errmesg); extern double strtod_or_err(const char *str, const char *errmesg); -double strtod_nol_or_err(char *str, const char *errmesg); +extern double strtod_nol_or_err(char *str, const char *errmesg); #endif --- lib/strutils.c +++ lib/strutils.c 2016-07-13 06:49:41.641951219 +0000 @@ -20,6 +20,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#include <float.h> +#include <math.h> #include <stdlib.h> #include <ctype.h> @@ -71,9 +73,9 @@ double strtod_or_err(const char *str, co */ double strtod_nol_or_err(char *str, const char *errmesg) { - double num; + long double num; const char *cp, *radix; - double mult; + long double mult; int negative = 0; if (str != NULL && *str != '\0') { @@ -95,29 +97,29 @@ double strtod_nol_or_err(char *str, cons mult=0.1; while(isdigit(*radix)) { radix++; - mult *= 10; + mult *= 10.0; } while(isdigit(*cp)) { - num += (*cp - '0') * mult; - mult /= 10; + num += (long double)(*cp - '0') * mult; + mult /= 10.0; cp++; } /* got the integers */ if (*cp == '\0') - return (negative?-num:num); + return (double)(negative?-num:num); if (*cp != '.' && *cp != ',') error(EXIT_FAILURE, EINVAL, "%s: '%s'", errmesg, str); cp++; mult = 0.1; while(isdigit(*cp)) { - num += (*cp - '0') * mult; - mult /= 10; + num += (long double)(*cp - '0') * mult; + mult /= 10.0; cp++; } if (*cp == '\0') - return (negative?-num:num); + return (double)(negative?-num:num); } error(EXIT_FAILURE, errno, "%s: '%s'", errmesg, str); - return 0; + return (double)0; } --- lib/test_strtod_nol.c +++ lib/test_strtod_nol.c 2016-07-13 07:01:43.887513423 +0000 @@ -1,4 +1,5 @@ - +#include <float.h> +#include <math.h> #include <stdio.h> #include <stdlib.h> #include "strutils.h" @@ -33,8 +34,8 @@ int main(int argc, char *argv[]) double val; for(i=0; tests[i].string != NULL; i++) { - if(strtod_nol_or_err(tests[i].string, "Cannot parse number") != - tests[i].result) { + val = strtod_nol_or_err(tests[i].string, "Cannot parse number"); + if(fabs(tests[i].result - val) > DBL_EPSILON) { fprintf(stderr, "FAIL: strtod_nol_or_err(\"%s\") != %f\n", tests[i].string, tests[i].result); return EXIT_FAILURE; ++++++ procps-ng-3.3.11.tar.xz -> procps-ng-3.3.12.tar.xz ++++++ ++++ 70619 lines of diff (skipped) ++++++ procps-ng-3.3.8-accuracy.dif ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -1,5 +1,11 @@ +--- + 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 2012-06-01 15:30:43.880009972 +0000 ++++ ps/common.h 2016-07-11 13:02:13.815735709 +0000 @@ -302,6 +302,7 @@ extern int running_only; extern int screen_cols; extern int screen_rows; @@ -9,8 +15,8 @@ extern unsigned simple_select; extern sort_node *sort_list; --- ps/global.c -+++ ps/global.c 2012-06-01 15:32:10.488010283 +0000 -@@ -79,6 +79,7 @@ int prefer_bsd_defaults = -1 ++++ ps/global.c 2016-07-11 13:02:13.815735709 +0000 +@@ -78,6 +78,7 @@ int prefer_bsd_defaults = -1 int screen_cols = -1; int screen_rows = -1; time_t seconds_since_boot = -1; @@ -18,7 +24,7 @@ selection_node *selection_list = (selection_node *)0xdeadbeef; unsigned simple_select = 0xffffffff; sort_node *sort_list = (sort_node *)0xdeadbeef; /* ready-to-use sort list */ -@@ -369,6 +370,7 @@ static const char *set_personality(void) +@@ -361,6 +362,7 @@ static const char *set_personality(void) /************ Call this to reinitialize everything ***************/ void reset_global(void){ static proc_t p; @@ -26,7 +32,7 @@ reset_selection_list(); look_up_our_self(&p); set_screen_size(); -@@ -392,7 +394,8 @@ void reset_global(void){ +@@ -383,7 +385,8 @@ void reset_global(void){ negate_selection = 0; page_size = getpagesize(); running_only = 0; @@ -37,8 +43,8 @@ simple_select = 0; sort_list = NULL; --- ps/output.c -+++ ps/output.c 2013-05-29 11:17:11.345438367 +0000 -@@ -128,6 +128,7 @@ static int sr_ ## NAME (const proc_t* P, ++++ ps/output.c 2016-07-11 13:02:13.815735709 +0000 +@@ -132,6 +132,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) @@ -46,7 +52,7 @@ #define CMP_COOKED_TIME(NAME) \ static int sr_ ## NAME (const proc_t* P, const proc_t* Q) { \ -@@ -477,11 +478,11 @@ static int pr_etimes(char *restrict cons +@@ -505,11 +506,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% */ @@ -61,7 +67,7 @@ if (pcpu > 99U) pcpu = 99U; return snprintf(outbuf, COLWID, "%2u", pcpu); } -@@ -489,11 +490,11 @@ static int pr_c(char *restrict const out +@@ -517,11 +518,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% */ @@ -76,7 +82,7 @@ if (pcpu > 999U) return snprintf(outbuf, COLWID, "%u", pcpu/10U); return snprintf(outbuf, COLWID, "%u.%u", pcpu/10U, pcpu%10U); -@@ -502,11 +503,11 @@ static int pr_pcpu(char *restrict const +@@ -530,11 +531,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% */ ++++++ procps-ng-3.3.8-bnc634840.patch ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -6,9 +6,13 @@ 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 2013-05-29 13:44:08.245439364 +0200 -@@ -3268,7 +3268,13 @@ static void before (char *me) { ++++ top/top.c 2016-07-11 13:12:07.436272792 +0000 +@@ -3328,7 +3328,13 @@ static void before (char *me) { sa.sa_flags = 0; for (i = SIGRTMAX; i; i--) { switch (i) { ++++++ procps-ng-3.3.8-petabytes.patch ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -1,6 +1,10 @@ +--- + top/top.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + --- top/top.c -+++ top/top.c 2013-05-29 11:57:32.849439427 +0000 -@@ -1496,9 +1496,9 @@ static inline const char *make_str (cons ++++ top/top.c 2016-07-11 13:13:56.178173598 +0000 +@@ -1536,9 +1536,9 @@ static inline const char *make_str (cons static const char *scale_mem (int target, unsigned long num, int width, int justr) { #ifndef NOBOOST_MEMS // SK_Kb SK_Mb SK_Gb SK_Tb SK_Pb SK_Eb @@ -12,7 +16,7 @@ #endif static char buf[SMLBUFSIZ]; float scaled_num; -@@ -1510,7 +1510,7 @@ static const char *scale_mem (int target +@@ -1550,7 +1550,7 @@ static const char *scale_mem (int target goto end_justifies; scaled_num = num; ++++++ procps-ng-3.3.8-readeof.patch ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -1,6 +1,10 @@ +--- + proc/readproc.c | 49 +++++++++++++++++++++++++------------------------ + 1 file changed, 25 insertions(+), 24 deletions(-) + --- proc/readproc.c -+++ proc/readproc.c 2013-05-29 10:55:48.129939330 +0000 -@@ -544,7 +544,7 @@ static int file2str(const char *director ++++ proc/readproc.c 2016-07-11 12:49:24.778601134 +0000 +@@ -643,7 +643,7 @@ static int file2str(const char *director if (ub->buf) ub->buf[0] = '\0'; else ub->buf = xcalloc((ub->siz = buffGRW)); sprintf(path, "%s/%s", directory, what); @@ -9,7 +13,7 @@ while (0 < (num = read(fd, ub->buf + tot_read, ub->siz - tot_read))) { tot_read += num; if (tot_read < ub->siz) break; -@@ -559,41 +559,42 @@ static int file2str(const char *director +@@ -658,41 +658,42 @@ static int file2str(const char *director static char** file2strvec(const char* directory, const char* what) { char buf[2048]; /* read buf bytes at a time */ @@ -74,7 +78,7 @@ endbuf = rbuf + tot; /* count space for pointers */ align = (sizeof(char*)-1) - ((tot + sizeof(char*)-1) & (sizeof(char*)-1)); for (c = 0, p = rbuf; p < endbuf; p++) { -@@ -626,7 +627,7 @@ static int read_unvectored(char *restric +@@ -725,7 +726,7 @@ static int read_unvectored(char *restric unsigned n = 0; snprintf(path, sizeof(path), "%s/%s", whom, what); ++++++ procps-ng-3.3.8-tinfo.dif ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -4,18 +4,18 @@ 2 files changed, 9 insertions(+), 1 deletion(-) --- Makefile.am -+++ Makefile.am 2015-09-18 12:33:07.753518470 +0000 -@@ -103,7 +103,7 @@ top_top_SOURCES = \ - top/top_nls.h \ - top/top_nls.c \ - lib/fileutils.c ++++ Makefile.am 2016-07-11 13:16:34.327120958 +0000 +@@ -112,7 +112,7 @@ if CYGWIN + top_top_SOURCES += lib/strverscmp.c + 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 2013-05-29 13:25:28.000000000 +0000 ++++ configure.ac 2016-07-11 13:15:42.864114271 +0000 @@ -141,9 +141,17 @@ else else WATCH_NCURSES_LIBS="$NCURSES_LIBS" ++++++ procps-ng-3.3.8-vmstat-terabyte.dif ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -1,6 +1,10 @@ +--- + vmstat.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + --- vmstat.c -+++ vmstat.c 2013-08-02 12:57:52.677680360 +0000 -@@ -224,8 +224,8 @@ static void new_header(void) ++++ vmstat.c 2016-07-11 13:18:04.993371059 +0000 +@@ -270,8 +270,8 @@ static void new_header(void) static unsigned long unitConvert(unsigned long size) { ++++++ procps-ng-3.3.9-w-notruncate.diff ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -3,8 +3,8 @@ 1 file changed, 15 insertions(+), 3 deletions(-) --- w.c -+++ w.c 2015-06-02 06:35:25.221520280 +0000 -@@ -365,7 +365,7 @@ static const proc_t *getproc(const utmp_ ++++ w.c 2016-07-11 12:47:59.444256012 +0000 +@@ -375,7 +375,7 @@ static const proc_t *getproc(const utmp_ } static void showinfo(utmp_t * u, int formtype, int maxcmd, int from, @@ -13,7 +13,7 @@ { unsigned long long jcpu; int ut_pid_found; -@@ -395,7 +395,13 @@ static void showinfo(utmp_t * u, int for +@@ -405,7 +405,13 @@ static void showinfo(utmp_t * u, int for strncpy(uname, u->ut_user, UT_NAMESIZE); if (formtype) { @@ -28,7 +28,7 @@ if (from) print_from(u, ip_addresses, fromlen); print_logintime(u->ut_time, stdout); -@@ -445,6 +451,7 @@ static void __attribute__ ((__noreturn__ +@@ -455,6 +461,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); @@ -36,7 +36,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); -@@ -481,6 +488,7 @@ int main(int argc, char **argv) +@@ -491,6 +498,7 @@ int main(int argc, char **argv) {"no-header", no_argument, NULL, 'h'}, {"no-current", no_argument, NULL, 'u'}, {"short", no_argument, NULL, 's'}, @@ -44,7 +44,7 @@ {"from", no_argument, NULL, 'f'}, {"old-style", no_argument, NULL, 'o'}, {"ip-addr", no_argument, NULL, 'i'}, -@@ -502,7 +510,7 @@ int main(int argc, char **argv) +@@ -512,7 +520,7 @@ int main(int argc, char **argv) #endif while ((ch = @@ -53,7 +53,7 @@ switch (ch) { case 'h': header = 0; -@@ -513,6 +521,10 @@ int main(int argc, char **argv) +@@ -523,6 +531,10 @@ int main(int argc, char **argv) case 's': longform = 0; break; ++++++ procps-ng-3.3.9-watch.patch ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -1,6 +1,10 @@ +--- + proc/libprocps.sym | 1 + + 1 file changed, 1 insertion(+) + --- proc/libprocps.sym -+++ proc/libprocps.sym 2014-05-15 13:16:40.950235845 +0000 -@@ -14,6 +14,7 @@ global: ++++ 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; ++++++ procps-v3.3.3-columns.dif ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -1,6 +1,10 @@ +--- + ps/global.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + --- ps/global.c -+++ ps/global.c 2012-06-01 16:04:18.460510318 +0000 -@@ -148,8 +148,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; @@ -14,7 +18,7 @@ columns = getenv("COLUMNS"); if(columns && *columns){ -@@ -298,6 +301,7 @@ static const char *set_personality(void) +@@ -290,6 +293,7 @@ static const char *set_personality(void) return NULL; case_aix: @@ -22,7 +26,7 @@ bsd_j_format = "FB_j"; bsd_l_format = "FB_l"; /* bsd_s_format not used */ -@@ -325,6 +329,7 @@ static const char *set_personality(void) +@@ -317,6 +321,7 @@ static const char *set_personality(void) case_sunos4: personality = PER_NO_DEFAULT_g; @@ -30,22 +34,22 @@ prefer_bsd_defaults = 1; bsd_j_format = "FB_j"; bsd_l_format = "FB_l"; -@@ -349,12 +354,14 @@ static const char *set_personality(void) +@@ -342,12 +347,14 @@ static const char *set_personality(void) case_hp: case_hpux: - personality = PER_BROKEN_o | PER_HPUX_x; + personality = PER_HPUX_x; + personality |= PER_UNIX_COLS; return NULL; case_svr4: case_sysv: case_sco: - personality = PER_BROKEN_o | PER_SVR4_x; + personality = PER_SVR4_x; + personality |= PER_UNIX_COLS; return NULL; case_posix: -@@ -373,8 +380,8 @@ void reset_global(void){ +@@ -365,8 +372,8 @@ void reset_global(void){ double uptime_secs; reset_selection_list(); look_up_our_self(&p); ++++++ procps-v3.3.3-pwdx.patch ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -1,6 +1,10 @@ +--- + pwdx.c | 1 + + 1 file changed, 1 insertion(+) + --- pwdx.c -+++ pwdx.c 2012-06-06 11:59:43.166745435 +0000 -@@ -107,6 +107,7 @@ int main(int argc, char *argv[]) ++++ 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); ++++++ procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff ++++++ --- /var/tmp/diff_new_pack.9W9SS6/_old 2016-08-18 09:15:11.000000000 +0200 +++ /var/tmp/diff_new_pack.9W9SS6/_new 2016-08-18 09:15:11.000000000 +0200 @@ -1,6 +1,11 @@ +--- + sysctl.8 | 2 ++ + sysctl.c | 12 ++++++++++++ + 2 files changed, 14 insertions(+) + --- sysctl.8 -+++ sysctl.8 2012-06-04 10:27:39.048010081 +0000 -@@ -79,6 +79,8 @@ Print value without new line. ++++ sysctl.8 2016-07-11 13:12:48.427481461 +0000 +@@ -80,6 +80,8 @@ Print value without new line. \fB\-\-system\fR Load settings from all system configuration files. .br @@ -10,7 +15,7 @@ .br /etc/sysctl.d/*.conf --- sysctl.c -+++ sysctl.c 2012-06-04 10:29:12.944010410 +0000 ++++ sysctl.c 2016-07-11 13:12:48.427481461 +0000 @@ -39,6 +39,7 @@ #include <string.h> #include <sys/stat.h> @@ -19,7 +24,7 @@ #include <unistd.h> #include "c.h" -@@ -569,6 +570,7 @@ static int sortpairs(const void *A, cons +@@ -584,6 +585,7 @@ static int sortpairs(const void *A, cons static int PreloadSystem(void) { unsigned di, i; @@ -27,7 +32,7 @@ const char *dirs[] = { "/run/sysctl.d", "/etc/sysctl.d", -@@ -631,6 +633,16 @@ static int PreloadSystem(void) +@@ -648,6 +650,16 @@ static int PreloadSystem(void) } qsort(cfgs, ncfgs, sizeof(struct cfg *), sortpairs);
