diff --git a/SOURCES/procps-ng-3.3.15-pgrep-uid-conversion-overflow.patch b/SOURCES/procps-ng-3.3.15-pgrep-uid-conversion-overflow.patch new file mode 100644 index 0000000..9c32823 --- /dev/null +++ b/SOURCES/procps-ng-3.3.15-pgrep-uid-conversion-overflow.patch @@ -0,0 +1,28 @@ +commit c833a6241893c7e566a5eed762661942e4cd90d3 +Author: Todd Lewis +Date: Mon Oct 29 18:33:48 2018 +0000 + + Fix user and group name to number conversion for uid/gid above 2^31. + +diff --git a/pgrep.c b/pgrep.c +index bde7448..8b82a54 100644 +--- a/pgrep.c ++++ b/pgrep.c +@@ -280,7 +280,7 @@ static int conv_uid (const char *restrict name, struct el *restrict e) + xwarnx(_("invalid user name: %s"), name); + return 0; + } +- e->num = pwd->pw_uid; ++ e->num = (int) pwd->pw_uid; + return 1; + } + +@@ -297,7 +297,7 @@ static int conv_gid (const char *restrict name, struct el *restrict e) + xwarnx(_("invalid group name: %s"), name); + return 0; + } +- e->num = grp->gr_gid; ++ e->num = (int) grp->gr_gid; + return 1; + } + diff --git a/SOURCES/procps-ng-3.3.15-pidof-kernel-workers-option.patch b/SOURCES/procps-ng-3.3.15-pidof-kernel-workers-option.patch new file mode 100644 index 0000000..b801971 --- /dev/null +++ b/SOURCES/procps-ng-3.3.15-pidof-kernel-workers-option.patch @@ -0,0 +1,112 @@ +From d9b3415d2a761cb7669a67f5309665335d5eb4c4 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Mon, 9 Nov 2020 16:10:22 +0100 +Subject: [PATCH] New '-w' option for kernel workers. + +--- + pidof.1 | 3 +++ + pidof.c | 17 ++++++++++++----- + 2 files changed, 15 insertions(+), 5 deletions(-) + +diff --git a/pidof.1 b/pidof.1 +index 1368704..c85c088 100644 +--- a/pidof.1 ++++ b/pidof.1 +@@ -45,6 +45,9 @@ the current root directory of processes they do not own. + .IP \-x + Scripts too - this causes the program to also return process id's of + shells running the named scripts. ++.IP \-w ++Show also processes that do not have visible command line (e.g. kernel ++worker threads). + .IP "-o \fIomitpid\fP" + Tells \fIpidof\fP to omit processes with that process id. The special + pid \fB%PPID\fP can be used to name the parent process of the \fIpidof\fP +diff --git a/pidof.c b/pidof.c +index 94e19bb..7fdf27a 100644 +--- a/pidof.c ++++ b/pidof.c +@@ -55,6 +55,8 @@ static char *program = NULL; + static int opt_single_shot = 0; /* -s */ + static int opt_scripts_too = 0; /* -x */ + static int opt_rootdir_check = 0; /* -c */ ++static int opt_with_workers = 0; /* -w */ ++ + + static char *pidof_root = NULL; + +@@ -69,6 +71,7 @@ static int __attribute__ ((__noreturn__)) usage(int opt) + fputs(_(" -s, --single-shot return one PID only\n"), fp); + fputs(_(" -c, --check-root omit processes with different root\n"), fp); + fputs(_(" -x also find shells running the named scripts\n"), fp); ++ fputs(_(" -w, --with-workers show kernel workers too\n"), fp); + fputs(_(" -o, --omit-pid omit processes with PID\n"), fp); + fputs(_(" -S, --separator SEP use SEP as separator put between PIDs"), fp); + fputs(USAGE_SEPARATOR, fp); +@@ -142,7 +145,6 @@ static void select_procs (void) + static int size = 0; + char *cmd_arg0, *cmd_arg0base; + char *cmd_arg1, *cmd_arg1base; +- char *stat_cmd; + char *program_base; + char *root_link; + char *exe_link; +@@ -168,10 +170,9 @@ static void select_procs (void) + } + } + +- if (!is_omitted(task.XXXID)) { ++ if (!is_omitted(task.XXXID) && ((task.cmdline && *task.cmdline) || opt_with_workers)) { + + cmd_arg0 = (task.cmdline && *task.cmdline) ? *task.cmdline : "\0"; +- stat_cmd = task.cmd ? task.cmd : "\0"; + + /* processes starting with '-' are login shells */ + if (*cmd_arg0 == '-') { +@@ -193,7 +194,7 @@ static void select_procs (void) + !strcmp(program_base, cmd_arg0) || + !strcmp(program, cmd_arg0) || + +- !strcmp(program, stat_cmd) || ++ (opt_with_workers && !strcmp(program, task.cmd)) || + + !strcmp(program, exe_link_base) || + !strcmp(program, exe_link)) +@@ -293,13 +294,14 @@ int main (int argc, char **argv) + int first_pid = 1; + + const char *separator = " "; +- const char *opts = "scnxmo:S:?Vh"; ++ const char *opts = "scnxwmo:S:?Vh"; + + static const struct option longopts[] = { + {"check-root", no_argument, NULL, 'c'}, + {"single-shot", no_argument, NULL, 's'}, + {"omit-pid", required_argument, NULL, 'o'}, + {"separator", required_argument, NULL, 's'}, ++ {"with-workers", no_argument, NULL, 'w'}, + {"help", no_argument, NULL, 'h'}, + {"version", no_argument, NULL, 'V'}, + {NULL, 0, NULL, 0} +@@ -325,6 +327,9 @@ int main (int argc, char **argv) + case 'x': + opt_scripts_too = 1; + break; ++ case 'w': ++ opt_with_workers = 1; ++ break; + case 'c': + if (geteuid() == 0) { + opt_rootdir_check = 1; +@@ -358,6 +363,8 @@ int main (int argc, char **argv) + + program = argv[optind++]; + ++ if (*program == '\0') continue; ++ + select_procs(); /* get the list of matching processes */ + + if (proc_count) { +-- +2.25.4 + diff --git a/SOURCES/procps-ng-3.3.15-pidof-separator-option-backport.patch b/SOURCES/procps-ng-3.3.15-pidof-separator-option-backport.patch new file mode 100644 index 0000000..e70f10a --- /dev/null +++ b/SOURCES/procps-ng-3.3.15-pidof-separator-option-backport.patch @@ -0,0 +1,13 @@ +diff --git a/pidof.c b/pidof.c +index 7fdf27a..2166265 100644 +--- a/pidof.c ++++ b/pidof.c +@@ -300,7 +300,7 @@ int main (int argc, char **argv) + {"check-root", no_argument, NULL, 'c'}, + {"single-shot", no_argument, NULL, 's'}, + {"omit-pid", required_argument, NULL, 'o'}, +- {"separator", required_argument, NULL, 's'}, ++ {"separator", required_argument, NULL, 'S'}, + {"with-workers", no_argument, NULL, 'w'}, + {"help", no_argument, NULL, 'h'}, + {"version", no_argument, NULL, 'V'}, diff --git a/SOURCES/procps-ng-3.3.15-vmstat-watch-manpage.patch b/SOURCES/procps-ng-3.3.15-vmstat-watch-manpage.patch new file mode 100644 index 0000000..aa8d43c --- /dev/null +++ b/SOURCES/procps-ng-3.3.15-vmstat-watch-manpage.patch @@ -0,0 +1,41 @@ +commit 354b5a56bf2ea831427ab8268ec7101bd3870f8e +Author: Jan Rybar +Date: Thu Apr 30 17:06:18 2020 +0200 + + vmstat and watch manpage slight fixes + + vmstat - align wording with proc manpage to clarify ambiguities (rhbz#1796043) + watch - manpage presumes ntp tools are present by default (which they're not on rpm and deb distros, rhbz#1583669) + +diff --git a/vmstat.8 b/vmstat.8 +index e408bca..dcc1b1e 100644 +--- a/vmstat.8 ++++ b/vmstat.8 +@@ -93,7 +93,7 @@ Display help and exit. + .B "Procs" + .nf + r: The number of runnable processes (running or waiting for run time). +-b: The number of processes in uninterruptible sleep. ++b: The number of processes blocked waiting for I/O to complete. + .fi + .PP + .SS +diff --git a/watch.1 b/watch.1 +index 256c36b..e06e04e 100644 +--- a/watch.1 ++++ b/watch.1 +@@ -34,7 +34,7 @@ every + .I interval + seconds. Try it with + .B ntptime +-and notice how the fractional seconds stays (nearly) the same, as opposed to ++(if present) and notice how the fractional seconds stays (nearly) the same, as opposed to + normal mode where they continuously increase. + .TP + \fB\-t\fR, \fB\-\-no\-title\fR +@@ -190,4 +190,4 @@ watch uname \-r + .I \-p + isn't guaranteed to work across reboots, especially in the face of + .B ntpdate +-or other bootup time-changing mechanisms) ++(if present) or other bootup time-changing mechanisms) diff --git a/SPECS/procps-ng.spec b/SPECS/procps-ng.spec index f450a22..84dd9f7 100644 --- a/SPECS/procps-ng.spec +++ b/SPECS/procps-ng.spec @@ -4,7 +4,7 @@ Summary: System and process monitoring utilities Name: procps-ng Version: 3.3.15 -Release: 2%{?dist} +Release: 6%{?dist} License: GPL+ and GPLv2 and GPLv2+ and GPLv3+ and LGPLv2+ Group: Applications/System URL: https://sourceforge.net/projects/procps-ng/ @@ -17,6 +17,10 @@ Source1: README.md Source2: README.top Patch1: procps-ng-3.3.15-pidof-show-worker-threads.patch +Patch2: procps-ng-3.3.15-pgrep-uid-conversion-overflow.patch +Patch3: procps-ng-3.3.15-vmstat-watch-manpage.patch +Patch4: procps-ng-3.3.15-pidof-kernel-workers-option.patch +Patch5: procps-ng-3.3.15-pidof-separator-option-backport.patch BuildRequires: ncurses-devel BuildRequires: libtool @@ -159,6 +163,31 @@ ln -s %{_bindir}/pidof %{buildroot}%{_sbindir}/pidof %files i18n -f %{name}.lang %changelog +* Tue Dec 01 2020 Jan Rybar - 3.3.15-6 +- pidof: option for separator collides with other option +- Resolves: rhbz#1895985 + +* Mon Nov 09 2020 Jan Rybar - 3.3.15-5 +- version bump due to unspotted malformed backport patch +- Resolves: rhbz#1860486 +- Resolves: rhbz#1894526 +- Related: rhbz#1803640 + +* Fri Nov 06 2020 Jan Rybar - 3.3.15-4 +- pidof: new option to show kernel worker threads +- pidof: empty input causes to show kernel worker threads +- Resolves: rhbz#1860486 +- Resolves: rhbz#1894526 +- Related: rhbz#1803640 +- +* Wed Jul 08 2020 Jan Rybar - 3.3.15-3 +- pgrep: uid/gid conversion overflow +- vmstat: align manpage with procfs wording +- watch: manpage presumes NTP on system +- Resolves: rhbz#1827731 +- Resolves: rhbz#1829920 +- Resolves: rhbz#1583669 + * Tue Apr 14 2020 Jan Rybar - 3.3.15-2 - pidof: show kernel workers - gating activated