From bd0958051d3601038c7b958e213336130a9a5bd0 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Aug 06 2019 10:57:00 +0000 Subject: import pcp-4.3.2-2.el7 --- diff --git a/.gitignore b/.gitignore index 8e0e9cb..b651edb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -SOURCES/pcp-4.1.0.src.tar.gz -SOURCES/pcp-webapp-blinkenlights-1.0.0.tar.gz +SOURCES/pcp-4.3.2.src.tar.gz +SOURCES/pcp-webapp-blinkenlights-1.0.1.tar.gz SOURCES/pcp-webapp-grafana-1.9.1-2.tar.gz SOURCES/pcp-webapp-graphite-0.9.10.tar.gz -SOURCES/pcp-webapp-vector-1.2.2.tar.gz +SOURCES/pcp-webapp-vector-1.3.1-1.tar.gz diff --git a/.pcp.metadata b/.pcp.metadata index 09679c7..ad492b7 100644 --- a/.pcp.metadata +++ b/.pcp.metadata @@ -1,5 +1,5 @@ -2a14c6ff648b78f6891cbc9a13f6e7b6e5c1c93b SOURCES/pcp-4.1.0.src.tar.gz -7241116259edb86888e8db16d6b0717279523a22 SOURCES/pcp-webapp-blinkenlights-1.0.0.tar.gz +940c068e6d34967f07f8c193acd5069a34de0835 SOURCES/pcp-4.3.2.src.tar.gz +e328622bfc24ac4c93a5dcdb9dedf0277a870bc8 SOURCES/pcp-webapp-blinkenlights-1.0.1.tar.gz 9fbce28ae069f9d1fb1408093a1d4303c5d60322 SOURCES/pcp-webapp-grafana-1.9.1-2.tar.gz 05f083a4cddff47cf25ce50a27c20aaccad0dbcb SOURCES/pcp-webapp-graphite-0.9.10.tar.gz -29ebb6bf0c60307c3467b044b32ba874627a20e2 SOURCES/pcp-webapp-vector-1.2.2.tar.gz +0ee76d05b4fe7465afcdb70a7d723d29a351dac7 SOURCES/pcp-webapp-vector-1.3.1-1.tar.gz diff --git a/SOURCES/pmcd-pmlogger-local-context.patch b/SOURCES/pmcd-pmlogger-local-context.patch new file mode 100644 index 0000000..1c1e90d --- /dev/null +++ b/SOURCES/pmcd-pmlogger-local-context.patch @@ -0,0 +1,26 @@ +diff --git a/src/pmcd/pmcd.defaults b/src/pmcd/pmcd.defaults +index 83ee4d9a9..56e125553 100644 +--- a/src/pmcd/pmcd.defaults ++++ b/src/pmcd/pmcd.defaults +@@ -4,7 +4,7 @@ + # Behaviour regarding listening on external-facing interfaces; + # unset PMCD_LOCAL to allow connections from remote hosts. + # A value of 0 permits remote connections, 1 permits local only. +-# PMCD_LOCAL=1 ++PMCD_LOCAL=1 + + # Max length to which the queue of pending connections may grow + # A value of 5 is the default. +diff --git a/src/pmlogger/pmlogger.defaults b/src/pmlogger/pmlogger.defaults +index 5462403ec..261a79039 100644 +--- a/src/pmlogger/pmlogger.defaults ++++ b/src/pmlogger/pmlogger.defaults +@@ -4,7 +4,7 @@ + # Behaviour regarding listening on external-facing interfaces; + # unset PMLOGGER_LOCAL to allow connections from remote hosts. + # A value of 0 permits remote connections, 1 permits local only. +-# PMLOGGER_LOCAL=1 ++PMLOGGER_LOCAL=1 + + # Max length to which the queue of pending connections may grow + # A value of 5 is the default. diff --git a/SOURCES/qa-fixmod.patch b/SOURCES/qa-fixmod.patch new file mode 100644 index 0000000..6e9f90a --- /dev/null +++ b/SOURCES/qa-fixmod.patch @@ -0,0 +1,22 @@ +commit 25f7bab80fea8676fa24435e275934fc81f68bc7 +Author: Nathan Scott +Date: Fri May 3 15:58:17 2019 +1000 + + qa: fix _fixmod function name typo in test 994 + + Thanks to Michal Kolar from the Red Hat QE team for + reporting this one. + +diff --git a/qa/994 b/qa/994 +index cdf9485b6..01de9449b 100755 +--- a/qa/994 ++++ b/qa/994 +@@ -151,7 +151,7 @@ p + then + echo "$target: wrong mode: expected $mode (from $makefile), found $_mode" + ls -ld $target +- $fix && _fixmod "$mode" "$target" ++ $fix && _fixmode "$mode" "$target" + fi + if [ "$_owner" != "$owner" ] + then diff --git a/SOURCES/redhat-bugzilla-1597975.patch b/SOURCES/redhat-bugzilla-1597975.patch index c4dd360..4e9bef7 100644 --- a/SOURCES/redhat-bugzilla-1597975.patch +++ b/SOURCES/redhat-bugzilla-1597975.patch @@ -12,10 +12,9 @@ corresponding change done in latest RHEL 7 bcc as well. src/pmdas/bcc/modules/fs/xfsdist.python | 8 ++++---- 4 files changed, 10 insertions(+), 8 deletions(-) -diff --git a/src/pmdas/bcc/modules/fs/ext4dist.bpf b/src/pmdas/bcc/modules/fs/ext4dist.bpf -index 4f41d62..dd57cf3 100644 ---- a/src/pmdas/bcc/modules/fs/ext4dist.bpf -+++ b/src/pmdas/bcc/modules/fs/ext4dist.bpf +diff -Naurp pcp-4.3.0.orig/src/pmdas/bcc/modules/fs/ext4dist.bpf pcp-4.3.0/src/pmdas/bcc/modules/fs/ext4dist.bpf +--- pcp-4.3.0.orig/src/pmdas/bcc/modules/fs/ext4dist.bpf 2018-05-28 11:27:04.000000000 +1000 ++++ pcp-4.3.0/src/pmdas/bcc/modules/fs/ext4dist.bpf 2019-01-29 13:00:29.057576352 +1100 @@ -3,6 +3,7 @@ #include @@ -24,15 +23,18 @@ index 4f41d62..dd57cf3 100644 #include #define OP_NAME_LEN 8 -diff --git a/src/pmdas/bcc/modules/fs/ext4dist.python b/src/pmdas/bcc/modules/fs/ext4dist.python -index 610abd3..961a03c 100644 ---- a/src/pmdas/bcc/modules/fs/ext4dist.python -+++ b/src/pmdas/bcc/modules/fs/ext4dist.python -@@ -91,12 +91,12 @@ class PCPBCCModule(PCPBCCBase): - self.log("\n" + bpf_text) - +diff -Naurp pcp-4.3.0.orig/src/pmdas/bcc/modules/fs/ext4dist.python pcp-4.3.0/src/pmdas/bcc/modules/fs/ext4dist.python +--- pcp-4.3.0.orig/src/pmdas/bcc/modules/fs/ext4dist.python 2018-09-18 16:41:15.000000000 +1000 ++++ pcp-4.3.0/src/pmdas/bcc/modules/fs/ext4dist.python 2019-01-29 13:03:26.656105696 +1100 +@@ -121,16 +121,12 @@ class PCPBCCModule(PCPBCCBase): + self.reset_cache() self.bpf = BPF(text=bpf_text) -- self.bpf.attach_kprobe(event="generic_file_read_iter", fn_name="trace_read_entry") + # Compat: bcc < 0.6.0 (first check) +- if 'get_kprobe_functions' in dir(self.bpf) and \ +- self.get_kprobe_functions(b"ext4_file_read_iter"): +- self.bpf.attach_kprobe(event="ext4_file_read_iter", fn_name="trace_entry") +- else: +- self.bpf.attach_kprobe(event="generic_file_read_iter", fn_name="trace_read_entry") - self.bpf.attach_kprobe(event="ext4_file_write_iter", fn_name="trace_entry") + self.bpf.attach_kprobe(event="generic_file_aio_read", fn_name="trace_read_entry") + self.bpf.attach_kprobe(event="ext4_file_write", fn_name="trace_entry") @@ -45,10 +47,9 @@ index 610abd3..961a03c 100644 self.bpf.attach_kretprobe(event="ext4_file_open", fn_name="trace_open_return") self.bpf.attach_kretprobe(event="ext4_sync_file", fn_name="trace_fsync_return") self.log("Compiled.") -diff --git a/src/pmdas/bcc/modules/fs/xfsdist.bpf b/src/pmdas/bcc/modules/fs/xfsdist.bpf -index 66aeae5..4c539f9 100644 ---- a/src/pmdas/bcc/modules/fs/xfsdist.bpf -+++ b/src/pmdas/bcc/modules/fs/xfsdist.bpf +diff -Naurp pcp-4.3.0.orig/src/pmdas/bcc/modules/fs/xfsdist.bpf pcp-4.3.0/src/pmdas/bcc/modules/fs/xfsdist.bpf +--- pcp-4.3.0.orig/src/pmdas/bcc/modules/fs/xfsdist.bpf 2018-06-19 09:19:05.000000000 +1000 ++++ pcp-4.3.0/src/pmdas/bcc/modules/fs/xfsdist.bpf 2019-01-29 13:00:29.060576310 +1100 @@ -3,6 +3,7 @@ #include @@ -57,13 +58,12 @@ index 66aeae5..4c539f9 100644 #include #define OP_NAME_LEN 8 -diff --git a/src/pmdas/bcc/modules/fs/xfsdist.python b/src/pmdas/bcc/modules/fs/xfsdist.python -index a1ebc62..d460983 100644 ---- a/src/pmdas/bcc/modules/fs/xfsdist.python -+++ b/src/pmdas/bcc/modules/fs/xfsdist.python -@@ -73,12 +73,12 @@ class PCPBCCModule(PCPBCCBase): - self.log("\n" + bpf_text) +diff -Naurp pcp-4.3.0.orig/src/pmdas/bcc/modules/fs/xfsdist.python pcp-4.3.0/src/pmdas/bcc/modules/fs/xfsdist.python +--- pcp-4.3.0.orig/src/pmdas/bcc/modules/fs/xfsdist.python 2018-09-18 16:41:15.000000000 +1000 ++++ pcp-4.3.0/src/pmdas/bcc/modules/fs/xfsdist.python 2019-01-29 13:00:29.061576296 +1100 +@@ -102,12 +102,12 @@ class PCPBCCModule(PCPBCCBase): + self.reset_cache() self.bpf = BPF(text=bpf_text) - self.bpf.attach_kprobe(event="xfs_file_read_iter", fn_name="trace_entry") - self.bpf.attach_kprobe(event="xfs_file_write_iter", fn_name="trace_entry") @@ -78,6 +78,3 @@ index a1ebc62..d460983 100644 self.bpf.attach_kretprobe(event="xfs_file_open", fn_name="trace_open_return") self.bpf.attach_kretprobe(event="xfs_file_fsync", fn_name="trace_fsync_return") self.log("Compiled.") --- -1.8.3.1 - diff --git a/SOURCES/redhat-bugzilla-1600262.patch b/SOURCES/redhat-bugzilla-1600262.patch deleted file mode 100644 index 5497577..0000000 --- a/SOURCES/redhat-bugzilla-1600262.patch +++ /dev/null @@ -1,360 +0,0 @@ -diff -Naurp pcp-4.1.0-orig/qa/1350 pcp-4.1.0/qa/1350 ---- pcp-4.1.0-orig/qa/1350 1970-01-01 10:00:00.000000000 +1000 -+++ pcp-4.1.0/qa/1350 2018-10-09 15:57:39.402661334 +1100 -@@ -0,0 +1,38 @@ -+#!/bin/sh -+# PCP QA Test No. 1350 -+# Test fix for RHBZ #1600262 https://bugzilla.redhat.com/show_bug.cgi?id=1600262 -+# pmdaproc short buffer read of /proc/PID/status yeilds incorrect metric values -+# -+# Copyright (c) 2018 Red Hat. All Rights Reserved. -+# -+ -+seq=`basename $0` -+echo "QA output created by $seq" -+ -+# get standard environment, filters and checks -+. ./common.product -+. ./common.filter -+. ./common.check -+ -+_cleanup() -+{ -+ cd $here -+ $sudo rm -rf $tmp $tmp.* -+} -+ -+[ $PCP_PLATFORM = linux ] || _notrun "Linux proc test, only works with Linux" -+ -+status=1 # failure is the default! -+$sudo rm -rf $tmp $tmp.* $seq.full -+trap "_cleanup; exit \$status" 0 1 2 3 15 -+ -+# real QA test starts here -+nvctxw=`pminfo -f proc.psinfo.nvctxsw | fgrep $$ | awk '{print $NF}'` -+[ $nvctxw -eq 0 ] || status=0 -+if [ $status -eq 1 ] -+then -+ echo FAIL, proc.psinfo.nvctxsw should not be zero -+else -+ echo PASS, proc.psinfo.nvctxsw is nonzero -+fi -+exit -diff -Naurp pcp-4.1.0-orig/qa/1350.out pcp-4.1.0/qa/1350.out ---- pcp-4.1.0-orig/qa/1350.out 1970-01-01 10:00:00.000000000 +1000 -+++ pcp-4.1.0/qa/1350.out 2018-10-09 15:57:39.403661320 +1100 -@@ -0,0 +1,2 @@ -+QA output created by 1350 -+PASS, proc.psinfo.nvctxsw is nonzero -diff -Naurp pcp-4.1.0-orig/qa/group pcp-4.1.0/qa/group ---- pcp-4.1.0-orig/qa/group 2018-06-15 11:45:36.000000000 +1000 -+++ pcp-4.1.0/qa/group 2018-10-09 15:57:39.403661320 +1100 -@@ -1556,6 +1556,7 @@ BAD - 1342 pmda.prometheus local python - 1343 pmmgr local - 1344 pmmgr local -+1350 pmda.proc local - 1351 pmcd pmda.mmv libpcp libpcp_pmda local - 1354 pmval archive local - 1359 libpcp local -diff -Naurp pcp-4.1.0-orig/src/pmdas/linux_proc/proc_pid.c pcp-4.1.0/src/pmdas/linux_proc/proc_pid.c ---- pcp-4.1.0-orig/src/pmdas/linux_proc/proc_pid.c 2018-05-19 12:47:33.000000000 +1000 -+++ pcp-4.1.0/src/pmdas/linux_proc/proc_pid.c 2018-10-09 15:57:39.402661334 +1100 -@@ -1175,6 +1175,40 @@ maperr(void) - return sts; - } - -+static int -+read_proc_entry(int fd, int *lenp, char **bufp) -+{ -+ int sts = 0; -+ int n, len = 0; -+ char *p = *bufp; -+ char buf[1024]; -+ -+ for (len=0;;) { -+ if ((n = read(fd, buf, sizeof(buf))) <= 0) -+ break; -+ len += n; -+ if (*lenp < len) { -+ *lenp = len; -+ *bufp = (char *)realloc(*bufp, len+1); -+ p = *bufp + len - n; -+ } -+ memcpy(p, buf, n); -+ p += n; -+ } -+ -+ if (len > 0) -+ *p = '\0'; -+ else { -+ /* invalid read */ -+ if (n < 0) -+ sts = maperr(); -+ else if (n == 0) -+ sts = -ENODATA; -+ } -+ -+ return sts; -+} -+ - /* - * fetch a proc//stat entry for pid - */ -@@ -1183,10 +1217,8 @@ fetch_proc_pid_stat(int id, proc_pid_t * - { - __pmHashNode *node = __pmHashSearch(id, &proc_pid->pidhash); - proc_pid_entry_t *ep = node ? (proc_pid_entry_t *)node->data : NULL; -- char buf[1024]; - char *p; -- int fd, n; -- ssize_t nread; -+ int fd; - - *sts = 0; - if (!ep) -@@ -1197,18 +1229,8 @@ fetch_proc_pid_stat(int id, proc_pid_t * - ep->stat_buf[0] = '\0'; - if ((fd = proc_open("stat", ep)) < 0) - *sts = maperr(); -- else if ((n = read(fd, buf, sizeof(buf))) < 0) -- *sts = maperr(); -- else if (n == 0) -- *sts = -ENODATA; -- else { -- if (ep->stat_buflen <= n) { -- ep->stat_buflen = n; -- ep->stat_buf = (char *)realloc(ep->stat_buf, n); -- } -- memcpy(ep->stat_buf, buf, n); -- ep->stat_buf[n-1] = '\0'; -- } -+ else -+ *sts = read_proc_entry(fd, &ep->stat_buflen, &ep->stat_buf); - if (fd >= 0) - close(fd); - ep->flags |= PROC_PID_FLAG_STAT_FETCHED; -@@ -1219,24 +1241,8 @@ fetch_proc_pid_stat(int id, proc_pid_t * - ep->wchan_buf[0] = '\0'; - if ((fd = proc_open("wchan", ep)) < 0) - ; /* ignore failure here, backwards compat */ -- else if ((n = read(fd, buf, sizeof(buf)-1)) < 0) -- *sts = maperr(); -- else if (n == 0) -- /* wchan is empty, nothing to add here */ -- ; -- else { -- n++; /* no terminating null (from kernel) */ -- if (ep->wchan_buflen <= n) { -- ep->wchan_buflen = n; -- ep->wchan_buf = (char *)realloc(ep->wchan_buf, n); -- } -- if (ep->wchan_buf) { -- memcpy(ep->wchan_buf, buf, n-1); -- ep->wchan_buf[n-1] = '\0'; -- } else { -- ep->wchan_buflen = 0; -- } -- } -+ else -+ *sts = read_proc_entry(fd, &ep->wchan_buflen, &ep->wchan_buf); - if (fd >= 0) - close(fd); - ep->flags |= PROC_PID_FLAG_WCHAN_FETCHED; -@@ -1246,22 +1252,17 @@ fetch_proc_pid_stat(int id, proc_pid_t * - if (ep->environ_buflen > 0) - ep->environ_buf[0] = '\0'; - if ((fd = proc_open("environ", ep)) >= 0) { -- nread = 0; -- while ((n = read(fd, buf, sizeof(buf))) > 0) { -- if ((nread + n) >= ep->environ_buflen) { -- ep->environ_buflen = nread + n + 1; -- ep->environ_buf = realloc(ep->environ_buf, ep->environ_buflen); -- } -- -+ *sts = read_proc_entry(fd, &ep->environ_buflen, &ep->environ_buf); -+ if (*sts == 0) { - /* Replace nulls with spaces */ -- for (p = memchr(buf, '\0', n); p; p = memchr(p, '\0', buf+n-p)) -- *p = ' '; -- -- memcpy(&ep->environ_buf[nread], buf, n); -- nread += n; -+ if (ep->environ_buf) { -+ for (p=ep->environ_buf; p < ep->environ_buf + ep->environ_buflen; p++) { -+ if (*p == '\0') -+ *p = ' '; -+ } -+ ep->environ_buf[ep->environ_buflen-1] = '\0'; -+ } - } -- if (ep->environ_buf) -- ep->environ_buf[nread] = '\0'; - else - ep->environ_buflen = 0; - close(fd); -@@ -1313,31 +1314,14 @@ fetch_proc_pid_status(int id, proc_pid_t - - if (!(ep->flags & PROC_PID_FLAG_STATUS_FETCHED)) { - int fd; -- int n; -- char buf[1024]; - char *curline; - - if (ep->status_buflen > 0) - ep->status_buf[0] = '\0'; - if ((fd = proc_open("status", ep)) < 0) - *sts = maperr(); -- else if ((n = read(fd, buf, sizeof(buf))) < 0) -- *sts = maperr(); -- else if (n == 0) -- *sts = -ENODATA; -- else { -- if (ep->status_buflen < n) { -- ep->status_buflen = n; -- ep->status_buf = (char *)realloc(ep->status_buf, n); -- } -- if (ep->status_buf == NULL) { -- ep->status_buflen = 0; -- *sts = -ENODATA; -- } else { -- memcpy(ep->status_buf, buf, n); -- ep->status_buf[n-1] = '\0'; -- } -- } -+ else -+ *sts = read_proc_entry(fd, &ep->status_buflen, &ep->status_buf); - - if (*sts == 0) { - /* assign pointers to individual lines in buffer */ -@@ -1524,30 +1508,14 @@ fetch_proc_pid_statm(int id, proc_pid_t - return NULL; - - if (!(ep->flags & PROC_PID_FLAG_STATM_FETCHED)) { -- char buf[1024]; -- int fd, n; -+ int fd; - - if (ep->statm_buflen > 0) - ep->statm_buf[0] = '\0'; - if ((fd = proc_open("statm", ep)) < 0) - *sts = maperr(); -- else if ((n = read(fd, buf, sizeof(buf))) < 0) -- *sts = maperr(); -- else if (n == 0) -- *sts = -ENODATA; -- else { -- if (ep->statm_buflen <= n) { -- ep->statm_buflen = n; -- ep->statm_buf = (char *)realloc(ep->statm_buf, n); -- } -- if (ep->statm_buf) { -- memcpy(ep->statm_buf, buf, n); -- ep->statm_buf[n-1] = '\0'; -- } else { -- ep->statm_buflen = 0; -- } -- } -- -+ else -+ *sts = read_proc_entry(fd, &ep->statm_buflen, &ep->statm_buf); - if (fd >= 0) - close(fd); - ep->flags |= PROC_PID_FLAG_STATM_FETCHED; -@@ -1567,7 +1535,6 @@ fetch_proc_pid_maps(int id, proc_pid_t * - { - __pmHashNode *node = __pmHashSearch(id, &proc_pid->pidhash); - proc_pid_entry_t *ep = node ? (proc_pid_entry_t *)node->data : NULL; -- char *maps_bufptr = NULL; - int fd; - - *sts = 0; -@@ -1580,18 +1547,7 @@ fetch_proc_pid_maps(int id, proc_pid_t * - if ((fd = proc_open("maps", ep)) < 0) - *sts = maperr(); - else { -- char buf[1024]; -- int n, len = 0; -- -- while ((n = read(fd, buf, sizeof(buf))) > 0) { -- len += n; -- if (ep->maps_buflen <= len) { -- ep->maps_buflen = len + 1; -- ep->maps_buf = (char *)realloc(ep->maps_buf, ep->maps_buflen); -- } -- maps_bufptr = ep->maps_buf + len - n; -- memcpy(maps_bufptr, buf, n); -- } -+ *sts = read_proc_entry(fd, &ep->maps_buflen, &ep->maps_buf); - /* If there are no maps, make maps_buf a zero length string. */ - if (ep->maps_buflen == 0) { - ep->maps_buflen = 1; -@@ -1625,30 +1581,14 @@ fetch_proc_pid_schedstat(int id, proc_pi - return NULL; - - if (!(ep->flags & PROC_PID_FLAG_SCHEDSTAT_FETCHED)) { -- int fd, n; -- char buf[1024]; -+ int fd; - - if (ep->schedstat_buflen > 0) - ep->schedstat_buf[0] = '\0'; - if ((fd = proc_open("schedstat", ep)) < 0) - *sts = maperr(); -- else if ((n = read(fd, buf, sizeof(buf))) < 0) -- *sts = maperr(); -- else if (n == 0) -- *sts = -ENODATA; -- else { -- if (ep->schedstat_buflen <= n) { -- ep->schedstat_buflen = n; -- ep->schedstat_buf = (char *)realloc(ep->schedstat_buf, n); -- } -- if (ep->schedstat_buf) { -- memcpy(ep->schedstat_buf, buf, n); -- ep->schedstat_buf[n-1] = '\0'; -- } else { -- ep->schedstat_buflen = 0; -- } -- } -- -+ else -+ *sts = read_proc_entry(fd, &ep->schedstat_buflen, &ep->schedstat_buf); - if (fd >= 0) - close(fd); - ep->flags |= PROC_PID_FLAG_SCHEDSTAT_FETCHED; -@@ -1677,31 +1617,15 @@ fetch_proc_pid_io(int id, proc_pid_t *pr - return NULL; - - if (!(ep->flags & PROC_PID_FLAG_IO_FETCHED)) { -- int fd, n; -- char buf[1024]; -+ int fd; - char *curline; - - if (ep->io_buflen > 0) - ep->io_buf[0] = '\0'; - if ((fd = proc_open("io", ep)) < 0) - *sts = maperr(); -- else if ((n = read(fd, buf, sizeof(buf))) < 0) -- *sts = maperr(); -- else if (n == 0) -- *sts = -ENODATA; -- else { -- if (ep->io_buflen < n) { -- ep->io_buflen = n; -- ep->io_buf = (char *)realloc(ep->io_buf, n); -- } -- if (ep->io_buf) { -- memcpy(ep->io_buf, buf, n); -- ep->io_buf[n-1] = '\0'; -- } else { -- ep->io_buflen = 0; -- *sts = -ENODATA; -- } -- } -+ else -+ *sts = read_proc_entry(fd, &ep->io_buflen, &ep->io_buf); - - if (*sts == 0) { - /* assign pointers to individual lines in buffer */ diff --git a/SOURCES/redhat-bugzilla-1603596.patch b/SOURCES/redhat-bugzilla-1603596.patch deleted file mode 100644 index 6975b21..0000000 --- a/SOURCES/redhat-bugzilla-1603596.patch +++ /dev/null @@ -1,411 +0,0 @@ -diff -Naurp pcp-4.1.0-orig/qa/1141 pcp-4.1.0/qa/1141 ---- pcp-4.1.0-orig/qa/1141 2017-12-18 09:31:30.000000000 +1100 -+++ pcp-4.1.0/qa/1141 2018-09-05 08:46:05.578019776 +1000 -@@ -17,6 +17,8 @@ policy_name="pcpqaqaqaqa" - policy_file="$PCP_VAR_DIR/selinux/pcpupstream.pp" - which sedismod >/dev/null 2>&1 || _notrun "sedismod tool not installed (module disassembly)" - which semodule >/dev/null 2>&1 || _notrun "semodule tool not installed" -+$sudo semodule -l >/dev/null 2>&1 -+[ $? -eq 0 ] || _notrun "semodule -l fails" - which seinfo >/dev/null 2>&1 || _notrun "seinfo tool not installed" - [ -f "$policy_file" ] || _notrun "upstream policy package not installed" - #if a matching module is already installed -diff -Naurp pcp-4.1.0-orig/qa/917.out.in pcp-4.1.0/qa/917.out.in ---- pcp-4.1.0-orig/qa/917.out.in 2018-05-09 07:50:53.000000000 +1000 -+++ pcp-4.1.0/qa/917.out.in 2018-09-05 08:46:47.973426601 +1000 -@@ -16,11 +16,11 @@ decl 1: - allow [pcp_pmcd_t] [sysctl_net_t] : [dir] { search }; - allow [pcp_pmcd_t] [sysctl_net_t] : [file] { getattr open read }; - allow [pcp_pmcd_t] [user_home_t] : [file] { execute execute_no_trans open read }; -- allow [pcp_pmcd_t] [debugfs_t] : [dir] { read }; -- allow [pcp_pmcd_t] [debugfs_t] : [file] { getattr ioctl open read }; -+ allow [pcp_pmcd_t] [debugfs_t] : [dir] { read search }; -+ allow [pcp_pmcd_t] [debugfs_t] : [file] { append getattr ioctl open read write }; - allow [pcp_pmcd_t] [pcp_pmie_exec_t] : [file] { execute execute_no_trans open read }; - allow [pcp_pmcd_t] [pcp_var_lib_t] : [fifo_file] { getattr read open unlink }; -- allow [pcp_pmcd_t] self : [capability] { kill sys_ptrace net_admin chown ipc_owner sys_resource }; -+ allow [pcp_pmcd_t] self : [capability] { kill sys_ptrace net_admin chown ipc_lock ipc_owner sys_resource }; - allow [pcp_pmcd_t] [initctl_t] : [fifo_file] { getattr }; - allow [pcp_pmcd_t] [proc_kcore_t] : [file] { getattr }; - allow [pcp_pmcd_t] self : [cap_userns] { sys_ptrace }; -@@ -36,8 +36,8 @@ decl 1: - allow [pcp_pmcd_t] [hostname_exec_t] : [file] { execute execute_no_trans getattr open read }; - allow [pcp_pmcd_t] [tracefs_t] : [filesystem] { mount }; - allow [pcp_pmcd_t] [tracefs_t] : [dir] { open read search }; -- allow [pcp_pmcd_t] [tracefs_t] : [file] { append open read }; -- allow [pcp_pmcd_t] [gconf_home_t] : [dir] { search }; -+ allow [pcp_pmcd_t] [tracefs_t] : [file] { append getattr open read write }; -+ allow [pcp_pmcd_t] [gconf_home_t] : [dir] { open read search getattr }; - allow [pcp_pmcd_t] [virt_etc_t] : [dir] { search }; - allow [pcp_pmcd_t] [virt_etc_t] : [file] { open read }; - allow [pcp_pmcd_t] [virtd_t] : [unix_stream_socket] { connectto }; -@@ -55,6 +55,7 @@ decl 1: - allow [pcp_pmcd_t] [httpd_t] : [shm] { unix_read associate getattr }; - allow [pcp_pmcd_t] [httpd_t] : [sem] { unix_read associate getattr }; - allow [pcp_pmcd_t] [sysfs_t] : [dir] { write }; -+ allow [pcp_pmcd_t] [modules_object_t] : [lnk_file] { read }; - allow [pcp_pmcd_t] [hugetlbfs_t] : [dir] { open read }; - allow [pcp_pmcd_t] [mdadm_exec_t] : [file] { execute execute_no_trans open read }; - allow [pcp_pmcd_t] [proc_mdstat_t] : [file] { getattr open read }; -@@ -65,6 +66,12 @@ decl 1: - allow [pcp_pmcd_t] [glusterd_t] : [unix_stream_socket] { connectto }; - allow [pcp_pmcd_t] [glusterd_var_lib_t] : [dir] { search }; - allow [pcp_pmcd_t] [mozilla_plugin_t] : [sem] { unix_read }; -+ allow [pcp_pmcd_t] self : [process] { execmem setrlimit }; -+ allow [pcp_pmcd_t] [system_map_t] : [file] { ioctl open read }; -+ allow [pcp_pmcd_t] [sysctl_irq_t] : [dir] { search }; -+ allow [pcp_pmcd_t] [init_t] : [shm] { unix_read }; -+ allow [pcp_pmcd_t] [gpsd_t] : [shm] { associate getattr }; -+ allow [pcp_pmcd_t] [default_t] : [file] { getattr }; - allow [pcp_pmlogger_t] [kmsg_device_t] : [chr_file] { open write }; - allow [pcp_pmlogger_t] self : [capability] { kill }; - allow [pcp_pmlogger_t] [init_t] : [system] { status }; -@@ -74,10 +81,12 @@ decl 1: - allow [pcp_pmlogger_t] [unconfined_t] : [process] { signal }; - allow [pcp_pmlogger_t] [pcp_pmlogger_exec_t] : [file] { execute_no_trans }; - allow [pcp_pmlogger_t] [dey_sapi_port_t] : [tcp_socket] { name_connect }; -+ allow [pcp_pmlogger_t] [unconfined_t] : [unix_stream_socket] { connectto }; - allow [pcp_pmlogger_t] [user_home_dir_t] : [dir] { search }; - allow [pcp_pmlogger_t] [kernel_t] : [unix_dgram_socket] { sendto }; -+ allow [pcp_pmlogger_t] [home_bin_t] : [dir] { search }; - allow [pcp_pmie_t] [hostname_exec_t] : [file] { execute execute_no_trans getattr open read map }; -- allow [pcp_pmie_t] self : [capability] { kill sys_ptrace net_admin chown }; -+ allow [pcp_pmie_t] self : [capability] { kill dac_override sys_ptrace net_admin chown fowner }; - allow [pcp_pmie_t] [init_t] : [unix_stream_socket] { connectto }; - allow [pcp_pmie_t] [initrc_var_run_t] : [file] { lock open read }; - allow [pcp_pmie_t] [init_t] : [system] { status }; -@@ -89,6 +98,7 @@ decl 1: - allow [pcp_pmie_t] [kmsg_device_t] : [chr_file] { open }; - allow [pcp_pmie_t] [pcp_pmcd_t] : [process] { signal }; - allow [pcp_pmie_t] [init_exec_t] : [file] { getattr }; -+ allow [pcp_pmie_t] [user_home_dir_t] : [dir] { search }; - allow [pcp_pmcd_t] [configfs_t] : [dir] { open read search }; - allow [pcp_pmcd_t] [configfs_t] : [file] { getattr open read }; - allow [pcp_pmcd_t] [configfs_t] : [lnk_file] { read getattr }; -@@ -98,7 +108,7 @@ decl 1: - allow [pcp_pmcd_t] [modules_object_t] : [dir] { search }; - allow [pcp_pmcd_t] [modules_object_t] : [file] { getattr open read }; - allow [pcp_pmcd_t] [saslauthd_t] : [unix_stream_socket] { connectto }; -- allow [pcp_pmproxy_t] self : [capability] { net_admin }; -+ allow [pcp_pmproxy_t] self : [capability] { dac_override net_admin }; - allow [pcp_pmproxy_t] [sysctl_net_t] : [file] { getattr open read }; - allow [pcp_pmproxy_t] [sysctl_net_t] : [dir] { search }; - allow [pcp_pmproxy_t] [proc_net_t] : [file] { read }; -@@ -109,4 +119,5 @@ decl 1: - allow [pcp_pmcd_t] [fsadm_exec_t] : [file] { execute execute_no_trans getattr open read }; - allow [pcp_pmcd_t] [fsadm_exec_t] : [file] { map }; - allow [pcp_pmcd_t] self : [capability] { sys_rawio }; -+ allow [pcp_pmcd_t] [redis_port_t] : [tcp_socket] { name_connect }; - -diff -Naurp pcp-4.1.0-orig/src/pmlogger/pmlogger_check.sh pcp-4.1.0/src/pmlogger/pmlogger_check.sh ---- pcp-4.1.0-orig/src/pmlogger/pmlogger_check.sh 2018-06-12 20:18:14.000000000 +1000 -+++ pcp-4.1.0/src/pmlogger/pmlogger_check.sh 2018-09-05 08:47:39.165710353 +1000 -@@ -1,6 +1,6 @@ - #! /bin/sh - # --# Copyright (c) 2013-2016 Red Hat. -+# Copyright (c) 2013-2016,2018 Red Hat. - # Copyright (c) 1995-2000,2003 Silicon Graphics, Inc. All Rights Reserved. - # - # This program is free software; you can redistribute it and/or modify it -@@ -160,6 +160,13 @@ then - exit - fi - -+_compress_now() -+{ -+ # If $PCP_COMPRESSAFTER=0 in the control file(s), compress archives now. -+ # Invoked just before exit when this script has finished successfully. -+ $PCP_BINADM_DIR/pmlogger_daily -K $daily_args -+} -+ - # after argument checking, everything must be logged to ensure no mail is - # accidentally sent from cron. Close stdout and stderr, then open stdout - # as our logfile and redirect stderr there too. -@@ -175,10 +182,13 @@ else - _save_prev_file "$PROGLOG" - # After argument checking, everything must be logged to ensure no mail is - # accidentally sent from cron. Close stdout and stderr, then open stdout -- # as our logfile and redirect stderr there too. -+ # as our logfile and redirect stderr there too. Create the log file with -+ # correct ownership first. - # -- # Exception is for -N where we want to see the output -+ # Exception ($SHOWME, above) is for -N where we want to see the output. - # -+ touch "$PROGLOG" -+ chown $PCP_USER:$PCP_GROUP "$PROGLOG" >/dev/null 2>&1 - exec 1>"$PROGLOG" 2>&1 - fi - -@@ -219,11 +229,19 @@ fi - - if [ $STOP_PMLOGGER = true ] - then -- # if pmlogger has never been started, there's no work to do to stop it -- [ ! -d "$PCP_TMP_DIR/pmlogger" ] && exit -+ # if pmlogger hasn't been started, there's no work to do to stop it -+ # but we still want to compress existing logs, if any -+ if [ ! -d "$PCP_TMP_DIR/pmlogger" ] -+ then -+ _compress_now -+ exit -+ fi - $QUIETLY || $PCP_BINADM_DIR/pmpost "stop pmlogger from $prog" - elif [ $START_PMLOGGER = false ] - then -+ # if we're not going to start pmlogger, there is no work to do other -+ # than compress existing logs, if any. -+ _compress_now - exit - fi - -@@ -964,10 +982,8 @@ then - fi - fi - --# and if $PCP_COMPRESSAFTER=0 in the control file(s), compress archives now ... --# --$PCP_BINADM_DIR/pmlogger_daily -K $daily_args -- -+# Prior to exiting we compress existing logs, if any. See pmlogger_daily -K -+_compress_now - - [ -f $tmp/err ] && status=1 - exit -diff -Naurp pcp-4.1.0-orig/src/selinux/GNUlocaldefs pcp-4.1.0/src/selinux/GNUlocaldefs ---- pcp-4.1.0-orig/src/selinux/GNUlocaldefs 2018-05-08 09:38:33.000000000 +1000 -+++ pcp-4.1.0/src/selinux/GNUlocaldefs 2018-09-05 08:45:27.409553808 +1000 -@@ -44,6 +44,7 @@ endif - ifeq "$(PCP_SELINUX_CAP_USERNS_PTRACE)" "true" - PCP_CAPUSERNS_PTRACE="class cap_userns sys_ptrace\; \#pmdaproc" - PCP_CAPUSERNS_PTRACE_RULE="allow pcp_pmcd_t self:cap_userns sys_ptrace\;" -+PCP_CAPUSERNS_PTRACE_RULE_PMIE="allow pcp_pmie_t self:cap_userns sys_ptrace\;" - endif - - ifeq "$(PCP_SELINUX_UNRESERVED_PORT)" "true" -@@ -56,7 +57,7 @@ ifeq "$(PCP_SELINUX_TRACEFS)" "true" - PCP_TRACEFS="type tracefs_t\;" - PCP_TRACEFS_FS_RULE="allow pcp_pmcd_t tracefs_t:filesystem mount\;" - PCP_TRACEFS_DIR_RULE="allow pcp_pmcd_t tracefs_t:dir { search read open }\;" --PCP_TRACEFS_FILE_RULE="allow pcp_pmcd_t tracefs_t:file { read open append }\;" -+PCP_TRACEFS_FILE_RULE="allow pcp_pmcd_t tracefs_t:file { getattr read open append write }\;" - endif - - ifeq "$(PCP_SELINUX_SOCK_FILE_GETATTR)" "true" -diff -Naurp pcp-4.1.0-orig/src/selinux/GNUmakefile pcp-4.1.0/src/selinux/GNUmakefile ---- pcp-4.1.0-orig/src/selinux/GNUmakefile 2018-06-04 16:09:25.000000000 +1000 -+++ pcp-4.1.0/src/selinux/GNUmakefile 2018-09-05 08:45:27.409553808 +1000 -@@ -51,6 +51,7 @@ $(IAM).te: $(IAM).te.in - -e 's;@PCP_SYSTEMCTL_EXEC_RULE@;'$(PCP_SYSTEMCTL_EXEC_RULE)';' \ - -e 's;@PCP_CAPUSERNS_PTRACE@;'$(PCP_CAPUSERNS_PTRACE)';' \ - -e 's;@PCP_CAPUSERNS_PTRACE_RULE@;'$(PCP_CAPUSERNS_PTRACE_RULE)';' \ -+ -e 's;@PCP_CAPUSERNS_PTRACE_RULE_PMIE@;'$(PCP_CAPUSERNS_PTRACE_RULE_PMIE)';' \ - -e 's;@PCP_UNRESERVED_PORT@;'$(PCP_UNRESERVED_PORT)';' \ - -e 's;@PCP_UNRESERVED_PORT_RULE@;'$(PCP_UNRESERVED_PORT_RULE)';' \ - -e 's;@PCP_UNRESERVED_PORT_RULE_PMMGR@;'$(PCP_UNRESERVED_PORT_RULE_PMMGR)';' \ -diff -Naurp pcp-4.1.0-orig/src/selinux/pcpupstream.te.in pcp-4.1.0/src/selinux/pcpupstream.te.in ---- pcp-4.1.0-orig/src/selinux/pcpupstream.te.in 2018-05-09 07:50:53.000000000 +1000 -+++ pcp-4.1.0/src/selinux/pcpupstream.te.in 2018-09-05 08:45:27.410553794 +1000 -@@ -29,13 +29,13 @@ require { - type configfs_t; # pcp-lio - type modules_conf_t; # pcp-lio - type saslauthd_t; # pcp-lio -- type modules_object_t; # pcp-lio -+ type modules_object_t; # pcp-lio, pcp.bcc - @PCP_NSFS_T@ - type nfsd_fs_t; #RHBZ1515928 - type pcp_pmie_exec_t; # pmdasummary - @PCP_SYSTEMCTL_UNIT_FILE_T@ - @PCP_SYSTEMCTL_EXEC_T@ -- type debugfs_t; # pmdalibvirt -+ type debugfs_t; # pmdalibvirt pmda.gfs2 pmda.bcc - type unconfined_t; #RHBZ1443632 - type devlog_t; #RHBZ1449671 - @PCP_UNRESERVED_PORT@ -@@ -53,6 +53,7 @@ require { - @PCP_MOCK_VAR_LIB@ - type ldconfig_exec_t; - type httpd_t; -+ type redis_port_t; - type zabbix_port_t; - type sysfs_t; #RHBZ1545245 - type hugetlbfs_t; -@@ -68,12 +69,18 @@ require { - type kernel_t; - type mozilla_plugin_t; - type fsadm_exec_t; -+ type tracefs_t; # pmda.gfs2 -+ type system_map_t; # pmda.bcc -+ type sysctl_irq_t; # pmda.bcc -+ type gpsd_t; #RHBZ1594991 -+ type default_t; -+ type home_bin_t; - class sem { unix_read associate getattr }; - class lnk_file { read getattr }; - class file { append create execute execute_no_trans getattr ioctl lock open read write @PCP_HOSTNAME_EXEC_MAP@ }; - class dir { add_name open read search write getattr }; - class unix_stream_socket connectto; -- class capability { kill sys_ptrace net_admin chown sys_chroot ipc_owner sys_resource fowner sys_rawio fsetid }; -+ class capability { kill dac_override sys_ptrace net_admin chown sys_chroot ipc_lock ipc_owner sys_resource fowner sys_rawio fsetid }; - @PCP_CAPUSERNS_PTRACE@ - class chr_file { open write }; - class fifo_file { getattr read open unlink }; # qa/455 -@@ -117,19 +124,18 @@ allow pcp_pmcd_t svirt_sandbox_file_t:di - allow pcp_pmcd_t sysctl_net_t:dir search; - allow pcp_pmcd_t sysctl_net_t:file { getattr open read }; - allow pcp_pmcd_t user_home_t:file { execute execute_no_trans open read }; --allow pcp_pmcd_t debugfs_t:dir read; --allow pcp_pmcd_t debugfs_t:file { getattr ioctl open read }; -+allow pcp_pmcd_t debugfs_t:dir { read search }; -+allow pcp_pmcd_t debugfs_t:file { append getattr ioctl open read write }; - allow pcp_pmcd_t pcp_pmie_exec_t:file { execute execute_no_trans open read }; - allow pcp_pmcd_t pcp_var_lib_t:fifo_file { getattr open read unlink }; #RHBZ1460131 - #type=AVC msg=audit(1463754714.313:316): avc: denied { net_admin } for pid=2335 comm="pmcd" capability=12 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:system_r:pcp_pmcd_t:s0 tclass=capability permissive=1 - #type=AVC msg=audit(1491576442.619:1738169): avc: denied { sys_ptrace } for pid=15205 comm="pmdaproc" capability=19 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:system_r:pcp_pmcd_t:s0 tclass=capability permissive=0 - #type=AVC msg=audit(1498833776.957:2094): avc: denied { ipc_owner } for pid=21341 comm="pmdalinux" capability=15 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:system_r:pcp_pmcd_t:s0 tclass=capability permissive=0 --allow pcp_pmcd_t self:capability { net_admin sys_ptrace ipc_owner chown kill sys_resource }; -+allow pcp_pmcd_t self:capability { net_admin sys_ptrace ipc_lock ipc_owner chown kill sys_resource }; - - #type=AVC msg=audit(1491581538.561:10949): avc: denied { getattr } for pid=9375 comm="pmdaproc" path="/run/systemd/initctl/fifo" dev="tmpfs" ino=13290 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:initctl_t:s0 tclass=fifo_file permissive=1 - allow pcp_pmcd_t initctl_t:fifo_file getattr; - --#type=AVC msg=audit(1491581538.561:10950): avc: denied { getattr } for pid=9375 comm="pmdaproc" path="/proc/kcore" dev="proc" ino=4026532007 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:proc_kcore_t:s0 tclass=file permissive=1 - allow pcp_pmcd_t proc_kcore_t:file getattr; - - #type=AVC msg=audit(1491581538.587:10952): avc: denied { sys_ptrace } for pid=9375 comm="pmdaproc" capability=19 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:system_r:pcp_pmcd_t:s0 tclass=cap_userns permissive=1 -@@ -183,7 +189,7 @@ allow pcp_pmcd_t hostname_exec_t:file { - #type=AVC msg=audit(1498845911.360:7647): avc: denied { open } for pid=22090 comm="pmdaperfevent" path="/sys/kernel/debug/tracing/events/gfs2/gfs2_glock_state_change/id" dev="tracefs" ino=321619 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:tracefs_t:s0 tclass=file permissive=0 - @PCP_TRACEFS_FILE_RULE@ - --allow pcp_pmcd_t gconf_home_t:dir search; -+allow pcp_pmcd_t gconf_home_t:dir { getattr open read search }; - allow pcp_pmcd_t virt_etc_t:dir search; - allow pcp_pmcd_t virt_etc_t:file { read open }; - allow pcp_pmcd_t virtd_t:unix_stream_socket connectto; -@@ -222,7 +228,8 @@ allow pcp_pmcd_t httpd_t:sem { unix_read - #RHBZ1545245 - allow pcp_pmcd_t sysfs_t:dir write; - --#allow pcp_pmcd_t modules_object_t:lnk_file read; -+# pmda.bcc -+allow pcp_pmcd_t modules_object_t:lnk_file read; - - allow pcp_pmcd_t hugetlbfs_t:dir { open read }; - allow pcp_pmcd_t mdadm_exec_t:file { execute execute_no_trans open read }; -@@ -241,6 +248,21 @@ allow pcp_pmcd_t glusterd_var_lib_t:dir - #RHBZ1565158 - allow pcp_pmcd_t mozilla_plugin_t:sem unix_read; - -+#pmda.bcc -+allow pcp_pmcd_t self:process { execmem setrlimit }; -+#type=AVC msg=audit(1530448398.992:231): avc: denied { read } for pid=16334 comm="python3" name="kallsyms" dev="proc" ino=4026532064 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:system_map_t:s0 tclass=file permissive=1 -+allow pcp_pmcd_t system_map_t:file { ioctl open read }; -+ -+allow pcp_pmcd_t sysctl_irq_t:dir { search }; -+ -+#RHBZ1592901 -+allow pcp_pmcd_t init_t:shm unix_read; -+ -+#RHBZ1594991 -+allow pcp_pmcd_t gpsd_t:shm { associate getattr }; -+ -+allow pcp_pmcd_t default_t:file getattr; -+ - #============= pcp_pmlogger_t ============== - allow pcp_pmlogger_t kmsg_device_t:chr_file { open write }; - allow pcp_pmlogger_t self:capability kill; -@@ -257,7 +279,6 @@ allow pcp_pmlogger_t devlog_t:lnk_file r - allow pcp_pmlogger_t self:capability { sys_ptrace fowner fsetid }; - - ## type=AVC msg=audit(04/19/2017 16:57:40.120:11020) : avc: denied { signal } for pid=28414 comm=pmsignal scontext=system_u:system_r:pcp_pmlogger_t:s0 tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tclass=process -- - allow pcp_pmlogger_t unconfined_t:process signal; - - #type=AVC msg=audit(1503321970.417:261): avc: denied { execute_no_trans } for pid=6760 comm="pmlogger_check" path="/usr/bin/pmlogger" dev="dm-1" ino=1051023 scontext=system_u:system_r:pcp_pmlogger_t:s0 tcontext=system_u:object_r:pcp_pmlogger_exec_t:s0 tclass=file permissive=0 -@@ -266,17 +287,23 @@ allow pcp_pmlogger_t pcp_pmlogger_exec_t - #type=AVC msg=audit(1493690261.688:262): avc: denied { name_connect } for pid=17604 comm="pmlc" dest=4330 scontext=system_u:system_r:pcp_pmlogger_t:s0 tcontext=system_u:object_r:dey_sapi_port_t:s0 tclass=tcp_socket - allow pcp_pmlogger_t dey_sapi_port_t:tcp_socket name_connect; - -+#type=AVC msg=audit(1533291591.092:495620): avc: denied { connectto } for pid=18025 comm="pmprobe" path="/run/pcp/pmcd.socket" scontext=system_u:system_r:pcp_pmlogger_t:s0 tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tclass=unix_stream_socket permissive=0 -+allow pcp_pmlogger_t unconfined_t:unix_stream_socket connectto; -+ - #RHBZ1488116 - #type=AVC msg=audit(1504516526.487:431): avc: denied { search } for pid=18056 comm="ps" name="testuser" dev="dm-0" ino=539096275 scontext=system_u:system_r:pcp_pmlogger_t:s0 tcontext=unconfined_u:object_r:user_home_dir_t:s0 tclass=dir - allow pcp_pmlogger_t user_home_dir_t:dir search; -- - #RHBZ1547066 - allow pcp_pmlogger_t kernel_t:unix_dgram_socket sendto; -+ -+allow pcp_pmlogger_t home_bin_t:dir search; -+ -+ - #============= pcp_pmie_t ============== - allow pcp_pmie_t hostname_exec_t:file { execute execute_no_trans getattr open read @PCP_HOSTNAME_EXEC_MAP@ }; - - #type=AVC msg=audit(1498847682.537:15753): avc: denied { sys_ptrace } for pid=30881 comm="ps" capability=19 scontext=system_u:system_r:pcp_pmie_t:s0 tcontext=system_u:system_r:pcp_pmie_t:s0 tclass=capability permissive=0 --allow pcp_pmie_t self:capability { chown kill net_admin sys_ptrace }; -+allow pcp_pmie_t self:capability { chown fowner dac_override kill net_admin sys_ptrace }; - - #type=AVC msg=audit(04/05/2017 10:24:45.084:351) : avc: denied { connectto } for pid=8941 comm=systemctl path=/run/systemd/private scontext=system_u:system_r:pcp_pmie_t:s0 tcontext=system_u:system_r:init_t:s0 tclass=unix_stream_socket - allow pcp_pmie_t init_t:unix_stream_socket connectto; -@@ -319,6 +346,9 @@ allow pcp_pmie_t pcp_pmcd_t:process sign - - #RHBZ1547066 - allow pcp_pmie_t init_exec_t:file getattr; -+ -+@PCP_CAPUSERNS_PTRACE_RULE_PMIE@ -+allow pcp_pmie_t user_home_dir_t:dir search; - #============= pmda-lio ============== - allow pcp_pmcd_t configfs_t:dir { open read search }; - allow pcp_pmcd_t configfs_t:file { getattr open read }; -@@ -336,7 +366,7 @@ allow pcp_pmcd_t saslauthd_t:unix_stream - - #============= pcp_pmproxy_t ============== - #type=AVC msg=audit(04/05/2017 09:54:13.548:281) : avc: denied { net_admin } for pid=6669 comm=pmproxy capability=net_admin scontext=system_u:system_r:pcp_pmproxy_t:s0 tcontext=system_u:system_r:pcp_pmproxy_t:s0 tclass=capability --allow pcp_pmproxy_t self:capability net_admin; -+allow pcp_pmproxy_t self:capability { net_admin dac_override }; - - #type=AVC msg=audit(04/05/2017 09:54:13.548:281) : avc: denied { read } for pid=6669 comm=pmproxy name=disable_ipv6 dev="proc" ino=9994 scontext=system_u:system_r:pcp_pmproxy_t:s0 tcontext=system_u:object_r:sysctl_net_t:s0 tclass=file - #type=AVC msg=audit(04/05/2017 10:24:45.771:356) : avc: denied { open } for pid=9669 comm=pmproxy path=/proc/sys/net/ipv6/conf/all/disable_ipv6 dev="proc" ino=9994 scontext=system_u:system_r:pcp_pmproxy_t:s0 tcontext=system_u:object_r:sysctl_net_t:s0 tclass=file -@@ -373,3 +403,7 @@ allow pcp_pmmgr_t zabbix_port_t:tcp_sock - allow pcp_pmcd_t fsadm_exec_t:file { execute execute_no_trans getattr open read }; - @PCP_FSADM_EXEC_MAP_RULE@ - allow pcp_pmcd_t self:capability sys_rawio; -+ -+#============= pmda-redis ============== -+#type=AVC msg=audit(1533183330.416:362367): avc: denied { name_connect } for pid=15299 comm="pmdaredis" dest=6379 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:redis_port_t:s0 tclass=tcp_socket permissive=0 -+allow pcp_pmcd_t redis_port_t:tcp_socket name_connect; -diff -Naurp pcp-4.1.0-orig/src/selinux/README pcp-4.1.0/src/selinux/README ---- pcp-4.1.0-orig/src/selinux/README 2017-11-29 14:33:29.000000000 +1100 -+++ pcp-4.1.0/src/selinux/README 2018-09-05 08:45:27.410553794 +1000 -@@ -102,14 +102,16 @@ In general usage, the only portion we ca - - SELinux manages a list of 'contexts' and how contexts are allowed to interact with each other. - --For example, it makes sense that the 'pcp_pmlogger_t' context to be --able to read and write to pcp log files with a 'pcp_log_t' context. --However, it doesn't make sense for 'pcp_pmlogger_t' to write to apache -+For example, it makes sense for the 'pcp_pmlogger_t' context to be -+able to read and write to PCP log files with a 'pcp_log_t' context. -+However, it doesn't make sense for 'pcp_pmlogger_t' to write to Apache - log files, which have a 'httpd_log_t' context. - --Where this can be of focus for PCP is various pmda's gathering metrics from domains. And, using the example --with apache earlier, many of these files have different contexts. We need to document these accesses and --why they're required, building our own policy package for inclusion in the running policy. -+Where this can be of focus for PCP is various PMDA's gathering metrics -+from domains. And, using the example with Apache earlier, many of these -+files have different contexts. We need to document these accesses and -+why they're required, building our own policy package for inclusion in -+the running policy. - - == Testing == - -@@ -143,4 +145,4 @@ http://equivocation.org/node/24 - http://equivocation.org/node/27 - http://equivocation.org/node/42 - http://equivocation.org/node/51 --http://equivocation.org/node/52 -\ No newline at end of file -+http://equivocation.org/node/52 diff --git a/SPECS/pcp.spec b/SPECS/pcp.spec index 6196d5d..f38ce7a 100644 --- a/SPECS/pcp.spec +++ b/SPECS/pcp.spec @@ -1,26 +1,22 @@ Name: pcp -Version: 4.1.0 -Release: 5%{?dist} +Version: 4.3.2 +Release: 2%{?dist} Summary: System-level performance monitoring and performance management -License: GPLv2+ and LGPLv2.1+ and CC-BY +License: GPLv2+ and LGPLv2+ and CC-BY URL: https://pcp.io -Group: Applications/System %global bintray https://bintray.com/artifact/download %global github https://github.com/performancecopilot Source0: %{bintray}/download/pcp/source/pcp-%{version}.src.tar.gz -Source1: %{github}/pcp-webapp-vector/archive/1.2.2/pcp-webapp-vector-1.2.2.tar.gz +Source1: %{github}/pcp-webapp-vector/archive/1.3.1-1/pcp-webapp-vector-1.3.1-1.tar.gz Source2: %{github}/pcp-webapp-grafana/archive/1.9.1-2/pcp-webapp-grafana-1.9.1-2.tar.gz Source3: %{github}/pcp-webapp-graphite/archive/0.9.10/pcp-webapp-graphite-0.9.10.tar.gz -Source4: %{github}/pcp-webapp-blinkenlights/archive/1.0.0/pcp-webapp-blinkenlights-1.0.0.tar.gz - +Source4: %{github}/pcp-webapp-blinkenlights/archive/1.0.1/pcp-webapp-blinkenlights-1.0.1.tar.gz # bcc/kernel compatibility (needed for the life of RHEL7) -Patch1: redhat-bugzilla-1597975.patch -# selinux rollup patch -Patch2: redhat-bugzilla-1603596.patch -# pmdaproc short status read patch -Patch3: redhat-bugzilla-1600262.patch +Patch0: redhat-bugzilla-1597975.patch +Patch1: pmcd-pmlogger-local-context.patch +Patch2: qa-fixmod.patch %if 0%{?fedora} >= 26 || 0%{?rhel} > 7 %global __python2 python2 @@ -36,16 +32,10 @@ Patch3: redhat-bugzilla-1600262.patch %global disable_snmp 0 -# There are no papi/libpfm devel packages for s390, armv7hl nor for some rhels, disable +# No libpfm devel packages for s390, armv7hl nor for some rhels, disable %ifarch s390 s390x armv7hl -%global disable_papi 1 %global disable_perfevent 1 %else -%if 0%{?rhel} == 0 || 0%{?rhel} > 5 -%global disable_papi 0 -%else -%global disable_papi 1 -%endif %if 0%{?fedora} >= 20 || 0%{?rhel} > 6 %global disable_perfevent 0 %else @@ -53,11 +43,19 @@ Patch3: redhat-bugzilla-1600262.patch %endif %endif +# libvarlink and pmdapodman +%if 0%{?fedora} >= 28 || 0%{?rhel} > 7 +%global disable_podman 0 +%else +%global disable_podman 1 +%endif + %global disable_microhttpd 0 %global disable_webapps 0 %global disable_cairo 0 -%if 0%{?rhel} > 7 +%if 0%{?rhel} > 7 || 0%{?fedora} >= 30 +%global _with_python2 --with-python=no %global disable_python2 1 %else %global disable_python2 0 @@ -123,8 +121,7 @@ Patch3: redhat-bugzilla-1600262.patch # Qt development and runtime environment missing components before el6 %if 0%{?rhel} == 0 || 0%{?rhel} > 5 %global disable_qt 0 -# We need qt5 for fedora -%if 0%{?fedora} != 0 +%if 0%{?fedora} != 0 || 0%{?rhel} > 7 %global default_qt 5 %endif %else @@ -156,6 +153,13 @@ Patch3: redhat-bugzilla-1600262.patch %global disable_boost 1 %endif +# libuv +%if 0%{?fedora} >= 28 || 0%{?rhel} > 7 +%global disable_libuv 0 +%else +%global disable_libuv 1 +%endif + # rpm producing "noarch" packages %if 0%{?rhel} == 0 || 0%{?rhel} > 5 %global disable_noarch 0 @@ -163,12 +167,6 @@ Patch3: redhat-bugzilla-1600262.patch %global disable_noarch 1 %endif -%if 0%{?fedora} >= 24 || 0%{?rhel} > 7 -%global disable_elasticsearch 0 -%else -%global disable_elasticsearch 1 -%endif - %if 0%{?fedora} >= 24 %global disable_xlsx 0 %else @@ -178,7 +176,11 @@ Patch3: redhat-bugzilla-1600262.patch # prevent conflicting binary and man page install for pcp(1) Conflicts: librapi -# https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B +# KVM PMDA moved into pcp (no longer using Perl, default on) +Obsoletes: pcp-pmda-kvm +Provides: pcp-pmda-kvm + +# https://fedoraproject.org/wiki/Packaging "C and C++" BuildRequires: gcc gcc-c++ BuildRequires: procps autoconf bison flex BuildRequires: nss-devel @@ -199,8 +201,8 @@ BuildRequires: python3-devel BuildRequires: ncurses-devel BuildRequires: readline-devel BuildRequires: cyrus-sasl-devel -%if !%{disable_papi} -BuildRequires: papi-devel +%if !%{disable_podman} +BuildRequires: libvarlink-devel %endif %if !%{disable_perfevent} BuildRequires: libpfm-devel >= 4 @@ -217,14 +219,16 @@ BuildRequires: systemtap-sdt-devel %if !%{disable_boost} BuildRequires: boost-devel %endif +%if !%{disable_libuv} +BuildRequires: libuv-devel >= 1.16 +%endif %if 0%{?rhel} == 0 || 0%{?rhel} > 7 BuildRequires: perl-generators %endif BuildRequires: perl-devel perl(strict) BuildRequires: perl(ExtUtils::MakeMaker) perl(LWP::UserAgent) perl(JSON) -BuildRequires: perl(strict) perl(ExtUtils::MakeMaker) perl(LWP::UserAgent) perl(JSON) BuildRequires: perl(LWP::UserAgent) perl(Time::HiRes) perl(Digest::MD5) -BuildRequires: initscripts man +BuildRequires: man %if !%{disable_systemd} BuildRequires: systemd-devel %endif @@ -238,19 +242,21 @@ BuildRequires: qt5-qtsvg-devel %endif %endif -Requires: bash gawk sed grep findutils initscripts which +Requires: bash xz gawk sed grep findutils which Requires: pcp-libs = %{version}-%{release} %if !%{disable_selinux} Requires: pcp-selinux = %{version}-%{release} %endif -%if 0%{?fedora} < 27 -# F27 re-introduced split-out debuginfo packages + +# Some older releases did not update or replace pcp-gui-debuginfo properly +%if 0%{?fedora} < 27 && 0%{?rhel} <= 7 && "%{_vendor}" == "redhat" Obsoletes: pcp-gui-debuginfo %endif + Obsoletes: pcp-pmda-nvidia # Obsoletes for distros that already have single install pmda's with compat package -Obsoletes: pcp-compat +Obsoletes: pcp-compat pcp-collector pcp-monitor Requires: pcp-libs = %{version}-%{release} @@ -272,6 +278,14 @@ Requires: pcp-libs = %{version}-%{release} %global _with_doc --with-docdir=%{_docdir}/%{name} %endif +%if 0%{?fedora} >= 29 || 0%{?rhel} >= 8 +%global _with_dstat --with-dstat-symlink=yes +%global disable_dstat 0 +%else +%global _with_dstat --with-dstat-symlink=no +%global disable_dstat 1 +%endif + %if !%{disable_systemd} %global _initddir %{_datadir}/pcp/lib %else @@ -295,16 +309,18 @@ Requires: pcp-libs = %{version}-%{release} %global _with_ib --with-infiniband=yes %endif -%if !%{disable_papi} -%global _with_papi --with-papi=yes -%endif - %if %{disable_perfevent} %global _with_perfevent --with-perfevent=no %else %global _with_perfevent --with-perfevent=yes %endif +%if %{disable_podman} +%global _with_podman --with-podman=no +%else +%global _with_podman --with-podman=yes +%endif + %if %{disable_bcc} %global _with_bcc --with-pmdabcc=no %else @@ -345,14 +361,6 @@ then fi } -# force upgrade of PMDAs starting in "notready" state -%global pmda_notready() %{expand: -if grep -q ^%2 "%{_confdir}/pmcd/pmcd.conf" 2>/dev/null -then - touch %{_pmdasdir}/%2/.NeedInstall -fi -} - %global selinux_handle_policy() %{expand: if [ %1 -ge 1 ] then @@ -375,8 +383,7 @@ applications to easily retrieve and process any subset of that data. # pcp-conf # %package conf -License: LGPLv2.1+ -Group: System Environment/Libraries +License: LGPLv2+ Summary: Performance Co-Pilot run-time configuration URL: https://pcp.io @@ -390,8 +397,7 @@ Performance Co-Pilot (PCP) run-time configuration # pcp-libs # %package libs -License: LGPLv2.1+ -Group: System Environment/Libraries +License: LGPLv2+ Summary: Performance Co-Pilot run-time libraries URL: https://pcp.io Requires: pcp-conf = %{version}-%{release} @@ -403,8 +409,7 @@ Performance Co-Pilot (PCP) run-time libraries # pcp-libs-devel # %package libs-devel -License: GPLv2+ and LGPLv2.1+ -Group: Development/Libraries +License: GPLv2+ and LGPLv2+ Summary: Performance Co-Pilot (PCP) development headers URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} @@ -416,8 +421,7 @@ Performance Co-Pilot (PCP) headers for development. # pcp-devel # %package devel -License: GPLv2+ and LGPLv2.1+ -Group: Development/Libraries +License: GPLv2+ and LGPLv2+ Summary: Performance Co-Pilot (PCP) development tools and documentation URL: https://pcp.io Requires: pcp = %{version}-%{release} @@ -432,7 +436,6 @@ Performance Co-Pilot (PCP) documentation and tools for development. # %package testsuite License: GPLv2+ -Group: Development/Libraries Summary: Performance Co-Pilot (PCP) test suite URL: https://pcp.io Requires: pcp = %{version}-%{release} @@ -440,16 +443,62 @@ Requires: pcp-libs = %{version}-%{release} Requires: pcp-libs-devel = %{version}-%{release} Requires: pcp-devel = %{version}-%{release} Obsoletes: pcp-gui-testsuite +# The following are inherited from pcp-collector and pcp-monitor, +# both of which are now obsoleted by the base pcp package +Requires: pcp-pmda-activemq pcp-pmda-bonding pcp-pmda-dbping pcp-pmda-ds389 pcp-pmda-ds389log +Requires: pcp-pmda-elasticsearch pcp-pmda-gpfs pcp-pmda-gpsd pcp-pmda-lustre +Requires: pcp-pmda-memcache pcp-pmda-mysql pcp-pmda-named pcp-pmda-netfilter pcp-pmda-news +Requires: pcp-pmda-nginx pcp-pmda-nfsclient pcp-pmda-pdns pcp-pmda-postfix pcp-pmda-postgresql pcp-pmda-oracle +Requires: pcp-pmda-samba pcp-pmda-slurm pcp-pmda-vmware pcp-pmda-zimbra +Requires: pcp-pmda-dm pcp-pmda-apache +Requires: pcp-pmda-bash pcp-pmda-cisco pcp-pmda-gfs2 pcp-pmda-mailq pcp-pmda-mounts +Requires: pcp-pmda-nvidia-gpu pcp-pmda-roomtemp pcp-pmda-sendmail pcp-pmda-shping pcp-pmda-smart +Requires: pcp-pmda-lustrecomm pcp-pmda-logger pcp-pmda-docker pcp-pmda-bind2 +%if !%{disable_podman} +Requires: pcp-pmda-podman +%endif +%if !%{disable_nutcracker} +Requires: pcp-pmda-nutcracker +%endif +%if !%{disable_bcc} +Requires: pcp-pmda-bcc +%endif +%if !%{disable_python2} || !%{disable_python3} +Requires: pcp-pmda-gluster pcp-pmda-zswap pcp-pmda-unbound pcp-pmda-mic +Requires: pcp-pmda-libvirt pcp-pmda-lio pcp-pmda-prometheus pcp-pmda-haproxy +Requires: pcp-pmda-lmsensors +%endif +%if !%{disable_snmp} +Requires: pcp-pmda-snmp +%endif +%if !%{disable_json} +Requires: pcp-pmda-json +%endif +%if !%{disable_rpm} +Requires: pcp-pmda-rpm +%endif +Requires: pcp-pmda-summary pcp-pmda-trace pcp-pmda-weblog +%if !%{disable_microhttpd} +Requires: pcp-webapi +%endif +%if !%{disable_python2} || !%{disable_python3} +Requires: pcp-system-tools +%endif +%if !%{disable_qt} +Requires: pcp-gui +%endif +Requires: bc gcc gzip bzip2 +Requires: redhat-rpm-config %description testsuite Quality assurance test suite for Performance Co-Pilot (PCP). +# end testsuite # # pcp-manager # %package manager License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) manager daemon URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} @@ -468,7 +517,6 @@ scripts. # %package webapi License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) web API service URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} @@ -486,7 +534,6 @@ HTTP (PMWEBAPI) protocol. # %package webjs License: ASL 2.0 and MIT and CC-BY and GPLv3 -Group: Applications/Internet Conflicts: pcp-webjs < 3.11.9 %if !%{disable_noarch} BuildArch: noarch @@ -502,7 +549,6 @@ web service. %package webapp-vector License: ASL 2.0 -Group: Applications/Internet %if !%{disable_noarch} BuildArch: noarch %endif @@ -514,7 +560,6 @@ Vector web application for the Performance Co-Pilot (PCP). %package webapp-grafana License: ASL 2.0 -Group: Applications/Internet Conflicts: pcp-webjs < 3.10.4 %if !%{disable_noarch} BuildArch: noarch @@ -534,7 +579,6 @@ server via png (less interactive, faster). %package webapp-graphite License: ASL 2.0 and GPLv3 -Group: Applications/Internet Conflicts: pcp-webjs < 3.10.4 %if !%{disable_noarch} BuildArch: noarch @@ -550,7 +594,6 @@ Carbon and Whisper subsystems of Graphite are not included nor used. %package webapp-blinkenlights License: ASL 2.0 -Group: Applications/Internet %if !%{disable_noarch} BuildArch: noarch %endif @@ -567,7 +610,6 @@ on the periodic evaluation of performance metric expressions. # %package -n perl-PCP-PMDA License: GPLv2+ -Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Perl bindings and documentation URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -585,7 +627,6 @@ an application, etc. # %package -n perl-PCP-MMV License: GPLv2+ -Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Perl bindings for PCP Memory Mapped Values URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -604,7 +645,6 @@ and analysis with pmchart, pmie, pmlogger and other PCP tools. # %package -n perl-PCP-LogImport License: GPLv2+ -Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Perl bindings for importing external data into PCP archives URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -620,7 +660,6 @@ they can be replayed with standard PCP monitoring tools. # %package -n perl-PCP-LogSummary License: GPLv2+ -Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Perl bindings for post-processing output of pmlogsummary URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -639,7 +678,6 @@ exporting this data into third-party tools (e.g. spreadsheets). # %package import-sar2pcp License: LGPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for importing sar data into PCP archive logs URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -655,7 +693,6 @@ into standard PCP archive logs for replay with any PCP monitoring tool. # %package import-iostat2pcp License: LGPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for importing iostat data into PCP archive logs URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -670,7 +707,6 @@ into standard PCP archive logs for replay with any PCP monitoring tool. # %package import-mrtg2pcp License: LGPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for importing MTRG data into PCP archive logs URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -685,7 +721,6 @@ into standard PCP archive logs for replay with any PCP monitoring tool. # %package import-ganglia2pcp License: LGPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for importing ganglia data into PCP archive logs URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -700,7 +735,6 @@ into standard PCP archive logs for replay with any PCP monitoring tool. # %package import-collectl2pcp License: LGPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for importing collectl log files into PCP archive logs URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -714,7 +748,6 @@ into standard PCP archive logs for replay with any PCP monitoring tool. # %package export-zabbix-agent License: GPLv2+ -Group: Applications/System Summary: Module for exporting PCP metrics to Zabbix agent URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -727,34 +760,31 @@ Zabbix via the Zabbix agent - see zbxpcp(3) for further details. # # pcp-export-pcp2elasticsearch # -%if !%{disable_elasticsearch} %package export-pcp2elasticsearch License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics to ElasticSearch URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} %if !%{disable_python3} Requires: python3-pcp = %{version}-%{release} -Requires: python3-elasticsearch -BuildRequires: python3-elasticsearch +Requires: python3-requests +BuildRequires: python3-requests %else Requires: %{__python2}-pcp = %{version}-%{release} -Requires: %{__python2}-elasticsearch -BuildRequires: %{__python2}-elasticsearch +Requires: %{__python2}-requests +BuildRequires: %{__python2}-requests %endif %description export-pcp2elasticsearch Performance Co-Pilot (PCP) front-end tools for exporting metric values to Elasticsearch - a distributed, RESTful search and analytics engine. See https://www.elastic.co/community for further details. -%endif + # # pcp-export-pcp2graphite # %package export-pcp2graphite License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics to Graphite URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} @@ -772,7 +802,6 @@ to graphite (http://graphite.readthedocs.org). # %package export-pcp2influxdb License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics to InfluxDB URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} @@ -793,7 +822,6 @@ to InfluxDB (https://influxdata.com/time-series-platform/influxdb). # %package export-pcp2json License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics in JSON format URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} @@ -808,12 +836,30 @@ Performance Co-Pilot (PCP) front-end tools for exporting metric values in JSON format. # +# pcp-export-pcp2spark +# +%package export-pcp2spark +License: GPLv2+ +Summary: Performance Co-Pilot tools for exporting PCP metrics to Apache Spark +URL: https://pcp.io +Requires: pcp-libs >= %{version}-%{release} +%if !%{disable_python3} +Requires: python3-pcp = %{version}-%{release} +%else +Requires: %{__python2}-pcp = %{version}-%{release} +%endif + +%description export-pcp2spark +Performance Co-Pilot (PCP) front-end tools for exporting metric values +in JSON format to Apache Spark. See https://spark.apache.org/ for +further details on Apache Spark. + +# # pcp-export-pcp2xlsx # %if !%{disable_xlsx} %package export-pcp2xlsx License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics to Excel URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} @@ -836,7 +882,6 @@ in Excel spreadsheet format. # %package export-pcp2xml License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics in XML format URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} @@ -855,7 +900,6 @@ in XML format. # %package export-pcp2zabbix License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics to Zabbix URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} @@ -870,21 +914,21 @@ Performance Co-Pilot (PCP) front-end tools for exporting metric values to the Zabbix (https://www.zabbix.org/) monitoring software. %endif -%if !%{disable_papi} +%if !%{disable_podman} # -# pcp-pmda-papi +# pcp-pmda-podman # -%package pmda-papi +%package pmda-podman License: GPLv2+ -Group: Applications/System -Summary: Performance Co-Pilot (PCP) metrics for Performance API and hardware counters +Summary: Performance Co-Pilot (PCP) metrics for podman containers URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} -BuildRequires: papi-devel +Requires: libvarlink +BuildRequires: libvarlink-devel -%description pmda-papi +%description pmda-podman This package contains the PCP Performance Metrics Domain Agent (PMDA) for -collecting hardware counters statistics through PAPI (Performance API). +collecting podman container and pod statistics through libvarlink. %endif %if !%{disable_perfevent} @@ -893,12 +937,12 @@ collecting hardware counters statistics through PAPI (Performance API). # %package pmda-perfevent License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for hardware counters URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} Requires: libpfm >= 4 BuildRequires: libpfm-devel >= 4 +Obsoletes: pcp-pmda-papi pcp-pmda-papi-debuginfo %description pmda-perfevent This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -911,7 +955,6 @@ collecting hardware counters statistics through libpfm. # %package pmda-infiniband License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Infiniband HCAs and switches URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} @@ -929,7 +972,6 @@ but can also be configured to monitor remote GUIDs such as IB switches. # %package pmda-activemq License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for ActiveMQ URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -945,7 +987,6 @@ collecting metrics about the ActiveMQ message broker. # %package pmda-bind2 License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for BIND servers URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -963,7 +1004,6 @@ collecting metrics from BIND (Berkeley Internet Name Domain). # %package pmda-redis License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Redis URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -979,7 +1019,6 @@ collecting metrics from Redis servers (redis.io). # %package pmda-nutcracker License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for NutCracker (TwemCache) URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -997,7 +1036,6 @@ collecting metrics from NutCracker (TwemCache). # %package pmda-bonding License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Bonded network interfaces URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1012,7 +1050,6 @@ collecting metrics about bonded network interfaces. # %package pmda-dbping License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Database response times and Availablility URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1027,11 +1064,12 @@ collecting metrics about the Database response times and Availablility. # %package pmda-ds389 License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for 389 Directory Servers URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} +%if 0%{?rhel} <= 7 Requires: perl-LDAP +%endif %description pmda-ds389 This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1043,7 +1081,6 @@ collecting metrics about a 389 Directory Server. # %package pmda-ds389log License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for 389 Directory Server Loggers URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1054,29 +1091,12 @@ This package contains the PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from a 389 Directory Server log. #end pcp-pmda-ds389log -# -# pcp-pmda-elasticsearch -# -%package pmda-elasticsearch -License: GPLv2+ -Group: Applications/System -Summary: Performance Co-Pilot (PCP) metrics for Elasticsearch -URL: https://pcp.io -Requires: perl-PCP-PMDA = %{version}-%{release} -Requires: perl(LWP::UserAgent) -BuildRequires: perl(LWP::UserAgent) - -%description pmda-elasticsearch -This package contains the PCP Performance Metrics Domain Agent (PMDA) for -collecting metrics about Elasticsearch. -#end pcp-pmda-elasticsearch # # pcp-pmda-gpfs # %package pmda-gpfs License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for GPFS Filesystem URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1091,7 +1111,6 @@ collecting metrics about the GPFS filesystem. # %package pmda-gpsd License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for a GPS Daemon URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1102,26 +1121,10 @@ collecting metrics about a GPS Daemon. #end pcp-pmda-gpsd # -# pcp-pmda-kvm -# -%package pmda-kvm -License: GPLv2+ -Group: Applications/System -Summary: Performance Co-Pilot (PCP) metrics for KVM -URL: https://pcp.io -Requires: perl-PCP-PMDA = %{version}-%{release} - -%description pmda-kvm -This package contains the PCP Performance Metrics Domain Agent (PMDA) for -collecting metrics about the Kernel based Virtual Machine. -#end pcp-pmda-kvm - -# # pcp-pmda-docker # %package pmda-docker License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from the Docker daemon URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} @@ -1136,7 +1139,6 @@ collecting metrics using the Docker daemon REST API. # %package pmda-lustre License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Lustre Filesytem URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1151,7 +1153,6 @@ collecting metrics about the Lustre Filesystem. # %package pmda-lustrecomm License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Lustre Filesytem Comms URL: https://pcp.io Requires: pcp = %{version}-%{release} @@ -1167,7 +1168,6 @@ collecting metrics about the Lustre Filesystem Comms. # %package pmda-memcache License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Memcached URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1182,7 +1182,6 @@ collecting metrics about Memcached. # %package pmda-mysql License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for MySQL URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1199,7 +1198,6 @@ collecting metrics about the MySQL database. # %package pmda-named License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Named URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1213,7 +1211,6 @@ collecting metrics about the Named nameserver. # %package pmda-netfilter License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Netfilter framework URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1228,7 +1225,6 @@ collecting metrics about the Netfilter packet filtering framework. # %package pmda-news License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Usenet News URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1243,7 +1239,6 @@ collecting metrics about Usenet News. # %package pmda-nginx License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Nginx Webserver URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1256,26 +1251,10 @@ collecting metrics about the Nginx Webserver. #end pcp-pmda-nginx # -# pcp-pmda-nfsclient -# -%package pmda-nfsclient -License: GPLv2+ -Group: Applications/System -Summary: Performance Co-Pilot (PCP) metrics for NFS Clients -URL: https://pcp.io -Requires: perl-PCP-PMDA = %{version}-%{release} - -%description pmda-nfsclient -This package contains the PCP Performance Metrics Domain Agent (PMDA) for -collecting metrics for NFS Clients. -#end pcp-pmda-nfsclient - -# # pcp-pmda-oracle # %package pmda-oracle License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Oracle database URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1292,7 +1271,6 @@ collecting metrics about the Oracle database. # %package pmda-pdns License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for PowerDNS URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1307,7 +1285,6 @@ collecting metrics about the PowerDNS. # %package pmda-postfix License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Postfix (MTA) URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1330,28 +1307,10 @@ collecting metrics about the Postfix (MTA). #end pcp-pmda-postfix # -# pcp-pmda-postgresql -# -%package pmda-postgresql -License: GPLv2+ -Group: Applications/System -Summary: Performance Co-Pilot (PCP) metrics for PostgreSQL -URL: https://pcp.io -Requires: perl-PCP-PMDA = %{version}-%{release} -Requires: perl(DBI) perl(DBD::Pg) -BuildRequires: perl(DBI) perl(DBD::Pg) - -%description pmda-postgresql -This package contains the PCP Performance Metrics Domain Agent (PMDA) for -collecting metrics about the PostgreSQL database. -#end pcp-pmda-postgresql - -# # pcp-pmda-rsyslog # %package pmda-rsyslog License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Rsyslog URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1366,7 +1325,6 @@ collecting metrics about Rsyslog. # %package pmda-samba License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Samba URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1381,8 +1339,7 @@ collecting metrics about Samba. # %package pmda-slurm License: GPLv2+ -Group: Applications/System -Summary: Performance Co-Pilot (PCP) metrics for NFS Clients +Summary: Performance Co-Pilot (PCP) metrics for the SLURM Workload Manager URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1397,7 +1354,6 @@ collecting metrics from the SLURM Workload Manager. # %package pmda-snmp License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Simple Network Management Protocol URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1417,7 +1373,6 @@ collecting metrics about SNMP. # %package pmda-vmware License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for VMware URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1432,7 +1387,6 @@ collecting metrics for VMware. # %package pmda-zimbra License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Zimbra URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} @@ -1447,10 +1401,10 @@ collecting metrics about Zimbra. # %package pmda-dm License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Device Mapper Cache and Thin Client URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} +BuildRequires: device-mapper-devel %description pmda-dm This package contains the PCP Performance Metrics Domain Agent (PMDA) for collecting metrics about the Device Mapper Cache and Thin Client. @@ -1463,17 +1417,11 @@ collecting metrics about the Device Mapper Cache and Thin Client. # %package pmda-bcc License: ASL 2.0 and GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from eBPF/BCC modules URL: https://pcp.io -%if 0%{?rhel} == 0 || 0%{?rhel} > 7 -Requires: python3-bcc -%endif -%if !%{disable_python3} -Requires: python3-pcp -%else +# note: must not require python3 here on el7! +Requires: %{__python2}-bcc Requires: %{__python2}-pcp -%endif %description pmda-bcc This package contains the PCP Performance Metrics Domain Agent (PMDA) for extracting performance metrics from eBPF/BCC Python modules. @@ -1486,7 +1434,6 @@ extracting performance metrics from eBPF/BCC Python modules. # %package pmda-gluster License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Gluster filesystem URL: https://pcp.io %if !%{disable_python3} @@ -1500,11 +1447,48 @@ collecting metrics about the gluster filesystem. # end pcp-pmda-gluster # +# pcp-pmda-nfsclient +# +%package pmda-nfsclient +License: GPLv2+ +Summary: Performance Co-Pilot (PCP) metrics for NFS Clients +URL: https://pcp.io +%if !%{disable_python3} +Requires: python3-pcp +%else +Requires: %{__python2}-pcp +%endif +%description pmda-nfsclient +This package contains the PCP Performance Metrics Domain Agent (PMDA) for +collecting metrics for NFS Clients. +#end pcp-pmda-nfsclient + +# +# pcp-pmda-postgresql +# +%package pmda-postgresql +License: GPLv2+ +Summary: Performance Co-Pilot (PCP) metrics for PostgreSQL +URL: https://pcp.io +%if !%{disable_python3} +Requires: python3-pcp +Requires: python3-psycopg2 +BuildRequires: python3-psycopg2 +%else +Requires: %{__python2}-pcp +Requires: %{__python2}-psycopg2 +BuildRequires: %{__python2}-psycopg2 +%endif +%description pmda-postgresql +This package contains the PCP Performance Metrics Domain Agent (PMDA) for +collecting metrics about the PostgreSQL database. +#end pcp-pmda-postgresql + +# # pcp-pmda-zswap # %package pmda-zswap License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for compressed swap URL: https://pcp.io %if !%{disable_python3} @@ -1522,7 +1506,6 @@ collecting metrics about compressed swap. # %package pmda-unbound License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Unbound DNS Resolver URL: https://pcp.io %if !%{disable_python3} @@ -1540,7 +1523,6 @@ collecting metrics about the Unbound DNS Resolver. # %package pmda-mic License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Intel MIC cards URL: https://pcp.io %if !%{disable_python3} @@ -1558,7 +1540,6 @@ collecting metrics about Intel MIC cards. # %package pmda-haproxy License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for HAProxy URL: https://pcp.io %if !%{disable_python3} @@ -1576,7 +1557,6 @@ extracting performance metrics from HAProxy over the HAProxy stats socket. # %package pmda-libvirt License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for virtual machines URL: https://pcp.io %if !%{disable_python3} @@ -1602,11 +1582,27 @@ and hypervisor machines. # end pcp-pmda-libvirt # +# pcp-pmda-elasticsearch +# +%package pmda-elasticsearch +License: GPLv2+ +Summary: Performance Co-Pilot (PCP) metrics for Elasticsearch +URL: https://pcp.io +%if !%{disable_python3} +Requires: python3-pcp +%else +Requires: %{__python2}-pcp +%endif +%description pmda-elasticsearch +This package contains the PCP Performance Metrics Domain Agent (PMDA) for +collecting metrics about Elasticsearch. +#end pcp-pmda-elasticsearch + +# # pcp-pmda-lio # %package pmda-lio License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the LIO subsystem URL: https://pcp.io %if !%{disable_python3} @@ -1631,7 +1627,6 @@ target. # %package pmda-prometheus License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from Prometheus endpoints URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1650,6 +1645,26 @@ This package contains the PCP Performance Metrics Domain Agent (PMDA) for extracting statistics from programs instrumented as Prometheus endpoints. #end pcp-pmda-prometheus +# +# pcp-pmda-lmsensors +# +%package pmda-lmsensors +License: GPLv2+ +Summary: Performance Co-Pilot (PCP) metrics for hardware sensors +URL: https://pcp.io +Requires: pcp-libs = %{version}-%{release} +%if !%{disable_python3} +Requires: python3-pcp +%else +Requires: %{__python2}-pcp +%endif +# rewritten in python, so there is no longer a debuginfo package +Obsoletes: pcp-pmda-lmsensors-debuginfo +%description pmda-lmsensors +This package contains the PCP Performance Metrics Domain Agent (PMDA) for +collecting metrics about the Linux hardware monitoring sensors. +# end pcp-pmda-lmsensors + %endif # !%{disable_python2} || !%{disable_python3} %if !%{disable_json} @@ -1658,7 +1673,6 @@ extracting statistics from programs instrumented as Prometheus endpoints. # %package pmda-json License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for JSON data URL: https://pcp.io %if !%{disable_python3} @@ -1682,7 +1696,6 @@ collecting metrics output in JSON. # %package pmda-apache License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Apache webserver URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1696,7 +1709,6 @@ collecting metrics about the Apache webserver. # %package pmda-bash License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Bash shell URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1710,7 +1722,6 @@ collecting metrics about the Bash shell. # %package pmda-cifs License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the CIFS protocol URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1724,7 +1735,6 @@ collecting metrics about the Common Internet Filesytem. # %package pmda-cisco License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Cisco routers URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1738,7 +1748,6 @@ collecting metrics about Cisco routers. # %package pmda-gfs2 License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the GFS2 filesystem URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1748,25 +1757,10 @@ collecting metrics about the Global Filesystem v2. # end pcp-pmda-gfs2 # -# pcp-pmda-lmsensors -# -%package pmda-lmsensors -License: GPLv2+ -Group: Applications/System -Summary: Performance Co-Pilot (PCP) metrics for hardware sensors -URL: https://pcp.io -Requires: pcp-libs = %{version}-%{release} -%description pmda-lmsensors -This package contains the PCP Performance Metrics Domain Agent (PMDA) for -collecting metrics about the Linux hardware monitoring sensors. -# end pcp-pmda-lmsensors - -# # pcp-pmda-logger # %package pmda-logger License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from arbitrary log files URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1781,7 +1775,6 @@ supports both sampled and event-style metrics. # %package pmda-mailq License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the sendmail queue URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1795,7 +1788,6 @@ collecting metrics about email queues managed by sendmail. # %package pmda-mounts License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for filesystem mounts URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1809,7 +1801,6 @@ collecting metrics about filesystem mounts. # %package pmda-nvidia-gpu License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Nvidia GPU URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1823,7 +1814,6 @@ collecting metrics about Nvidia GPUs. # %package pmda-roomtemp License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the room temperature URL: https://pcp.io Requires: pcp = %{version}-%{release} @@ -1839,7 +1829,6 @@ collecting metrics about the room temperature. # %package pmda-rpm License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the RPM package manager URL: https://pcp.io Requires: pcp = %{version}-%{release} @@ -1856,7 +1845,6 @@ collecting metrics about the installed RPM packages. # %package pmda-sendmail License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Sendmail URL: https://pcp.io Requires: pcp = %{version}-%{release} @@ -1871,7 +1859,6 @@ collecting metrics about Sendmail traffic. # %package pmda-shping License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for shell command responses URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1886,7 +1873,6 @@ arbitrary shell commands. # %package pmda-smart License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for S.M.A.R.T values URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1901,14 +1887,13 @@ smartmontools package. # %package pmda-summary License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) summary metrics from pmie URL: https://pcp.io Requires: pcp = %{version}-%{release} Requires: pcp-libs = %{version}-%{release} %description pmda-summary This package contains the PCP Performance Metrics Domain Agent (PMDA) for -collecting metrics about other installed pmdas. +collecting metrics about other installed PMDAs. # end pcp-pmda-summary %if !%{disable_systemd} @@ -1917,7 +1902,6 @@ collecting metrics about other installed pmdas. # %package pmda-systemd License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from the Systemd journal URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1932,7 +1916,6 @@ collecting metrics from the Systemd journal. # %package pmda-trace License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for application tracing URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} @@ -1946,7 +1929,6 @@ collecting metrics about trace performance data in applications. # %package pmda-weblog License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from web server logs URL: https://pcp.io Requires: pcp = %{version}-%{release} @@ -1957,71 +1939,8 @@ collecting metrics about web server logs. # end pcp-pmda-weblog # end C pmdas -# pcp-collector metapackage -%package collector -License: GPLv2+ -Group: Applications/System -Summary: Performance Co-Pilot (PCP) Collection meta Package -URL: https://pcp.io -Requires: pcp-pmda-activemq pcp-pmda-bonding pcp-pmda-dbping pcp-pmda-ds389 pcp-pmda-ds389log -Requires: pcp-pmda-elasticsearch pcp-pmda-gpfs pcp-pmda-gpsd pcp-pmda-kvm pcp-pmda-lustre -Requires: pcp-pmda-memcache pcp-pmda-mysql pcp-pmda-named pcp-pmda-netfilter pcp-pmda-news -Requires: pcp-pmda-nginx pcp-pmda-nfsclient pcp-pmda-pdns pcp-pmda-postfix pcp-pmda-postgresql pcp-pmda-oracle -Requires: pcp-pmda-samba pcp-pmda-slurm pcp-pmda-vmware pcp-pmda-zimbra -Requires: pcp-pmda-dm pcp-pmda-apache -Requires: pcp-pmda-bash pcp-pmda-cisco pcp-pmda-gfs2 pcp-pmda-lmsensors pcp-pmda-mailq pcp-pmda-mounts -Requires: pcp-pmda-nvidia-gpu pcp-pmda-roomtemp pcp-pmda-sendmail pcp-pmda-shping pcp-pmda-smart -Requires: pcp-pmda-lustrecomm pcp-pmda-logger pcp-pmda-docker pcp-pmda-bind2 -%if !%{disable_nutcracker} -Requires: pcp-pmda-nutcracker -%endif -%if !%{disable_bcc} -Requires: pcp-pmda-bcc -%endif -%if !%{disable_python2} || !%{disable_python3} -Requires: pcp-pmda-gluster pcp-pmda-zswap pcp-pmda-unbound pcp-pmda-mic -Requires: pcp-pmda-libvirt pcp-pmda-lio pcp-pmda-prometheus pcp-pmda-haproxy -%endif -%if !%{disable_snmp} -Requires: pcp-pmda-snmp -%endif -%if !%{disable_json} -Requires: pcp-pmda-json -%endif -%if !%{disable_rpm} -Requires: pcp-pmda-rpm -%endif -Requires: pcp-pmda-summary pcp-pmda-trace pcp-pmda-weblog -%description collector -This meta-package installs the PCP metric collection dependencies. This -includes the vast majority of packages used to collect PCP metrics. The -pcp-collector package also automatically enables and starts the pmcd and -pmlogger services. -# collector - -# pcp-monitor metapackage -%package monitor -License: GPLv2+ -Group: Applications/System -Summary: Performance Co-Pilot (PCP) Monitoring meta Package -URL: https://pcp.io -%if !%{disable_microhttpd} -Requires: pcp-webapi -%endif -%if !%{disable_python2} || !%{disable_python3} -Requires: pcp-system-tools -%endif -%if !%{disable_qt} -Requires: pcp-gui -%endif -%description monitor -This meta-package contains the PCP performance monitoring dependencies. This -includes a large number of packages for analysing PCP metrics in various ways. -# monitor - %package zeroconf License: GPLv2+ -Group: Applications/System Summary: Performance Co-Pilot (PCP) Zeroconf Package URL: https://pcp.io Requires: pcp pcp-doc pcp-system-tools @@ -2041,7 +1960,6 @@ those written by sysstat. # %package -n %{__python2}-pcp License: GPLv2+ -Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Python bindings and documentation URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} @@ -2067,7 +1985,6 @@ Metric Domain Agent (PMDA) collector tools written in Python. # %package -n python3-pcp License: GPLv2+ -Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Python3 bindings and documentation URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} @@ -2085,7 +2002,6 @@ Metric Domain Agent (PMDA) collector tools written in Python3. # %package system-tools License: GPLv2+ -Group: Development/Libraries Summary: Performance Co-Pilot (PCP) System and Monitoring Tools URL: https://pcp.io %if !%{disable_python3} @@ -2094,6 +2010,12 @@ Requires: python3-pcp = %{version}-%{release} Requires: %{__python2}-pcp = %{version}-%{release} %endif Requires: pcp-libs = %{version}-%{release} +%if !%{disable_dstat} +# https://fedoraproject.org/wiki/Packaging:Guidelines "Renaming/Replacing Existing Packages" +Provides: dstat = %{version}-%{release} +Provides: /usr/bin/dstat +Obsoletes: dstat <= 0.8 +%endif %description system-tools This PCP module contains additional system monitoring tools written @@ -2106,7 +2028,6 @@ in the Python language. # %package gui License: GPLv2+ and LGPLv2+ and LGPLv2+ with exceptions -Group: Applications/System Summary: Visualization tools for the Performance Co-Pilot toolkit URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} @@ -2125,7 +2046,6 @@ monitoring systems using live and archived Performance Co-Pilot # %package doc License: GPLv2+ and CC-BY -Group: Documentation %if !%{disable_noarch} BuildArch: noarch %endif @@ -2153,7 +2073,6 @@ PCP utilities and daemons, and the PCP graphical tools. %if !%{disable_selinux} %package selinux License: GPLv2+ and CC-BY -Group: Applications/System Summary: Selinux policy package URL: https://pcp.io BuildRequires: selinux-policy-devel @@ -2177,15 +2096,15 @@ updated policy package. %setup -q -T -D -a 3 -c -n graphite %setup -q -T -D -a 4 -c -n blinkenlights %setup -q +%patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch3 -p1 %build %if !%{disable_python2} && 0%{?default_python} != 3 export PYTHON=python%{?default_python} %endif -%configure %{?_with_initd} %{?_with_doc} %{?_with_ib} %{?_with_papi} %{?_with_perfevent} %{?_with_bcc} %{?_with_json} %{?_with_snmp} %{?_with_nutcracker} %{?_with_webapps} +%configure %{?_with_initd} %{?_with_doc} %{?_with_dstat} %{?_with_ib} %{?_with_podman} %{?_with_perfevent} %{?_with_bcc} %{?_with_json} %{?_with_snmp} %{?_with_nutcracker} %{?_with_webapps} %{?_with_python2} make %{?_smp_mflags} default_pcp %install @@ -2249,15 +2168,6 @@ for f in $RPM_BUILD_ROOT/%{_initddir}/{pcp,pmcd,pmlogger,pmie,pmwebd,pmmgr,pmpro sed -i -e '/^# chkconfig/s/:.*$/: - 95 05/' -e '/^# Default-Start:/s/:.*$/:/' $f done -%if 0%{?fedora} > 26 -if [ "$1" -eq 1 ] -then -PCP_SYSCONFIG_DIR=%{_sysconfdir}/sysconfig -sed -i 's/^\#\ PMLOGGER_LOCAL.*/PMLOGGER_LOCAL=1/g' "$RPM_BUILD_ROOT/$PCP_SYSCONFIG_DIR/pmlogger" -sed -i 's/^\#\ PMCD_LOCAL.*/PMCD_LOCAL=1/g' "$RPM_BUILD_ROOT/$PCP_SYSCONFIG_DIR/pmcd" -fi -%endif - # list of PMDAs in the base pkg ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\ grep -E -v '^simple|sample|trivial|txmon' |\ @@ -2273,7 +2183,6 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\ grep -E -v '^elasticsearch' |\ grep -E -v '^gpfs' |\ grep -E -v '^gpsd' |\ - grep -E -v '^kvm' |\ grep -E -v '^lio' |\ grep -E -v '^lustre' |\ grep -E -v '^lustrecomm' |\ @@ -2286,8 +2195,8 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\ grep -E -v '^nginx' |\ grep -E -v '^nutcracker' |\ grep -E -v '^oracle' |\ - grep -E -v '^papi' |\ grep -E -v '^pdns' |\ + grep -E -v '^podman' |\ grep -E -v '^postfix' |\ grep -E -v '^postgresql' |\ grep -E -v '^redis' |\ @@ -2331,6 +2240,7 @@ ls -1 $RPM_BUILD_ROOT/%{_bindir} |\ grep -E -v 'pmiostat|pmcollectl|zabbix|zbxpcp|dstat' |\ grep -E -v 'pmrep|pcp2graphite|pcp2influxdb|pcp2zabbix' |\ grep -E -v 'pcp2elasticsearch|pcp2json|pcp2xlsx|pcp2xml' |\ + grep -E -v 'pcp2spark' |\ grep -E -v 'pmdbg|pmclient|pmerr|genpmda' |\ sed -e 's#^#'%{_bindir}'\/#' >base_bin.list @@ -2404,6 +2314,19 @@ exit 0 %post testsuite chown -R pcpqa:pcpqa %{_testsdir} 2>/dev/null +%if 0%{?rhel} +%if !%{disable_systemd} + systemctl restart pmcd >/dev/null 2>&1 + systemctl restart pmlogger >/dev/null 2>&1 + systemctl enable pmcd >/dev/null 2>&1 + systemctl enable pmlogger >/dev/null 2>&1 +%else + /sbin/chkconfig --add pmcd >/dev/null 2>&1 + /sbin/chkconfig --add pmlogger >/dev/null 2>&1 + /sbin/service pmcd condrestart + /sbin/service pmlogger condrestart +%endif +%endif exit 0 %pre @@ -2493,11 +2416,6 @@ fi %{pmda_remove "$1" "rpm"} %endif #preun pmda-rpm -%if !%{disable_papi} -%preun pmda-papi -%{pmda_remove "$1" "papi"} -%endif #preun pmda-papi - %if !%{disable_systemd} %preun pmda-systemd %{pmda_remove "$1" "systemd"} @@ -2513,6 +2431,11 @@ fi %{pmda_remove "$1" "perfevent"} %endif #preun pmda-perfevent +%if !%{disable_podman} +%preun pmda-podman +%{pmda_remove "$1" "podman"} +%endif #preun pmda-podman + %if !%{disable_json} %preun pmda-json %{pmda_remove "$1" "json"} @@ -2568,9 +2491,6 @@ fi %preun pmda-gpsd %{pmda_remove "$1" "gpsd"} -%preun pmda-kvm -%{pmda_remove "$1" "kvm"} - %preun pmda-lio %{pmda_remove "$1" "lio"} @@ -2647,6 +2567,10 @@ fi %preun pmda-libvirt %{pmda_remove "$1" "libvirt"} + +%preun pmda-lmsensors +%{pmda_remove "$1" "lmsensors"} + %endif # !%{disable_python[2,3]} %preun pmda-apache @@ -2664,9 +2588,6 @@ fi %preun pmda-gfs2 %{pmda_remove "$1" "gfs2"} -%preun pmda-lmsensors -%{pmda_remove "$1" "lmsensors"} - %preun pmda-logger %{pmda_remove "$1" "logger"} @@ -2700,6 +2621,17 @@ fi %preun pmda-weblog %{pmda_remove "$1" "weblog"} +%if !%{disable_systemd} +%preun zeroconf +if [ "$1" -eq 0 ] +then + %systemd_preun pmlogger_daily_report.timer + %systemd_preun pmlogger_daily_report.service + %systemd_preun pmlogger_daily_report-poll.timer + %systemd_preun pmlogger_daily_report-poll.service +fi +%endif + %preun if [ "$1" -eq 0 ] then @@ -2750,27 +2682,16 @@ chown -R pcp:pcp %{_logsdir}/pmmgr 2>/dev/null /sbin/service pmmgr condrestart %endif -%post collector -%if 0%{?rhel} -%if !%{disable_systemd} - systemctl restart pmcd >/dev/null 2>&1 - systemctl restart pmlogger >/dev/null 2>&1 - systemctl enable pmcd >/dev/null 2>&1 - systemctl enable pmlogger >/dev/null 2>&1 -%else - /sbin/chkconfig --add pmcd >/dev/null 2>&1 - /sbin/chkconfig --add pmlogger >/dev/null 2>&1 - /sbin/service pmcd condrestart - /sbin/service pmlogger condrestart -%endif -%endif - %post zeroconf PCP_PMDAS_DIR=%{_pmdasdir} PCP_SYSCONFIG_DIR=%{_sysconfdir}/sysconfig -# auto-install important PMDAs for RH Support +PCP_PMCDCONF_PATH=%{_confdir}/pmcd/pmcd.conf +# auto-install important PMDAs for RH Support (if not present already) for PMDA in dm nfsclient ; do - touch "$PCP_PMDAS_DIR/$PMDA/.NeedInstall" + if ! grep -q "$PMDA/pmda$PMDA" "$PCP_PMCDCONF_PATH" + then + touch "$PCP_PMDAS_DIR/$PMDA/.NeedInstall" + fi done # increase default pmlogger recording frequency sed -i 's/^\#\ PMLOGGER_INTERVAL.*/PMLOGGER_INTERVAL=10/g' "$PCP_SYSCONFIG_DIR/pmlogger" @@ -2783,6 +2704,8 @@ pmieconf -c enable dmthin systemctl restart pmie >/dev/null 2>&1 systemctl enable pmcd >/dev/null 2>&1 systemctl enable pmlogger >/dev/null 2>&1 + systemctl enable pmlogger_daily_report >/dev/null 2>&1 + systemctl enable pmlogger_daily_report-poll >/dev/null 2>&1 systemctl enable pmie >/dev/null 2>&1 %else /sbin/chkconfig --add pmcd >/dev/null 2>&1 @@ -2805,14 +2728,6 @@ pmieconf -c enable dmthin %{selinux_handle_policy "$1" "pcpupstream-container"} %endif -%if !%{disable_bcc} -%post pmda-bcc -%{pmda_notready "$1" "bcc"} -%endif - -%post pmda-prometheus -%{pmda_notready "$1" "prometheus"} - %post PCP_LOG_DIR=%{_logsdir} PCP_PMNS_DIR=%{_pmnsdir} @@ -2849,8 +2764,12 @@ chmod 644 "$PCP_PMNS_DIR/.NeedRebuild" cd $PCP_PMNS_DIR && ./Rebuild -s && rm -f .NeedRebuild cd +%if 0%{?fedora} >= 26 || 0%{?rhel} > 7 +%ldconfig_scriptlets libs +%else %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig +%endif %if !%{disable_selinux} %preun selinux @@ -2907,10 +2826,25 @@ cd %{_unitdir}/pmlogger.service %{_unitdir}/pmie.service %{_unitdir}/pmproxy.service -%endif -%config(noreplace) %{_sysconfdir}/sasl2/pmcd.conf +# services and timers replacing the old cron scripts +%{_unitdir}/pmlogger_check.service +%{_unitdir}/pmlogger_check.timer +%{_unitdir}/pmlogger_daily.service +%{_unitdir}/pmlogger_daily.timer +%{_unitdir}/pmlogger_daily-poll.service +%{_unitdir}/pmlogger_daily-poll.timer +%{_unitdir}/pmie_check.service +%{_unitdir}/pmie_check.timer +%{_unitdir}/pmie_daily.service +%{_unitdir}/pmie_daily.timer +%config(noreplace) %{_sysconfdir}/sysconfig/pmie_timers +%config(noreplace) %{_sysconfdir}/sysconfig/pmlogger_timers +%else +# cron scripts %config(noreplace) %{_sysconfdir}/cron.d/pcp-pmlogger %config(noreplace) %{_sysconfdir}/cron.d/pcp-pmie +%endif +%config(noreplace) %{_sysconfdir}/sasl2/pmcd.conf %config(noreplace) %{_sysconfdir}/sysconfig/pmlogger %config(noreplace) %{_sysconfdir}/sysconfig/pmproxy %config(noreplace) %{_sysconfdir}/sysconfig/pmcd @@ -2922,6 +2856,7 @@ cd %config(noreplace) %{_confdir}/pmcd/rc.local %dir %{_confdir}/pmproxy %config(noreplace) %{_confdir}/pmproxy/pmproxy.options +%config(noreplace) %{_confdir}/pmproxy/pmproxy.conf %dir %{_confdir}/pmie %dir %{_confdir}/pmie/control.d %config(noreplace) %{_confdir}/pmie/control @@ -2933,6 +2868,10 @@ cd %dir %attr(0775,pcp,pcp) %{_confdir}/nssdb %dir %{_confdir}/discover %config(noreplace) %{_confdir}/discover/pcp-kube-pods.conf +%if !%{disable_libuv} +%dir %{_confdir}/pmseries +%config(noreplace) %{_confdir}/pmseries/pmseries.conf +%endif %ghost %dir %attr(0775,pcp,pcp) %{_localstatedir}/run/pcp %{_localstatedir}/lib/pcp/config/pmafm @@ -2951,15 +2890,17 @@ cd %{tapsetdir}/pmcd.stp %endif -%files monitor -#empty - -%files collector -#empty - %files zeroconf %{_libexecdir}/pcp/bin/pmlogger_daily_report +%if !%{disable_systemd} +# systemd services for pmlogger_daily_report to replace the cron script +%{_unitdir}/pmlogger_daily_report.service +%{_unitdir}/pmlogger_daily_report.timer +%{_unitdir}/pmlogger_daily_report-poll.service +%{_unitdir}/pmlogger_daily_report-poll.timer +%else %config(noreplace) %{_sysconfdir}/cron.d/pcp-pmlogger-daily-report +%endif %{_localstatedir}/lib/pcp/config/pmlogconf/zeroconf #additional pmlogger config files @@ -3078,9 +3019,9 @@ cd %files import-collectl2pcp %{_bindir}/collectl2pcp -%if !%{disable_papi} -%files pmda-papi -%{_pmdasdir}/papi +%if !%{disable_podman} +%files pmda-podman +%{_pmdasdir}/podman %endif %if !%{disable_perfevent} @@ -3122,9 +3063,6 @@ cd %files pmda-gpsd %{_pmdasdir}/gpsd -%files pmda-kvm -%{_pmdasdir}/kvm - %files pmda-docker %{_pmdasdir}/docker @@ -3177,6 +3115,7 @@ cd %files pmda-postgresql %{_pmdasdir}/postgresql +%config(noreplace) %{_pmdasdir}/postgresql/pmdapostgresql.conf %files pmda-redis %{_pmdasdir}/redis @@ -3228,10 +3167,8 @@ cd %files pmda-libvirt %{_pmdasdir}/libvirt -%if !%{disable_elasticsearch} %files export-pcp2elasticsearch %{_bindir}/pcp2elasticsearch -%endif %files export-pcp2graphite %{_bindir}/pcp2graphite @@ -3242,6 +3179,9 @@ cd %files export-pcp2json %{_bindir}/pcp2json +%files export-pcp2spark +%{_bindir}/pcp2spark + %if !%{disable_xlsx} %files export-pcp2xlsx %{_bindir}/pcp2xlsx @@ -3252,6 +3192,10 @@ cd %files export-pcp2zabbix %{_bindir}/pcp2zabbix + +%files pmda-lmsensors +%{_pmdasdir}/lmsensors + %endif # !%{disable_python2} || !%{disable_python3} %files export-zabbix-agent @@ -3278,9 +3222,6 @@ cd %files pmda-gfs2 %{_pmdasdir}/gfs2 -%files pmda-lmsensors -%{_pmdasdir}/lmsensors - %files pmda-logger %{_pmdasdir}/logger @@ -3366,6 +3307,21 @@ cd %endif %changelog +* Mon May 06 2019 Nathan Scott - 4.3.2-2 +- Rework the pcp-libs ldconfig post-op (BZ 1705362) +- Resolve a QA file permissions diagnostic issue + +* Fri Apr 26 2019 Nathan Scott - 4.3.2-1 +- Numerous fixes in pmlogger daily scripts (BZs 1677848, 1697182, 1579881, 1603143) +- Update PCP selinux policy rules (BZs 1692305, 1695066) +- Adjust spec file /var/run/pcp settings (BZ 1533154) +- Fix pmdaproc kernel process misreporting (BZ 1673250) +- Fix pmdalinux SYSV IPC metric scalability (BZ 1699232) +- Ensure pmdaroot reaps all of its children (BZ 1698517) +- Corrections to python version dependencies (BZ 1676867) +- Fix pcp-atopsar(1) -A (all) option handling (BZ 1673996) +- Update to a more recent PCP bug fix release (BZ 1647308) + * Tue Oct 09 2018 Nathan Scott - 4.1.0-5 - Missing values from short /proc/*/status file reads (BZ 1600262)