Update to version 4.0.2

It contains commit:b159c198c9160a8eb13254e2b631d0035b9b542c
    sysctl: print dotted keys again

Signed-off-by: Qiang Wei <qiang.wei@suse.com>
This commit is contained in:
Qiang Wei 2023-02-01 15:46:27 +08:00
parent d53fcb01c8
commit ca680d963a
7 changed files with 48 additions and 250 deletions

View File

@ -1,207 +0,0 @@
From ad4429ade07abe2133dd53341fa91639625f09a0 Mon Sep 17 00:00:00 2001
From: Jim Warner <james.warner@comcast.net>
Date: Wed, 27 Jul 2022 00:00:00 -0500
Subject: [PATCH] top: eliminate a potential abend when exiting 'A' mode <===
port of newlib 80e2a7a6
______________________________ original newlib message
----------------------------------- ( minus git hash )
In that issue cited below, Tyson Nottingham identified
a potential abend which was associated with 'alternate
display mode' plus that troublesome 'mkVIZrow1' macro.
He also offered a perfectly adequate fix for that bug.
I refer to that macro as troublesome since it's now so
widely used and sometimes (by design) causes 'begtask'
to go negative (invalid). And now I found yet one more
place where it should have been used but wasn't ('f').
It's also troublesome as evidenced by some git history
listed below. Heck, there was even a commit addressing
the same symptoms (alternate display mode abend) which
Tyson suffered. Clearly, the current design is flawed.
So, with those two issues in mind, I've refactored the
approach to maintaining a visible task in the 1st row.
Henceforth, a 'mkVIZrow1' macro will be issued in only
two places: once at startup and after most keystrokes.
Such an approach likely results in additional calls to
the 'window_hlp' routine that aren't really necessary.
But, it provides a cleaner design less prone to errors
in the future. Besides, such additional overhead would
only be incurred when interacting with the user. Thus,
new costs are of no concern and will never be noticed.
Reference(s):
. Tyson Nottingham reported problem
https://gitlab.com/procps-ng/procps/-/issues/245
. Jun, 2018 - visible row 1 tasks first addressed
commit ........................................
. Jun, 2018 - adressed edge case, new bugs created
commit ........................................
. Sep, 2018 - additional edge case addressed
commit ........................................
. May, 2021 - some abends fixed, new error created
commit ........................................
. Jun, 2021 - try to prorect against future errors
commit ........................................
. Sep, 2021 - integrate mkVIZ & 'focused' tasks
commit ........................................
Discovered by: Tyson Nottingham
Signed-off-by: Jim Warner <james.warner@comcast.net>
---
top/top.c | 44 +++++++++++++++++++-------------------------
top/top.h | 3 ++-
2 files changed, 21 insertions(+), 26 deletions(-)
diff --git a/top/top.c b/top/top.c
index 51bf563..204e66a 100644
--- a/top/top.c
+++ b/top/top.c
@@ -4329,10 +4329,11 @@ static void win_names (WIN_t *q, const char *name) {
static void win_reset (WIN_t *q) {
SETw(q, Show_IDLEPS | Show_TASKON);
#ifndef SCROLLVAR_NO
- q->rc.maxtasks = q->usrseltyp = q->begpflg = q->begtask = q->begnext = q->varcolbeg = q->focus_pid = 0;
+ q->rc.maxtasks = q->usrseltyp = q->begpflg = q->begtask = q->varcolbeg = q->focus_pid = 0;
#else
- q->rc.maxtasks = q->usrseltyp = q->begpflg = q->begtask = q->begnext = q->focus_pid = 0;
+ q->rc.maxtasks = q->usrseltyp = q->begpflg = q->begtask = q->focus_pid = 0;
#endif
+ mkVIZoff(q)
// these next two are global, not really windows based
Monpidsidx = 0;
Rc.tics_scaled = 0;
@@ -5116,7 +5117,6 @@ static void keys_global (int ch) {
case '?':
case 'h':
help_view();
- mkVIZrow1
break;
case 'B':
TOGw(w, View_NOBOLD);
@@ -5143,7 +5143,6 @@ static void keys_global (int ch) {
break;
case 'g':
win_select(0);
- mkVIZrow1
break;
case 'H':
Thread_mode = !Thread_mode;
@@ -5224,7 +5223,6 @@ static void keys_global (int ch) {
break;
case 'Z':
wins_colors();
- mkVIZrow1
break;
case '0':
Rc.zero_suppress = !Rc.zero_suppress;
@@ -5446,10 +5444,7 @@ static void keys_task (int ch) {
case 'O':
case 'o':
case kbd_CtrlO:
- if (VIZCHKw(w)) {
- other_filters(ch);
- mkVIZrow1
- }
+ if (VIZCHKw(w)) other_filters(ch);
break;
case 'U':
case 'u':
@@ -5458,7 +5453,6 @@ static void keys_task (int ch) {
if (*str != kbd_ESC
&& (errmsg = user_certify(w, str, ch)))
show_msg(errmsg);
- mkVIZrow1
}
break;
case 'V':
@@ -5565,10 +5559,7 @@ static void keys_window (int ch) {
break;
case 'a':
case 'w':
- if (ALTCHKw) {
- win_select(ch);
- mkVIZrow1
- }
+ if (ALTCHKw) win_select(ch);
break;
case 'G':
if (ALTCHKw) {
@@ -5665,10 +5656,8 @@ static void keys_window (int ch) {
case kbd_HOME:
#ifndef SCROLLVAR_NO
if (VIZCHKw(w)) if (CHKw(w, Show_IDLEPS)) w->begtask = w->begpflg = w->varcolbeg = 0;
- mkVIZrow1
#else
if (VIZCHKw(w)) if (CHKw(w, Show_IDLEPS)) w->begtask = w->begpflg = 0;
- mkVIZrow1
#endif
break;
case kbd_END:
@@ -6109,6 +6098,14 @@ static void do_key (int ch) {
if (strchr(key_tab[i].keys, ch)) {
key_tab[i].func(ch);
Frames_signal = BREAK_kbd;
+ /* due to the proliferation of the need for 'mkVIZrow1', |
+ aside from 'wins_stage_2' use, we'll now issue it one |
+ time here. there will remain several places where the |
+ companion 'mkVIZrowX' macro is issued, thus the check |
+ for a value already in 'begnext' in this conditional. | */
+ if (CHKw(Curwin, Show_TASKON) && !mkVIZyes)
+ mkVIZrow1
+
goto all_done;
}
};
@@ -6493,14 +6490,11 @@ static const char *task_show (const WIN_t *q, int idx) {
/*
- * A window_show *Helper* function ensuring that Curwin's 'begtask'
- * represents a visible process (not any hidden/filtered-out task).
- * In reality, this function is called:
- * 1) exclusively for the 'current' window
- * 2) immediately after interacting with the user
- * 3) who struck: up, down, pgup, pgdn, home, end, 'o/O' or 'u/U'
- * 4) or upon the user switching from one window to another window
- * ( note: it's entirely possible there are NO visible tasks to show ) */
+ * A window_show *Helper* function ensuring that a window 'begtask' |
+ * represents a visible process (not any hidden/filtered-out task). |
+ * In reality this function is called exclusively for the 'current' |
+ * window and only after available user keystroke(s) are processed. |
+ * Note: it's entirely possible there are NO visible tasks to show! | */
static void window_hlp (void) {
WIN_t *w = Curwin; // avoid gcc bloat with a local copy
int i, reversed;
@@ -6548,7 +6542,7 @@ fwd_redux:
}
wrap_up:
- w->begnext = 0;
+ mkVIZoff(w)
OFFw(w, NOPRINT_xxx);
} // end: window_hlp
diff --git a/top/top.h b/top/top.h
index 40fe0ec..9d44669 100644
--- a/top/top.h
+++ b/top/top.h
@@ -427,9 +427,10 @@ typedef struct WIN_t {
// Support for a proper (visible) row #1 whenever Curwin changes
// ( or a key which might affect vertical scrolling was struck )
-#define mkVIZyes Curwin->begnext != 0
+#define mkVIZyes ( Curwin->begnext != 0 )
#define mkVIZrow1 { Curwin->begnext = +1; Curwin->begtask -= 1; }
#define mkVIZrowX(n) { Curwin->begnext = (n); }
+#define mkVIZoff(w) { w->begnext = 0; }
/* Special Section: end ------------------------------------------ */
/* /////////////////////////////////////////////////////////////// */
--
2.33.0

View File

@ -5,16 +5,15 @@ Subject: [PATCH] procps-ng: add -M and -N options for top
Signed-off-by: xuchunmei <xuchunmei@huawei.com> Signed-off-by: xuchunmei <xuchunmei@huawei.com>
Signed-off-by: zhoujie <zhoujie133@huawei.com> Signed-off-by: zhoujie <zhoujie133@huawei.com>
Signed-off-by: Qiang Wei <qiang.wei@suse.com>
--- ---
top/top.c | 15 ++++++++++++++- top/top.c | 15 ++++++++++++++-
top/top_nls.c | 2 ++ top/top_nls.c | 2 ++
2 files changed, 16 insertions(+), 1 deletion(-) 2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/top/top.c b/top/top.c --- a/src/top/top.c
index 04cf084..fbf0236 100644 +++ b/src/top/top.c
--- a/top/top.c @@ -4227,7 +4227,7 @@ default_or_error:
+++ b/top/top.c
@@ -4076,7 +4076,7 @@ default_or_error:
* overridden -- we'll force some on and negate others in our * overridden -- we'll force some on and negate others in our
* best effort to honor the loser's (oops, user's) wishes... */ * best effort to honor the loser's (oops, user's) wishes... */
static void parse_args (int argc, char **argv) { static void parse_args (int argc, char **argv) {
@ -23,7 +22,7 @@ index 04cf084..fbf0236 100644
static const struct option lopts[] = { static const struct option lopts[] = {
{ "batch-mode", no_argument, NULL, 'b' }, { "batch-mode", no_argument, NULL, 'b' },
{ "cmdline-toggle", no_argument, NULL, 'c' }, { "cmdline-toggle", no_argument, NULL, 'c' },
@@ -4097,6 +4097,8 @@ static void parse_args (int argc, char **argv) { @@ -4248,6 +4248,8 @@ static void parse_args (int argc, char *
{ "version", no_argument, NULL, 'V' }, { "version", no_argument, NULL, 'V' },
{ "width", optional_argument, NULL, 'w' }, { "width", optional_argument, NULL, 'w' },
{ "single-cpu-toggle", no_argument, NULL, '1' }, { "single-cpu-toggle", no_argument, NULL, '1' },
@ -32,7 +31,7 @@ index 04cf084..fbf0236 100644
{ NULL, 0, NULL, 0 } { NULL, 0, NULL, 0 }
}; };
float tmp_delay = FLT_MAX; float tmp_delay = FLT_MAX;
@@ -4219,6 +4221,17 @@ static void parse_args (int argc, char **argv) { @@ -4370,6 +4372,17 @@ static void parse_args (int argc, char *
error_exit(fmtmk(N_fmt(BAD_widtharg_fmt), cp)); error_exit(fmtmk(N_fmt(BAD_widtharg_fmt), cp));
Width_mode = (int)tmp; Width_mode = (int)tmp;
continue; continue;
@ -50,11 +49,9 @@ index 04cf084..fbf0236 100644
default: default:
// we'll rely on getopt for any error message ... // we'll rely on getopt for any error message ...
bye_bye(NULL); bye_bye(NULL);
diff --git a/top/top_nls.c b/top/top_nls.c --- a/src/top/top_nls.c
index 92f12ba..2e9c7fd 100644 +++ b/src/top/top_nls.c
--- a/top/top_nls.c @@ -431,6 +431,8 @@ static void build_norm_nlstab (void) {
+++ b/top/top_nls.c
@@ -409,6 +409,8 @@ static void build_norm_nlstab (void) {
" -u, --filter-only-euser =USER show only processes owned by USER\n" " -u, --filter-only-euser =USER show only processes owned by USER\n"
" -w, --width [=COLUMNS] change print width [,use COLUMNS]\n" " -w, --width [=COLUMNS] change print width [,use COLUMNS]\n"
" -1, --single-cpu-toggle reverse last remembered '1' state\n" " -1, --single-cpu-toggle reverse last remembered '1' state\n"
@ -63,6 +60,3 @@ index 92f12ba..2e9c7fd 100644
"\n" "\n"
" -h, --help display this help text, then exit\n" " -h, --help display this help text, then exit\n"
" -V, --version output version information & exit\n" " -V, --version output version information & exit\n"
--
2.33.0

View File

@ -4,15 +4,14 @@ Date: Wed, 23 Jan 2019 07:57:53 -0500
Subject: [PATCH] top: exit with error when pid overflow Subject: [PATCH] top: exit with error when pid overflow
Signed-off-by: xuchunmei <xuchunmei@huawei.com> Signed-off-by: xuchunmei <xuchunmei@huawei.com>
Signed-off-by: Qiang Wei <qiang.wei@suse.com>
--- ---
top/top.c | 3 ++- top/top.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-) 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/top/top.c b/top/top.c --- a/src/top/top.c
index fbf0236..4bcfff0 100644 +++ b/src/top/top.c
--- a/top/top.c @@ -4338,7 +4338,8 @@ static void parse_args (int argc, char *
+++ b/top/top.c
@@ -4189,7 +4189,8 @@ static void parse_args (int argc, char **argv) {
if (Monpidsidx >= MONPIDMAX) if (Monpidsidx >= MONPIDMAX)
error_exit(fmtmk(N_fmt(LIMIT_exceed_fmt), MONPIDMAX)); error_exit(fmtmk(N_fmt(LIMIT_exceed_fmt), MONPIDMAX));
if (1 != sscanf(cp, "%d", &pid) if (1 != sscanf(cp, "%d", &pid)
@ -22,6 +21,3 @@ index fbf0236..4bcfff0 100644
error_exit(fmtmk(N_fmt(BAD_mon_pids_fmt), cp)); error_exit(fmtmk(N_fmt(BAD_mon_pids_fmt), cp));
if (!pid) pid = getpid(); if (!pid) pid = getpid();
for (i = 0; i < Monpidsidx; i++) for (i = 0; i < Monpidsidx; i++)
--
2.33.0

Binary file not shown.

BIN
procps-ng-4.0.2.tar.xz Normal file

Binary file not shown.

View File

@ -1,6 +1,6 @@
Name: procps-ng Name: procps-ng
Version: 4.0.0 Version: 4.0.2
Release: 4 Release: 1
Summary: Utilities that provide system information. Summary: Utilities that provide system information.
License: GPL+ and GPLv2 and GPLv2+ and GPLv3+ and LGPLv2+ License: GPL+ and GPLv2 and GPLv2+ and GPLv3+ and LGPLv2+
URL: https://sourceforge.net/projects/procps-ng/ URL: https://sourceforge.net/projects/procps-ng/
@ -9,10 +9,9 @@ Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.xz
Source1: README.md Source1: README.md
Source2: README.top Source2: README.top
Patch1: 0001-add-M-and-N-options-for-top.patch Patch1: openeuler-add-M-and-N-options-for-top.patch
Patch2: 0002-top-exit-with-error-when-pid-overflow.patch Patch2: openeuler-top-exit-with-error-when-pid-overflow.patch
Patch3: 0003-top-eliminate-a-potential-abend-when-exiting-A-mode.patch Patch3: skill-Restore-the-p-flag-functionality.patch
Patch4: 0004-skill-Restore-the-p-flag-functionality.patch
BuildRequires: ncurses-devel libtool autoconf automake gcc gettext-devel systemd-devel BuildRequires: ncurses-devel libtool autoconf automake gcc gettext-devel systemd-devel
@ -47,7 +46,7 @@ The package is used for the Internationalization of %{name}
%autosetup -n procps-ng-%{version} -p1 %autosetup -n procps-ng-%{version} -p1
cp -p %{SOURCE1} . cp -p %{SOURCE1} .
cp -p %{SOURCE2} top/ cp -p %{SOURCE2} src/top/
%build %build
autoreconf -ivf autoreconf -ivf
@ -73,10 +72,10 @@ ln -s %{_bindir}/pidof %{buildroot}%{_sbindir}/pidof
%doc COPYING COPYING.LIB %doc COPYING COPYING.LIB
%{!?_licensedir:%global license %%doc} %{!?_licensedir:%global license %%doc}
%license COPYING COPYING.LIB %license COPYING COPYING.LIB
%{_libdir}/libproc-2.so.* %{_libdir}/libproc2.so.*
%{_bindir}/* %{_bindir}/*
%{_sbindir}/* %{_sbindir}/*
%exclude %{_libdir}/libproc-2.la %exclude %{_libdir}/libproc2.la
%exclude /unwanted/* %exclude /unwanted/*
%exclude %{_libdir}/*.a %exclude %{_libdir}/*.a
@ -84,17 +83,20 @@ ln -s %{_bindir}/pidof %{buildroot}%{_sbindir}/pidof
%doc COPYING COPYING.LIB %doc COPYING COPYING.LIB
%{!?_licensedir:%global license %%doc} %{!?_licensedir:%global license %%doc}
%license COPYING COPYING.LIB %license COPYING COPYING.LIB
%{_libdir}/libproc-2.so %{_libdir}/libproc2.so
%{_libdir}/pkgconfig/libproc-2.pc %{_libdir}/pkgconfig/libproc2.pc
%{_includedir}/procps %{_includedir}/libproc2
%files i18n -f %{name}.lang %files i18n -f %{name}.lang
%files help %files help
%doc AUTHORS Documentation/bugs.md Documentation/FAQ NEWS README.md top/README.top Documentation/TODO %doc AUTHORS NEWS README.md
%{_mandir}/man* %{_mandir}/man*
%changelog %changelog
* Wed Feb 1 2023 Qiang Wei <qiang.wei@suse.com> - 4.0.2-1
- Update to 4.0.2.
* Mon Dec 12 2022 Liu Chao <liuchao173@huawei.com> - 4.0.0-4 * Mon Dec 12 2022 Liu Chao <liuchao173@huawei.com> - 4.0.0-4
- skill: Restore the -p flag functionality - skill: Restore the -p flag functionality

View File

@ -9,17 +9,30 @@ on PID, used by the -p option, was missed. It is now restored.
References: References:
https://bugs.debian.org/1025915 https://bugs.debian.org/1025915
Conflict:remove NES part and change src/skill.c to skill.c Signed-off-by: Qiang Wei <qiang.wei@suse.com>
--- ---
skill.c | 2 ++ NEWS | 4 ++++
src/skill.c | 2 ++
testsuite/skill.test/skill.exp | 32 ++++++++++++++++++++++++++++++++ testsuite/skill.test/skill.exp | 32 ++++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+) 3 files changed, 38 insertions(+)
create mode 100644 testsuite/skill.test/skill.exp create mode 100644 testsuite/skill.test/skill.exp
diff --git a/skill.c b/skill.c diff --git a/NEWS b/NEWS
index d334c0d6..2d13978d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+procps-ng-NEXT
+---------------
+ * docs: Don't install English manpages twice
+ * skill: Match on -p again Debian #1025915
procps-ng-4.0.2
---------------
* library revision - 0:1:0
diff --git a/src/skill.c b/src/skill.c
index 9f617bfd..c2e52744 100644 index 9f617bfd..c2e52744 100644
--- a/skill.c --- a/src/skill.c
+++ b/skill.c +++ b/src/skill.c
@@ -287,6 +287,8 @@ static void scan_procs(struct run_time_conf_t *run_time) @@ -287,6 +287,8 @@ static void scan_procs(struct run_time_conf_t *run_time)
for (i=0; i < total_procs; i++) { for (i=0; i < total_procs; i++) {
if (PIDS_GETINT(PID) == my_pid || PIDS_GETINT(PID) == 0) if (PIDS_GETINT(PID) == my_pid || PIDS_GETINT(PID) == 0)
@ -68,5 +81,5 @@ index 00000000..162d9610
+# Cleanup +# Cleanup
+kill_testproc +kill_testproc
-- --
2.27.0 2.33.0