diff --git a/.gitignore b/.gitignore index 0879f46..8e0e9cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -SOURCES/pcp-3.12.2.src.tar.gz +SOURCES/pcp-4.1.0.src.tar.gz SOURCES/pcp-webapp-blinkenlights-1.0.0.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.1.2.tar.gz +SOURCES/pcp-webapp-vector-1.2.2.tar.gz diff --git a/.pcp.metadata b/.pcp.metadata index 889a361..09679c7 100644 --- a/.pcp.metadata +++ b/.pcp.metadata @@ -1,5 +1,5 @@ -9d9ad460d7e521106195d039cf7c0c4113617330 SOURCES/pcp-3.12.2.src.tar.gz +2a14c6ff648b78f6891cbc9a13f6e7b6e5c1c93b SOURCES/pcp-4.1.0.src.tar.gz 7241116259edb86888e8db16d6b0717279523a22 SOURCES/pcp-webapp-blinkenlights-1.0.0.tar.gz 9fbce28ae069f9d1fb1408093a1d4303c5d60322 SOURCES/pcp-webapp-grafana-1.9.1-2.tar.gz 05f083a4cddff47cf25ce50a27c20aaccad0dbcb SOURCES/pcp-webapp-graphite-0.9.10.tar.gz -efb0b9994ef963af291e21aad8d0d46a3aee2cfc SOURCES/pcp-webapp-vector-1.1.2.tar.gz +29ebb6bf0c60307c3467b044b32ba874627a20e2 SOURCES/pcp-webapp-vector-1.2.2.tar.gz diff --git a/SOURCES/logmeta.patch b/SOURCES/logmeta.patch deleted file mode 100644 index c2c96b8..0000000 --- a/SOURCES/logmeta.patch +++ /dev/null @@ -1,82 +0,0 @@ -diff -Naurp pcp-3.12.2.orig/src/pmlogextract/pmlogextract.c pcp-3.12.2/src/pmlogextract/pmlogextract.c ---- pcp-3.12.2.orig/src/pmlogextract/pmlogextract.c 2017-10-03 07:46:36.000000000 +1100 -+++ pcp-3.12.2/src/pmlogextract/pmlogextract.c 2017-11-29 14:07:06.674837371 +1100 -@@ -1108,6 +1108,7 @@ nextmeta(void) - { - int i; - int j; -+ int type; - int want; - int numeof = 0; - int sts; -@@ -1158,10 +1159,12 @@ againmeta: - continue; - } - -+ type = ntohl(iap->pb[META][1]); -+ - /* pmDesc entries, if not seen before & wanted, - * then append to desc list - */ -- if (ntohl(iap->pb[META][1]) == TYPE_DESC) { -+ if (type == TYPE_DESC) { - pmid = ntoh_pmID(iap->pb[META][2]); - - /* if ml is defined, then look for pmid in the list -@@ -1194,7 +1197,7 @@ againmeta: - goto againmeta; - } - } -- else if (ntohl(iap->pb[META][1]) == TYPE_INDOM) { -+ else if (type == TYPE_INDOM) { - /* if ml is defined, then look for instance domain in the list - * if indom is not in the list then discard it immediately - */ -@@ -1227,15 +1230,25 @@ againmeta: - goto againmeta; - } - } -- else if (ntohl(iap->pb[META][1]) == 3 /*TYPE_LABEL*/) { -- /* discard this optional metadata, not supported */ -+ else if (type == 3 /*TYPE_LABEL*/) { -+ if (pmDebugOptions.logmeta) -+ fprintf(stderr, "%s: Warning: %s\n", -+ pmProgname, pmErrStr(PM_ERR_NYI)); -+ free(iap->pb[META]); -+ iap->pb[META] = NULL; -+ goto againmeta; -+ } -+ else if (type == 4 /*TYPE_TEXT*/) { -+ if (pmDebugOptions.logmeta) -+ fprintf(stderr, "%s: Warning: %s\n", -+ pmProgname, pmErrStr(PM_ERR_NYI)); - free(iap->pb[META]); - iap->pb[META] = NULL; - goto againmeta; - } - else { - fprintf(stderr, "%s: Error: unrecognised meta data type: %d\n", -- pmProgname, (int)ntohl(iap->pb[META][1])); -+ pmProgname, type); - abandon_extract(); - } - -diff -Naurp pcp-3.12.2.orig/src/pmlogrewrite/pmlogrewrite.c pcp-3.12.2/src/pmlogrewrite/pmlogrewrite.c ---- pcp-3.12.2.orig/src/pmlogrewrite/pmlogrewrite.c 2017-10-03 07:46:36.000000000 +1100 -+++ pcp-3.12.2/src/pmlogrewrite/pmlogrewrite.c 2017-11-29 14:06:25.421841627 +1100 -@@ -1220,7 +1220,14 @@ main(int argc, char **argv) - do_indom(); - } - else if (stsmeta == 3 /*TYPE_LABEL*/) { -- ; /* silently ignore optional metadata */ -+ if (pmDebugOptions.logmeta) -+ fprintf(stderr, "%s: Warning: %s\n", -+ pmProgname, pmErrStr(PM_ERR_NYI)); -+ } -+ else if (stsmeta == 4 /*TYPE_TEXT*/) { -+ if (pmDebugOptions.logmeta) -+ fprintf(stderr, "%s: Warning: %s\n", -+ pmProgname, pmErrStr(PM_ERR_NYI)); - } - else { - fprintf(stderr, "%s: Error: unrecognised meta data type: %d\n", diff --git a/SOURCES/redhat-bugzilla-1597975.patch b/SOURCES/redhat-bugzilla-1597975.patch new file mode 100644 index 0000000..c4dd360 --- /dev/null +++ b/SOURCES/redhat-bugzilla-1597975.patch @@ -0,0 +1,83 @@ +From 6476a7e81eba04a729380b813d6555cdca2acb1a Mon Sep 17 00:00:00 2001 +From: Marko Myllynen +Date: Thu, 5 Jul 2018 08:59:35 +0300 +Subject: [PATCH] pmdabcc: fix ext4dist/xfsdist for RHEL 7 kernel + +RHEL 7 kernel is unlike Fedora / upstream kernels, apply the +corresponding change done in latest RHEL 7 bcc as well. +--- + src/pmdas/bcc/modules/fs/ext4dist.bpf | 1 + + src/pmdas/bcc/modules/fs/ext4dist.python | 8 ++++---- + src/pmdas/bcc/modules/fs/xfsdist.bpf | 1 + + 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 +@@ -3,6 +3,7 @@ + + #include + #include ++#include + #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) + + self.bpf = BPF(text=bpf_text) +- 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") + self.bpf.attach_kprobe(event="ext4_file_open", fn_name="trace_entry") + self.bpf.attach_kprobe(event="ext4_sync_file", fn_name="trace_entry") +- self.bpf.attach_kretprobe(event="generic_file_read_iter", fn_name="trace_read_return") +- self.bpf.attach_kretprobe(event="ext4_file_write_iter", fn_name="trace_write_return") ++ self.bpf.attach_kretprobe(event="generic_file_aio_read", fn_name="trace_read_return") ++ self.bpf.attach_kretprobe(event="ext4_file_write", fn_name="trace_write_return") + 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 +@@ -3,6 +3,7 @@ + + #include + #include ++#include + #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) + + 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") ++ self.bpf.attach_kprobe(event="xfs_file_aio_read", fn_name="trace_entry") ++ self.bpf.attach_kprobe(event="xfs_file_aio_write", fn_name="trace_entry") + self.bpf.attach_kprobe(event="xfs_file_open", fn_name="trace_entry") + self.bpf.attach_kprobe(event="xfs_file_fsync", fn_name="trace_entry") +- self.bpf.attach_kretprobe(event="xfs_file_read_iter", fn_name="trace_read_return") +- self.bpf.attach_kretprobe(event="xfs_file_write_iter", fn_name="trace_write_return") ++ self.bpf.attach_kretprobe(event="xfs_file_aio_read", fn_name="trace_read_return") ++ self.bpf.attach_kretprobe(event="xfs_file_aio_write", fn_name="trace_write_return") + 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-1603596.patch b/SOURCES/redhat-bugzilla-1603596.patch new file mode 100644 index 0000000..6975b21 --- /dev/null +++ b/SOURCES/redhat-bugzilla-1603596.patch @@ -0,0 +1,411 @@ +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/SOURCES/rhbz1488116.patch b/SOURCES/rhbz1488116.patch deleted file mode 100644 index bb69891..0000000 --- a/SOURCES/rhbz1488116.patch +++ /dev/null @@ -1,218 +0,0 @@ -commit c79e4b8a8a365e0f7d2455f8f4e3288e07ce9bed -Author: Lukas Berk -Date: Mon Jan 15 16:24:29 2018 -0500 - - build: selinux, update policy package on upgrade - - Don't just install new policy package on a fresh install, we need to - make sure it's up to date on an upgrade as well. Also, version match - the policy package to ensure changes on specific releases are visible - via diagnostic tools like semodule. - -diff --git a/src/selinux/GNUmakefile b/src/selinux/GNUmakefile -index 6635c8e7b..6c993ee4c 100644 ---- a/src/selinux/GNUmakefile -+++ b/src/selinux/GNUmakefile -@@ -61,6 +61,7 @@ $(IAM).te: $(IAM).te.in - -e 's;@PCP_SOCK_FILE_GETATTR@;'$(PCP_SOCK_FILE_GETATTR)';' \ - -e 's;@PCP_SOCK_FILE_GETATTR_RULE@;'$(PCP_SOCK_FILE_GETATTR_RULE)';' \ - -e 's;@PCP_HOSTNAME_EXEC_MAP@;'$(PCP_HOSTNAME_EXEC_MAP)';' \ -+ -e 's;@PACKAGE_VERSION@;'$(PACKAGE_VERSION)';' \ - - # END - make -f /usr/share/selinux/devel/Makefile -diff --git a/src/selinux/pcpupstream.te.in b/src/selinux/pcpupstream.te.in -index e6a504c8a..56376ac4e 100644 ---- a/src/selinux/pcpupstream.te.in -+++ b/src/selinux/pcpupstream.te.in -@@ -1,4 +1,4 @@ --module pcpupstream 1.0; -+module pcpupstream @PACKAGE_VERSION@; - - require { - type pcp_pmcd_t; - -commit 50d0d55ffe2c9af2a73bb55a8bf826c68b97ce1e -Author: Lukas Berk -Date: Thu Jan 25 21:22:57 2018 -0500 - - selinux: rhbz1488116, rhbz1533080 rules, update qa - -diff --git a/qa/917 b/qa/917 -index 9fc3a993e..3afa39b8c 100755 ---- a/qa/917 -+++ b/qa/917 -@@ -37,6 +37,7 @@ class_status=`seinfo -x --class=system | grep "status$"` - sock_file_getattr=`seinfo -x --class=sock_file | grep "getattr$"` - hostname_exec_map_a=`seinfo -x --class=file | grep "map$"` - hostname_exec_map_b=`seinfo -x --common=file 2>/dev/null | grep "map$"` -+container_runtime_tmpfs_t=`seinfo -t | grep "container_runtime_tmpfs_t$"` - - _filter_semodule() - { -@@ -54,6 +55,7 @@ _filter_sedismod1() - _filter_outfile() - { - awk -v container_t="$container_runtime_t" \ -+ -v container_tmpfs_t="$container_runtime_tmpfs_t" \ - -v nsfs_t="$nsfs_t" \ - -v docker_var_lib_t="$docker_var_lib_t" \ - -v svirt_lxc_net_t="$svirt_lxc_net_t" \ -@@ -70,8 +72,10 @@ _filter_outfile() - -v hostname_exec_map_a="$hostname_exec_map_a" \ - -v hostname_exec_map_b="$hostname_exec_map_b" \ - '{ -- if (container_t == "" && /container_runtime_t/) -- !/container_runtime_t/ ; -+ if (container_t == "" && /container_runtime_t /) -+ !/container_runtime_t / ; -+ else if (container_tmpfs_t == "" && /container_runtime_tmpfs_t/) -+ !/container_runtime_tmpfs_t/ ; - else if (nsfs_t == "" && /nsfs_t/) - !/nsfs_t/ ; - else if (docker_var_lib_t == "" && /docker_var_lib_t/) -diff --git a/qa/917.out.in b/qa/917.out.in -index edd247e25..0c2472d64 100644 ---- a/qa/917.out.in -+++ b/qa/917.out.in -@@ -48,6 +48,12 @@ decl 1: - allow [pcp_pmcd_t] [nfsd_fs_t] : [file] { getattr open read }; - allow [pcp_pmcd_t] [gpmctl_t] : [sock_file] { getattr }; - allow [pcp_pmcd_t] [postfix_spool_t] : [dir] { read }; -+ allow [pcp_pmcd_t] [container_runtime_tmpfs_t] : [dir] { getattr }; -+ allow [pcp_pmcd_t] [unconfined_service_t] : [sem] { associate getattr }; -+ allow [pcp_pmcd_t] [mock_var_lib_t] : [dir] { getattr }; -+ allow [pcp_pmcd_t] [ldconfig_exec_t] : [file] { map }; -+ allow [pcp_pmcd_t] [httpd_t] : [shm] { unix_read associate getattr }; -+ allow [pcp_pmcd_t] [httpd_t] : [sem] { unix_read associate 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 }; -@@ -68,6 +74,8 @@ decl 1: - allow [pcp_pmie_t] [unconfined_t] : [unix_stream_socket] { connectto }; - allow [pcp_pmie_t] [pcp_pmie_exec_t] : [file] { execute_no_trans }; - allow [pcp_pmie_t] [proc_net_t] : [file] { read }; -+ allow [pcp_pmie_t] [kmsg_device_t] : [chr_file] { open }; -+ allow [pcp_pmie_t] [pcp_pmcd_t] : [process] { signal }; - 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 }; -diff --git a/src/selinux/GNUlocaldefs b/src/selinux/GNUlocaldefs -index 65c296611..7d36cb6a2 100644 ---- a/src/selinux/GNUlocaldefs -+++ b/src/selinux/GNUlocaldefs -@@ -66,4 +66,5 @@ endif - - ifeq "$(PCP_SELINUX_HOSTNAME_EXEC_MAP)" "true" - PCP_HOSTNAME_EXEC_MAP=" map " -+PCP_LDCONFIG_EXEC_MAP_RULE="allow pcp_pmcd_t ldconfig_exec_t:file map\;" - endif -\ No newline at end of file -diff --git a/src/selinux/GNUmakefile b/src/selinux/GNUmakefile -index 6c993ee4c..343178d38 100644 ---- a/src/selinux/GNUmakefile -+++ b/src/selinux/GNUmakefile -@@ -61,6 +61,7 @@ $(IAM).te: $(IAM).te.in - -e 's;@PCP_SOCK_FILE_GETATTR@;'$(PCP_SOCK_FILE_GETATTR)';' \ - -e 's;@PCP_SOCK_FILE_GETATTR_RULE@;'$(PCP_SOCK_FILE_GETATTR_RULE)';' \ - -e 's;@PCP_HOSTNAME_EXEC_MAP@;'$(PCP_HOSTNAME_EXEC_MAP)';' \ -+ -e 's;@PCP_LDCONFIG_EXEC_MAP_RULE@;'$(PCP_LDCONFIG_EXEC_MAP_RULE)';' \ - -e 's;@PACKAGE_VERSION@;'$(PACKAGE_VERSION)';' \ - - # END -diff --git a/src/selinux/pcpupstream.te.in b/src/selinux/pcpupstream.te.in -index 56376ac4e..fb14fec96 100644 ---- a/src/selinux/pcpupstream.te.in -+++ b/src/selinux/pcpupstream.te.in -@@ -49,6 +49,12 @@ require { - type gpmctl_t; #RHBZ1517656 - type proc_net_t; #RHBZ1517656 - type postfix_spool_t; #RHBZ1517862 -+ type container_runtime_tmpfs_t; -+ type unconfined_service_t; -+ type mock_var_lib_t; -+ type ldconfig_exec_t; -+ type httpd_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 }; -@@ -112,7 +118,6 @@ 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 - @PCP_CAPUSERNS_PTRACE_RULE@ - -- - #type=AVC msg=audit(1485899863.032:3024): avc: denied { sys_chroot } for pid=25873 comm="pmdalinux" capability=18 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:system_r:pcp_pmcd_t:s0 tclass=capability - allow pcp_pmcd_t self:capability sys_chroot; - -@@ -182,6 +187,21 @@ allow pcp_pmcd_t nfsd_fs_t:file { getattr open read }; - - #RHBZ1517862 - allow pcp_pmcd_t postfix_spool_t:dir read; -+ -+allow pcp_pmcd_t container_runtime_tmpfs_t:dir getattr; -+ -+allow pcp_pmcd_t unconfined_service_t:sem { associate getattr }; -+ -+#type=AVC msg=audit(...): avc: denied { getattr } for pid=NNN comm="pmdalinux" path="/var/lib/mock" dev="dm-1" ino=917749 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:mock_var_lib_t:s0 tclass=dir permissive=1 -+allow pcp_pmcd_t mock_var_lib_t:dir getattr; -+ -+#type=AVC msg=audit(...): avc: denied { map } for pid=NNN comm="ldconfig" path="/usr/sbin/ldconfig" dev="dm-1" ino=1052382 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file permissive=1 -+@PCP_LDCONFIG_EXEC_MAP_RULE@ -+ -+#RHBZ1488116 -+allow pcp_pmcd_t httpd_t:shm { unix_read associate getattr }; -+allow pcp_pmcd_t httpd_t:sem { unix_read associate getattr }; -+ - #============= pcp_pmlogger_t ============== - allow pcp_pmlogger_t kmsg_device_t:chr_file { open write }; - allow pcp_pmlogger_t self:capability kill; -@@ -250,6 +270,11 @@ allow pcp_pmie_t pcp_pmie_exec_t:file execute_no_trans; - #RHBZ1517656 - allow pcp_pmie_t proc_net_t:file read; - -+#type=AVC msg=audit(...): avc: denied { open } for pid=NNN comm="runlevel" path="/dev/kmsg" dev="devtmpfs" ino=1043 scontext=system_u:system_r:pcp_pmie_t:s0 tcontext=system_u:object_r:kmsg_device_t:s0 tclass=chr_file permissive=1 -+allow pcp_pmie_t kmsg_device_t:chr_file open; -+ -+#RHBZ1533080 -+allow pcp_pmie_t pcp_pmcd_t:process signal; - #============= pmda-lio ============== - allow pcp_pmcd_t configfs_t:dir { open read search }; - allow pcp_pmcd_t configfs_t:file { getattr open read }; - -commit 7ab2c18f36f96e73a93892bcabc2a53797aaeb54 -Author: Lukas Berk -Date: Fri Dec 8 10:42:59 2017 -0500 - - selinux: RHBZ1460131 add gettatr, open to pcp_var_lib_t:fifo_file - - adjust qa output - -diff --git a/qa/917.out.in b/qa/917.out.in -index 86805d11a..edd247e25 100644 ---- a/qa/917.out.in -+++ b/qa/917.out.in -@@ -19,7 +19,7 @@ decl 1: - allow [pcp_pmcd_t] [debugfs_t] : [dir] { read }; - allow [pcp_pmcd_t] [debugfs_t] : [file] { getattr ioctl open read }; - 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] { read unlink }; -+ allow [pcp_pmcd_t] [pcp_var_lib_t] : [fifo_file] { getattr read open unlink }; - allow [pcp_pmcd_t] self : [capability] { sys_ptrace net_admin chown ipc_owner }; - allow [pcp_pmcd_t] [initctl_t] : [fifo_file] { getattr }; - allow [pcp_pmcd_t] [proc_kcore_t] : [file] { getattr }; -diff --git a/src/selinux/pcpupstream.te.in b/src/selinux/pcpupstream.te.in -index 236a0ecf1..e6a504c8a 100644 ---- a/src/selinux/pcpupstream.te.in -+++ b/src/selinux/pcpupstream.te.in -@@ -97,8 +97,7 @@ 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 pcp_pmie_exec_t:file { execute execute_no_trans open read }; --allow pcp_pmcd_t pcp_var_lib_t:fifo_file { read unlink }; #RHBZ1460131 -- -+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 - diff --git a/SOURCES/rhbz1513503.patch b/SOURCES/rhbz1513503.patch deleted file mode 100644 index 48e984c..0000000 --- a/SOURCES/rhbz1513503.patch +++ /dev/null @@ -1,95 +0,0 @@ -commit dac8621e4d9b70cf5891ba00307dc1c4fdf9013a -Author: Nathan Scott -Date: Wed Oct 25 11:32:46 2017 +1100 - - build: multilib strikes again - updates since autoreconf work - -diff --git a/src/include/pcp/config.h.in b/src/include/pcp/config.h.in -index f9376b8b3..72b4e825e 100644 ---- a/src/include/pcp/config.h.in -+++ b/src/include/pcp/config.h.in -@@ -3,18 +3,6 @@ - /* Define to 1 if `TIOCGWINSZ' requires . */ - #undef GWINSZ_IN_SYS_IOCTL - --/* sizeof long */ --#undef HAVE_32BIT_LONG -- --/* pointer size */ --#undef HAVE_32BIT_PTR -- --/* sizeof long */ --#undef HAVE_64BIT_LONG -- --/* pointer size */ --#undef HAVE_64BIT_PTR -- - /* AI_ADDRCONFIG macro */ - #undef HAVE_AI_ADDRCONFIG - -@@ -48,6 +36,9 @@ - /* Define to 1 if you have the header file. */ - #undef HAVE_BITS_WORDSIZE_H - -+/* Define to 1 if you have the header file. */ -+#undef HAVE_BOOST_FLYWEIGHT_HPP -+ - /* Define to 1 if you have the `brk' function. */ - #undef HAVE_BRK - -@@ -697,12 +688,6 @@ - /* Define to the version of this package. */ - #undef PACKAGE_VERSION - --/* sizeof suseconds_t */ --#undef PM_SIZEOF_SUSECONDS_T -- --/* sizeof time_t */ --#undef PM_SIZEOF_TIME_T -- - /* Define as the return type of signal handlers (`int' or `void'). */ - #undef RETSIGTYPE - -diff --git a/src/include/pcp/configsz.h.in b/src/include/pcp/configsz.h.in -index d983b6e38..18d35197a 100644 ---- a/src/include/pcp/configsz.h.in -+++ b/src/include/pcp/configsz.h.in -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2014,2016 Red Hat. -+ * Copyright (c) 2014-2017 Red Hat. - * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published -@@ -14,20 +14,28 @@ - #ifndef PCP_CONFIGSZ_H - #define PCP_CONFIGSZ_H - --/* long and pointer must be either 32 bit or 64 bit */ -+/* sizeof long */ - #undef HAVE_64BIT_LONG -+ -+/* sizeof long */ - #undef HAVE_32BIT_LONG -+ -+/* pointer size */ - #undef HAVE_32BIT_PTR -+ -+/* pointer size */ - #undef HAVE_64BIT_PTR - --/* Check size of suseconds_t type (struct timeval) */ -+/* sizeof suseconds_t */ - #undef PM_SIZEOF_SUSECONDS_T -+ - #ifndef PM_SIZEOF_SUSECONDS_T - #error Unknown suseconds_t size - #endif - --/* Check size of time_t (struct timeval, timespec) */ -+/* sizeof time_t */ - #undef PM_SIZEOF_TIME_T -+ - #ifndef PM_SIZEOF_TIME_T - #error Unknown time_t size - #endif diff --git a/SOURCES/rhbz1525864.patch b/SOURCES/rhbz1525864.patch deleted file mode 100644 index 60007f3..0000000 --- a/SOURCES/rhbz1525864.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -Naurp pcp-3.12.2.orig/src/pmdas/perfevent/configparser.l pcp-3.12.2/src/pmdas/perfevent/configparser.l ---- pcp-3.12.2.orig/src/pmdas/perfevent/configparser.l 2017-09-06 06:00:26.000000000 +1000 -+++ pcp-3.12.2/src/pmdas/perfevent/configparser.l 2018-01-30 08:05:25.603971547 +1100 -@@ -289,6 +289,10 @@ static void set_pmcsetting_derived_scale - if (context_derived) - { - setting_lists = config->derivedArr[config->nDerivedEntries-1].setting_lists; -+ if (NULL == setting_lists) -+ { -+ return; -+ } - while (setting_lists->next) - { - setting_lists = setting_lists->next; -@@ -318,6 +322,10 @@ static void set_pmcsetting_cpuconfig(con - if (context_derived) - { - setting_lists = config->derivedArr[config->nDerivedEntries-1].setting_lists; -+ if (NULL == setting_lists) -+ { -+ return; -+ } - while (setting_lists->next) - { - setting_lists = setting_lists->next; diff --git a/SOURCES/rhbz1537623.patch b/SOURCES/rhbz1537623.patch deleted file mode 100644 index b6e5f1a..0000000 --- a/SOURCES/rhbz1537623.patch +++ /dev/null @@ -1,57 +0,0 @@ -commit 4117de7ca98a38b79d32398680e883b47d55fffa -Author: Nathan Scott -Date: Tue Jan 30 11:12:27 2018 +1100 - - build: more multilib fallout - drop accidental redefinitions - - Some 64 vs 32 bit macro definitions have been accidentally - duplicated into config.h (must reside in config{sz,32,64}.h). - - These then resulted in potentially incorrect pmlogrewrite - rules being generated in the build, which resulted in some - bad pmlogger setups happening internally. - - Tweak qa/377 to ensure this duplication doesn't occur again. - -diff --git a/qa/377 b/qa/377 -index 071b840cf..0f7854068 100755 ---- a/qa/377 -+++ b/qa/377 -@@ -15,19 +15,15 @@ echo "QA output created by $seq" - - if [ -f $PCP_INC_DIR/config.h ] - then -- # PCP 3.8.3 or later - defs=$PCP_INC_DIR/config.h --elif [ -f $PCP_INC_DIR/platform_header.h ] --then -- # PCP 3.6 or later -- defs=$PCP_INC_DIR/platform_header.h --elif [ -f $PCP_INC_DIR/platform_defs.h ] --then -- # older PCP versions -- defs=$PCP_INC_DIR/platform_defs.h - else - _notrun "No $PCP_INC_DIR headers found" - fi -+ -+# HAVE_64BIT_LONG should be in config{sz,64}.h, *not* here: -+grep '#define HAVE_64BIT_LONG' $defs >/dev/null 2>&1 && \ -+ _fail "HAVE_64BIT_LONG is defined in $defs" -+ - grep '#define HAVE_BITFIELDS_LTOR' $defs >/dev/null 2>&1 || \ - _notrun "HAVE_BITFIELDS_LTOR is false" - -diff --git a/src/pmdas/linux/mk.rewrite b/src/pmdas/linux/mk.rewrite -index a1f81b3b2..80355f0e0 100755 ---- a/src/pmdas/linux/mk.rewrite -+++ b/src/pmdas/linux/mk.rewrite -@@ -12,7 +12,7 @@ tmp=/var/tmp/$$ - trap "rm -f $tmp.*; exit 0" 0 1 2 3 15 - - cat <$tmp.c --#include -+#include - #if defined(HAVE_64BIT_LONG) - KERNEL_ULONG=PM_TYPE_U64 - #else diff --git a/SOURCES/selinux-pmstore.patch b/SOURCES/selinux-pmstore.patch deleted file mode 100644 index 87b4568..0000000 --- a/SOURCES/selinux-pmstore.patch +++ /dev/null @@ -1,44 +0,0 @@ -commit 8f75ee909cb751a1cc6b3988c5ba5476ca237de1 -Author: Lukas Berk -Date: Tue Oct 24 10:23:42 2017 -0400 - - selinux: rhbz1505888 - A pmstore command is blocked by SELinux - - Add to policy file, update testcase 917 - -diff --git a/qa/917.out.in b/qa/917.out.in -index b0073c23f..a8c337964 100644 ---- a/qa/917.out.in -+++ b/qa/917.out.in -@@ -43,6 +43,7 @@ decl 1: - allow [pcp_pmcd_t] [haproxy_var_lib_t] : [dir] { search }; - allow [pcp_pmcd_t] [haproxy_var_lib_t] : [sock_file] { write }; - allow [pcp_pmcd_t] [haproxy_t] : [unix_stream_socket] { connectto }; -+ allow [pcp_pmcd_t] [sysctl_fs_t] : [file] { write }; - 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 }; -diff --git a/src/selinux/pcpupstream.te.in b/src/selinux/pcpupstream.te.in -index f070e6024..5f48533c1 100644 ---- a/src/selinux/pcpupstream.te.in -+++ b/src/selinux/pcpupstream.te.in -@@ -19,6 +19,7 @@ require { - type pcp_pmmgr_t; - type pcp_tmp_t; - type sysctl_net_t; -+ type sysctl_fs_t; #RHBZ1505888 - type svirt_sandbox_file_t; - @PCP_SVIRT_LXC_NET_T@ - type virtd_t; # pmda.libvirt -@@ -163,6 +164,11 @@ allow pcp_pmcd_t virtd_t:unix_stream_socket connectto; - allow pcp_pmcd_t haproxy_var_lib_t:dir search; - allow pcp_pmcd_t haproxy_var_lib_t:sock_file write; - allow pcp_pmcd_t haproxy_t:unix_stream_socket connectto; -+ -+#type=AVC msg=audit(1508779244.425:386): avc: denied { write } for pid=2967 comm="pmdaxfs" name="stats_clear" dev="proc" ino=87731 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:sysctl_fs_t:s0 tclass=file -+#RHBZ1505888 -+allow pcp_pmcd_t sysctl_fs_t:file write; -+ - #============= pcp_pmlogger_t ============== - allow pcp_pmlogger_t kmsg_device_t:chr_file { open write }; - allow pcp_pmlogger_t self:capability kill; diff --git a/SOURCES/selinux.patch b/SOURCES/selinux.patch deleted file mode 100644 index b0c551e..0000000 --- a/SOURCES/selinux.patch +++ /dev/null @@ -1,411 +0,0 @@ -commit 60ae66d7478bd6c944442377274a3a365d0861bb -Author: Lukas Berk -Date: Fri Nov 24 10:24:44 2017 -0500 - - selinux: quick README update for tl:dr instructions - - selinux: rhbz1515928 allow nfsd_fs_t accesses (file/dir) - - Add to policy file, update testcase 917 - - build: selinux - directly test existance of semodule -X option - - Instead of guessing, based on distro, if the semodule command adjusts - for priority, we now directly test and decide what command to issue - based on the output. - - rpms: selinux - don't install policy file if selinux isnt active - - Added a runtime check to see, even if the system has the proper - packages for selinux, if it's enabled on the system. For example; - containers, may have selinux packages to install, but it's not enabled - by default. - - selinux: RHBZ1517656 - - Add three type enforcement context allowance lines - update qa, config bits for conditional context - - selinux: RHBZ1517862 postfix context access addition - - add context access for postfix_spool_t dir read's - update testcase - - selinux: rhbz1517655 add missing file:map access - - Added a single missing class capability for file's accessing maps - adjust qa and configure scripts accordingly to check - -diff --git a/configure b/configure -index d39b76e59..f8dceca28 100755 ---- a/configure -+++ b/configure -@@ -708,6 +708,8 @@ fmt_uint64 - fmt_int64 - fmt_pid - rdynamic_flag -+pcp_selinux_hostname_exec_map -+pcp_selinux_sock_file_getattr - pcp_selinux_tracefs - pcp_selinux_unreserved_port - pcp_selinux_systemd_exec -@@ -951,7 +953,6 @@ infodir - docdir - oldincludedir - includedir --runstatedir - localstatedir - sharedstatedir - sysconfdir -@@ -1098,7 +1099,6 @@ datadir='${datarootdir}' - sysconfdir='${prefix}/etc' - sharedstatedir='${prefix}/com' - localstatedir='${prefix}/var' --runstatedir='${localstatedir}/run' - includedir='${prefix}/include' - oldincludedir='/usr/include' - docdir='${datarootdir}/doc/${PACKAGE}' -@@ -1351,15 +1351,6 @@ do - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - -- -runstatedir | --runstatedir | --runstatedi | --runstated \ -- | --runstate | --runstat | --runsta | --runst | --runs \ -- | --run | --ru | --r) -- ac_prev=runstatedir ;; -- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ -- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ -- | --run=* | --ru=* | --r=*) -- runstatedir=$ac_optarg ;; -- - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ -@@ -1497,7 +1488,7 @@ fi - for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ -- libdir localedir mandir runstatedir -+ libdir localedir mandir - do - eval ac_val=\$$ac_var - # Remove trailing slashes. -@@ -1650,7 +1641,6 @@ Fine tuning of the installation directories: - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] -- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] -@@ -11800,6 +11790,8 @@ pcp_selinux_systemd_unit_file=false - pcp_selinux_systemd_exec=false - pcp_selinux_tracefs=false - pcp_selinux_unreserved_port=false -+pcp_selinux_sock_file_getattr=false -+pcp_selinux_hostname_exec_map=false - if test "x$enable_selinux" != "xfalse"; then : - - for policy_file in /etc/selinux/targeted/policy/policy.* -@@ -11856,6 +11848,17 @@ do - then - pcp_selinux_tracefs=true - fi -+ sock_file_getattr=`eval seinfo -x --class=sock_file -- $policy_file | grep getattr | awk '{ print $1 }'` -+ if test "x$sock_file_getattr" != "x" -+ then -+ pcp_selinux_sock_file_getattr=true -+ fi -+ hostname_exec_map_a=`eval seinfo -x --class=file -- $policy_file | grep map | awk '{ print $1 }'` -+ hostname_exec_map_b=`eval seinfo -x --common file -- $policy_file 2>/dev/null | grep map | awk '{ print $1 }'` -+ if test "x$hostname_exec_map_a" != "x" -o "x$hostname_exec_map_b" != "x" -+ then -+ pcp_selinux_hostname_exec_map=true -+ fi - - fi - done -@@ -11872,6 +11875,8 @@ fi - - - -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 - $as_echo_n "checking return type of signal handlers... " >&6; } - if ${ac_cv_type_signal+:} false; then : -diff --git a/configure.ac b/configure.ac -index ba799d146..42efb6bfe 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1937,6 +1937,8 @@ pcp_selinux_systemd_unit_file=false - pcp_selinux_systemd_exec=false - pcp_selinux_tracefs=false - pcp_selinux_unreserved_port=false -+pcp_selinux_sock_file_getattr=false -+pcp_selinux_hostname_exec_map=false - AS_IF([test "x$enable_selinux" != "xfalse"], [ - for policy_file in /etc/selinux/targeted/policy/policy.* - do -@@ -1992,6 +1994,17 @@ do - then - pcp_selinux_tracefs=true - fi -+ sock_file_getattr=`eval seinfo -x --class=sock_file -- $policy_file | grep getattr | awk '{ print $1 }'` -+ if test "x$sock_file_getattr" != "x" -+ then -+ pcp_selinux_sock_file_getattr=true -+ fi -+ hostname_exec_map_a=`eval seinfo -x --class=file -- $policy_file | grep map | awk '{ print $1 }'` -+ hostname_exec_map_b=`eval seinfo -x --common file -- $policy_file 2>/dev/null | grep map | awk '{ print $1 }'` -+ if test "x$hostname_exec_map_a" != "x" -o "x$hostname_exec_map_b" != "x" -+ then -+ pcp_selinux_hostname_exec_map=true -+ fi - - fi - done -@@ -2006,6 +2019,8 @@ AC_SUBST(pcp_selinux_systemd_unit_file) - AC_SUBST(pcp_selinux_systemd_exec) - AC_SUBST(pcp_selinux_unreserved_port) - AC_SUBST(pcp_selinux_tracefs) -+AC_SUBST(pcp_selinux_sock_file_getattr) -+AC_SUBST(pcp_selinux_hostname_exec_map) - - dnl Checks for library functions. - AC_TYPE_SIGNAL -diff --git a/qa/917 b/qa/917 -index 83a6ed684..9fc3a993e 100755 ---- a/qa/917 -+++ b/qa/917 -@@ -34,6 +34,9 @@ cap_userns_ptrace=`seinfo --class=cap_userns -x 2>&1 | grep "sys_ptrace$"` - unreserved_port_t=`seinfo -t | grep "unreserved_port_t$"` - tracefs_t=`seinfo -t | grep "tracefs_t$"` - class_status=`seinfo -x --class=system | grep "status$"` -+sock_file_getattr=`seinfo -x --class=sock_file | grep "getattr$"` -+hostname_exec_map_a=`seinfo -x --class=file | grep "map$"` -+hostname_exec_map_b=`seinfo -x --common=file 2>/dev/null | grep "map$"` - - _filter_semodule() - { -@@ -63,6 +66,9 @@ _filter_outfile() - -v cap_userns_ptrace="$cap_userns_ptrace" \ - -v unreserved_port_t="$unreserved_port_t" \ - -v tracefs_t="$tracefs_t" \ -+ -v sock_file_getattr="$sock_file_getattr" \ -+ -v hostname_exec_map_a="$hostname_exec_map_a" \ -+ -v hostname_exec_map_b="$hostname_exec_map_b" \ - '{ - if (container_t == "" && /container_runtime_t/) - !/container_runtime_t/ ; -@@ -90,6 +96,11 @@ _filter_outfile() - !/tracefs_t/ ; - else if (class_status == "" && /system.*status/) - !/system.*status/ ; -+ else if (sock_file_getattr == "" && /gpmctl_t/) -+ !/gpmctl_t/ ; -+ else if (hostname_exec_map_a == "" && hostname_exec_map_b == "" && /hostname_exec_t/ && /pcp_pmie_t/) { -+ printf(" allow [pcp_pmie_t] [hostname_exec_t] : [file] { execute execute_no_trans getattr open read };\n") -+ } - else - print; - }' -diff --git a/qa/917.out.in b/qa/917.out.in -index a8c337964..86805d11a 100644 ---- a/qa/917.out.in -+++ b/qa/917.out.in -@@ -44,6 +44,10 @@ decl 1: - allow [pcp_pmcd_t] [haproxy_var_lib_t] : [sock_file] { write }; - allow [pcp_pmcd_t] [haproxy_t] : [unix_stream_socket] { connectto }; - allow [pcp_pmcd_t] [sysctl_fs_t] : [file] { write }; -+ allow [pcp_pmcd_t] [nfsd_fs_t] : [dir] { search }; -+ allow [pcp_pmcd_t] [nfsd_fs_t] : [file] { getattr open read }; -+ allow [pcp_pmcd_t] [gpmctl_t] : [sock_file] { getattr }; -+ allow [pcp_pmcd_t] [postfix_spool_t] : [dir] { read }; - 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 }; -@@ -54,7 +58,7 @@ decl 1: - 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] [user_home_dir_t] : [dir] { search }; -- allow [pcp_pmie_t] [hostname_exec_t] : [file] { execute execute_no_trans getattr open read }; -+ 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] [init_t] : [unix_stream_socket] { connectto }; - allow [pcp_pmie_t] [initrc_var_run_t] : [file] { lock open read }; -@@ -63,6 +67,7 @@ decl 1: - allow [pcp_pmie_t] [systemd_systemctl_exec_t] : [file] { execute execute_no_trans getattr open read }; - allow [pcp_pmie_t] [unconfined_t] : [unix_stream_socket] { connectto }; - allow [pcp_pmie_t] [pcp_pmie_exec_t] : [file] { execute_no_trans }; -+ allow [pcp_pmie_t] [proc_net_t] : [file] { read }; - 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 }; -@@ -75,6 +80,7 @@ decl 1: - allow [pcp_pmproxy_t] self : [capability] { 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 }; - allow [pcp_pmmgr_t] [unreserved_port_t] : [tcp_socket] { name_bind }; - allow [pcp_pmmgr_t] [unconfined_t] : [unix_stream_socket] { connectto }; - -diff --git a/src/include/builddefs.in b/src/include/builddefs.in -index e75a08d61..40fc380fb 100644 ---- a/src/include/builddefs.in -+++ b/src/include/builddefs.in -@@ -265,6 +265,8 @@ PCP_SELINUX_SYSTEMD_UNIT_FILE = @pcp_selinux_systemd_unit_file@ - PCP_SELINUX_SYSTEMD_EXEC = @pcp_selinux_systemd_exec@ - PCP_SELINUX_UNRESERVED_PORT = @pcp_selinux_unreserved_port@ - PCP_SELINUX_TRACEFS = @pcp_selinux_tracefs@ -+PCP_SELINUX_SOCK_FILE_GETATTR = @pcp_selinux_sock_file_getattr@ -+PCP_SELINUX_HOSTNAME_EXEC_MAP = @pcp_selinux_hostname_exec_map@ - - # for code supporting any modern version of perl - HAVE_PERL = @have_perl@ -diff --git a/src/selinux/GNUlocaldefs b/src/selinux/GNUlocaldefs -index 32f493a8a..65c296611 100644 ---- a/src/selinux/GNUlocaldefs -+++ b/src/selinux/GNUlocaldefs -@@ -58,3 +58,12 @@ 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 }\;" - endif -+ -+ifeq "$(PCP_SELINUX_SOCK_FILE_GETATTR)" "true" -+PCP_SOCK_FILE_GETATTR="class sock_file getattr\;" -+PCP_SOCK_FILE_GETATTR_RULE="allow pcp_pmcd_t gpmctl_t:sock_file getattr\;" -+endif -+ -+ifeq "$(PCP_SELINUX_HOSTNAME_EXEC_MAP)" "true" -+PCP_HOSTNAME_EXEC_MAP=" map " -+endif -\ No newline at end of file -diff --git a/src/selinux/GNUmakefile b/src/selinux/GNUmakefile -index ed4132b80..6635c8e7b 100644 ---- a/src/selinux/GNUmakefile -+++ b/src/selinux/GNUmakefile -@@ -58,6 +58,9 @@ $(IAM).te: $(IAM).te.in - -e 's;@PCP_TRACEFS_FS_RULE@;'$(PCP_TRACEFS_FS_RULE)';' \ - -e 's;@PCP_TRACEFS_DIR_RULE@;'$(PCP_TRACEFS_DIR_RULE)';' \ - -e 's;@PCP_TRACEFS_FILE_RULE@;'$(PCP_TRACEFS_FILE_RULE)';' \ -+ -e 's;@PCP_SOCK_FILE_GETATTR@;'$(PCP_SOCK_FILE_GETATTR)';' \ -+ -e 's;@PCP_SOCK_FILE_GETATTR_RULE@;'$(PCP_SOCK_FILE_GETATTR_RULE)';' \ -+ -e 's;@PCP_HOSTNAME_EXEC_MAP@;'$(PCP_HOSTNAME_EXEC_MAP)';' \ - - # END - make -f /usr/share/selinux/devel/Makefile -diff --git a/src/selinux/README b/src/selinux/README -index af7d51be1..b071bbd5a 100644 ---- a/src/selinux/README -+++ b/src/selinux/README -@@ -1,5 +1,28 @@ - PCP SELinux Module - -+== TL;DR == -+ -+Dammit Jim, I'm a developer, not a selinux expert! -+ -+Ok ok, AVC denials are logged in /var/log/audit/audit.log Pull out the -+relevant errors, and either, forward that along with the bug/pull -+request for us to add/fix, or run: -+ -+cat /var/log/audit/audit.log | audit2allow -w -+ -+which will verify that the avc is not already covered in the pcp -+policy file, and then: -+ -+cat /var/log/audit/audit.log | audit2allow -M mypolicy -+semodule -i mypolicy.pp -+ -+Be careful you understand what context accesses you're allowing with -+this policy, and that they *should* be allowed. -+ -+If you choose the latter, please be a good samaritan and forward the -+relevant avc denials upstream for the community to apply and ship the -+updated policy package. -+ - == Building == - - make -f /usr/share/selinux/devel/Makefile -diff --git a/src/selinux/pcpupstream.te.in b/src/selinux/pcpupstream.te.in -index 5f48533c1..236a0ecf1 100644 ---- a/src/selinux/pcpupstream.te.in -+++ b/src/selinux/pcpupstream.te.in -@@ -31,6 +31,7 @@ require { - type saslauthd_t; # pcp-lio - type modules_object_t; # pcp-lio - @PCP_NSFS_T@ -+ type nfsd_fs_t; #RHBZ1515928 - type pcp_pmie_exec_t; # pmdasummary - @PCP_SYSTEMCTL_UNIT_FILE_T@ - @PCP_SYSTEMCTL_EXEC_T@ -@@ -45,8 +46,11 @@ require { - type haproxy_t; # pmda.haproxy - type websm_port_t; # pmda.prometheus - type dey_sapi_port_t; #RHBZ1447585 -+ type gpmctl_t; #RHBZ1517656 -+ type proc_net_t; #RHBZ1517656 -+ type postfix_spool_t; #RHBZ1517862 - class lnk_file { read getattr }; -- class file { append create execute execute_no_trans getattr ioctl lock open read write }; -+ 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 }; -@@ -55,6 +59,7 @@ require { - class fifo_file { getattr read open unlink }; # qa/455 - class process signal; #RHBZ1443632 - class sock_file write; #RHBZ1449671 -+ @PCP_SOCK_FILE_GETATTR@ - @PCP_CLASS_STATUS@ - class tcp_socket { name_bind name_connect }; - class shm { unix_read associate getattr }; -@@ -169,6 +174,15 @@ allow pcp_pmcd_t haproxy_t:unix_stream_socket connectto; - #RHBZ1505888 - allow pcp_pmcd_t sysctl_fs_t:file write; - -+#RHBZ1515928 -+allow pcp_pmcd_t nfsd_fs_t:dir search; -+allow pcp_pmcd_t nfsd_fs_t:file { getattr open read }; -+ -+#RHBZ1517656 -+@PCP_SOCK_FILE_GETATTR_RULE@ -+ -+#RHBZ1517862 -+allow pcp_pmcd_t postfix_spool_t:dir read; - #============= pcp_pmlogger_t ============== - allow pcp_pmlogger_t kmsg_device_t:chr_file { open write }; - allow pcp_pmlogger_t self:capability kill; -@@ -199,7 +213,7 @@ allow pcp_pmlogger_t dey_sapi_port_t:tcp_socket name_connect; - allow pcp_pmlogger_t user_home_dir_t:dir search; - - #============= pcp_pmie_t ============== --allow pcp_pmie_t hostname_exec_t:file { execute execute_no_trans getattr open read }; -+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 }; -@@ -233,6 +247,10 @@ allow pcp_pmie_t unconfined_t:unix_stream_socket connectto; - - #audit: type=1400 audit(1504924094.677:197): avc: denied { execute_no_trans } for pid=3703 comm=pmie_check path=/usr/bin/pmie dev=dm-0 ino=2506240 scontext=system_u:system_r:pcp_pmie_t:s0 tcontext=system_u:object_r:pcp_pmie_exec_t:s0 tclass=file permissive=0 - allow pcp_pmie_t pcp_pmie_exec_t:file execute_no_trans; -+ -+#RHBZ1517656 -+allow pcp_pmie_t proc_net_t:file read; -+ - #============= pmda-lio ============== - allow pcp_pmcd_t configfs_t:dir { open read search }; - allow pcp_pmcd_t configfs_t:file { getattr open read }; -@@ -259,6 +277,11 @@ allow pcp_pmproxy_t sysctl_net_t:file { getattr open read }; - - #type=AVC msg=audit(1498837089.845:16693): avc: denied { search } for pid=14446 comm="pmproxy" name="net" dev="proc" ino=1168 scontext=system_u:system_r:pcp_pmproxy_t:s0 tcontext=system_u:object_r:sysctl_net_t:s0 tclass=dir permissive=0 - allow pcp_pmproxy_t sysctl_net_t:dir search; -+ -+#type=AVC msg=audit(1511771694.686:575): avc: denied { read } for pid=28833 comm="pmproxy" name="unix" dev="proc" ino=4026532015 scontext=system_u:system_r:pcp_pmproxy_t:s0 tcontext=system_u:object_r:proc_net_t:s0 tclass=file -+#RHBZ1517656 -+allow pcp_pmproxy_t proc_net_t:file read; -+ - #============= pcp_pmmgr_t ============== - - #type=AVC msg=audit(1498835526.281:10254): avc: denied { name_bind } for pid=13114 comm="pmlogger" src=4332 scontext=system_u:system_r:pcp_pmmgr_t:s0 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=tcp_socket permissive=0 diff --git a/SPECS/pcp.spec b/SPECS/pcp.spec index e986729..c705559 100644 --- a/SPECS/pcp.spec +++ b/SPECS/pcp.spec @@ -1,27 +1,30 @@ Name: pcp -Version: 3.12.2 -Release: 5%{?dist} +Version: 4.1.0 +Release: 4%{?dist} Summary: System-level performance monitoring and performance management License: GPLv2+ and LGPLv2.1+ and CC-BY -URL: http://www.pcp.io +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.1.2/pcp-webapp-vector-1.1.2.tar.gz +Source1: %{github}/pcp-webapp-vector/archive/1.2.2/pcp-webapp-vector-1.2.2.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 -Patch0: rhbz1513503.patch -Patch1: selinux-pmstore.patch -Patch2: selinux.patch -Patch3: logmeta.patch -Patch4: rhbz1488116.patch -Patch5: rhbz1525864.patch -Patch6: rhbz1537623.patch +# bcc/kernel compatibility (needed for the life of RHEL7) +Patch1: redhat-bugzilla-1597975.patch +# selinux rollup patch +Patch2: redhat-bugzilla-1603596.patch + +%if 0%{?fedora} >= 26 || 0%{?rhel} > 7 +%global __python2 python2 +%else +%global __python2 python +%endif %if 0%{?fedora} || 0%{?rhel} > 5 %global disable_selinux 0 @@ -49,9 +52,15 @@ Patch6: rhbz1537623.patch %endif %global disable_microhttpd 0 +%global disable_webapps 0 %global disable_cairo 0 +%if 0%{?rhel} > 7 +%global disable_python2 1 +%else %global disable_python2 0 +%endif + # Default for epel5 is python24, so use the (optional) python26 packages %if 0%{?rhel} == 5 %global default_python 26 @@ -73,6 +82,17 @@ Patch6: rhbz1537623.patch %global perl_interpreter perl %endif +# support for pmdabcc +%if 0%{?fedora} >= 25 || 0%{?rhel} > 6 +%ifarch s390 s390x armv7hl aarch64 i686 +%global disable_bcc 1 +%else +%global disable_bcc 0 +%endif +%else +%global disable_bcc 1 +%endif + # support for pmdajson %if 0%{?rhel} == 0 || 0%{?rhel} > 6 %if !%{disable_python2} || !%{disable_python3} @@ -141,16 +161,14 @@ Patch6: rhbz1537623.patch %global disable_noarch 1 %endif -%if 0%{?fedora} >= 24 +%if 0%{?fedora} >= 24 || 0%{?rhel} > 7 %global disable_elasticsearch 0 %else %global disable_elasticsearch 1 %endif -# python's xlsxwriter module hasn't been included yet, but hopefully -# it will be eventually, leaving this as a variable for now. -%if 0%{?fedora} || 0%{?rhel} -%global disable_xlsx 1 +%if 0%{?fedora} >= 24 +%global disable_xlsx 0 %else %global disable_xlsx 1 %endif @@ -158,19 +176,19 @@ Patch6: rhbz1537623.patch # prevent conflicting binary and man page install for pcp(1) Conflicts: librapi -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B BuildRequires: gcc gcc-c++ BuildRequires: procps autoconf bison flex BuildRequires: nss-devel BuildRequires: rpm-devel BuildRequires: avahi-devel +BuildRequires: xz-devel BuildRequires: zlib-devel %if !%{disable_python2} %if 0%{?default_python} != 3 BuildRequires: python%{?default_python}-devel %else -BuildRequires: python-devel +BuildRequires: %{__python2}-devel %endif %endif %if !%{disable_python3} @@ -197,10 +215,13 @@ BuildRequires: systemtap-sdt-devel %if !%{disable_boost} BuildRequires: boost-devel %endif -%if 0%{?rhel} == 0 || 0%{?rhel} > 5 -BuildRequires: perl-devel +%if 0%{?rhel} == 0 || 0%{?rhel} > 7 +BuildRequires: perl-generators %endif -BuildRequires: perl(ExtUtils::MakeMaker) +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 %if !%{disable_systemd} BuildRequires: systemd-devel @@ -215,19 +236,21 @@ BuildRequires: qt5-qtsvg-devel %endif %endif -Requires: bash gawk sed grep fileutils findutils initscripts which +Requires: bash gawk sed grep findutils initscripts 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 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 Requires: pcp-libs = %{version}-%{release} -Obsoletes: pcp-gui-debuginfo %global tapsetdir %{_datadir}/systemtap/tapset @@ -280,6 +303,12 @@ Obsoletes: pcp-gui-debuginfo %global _with_perfevent --with-perfevent=yes %endif +%if %{disable_bcc} +%global _with_bcc --with-pmdabcc=no +%else +%global _with_bcc --with-pmdabcc=yes +%endif + %if %{disable_json} %global _with_json --with-pmdajson=no %else @@ -298,44 +327,38 @@ Obsoletes: pcp-gui-debuginfo %global _with_snmp --with-pmdasnmp=yes %endif +%if %{disable_webapps} +%global _with_webapps --with-webapps=no +%else +%global _with_webapps --with-webapps=yes +%endif + %global pmda_remove() %{expand: if [ %1 -eq 0 ] then - if [ -f "%{_confdir}/pmcd/pmcd.conf" ] && [ -f "%{_pmdasdir}/%2/domain.h" ] + if [ -f "%{_confdir}/pmcd/pmcd.conf" -a -f "%{_pmdasdir}/%2/domain.h" ] then (cd %{_pmdasdir}/%2/ && ./Remove >/dev/null 2>&1) fi 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 [ -e /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled +if [ %1 -ge 1 ] then - if [ %1 -ge 1 ] - then - PCP_SELINUX_DIR=%{_selinuxdir} - if [ -f "$PCP_SELINUX_DIR/%2" ] - then - if semodule -h | grep -q -- "-X" >/dev/null 2>&1 - then - (semodule -X 400 -i %{_selinuxdir}/%2) - else - (semodule -i %{_selinuxdir}/%2) - fi #semodule -X flag check - fi - elif [ %1 -eq 0 ] - then - if semodule -l | grep %2 >/dev/null 2>&1 - then - if semodule -h | grep -q -- "-X" >/dev/null 2>&1 - then - (semodule -X 400 -r %2 >/dev/null) - else - (semodule -r %2 >/dev/null) - fi #semodule -X flag check - fi - fi -fi # check for an active selinux install + %{_libexecdir}/pcp/bin/selinux-setup %{_selinuxdir} install %2 +elif [ %1 -eq 0 ] +then + %{_libexecdir}/pcp/bin/selinux-setup %{_selinuxdir} remove %2 +fi } %description @@ -353,7 +376,7 @@ applications to easily retrieve and process any subset of that data. License: LGPLv2.1+ Group: System Environment/Libraries Summary: Performance Co-Pilot run-time configuration -URL: http://www.pcp.io +URL: https://pcp.io # http://fedoraproject.org/wiki/Packaging:Conflicts "Splitting Packages" Conflicts: pcp-libs < 3.9 @@ -368,7 +391,7 @@ Performance Co-Pilot (PCP) run-time configuration License: LGPLv2.1+ Group: System Environment/Libraries Summary: Performance Co-Pilot run-time libraries -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-conf = %{version}-%{release} %description libs @@ -381,7 +404,8 @@ Performance Co-Pilot (PCP) run-time libraries License: GPLv2+ and LGPLv2.1+ Group: Development/Libraries Summary: Performance Co-Pilot (PCP) development headers -URL: http://www.pcp.io +URL: https://pcp.io +Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} %description libs-devel Performance Co-Pilot (PCP) headers for development. @@ -393,7 +417,7 @@ Performance Co-Pilot (PCP) headers for development. License: GPLv2+ and LGPLv2.1+ Group: Development/Libraries Summary: Performance Co-Pilot (PCP) development tools and documentation -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} Requires: pcp-libs = %{version}-%{release} Requires: pcp-libs-devel = %{version}-%{release} @@ -408,7 +432,7 @@ Performance Co-Pilot (PCP) documentation and tools for development. License: GPLv2+ Group: Development/Libraries Summary: Performance Co-Pilot (PCP) test suite -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} Requires: pcp-libs = %{version}-%{release} Requires: pcp-libs-devel = %{version}-%{release} @@ -425,7 +449,7 @@ Quality assurance test suite for Performance Co-Pilot (PCP). License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) manager daemon -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} %description manager @@ -444,8 +468,9 @@ scripts. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) web API service -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} +Requires: liberation-sans-fonts %description webapi Provides a daemon (pmwebd) that binds a large subset of the Performance @@ -453,11 +478,12 @@ Co-Pilot (PCP) client API (PMAPI) to RESTful web applications using the HTTP (PMWEBAPI) protocol. %endif +%if !%{disable_webapps} # # pcp-webjs and pcp-webapp packages # %package webjs -License: ASL2.0 and MIT and CC-BY +License: ASL 2.0 and MIT and CC-BY and GPLv3 Group: Applications/Internet Conflicts: pcp-webjs < 3.11.9 %if !%{disable_noarch} @@ -466,14 +492,14 @@ BuildArch: noarch Requires: pcp-webapp-vector pcp-webapp-blinkenlights Requires: pcp-webapp-graphite pcp-webapp-grafana Summary: Performance Co-Pilot (PCP) web applications -URL: http://www.pcp.io +URL: https://pcp.io %description webjs Javascript web application content for the Performance Co-Pilot (PCP) web service. %package webapp-vector -License: ASL2.0 +License: ASL 2.0 Group: Applications/Internet %if !%{disable_noarch} BuildArch: noarch @@ -485,7 +511,7 @@ URL: https://github.com/Netflix/vector Vector web application for the Performance Co-Pilot (PCP). %package webapp-grafana -License: ASL2.0 +License: ASL 2.0 Group: Applications/Internet Conflicts: pcp-webjs < 3.10.4 %if !%{disable_noarch} @@ -505,7 +531,7 @@ Grafana can render time series dashboards at the browser via flot.js server via png (less interactive, faster). %package webapp-graphite -License: ASL2.0 +License: ASL 2.0 and GPLv3 Group: Applications/Internet Conflicts: pcp-webjs < 3.10.4 %if !%{disable_noarch} @@ -521,17 +547,18 @@ as the data repository, and Graphites web interface renders it. The Carbon and Whisper subsystems of Graphite are not included nor used. %package webapp-blinkenlights -License: ASL2.0 +License: ASL 2.0 Group: Applications/Internet %if !%{disable_noarch} BuildArch: noarch %endif Summary: Blinking lights web application for Performance Co-Pilot (PCP) -URL: http://pcp.io +URL: https://pcp.io %description webapp-blinkenlights Demo web application showing traffic lights that change colour based on the periodic evaluation of performance metric expressions. +%endif # # perl-PCP-PMDA. This is the PCP agent perl binding. @@ -540,7 +567,7 @@ on the periodic evaluation of performance metric expressions. License: GPLv2+ Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Perl bindings and documentation -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} Requires: %{perl_interpreter} @@ -558,7 +585,7 @@ an application, etc. License: GPLv2+ Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Perl bindings for PCP Memory Mapped Values -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} Requires: %{perl_interpreter} @@ -577,7 +604,7 @@ and analysis with pmchart, pmie, pmlogger and other PCP tools. License: GPLv2+ Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Perl bindings for importing external data into PCP archives -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} Requires: %{perl_interpreter} @@ -593,7 +620,7 @@ they can be replayed with standard PCP monitoring tools. License: GPLv2+ Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Perl bindings for post-processing output of pmlogsummary -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} Requires: %{perl_interpreter} @@ -612,10 +639,9 @@ exporting this data into third-party tools (e.g. spreadsheets). License: LGPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for importing sar data into PCP archive logs -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} Requires: perl-PCP-LogImport = %{version}-%{release} -Requires: sysstat Requires: perl(XML::TokeParser) %description import-sar2pcp @@ -629,10 +655,9 @@ into standard PCP archive logs for replay with any PCP monitoring tool. License: LGPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for importing iostat data into PCP archive logs -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} Requires: perl-PCP-LogImport = %{version}-%{release} -Requires: sysstat %description import-iostat2pcp Performance Co-Pilot (PCP) front-end tools for importing iostat data @@ -645,7 +670,7 @@ into standard PCP archive logs for replay with any PCP monitoring tool. License: LGPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for importing MTRG data into PCP archive logs -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} Requires: perl-PCP-LogImport = %{version}-%{release} @@ -660,7 +685,7 @@ into standard PCP archive logs for replay with any PCP monitoring tool. License: LGPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for importing ganglia data into PCP archive logs -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} Requires: perl-PCP-LogImport = %{version}-%{release} @@ -675,7 +700,7 @@ into standard PCP archive logs for replay with any PCP monitoring tool. License: LGPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for importing collectl log files into PCP archive logs -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description import-collectl2pcp @@ -689,7 +714,7 @@ into standard PCP archive logs for replay with any PCP monitoring tool. License: GPLv2+ Group: Applications/System Summary: Module for exporting PCP metrics to Zabbix agent -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description export-zabbix-agent @@ -705,16 +730,16 @@ Zabbix via the Zabbix agent - see zbxpcp(3) for further details. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics to ElasticSearch -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} %if !%{disable_python3} Requires: python3-pcp = %{version}-%{release} Requires: python3-elasticsearch BuildRequires: python3-elasticsearch %else -Requires: python-pcp = %{version}-%{release} -Requires: python-elasticsearch -BuildRequires: python-elasticsearch +Requires: %{__python2}-pcp = %{version}-%{release} +Requires: %{__python2}-elasticsearch +BuildRequires: %{__python2}-elasticsearch %endif %description export-pcp2elasticsearch @@ -729,12 +754,12 @@ See https://www.elastic.co/community for further details. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics to Graphite -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} %if !%{disable_python3} Requires: python3-pcp = %{version}-%{release} %else -Requires: python-pcp = %{version}-%{release} +Requires: %{__python2}-pcp = %{version}-%{release} %endif %description export-pcp2graphite @@ -747,14 +772,14 @@ to graphite (http://graphite.readthedocs.org). License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics to InfluxDB -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} %if !%{disable_python3} Requires: python3-pcp = %{version}-%{release} Requires: python3-requests %else -Requires: python-pcp = %{version}-%{release} -Requires: python-requests +Requires: %{__python2}-pcp = %{version}-%{release} +Requires: %{__python2}-requests %endif %description export-pcp2influxdb @@ -768,12 +793,12 @@ to InfluxDB (https://influxdata.com/time-series-platform/influxdb). License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics in JSON format -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} %if !%{disable_python3} Requires: python3-pcp = %{version}-%{release} %else -Requires: python-pcp = %{version}-%{release} +Requires: %{__python2}-pcp = %{version}-%{release} %endif %description export-pcp2json @@ -788,12 +813,16 @@ in JSON format. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics to Excel -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} %if !%{disable_python3} Requires: python3-pcp = %{version}-%{release} +Requires: python3-openpyxl +BuildRequires: python3-openpyxl %else -Requires: python-pcp = %{version}-%{release} +Requires: %{__python2}-pcp = %{version}-%{release} +Requires: %{__python2}-openpyxl +BuildRequires: %{__python2}-openpyxl %endif %description export-pcp2xlsx @@ -807,12 +836,12 @@ in Excel spreadsheet format. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics in XML format -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} %if !%{disable_python3} Requires: python3-pcp = %{version}-%{release} %else -Requires: python-pcp = %{version}-%{release} +Requires: %{__python2}-pcp = %{version}-%{release} %endif %description export-pcp2xml @@ -826,12 +855,12 @@ in XML format. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot tools for exporting PCP metrics to Zabbix -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs >= %{version}-%{release} %if !%{disable_python3} Requires: python3-pcp = %{version}-%{release} %else -Requires: python-pcp = %{version}-%{release} +Requires: %{__python2}-pcp = %{version}-%{release} %endif %description export-pcp2zabbix @@ -847,7 +876,7 @@ to the Zabbix (https://www.zabbix.org/) monitoring software. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Performance API and hardware counters -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} BuildRequires: papi-devel @@ -864,7 +893,7 @@ collecting hardware counters statistics through PAPI (Performance API). License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for hardware counters -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} Requires: libpfm >= 4 BuildRequires: libpfm-devel >= 4 @@ -882,7 +911,7 @@ collecting hardware counters statistics through libpfm. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Infiniband HCAs and switches -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} Requires: libibmad >= 1.3.7 libibumad >= 1.3.7 BuildRequires: libibmad-devel >= 1.3.7 libibumad-devel >= 1.3.7 @@ -900,7 +929,7 @@ but can also be configured to monitor remote GUIDs such as IB switches. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for ActiveMQ -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} Requires: perl(LWP::UserAgent) @@ -916,7 +945,7 @@ collecting metrics about the ActiveMQ message broker. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for BIND servers -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} Requires: perl(LWP::UserAgent) Requires: perl(XML::LibXML) @@ -934,7 +963,7 @@ collecting metrics from BIND (Berkeley Internet Name Domain). License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Redis -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-redis @@ -950,7 +979,7 @@ collecting metrics from Redis servers (redis.io). License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for NutCracker (TwemCache) -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} Requires: perl(YAML::XS::LibYAML) Requires: perl(JSON) @@ -968,7 +997,7 @@ collecting metrics from NutCracker (TwemCache). License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Bonded network interfaces -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-bonding @@ -983,7 +1012,7 @@ collecting metrics about bonded network interfaces. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Database response times and Availablility -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-dbping @@ -998,7 +1027,7 @@ collecting metrics about the Database response times and Availablility. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for 389 Directory Servers -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} Requires: perl-LDAP @@ -1014,7 +1043,7 @@ collecting metrics about a 389 Directory Server. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for 389 Directory Server Loggers -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} Requires: perl-Date-Manip @@ -1030,7 +1059,7 @@ collecting metrics from a 389 Directory Server log. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Elasticsearch -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} Requires: perl(LWP::UserAgent) BuildRequires: perl(LWP::UserAgent) @@ -1047,7 +1076,7 @@ collecting metrics about Elasticsearch. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for GPFS Filesystem -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-gpfs @@ -1062,7 +1091,7 @@ collecting metrics about the GPFS filesystem. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for a GPS Daemon -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-gpsd @@ -1077,7 +1106,7 @@ collecting metrics about a GPS Daemon. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for KVM -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-kvm @@ -1092,7 +1121,8 @@ collecting metrics about the Kernel based Virtual Machine. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from the Docker daemon -URL: http://www.pcp.io +URL: https://pcp.io +Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} %description pmda-docker This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1106,7 +1136,7 @@ collecting metrics using the Docker daemon REST API. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Lustre Filesytem -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-lustre @@ -1121,7 +1151,7 @@ collecting metrics about the Lustre Filesystem. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Lustre Filesytem Comms -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} Requires: pcp-libs = %{version}-%{release} @@ -1137,7 +1167,7 @@ collecting metrics about the Lustre Filesystem Comms. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Memcached -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-memcache @@ -1152,7 +1182,7 @@ collecting metrics about Memcached. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for MySQL -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} Requires: perl(DBI) perl(DBD::mysql) BuildRequires: perl(DBI) perl(DBD::mysql) @@ -1169,7 +1199,7 @@ collecting metrics about the MySQL database. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Named -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-named @@ -1183,7 +1213,7 @@ collecting metrics about the Named nameserver. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Netfilter framework -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-netfilter @@ -1198,7 +1228,7 @@ collecting metrics about the Netfilter packet filtering framework. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Usenet News -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-news @@ -1213,7 +1243,7 @@ collecting metrics about Usenet News. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Nginx Webserver -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} Requires: perl(LWP::UserAgent) BuildRequires: perl(LWP::UserAgent) @@ -1230,7 +1260,7 @@ collecting metrics about the Nginx Webserver. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for NFS Clients -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-nfsclient @@ -1245,7 +1275,7 @@ collecting metrics for NFS Clients. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Oracle database -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} Requires: perl(DBI) BuildRequires: perl(DBI) @@ -1262,7 +1292,7 @@ collecting metrics about the Oracle database. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for PowerDNS -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-pdns @@ -1277,7 +1307,7 @@ collecting metrics about the PowerDNS. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Postfix (MTA) -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %if 0%{?fedora} > 16 || 0%{?rhel} > 5 Requires: postfix-perl-scripts @@ -1304,7 +1334,7 @@ collecting metrics about the Postfix (MTA). License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for PostgreSQL -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} Requires: perl(DBI) perl(DBD::Pg) BuildRequires: perl(DBI) perl(DBD::Pg) @@ -1321,7 +1351,7 @@ collecting metrics about the PostgreSQL database. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Rsyslog -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-rsyslog @@ -1336,7 +1366,7 @@ collecting metrics about Rsyslog. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Samba -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-samba @@ -1351,7 +1381,7 @@ collecting metrics about Samba. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for NFS Clients -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-slurm @@ -1367,7 +1397,7 @@ collecting metrics from the SLURM Workload Manager. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Simple Network Management Protocol -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} # There are no perl-Net-SNMP packages in rhel, disable unless non-rhel or epel5 %if 0%{?rhel} == 0 || 0%{?rhel} < 6 @@ -1387,7 +1417,7 @@ collecting metrics about SNMP. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for VMware -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-vmware @@ -1402,7 +1432,7 @@ collecting metrics for VMware. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Zimbra -URL: http://www.pcp.io +URL: https://pcp.io Requires: perl-PCP-PMDA = %{version}-%{release} %description pmda-zimbra @@ -1417,7 +1447,7 @@ collecting metrics about Zimbra. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Device Mapper Cache and Thin Client -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-dm This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1425,6 +1455,29 @@ collecting metrics about the Device Mapper Cache and Thin Client. # end pcp-pmda-dm +%if !%{disable_bcc} +# +# pcp-pmda-bcc +# +%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 +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. +# end pcp-pmda-bcc +%endif + %if !%{disable_python2} || !%{disable_python3} # # pcp-pmda-gluster @@ -1433,11 +1486,11 @@ collecting metrics about the Device Mapper Cache and Thin Client. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Gluster filesystem -URL: http://www.pcp.io +URL: https://pcp.io %if !%{disable_python3} Requires: python3-pcp %else -Requires: python-pcp +Requires: %{__python2}-pcp %endif %description pmda-gluster This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1451,11 +1504,11 @@ collecting metrics about the gluster filesystem. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for compressed swap -URL: http://www.pcp.io +URL: https://pcp.io %if !%{disable_python3} Requires: python3-pcp %else -Requires: python-pcp +Requires: %{__python2}-pcp %endif %description pmda-zswap This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1469,11 +1522,11 @@ collecting metrics about compressed swap. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Unbound DNS Resolver -URL: http://www.pcp.io +URL: https://pcp.io %if !%{disable_python3} Requires: python3-pcp %else -Requires: python-pcp +Requires: %{__python2}-pcp %endif %description pmda-unbound This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1487,11 +1540,11 @@ collecting metrics about the Unbound DNS Resolver. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Intel MIC cards -URL: http://www.pcp.io +URL: https://pcp.io %if !%{disable_python3} Requires: python3-pcp %else -Requires: python-pcp +Requires: %{__python2}-pcp %endif %description pmda-mic This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1505,11 +1558,11 @@ collecting metrics about Intel MIC cards. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for HAProxy -URL: http://www.pcp.io +URL: https://pcp.io %if !%{disable_python3} Requires: python3-pcp %else -Requires: python-pcp +Requires: %{__python2}-pcp %endif %description pmda-haproxy This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1523,16 +1576,21 @@ extracting performance metrics from HAProxy over the HAProxy stats socket. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for virtual machines -URL: http://www.pcp.io +URL: https://pcp.io %if !%{disable_python3} Requires: python3-pcp Requires: libvirt-python3 python3-lxml BuildRequires: libvirt-python3 python3-lxml %else -Requires: python-pcp -Requires: libvirt-python python-lxml -%if 0%{?rhel} == 0 || 0%{?rhel} > 5 -BuildRequires: libvirt-python python-lxml +%if 0%{?rhel} == 0 || 0%{?fedora} >= 27 +Requires: %{__python2}-pcp +Requires: %{__python2}-libvirt %{__python2}-lxml +BuildRequires: %{__python2}-libvirt %{__python2}-lxml +%endif +%if 0%{?rhel} > 5 +Requires: %{__python2}-pcp +Requires: libvirt-%{__python2} %{__python2}-lxml +BuildRequires: libvirt-%{__python2} %{__python2}-lxml %endif %endif %description pmda-libvirt @@ -1548,15 +1606,15 @@ and hypervisor machines. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the LIO subsystem -URL: http://www.pcp.io +URL: https://pcp.io %if !%{disable_python3} Requires: python3-pcp Requires: python3-rtslib BuildRequires: python3-rtslib %else -Requires: python-pcp -Requires: python-rtslib -BuildRequires: python-rtslib +Requires: %{__python2}-pcp +Requires: %{__python2}-rtslib +BuildRequires: %{__python2}-rtslib %endif %description pmda-lio This package provides a PMDA to gather performance metrics from the kernels @@ -1573,16 +1631,16 @@ target. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from Prometheus endpoints -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %if !%{disable_python3} Requires: python3-pcp Requires: python3-requests BuildRequires: python3-requests %else -Requires: python-pcp -Requires: python-requests -BuildRequires: python-requests +Requires: %{__python2}-pcp +Requires: %{__python2}-requests +BuildRequires: %{__python2}-requests %endif %description pmda-prometheus @@ -1600,15 +1658,15 @@ extracting statistics from programs instrumented as Prometheus endpoints. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for JSON data -URL: http://www.pcp.io +URL: https://pcp.io %if !%{disable_python3} Requires: python3-pcp Requires: python3-jsonpointer python3-six BuildRequires: python3-jsonpointer python3-six %else -Requires: python-pcp -Requires: python-jsonpointer python-six -BuildRequires: python-jsonpointer python-six +Requires: %{__python2}-pcp +Requires: %{__python2}-jsonpointer %{__python2}-six +BuildRequires: %{__python2}-jsonpointer %{__python2}-six %endif %description pmda-json This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1624,7 +1682,7 @@ collecting metrics output in JSON. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Apache webserver -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-apache This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1638,7 +1696,7 @@ collecting metrics about the Apache webserver. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Bash shell -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-bash This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1652,7 +1710,7 @@ collecting metrics about the Bash shell. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the CIFS protocol -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-cifs This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1666,7 +1724,7 @@ collecting metrics about the Common Internet Filesytem. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Cisco routers -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-cisco This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1680,7 +1738,7 @@ collecting metrics about Cisco routers. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the GFS2 filesystem -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-gfs2 This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1694,7 +1752,7 @@ collecting metrics about the Global Filesystem v2. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for hardware sensors -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-lmsensors This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1708,7 +1766,7 @@ collecting metrics about the Linux hardware monitoring sensors. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from arbitrary log files -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-logger This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1723,7 +1781,7 @@ supports both sampled and event-style metrics. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the sendmail queue -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-mailq This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1737,7 +1795,7 @@ collecting metrics about email queues managed by sendmail. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for filesystem mounts -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-mounts This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1751,7 +1809,7 @@ collecting metrics about filesystem mounts. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the Nvidia GPU -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-nvidia-gpu This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1765,7 +1823,7 @@ collecting metrics about Nvidia GPUs. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the room temperature -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} Requires: pcp-libs = %{version}-%{release} %description pmda-roomtemp @@ -1781,7 +1839,7 @@ collecting metrics about the room temperature. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for the RPM package manager -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} Requires: pcp-libs = %{version}-%{release} %description pmda-rpm @@ -1798,7 +1856,7 @@ collecting metrics about the installed RPM packages. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for Sendmail -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} Requires: pcp-libs = %{version}-%{release} %description pmda-sendmail @@ -1813,7 +1871,7 @@ collecting metrics about Sendmail traffic. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for shell command responses -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-shping This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1822,13 +1880,28 @@ arbitrary shell commands. # end pcp-pmda-shping # +# pcp-pmda-smart +# +%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} +%description pmda-smart +This package contains the PCP Performance Metric Domain Agent (PMDA) for +collecting metrics of disk S.M.A.R.T values making use of data from the +smartmontools package. +#end pcp-pmda-smart + +# # pcp-pmda-summary # %package pmda-summary License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) summary metrics from pmie -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} Requires: pcp-libs = %{version}-%{release} %description pmda-summary @@ -1844,7 +1917,7 @@ collecting metrics about other installed pmdas. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from the Systemd journal -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-systemd This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1859,7 +1932,7 @@ collecting metrics from the Systemd journal. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics for application tracing -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp-libs = %{version}-%{release} %description pmda-trace This package contains the PCP Performance Metrics Domain Agent (PMDA) for @@ -1873,7 +1946,7 @@ collecting metrics about trace performance data in applications. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) metrics from web server logs -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} Requires: pcp-libs = %{version}-%{release} %description pmda-weblog @@ -1887,7 +1960,7 @@ collecting metrics about web server logs. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) Collection meta Package -URL: http://www.pcp.io +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 @@ -1895,11 +1968,14 @@ Requires: pcp-pmda-nginx pcp-pmda-nfsclient pcp-pmda-pdns pcp-pmda-postfix pcp-p 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 +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 @@ -1926,7 +2002,7 @@ pmlogger services. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) Monitoring meta Package -URL: http://www.pcp.io +URL: https://pcp.io %if !%{disable_microhttpd} Requires: pcp-webapi %endif @@ -1945,31 +2021,39 @@ includes a large number of packages for analysing PCP metrics in various ways. License: GPLv2+ Group: Applications/System Summary: Performance Co-Pilot (PCP) Zeroconf Package -URL: http://www.pcp.io -Requires: pcp +URL: https://pcp.io +Requires: pcp pcp-doc pcp-system-tools Requires: pcp-pmda-dm pcp-pmda-nfsclient +# to make pcp-zeroconf replace sysstat, uncomment the next line +# Obsoletes: sysstat %description zeroconf This package contains configuration tweaks and files to increase metrics gathering frequency, several extended pmlogger configurations, as well as automated pmie diagnosis, alerting and self-healing for the localhost. +A cron script also writes daily performance summary reports similar to +those written by sysstat. %if !%{disable_python2} # -# python-pcp. This is the PCP library bindings for python. +# python2-pcp. This is the PCP library bindings for python. # -%package -n python-pcp +%package -n %{__python2}-pcp License: GPLv2+ Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Python bindings and documentation -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} +%if 0%{?fedora} >= 26 || 0%{?rhel} > 7 +# on these platforms, python2-pcp replaces python-pcp +Obsoletes: python-pcp +%endif %if 0%{?rhel} == 5 Requires: python%{default_python} %else -Requires: python +Requires: %{__python2} %endif -%description -n python-pcp +%description -n %{__python2}-pcp This python PCP module contains the language bindings for Performance Metric API (PMAPI) monitor tools and Performance Metric Domain Agent (PMDA) collector tools written in Python. @@ -1983,7 +2067,7 @@ Metric Domain Agent (PMDA) collector tools written in Python. License: GPLv2+ Group: Development/Libraries Summary: Performance Co-Pilot (PCP) Python3 bindings and documentation -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} Requires: python3 @@ -2001,18 +2085,17 @@ Metric Domain Agent (PMDA) collector tools written in Python3. License: GPLv2+ Group: Development/Libraries Summary: Performance Co-Pilot (PCP) System and Monitoring Tools -URL: http://www.pcp.io +URL: https://pcp.io %if !%{disable_python3} Requires: python3-pcp = %{version}-%{release} -%endif -%if !%{disable_python2} -Requires: python-pcp = %{version}-%{release} +%else +Requires: %{__python2}-pcp = %{version}-%{release} %endif Requires: pcp-libs = %{version}-%{release} %description system-tools This PCP module contains additional system monitoring tools written -in python. +in the Python language. %endif #end pcp-system-tools %if !%{disable_qt} @@ -2023,8 +2106,9 @@ in python. License: GPLv2+ and LGPLv2+ and LGPLv2+ with exceptions Group: Applications/System Summary: Visualization tools for the Performance Co-Pilot toolkit -URL: http://www.pcp.io +URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} +Requires: liberation-sans-fonts BuildRequires: hicolor-icon-theme %description gui @@ -2044,7 +2128,7 @@ Group: Documentation BuildArch: noarch %endif Summary: Documentation and tutorial for the Performance Co-Pilot -URL: http://www.pcp.io +URL: https://pcp.io # http://fedoraproject.org/wiki/Packaging:Conflicts "Splitting Packages" # (all man pages migrated to pcp-doc during great package split of '15) Conflicts: pcp-pmda-pmda < 3.10.5 @@ -2069,7 +2153,7 @@ PCP utilities and daemons, and the PCP graphical tools. License: GPLv2+ and CC-BY Group: Applications/System Summary: Selinux policy package -URL: http://www.pcp.io +URL: https://pcp.io BuildRequires: selinux-policy-devel BuildRequires: selinux-policy-targeted %if 0%{?rhel} == 5 @@ -2091,22 +2175,14 @@ 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 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 - -%clean -rm -Rf $RPM_BUILD_ROOT %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_json} %{?_with_snmp} %{?_with_nutcracker} +%configure %{?_with_initd} %{?_with_doc} %{?_with_ib} %{?_with_papi} %{?_with_perfevent} %{?_with_bcc} %{?_with_json} %{?_with_snmp} %{?_with_nutcracker} %{?_with_webapps} make %{?_smp_mflags} default_pcp %install @@ -2132,11 +2208,13 @@ rm -fr $RPM_BUILD_ROOT/%{_initddir}/pmwebd rm -fr $RPM_BUILD_ROOT/%{_unitdir}/pmwebd.service rm -f $RPM_BUILD_ROOT/%{_libexecdir}/pcp/bin/pmwebd %endif +%if !%{disable_webapps} for app in vector grafana graphite blinkenlights; do pwd webapp=`find ../$app -mindepth 1 -maxdepth 1` mv $webapp $RPM_BUILD_ROOT/%{_datadir}/pcp/webapps/$app done +%endif %if %{disable_infiniband} # remove pmdainfiniband on platforms lacking IB devel packages. @@ -2169,9 +2247,12 @@ for f in $RPM_BUILD_ROOT/%{_initddir}/{pcp,pmcd,pmlogger,pmie,pmwebd,pmmgr,pmpro 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 @@ -2228,42 +2309,53 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\ grep -E -v '^roomtemp' |\ grep -E -v '^sendmail' |\ grep -E -v '^shping' |\ + grep -E -v '^smart' |\ grep -E -v '^summary' |\ grep -E -v '^trace' |\ grep -E -v '^weblog' |\ grep -E -v '^rpm' |\ grep -E -v '^json' |\ grep -E -v '^mic' |\ + grep -E -v '^bcc' |\ grep -E -v '^gluster' |\ grep -E -v '^zswap' |\ grep -E -v '^unbound' |\ grep -E -v '^haproxy' |\ sed -e 's#^#'%{_pmdasdir}'\/#' >base_pmdas.list -# all base pcp package files except those split out into sub packages +# all base pcp package files except those split out into sub-packages ls -1 $RPM_BUILD_ROOT/%{_bindir} |\ - grep -E -v 'pmiostat|pmcollectl|pmatop|zabbix|zbxpcp' |\ + 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 'pmdbg|pmclient|pmerr|genpmda' |\ sed -e 's#^#'%{_bindir}'\/#' >base_bin.list -# + # Separate the pcp-system-tools package files. -# -# pmatop, pmcollectl and pmiostat are back-compat symlinks to their -# pcp(1) sub-command variants so must also be in pcp-system-tools. +# pmcollectl and pmiostat are back-compat symlinks to their +# pcp(1) sub-command variants so are also in pcp-system-tools. %if !%{disable_python2} || !%{disable_python3} ls -1 $RPM_BUILD_ROOT/%{_bindir} |\ - grep -E 'pmiostat|pmcollectl|pmatop|pmrep' |\ - sed -e 's#^#'%{_bindir}'\/#' >pcp_system_tools.list + egrep -e 'pmiostat|pmcollectl|pmrep|dstat' |\ + sed -e 's#^#'%{_bindir}'\/#' >pcp-system-tools.list +ls -1 $RPM_BUILD_ROOT/%{_libexecdir}/pcp/bin |\ + egrep -e 'atop|collectl|dmcache|dstat|free|iostat|ipcs|lvmcache|mpstat' \ + -e 'numastat|pidstat|shping|tapestat|uptime|verify' |\ + sed -e 's#^#'%{_libexecdir}/pcp/bin'\/#' >>pcp-system-tools.list +%endif +# Separate the pcp-selinux package files. +%if !%{disable_selinux} +ls -1 $RPM_BUILD_ROOT/%{_selinuxdir} |\ + sed -e 's#^#'%{_selinuxdir}'\/#' > pcp-selinux.list ls -1 $RPM_BUILD_ROOT/%{_libexecdir}/pcp/bin |\ - grep -E 'atop|collectl|dmcache|free|iostat|mpstat|numastat|pidstat|tapestat|verify|uptime|shping' |\ - sed -e 's#^#'%{_libexecdir}/pcp/bin'\/#' >>pcp_system_tools.list + grep -E 'selinux-setup' |\ + sed -e 's#^#'%{_libexecdir}/pcp/bin'\/#' >> pcp-selinux.list %endif ls -1 $RPM_BUILD_ROOT/%{_libexecdir}/pcp/bin |\ %if !%{disable_python2} || !%{disable_python3} - grep -E -v 'atop|collectl|dmcache|free|iostat|mpstat|numastat|pidstat|tapestat|verify|uptime|shping' |\ + grep -E -v 'atop|collectl|dmcache|dstat|free|iostat|mpstat|numastat' |\ + grep -E -v 'shping|tapestat|uptime|verify|selinux-setup' |\ %endif sed -e 's#^#'%{_libexecdir}/pcp/bin'\/#' >base_exec.list ls -1 $RPM_BUILD_ROOT/%{_booksdir} |\ @@ -2274,10 +2366,6 @@ ls -1 $RPM_BUILD_ROOT/%{_mandir}/man5 |\ sed -e 's#^#'%{_mandir}'\/man5\/#' >>pcp-doc.list ls -1 $RPM_BUILD_ROOT/%{_datadir}/pcp/demos/tutorials |\ sed -e 's#^#'%{_datadir}/pcp/demos/tutorials'\/#' >>pcp-doc.list -%if !%{disable_selinux} -ls -1 $RPM_BUILD_ROOT/%{_selinuxdir} |\ - sed -e 's#^#'%{_selinuxdir}'\/#' > pcp-selinux.list -%endif %if !%{disable_qt} ls -1 $RPM_BUILD_ROOT/%{_pixmapdir} |\ sed -e 's#^#'%{_pixmapdir}'\/#' > pcp-gui.list @@ -2533,6 +2621,11 @@ fi %preun pmda-dm %{pmda_remove "$1" "dm"} +%if !%{disable_bcc} +%preun pmda-bcc +%{pmda_remove "$1" "bcc"} +%endif + %if !%{disable_python2} || !%{disable_python3} %preun pmda-gluster %{pmda_remove "$1" "gluster"} @@ -2592,6 +2685,9 @@ fi %preun pmda-shping %{pmda_remove "$1" "shping"} +%preun pmda-smart +%{pmda_remove "$1" "smart"} + %preun pmda-summary %{pmda_remove "$1" "summary"} @@ -2697,15 +2793,23 @@ pmieconf -c enable dmthin %if !%{disable_selinux} %post selinux -%{selinux_handle_policy "$1" "pcpupstream.pp"} +%{selinux_handle_policy "$1" "pcpupstream"} %triggerin selinux -- docker-selinux -%{selinux_handle_policy "$1" "pcpupstream-docker.pp"} +%{selinux_handle_policy "$1" "pcpupstream-docker"} %triggerin selinux -- container-selinux -%{selinux_handle_policy "$1" "pcpupstream-container.pp"} +%{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} @@ -2715,6 +2819,7 @@ rm -f $PCP_LOG_DIR/configs.sh chown -R pcp:pcp %{_logsdir}/pmcd 2>/dev/null chown -R pcp:pcp %{_logsdir}/pmlogger 2>/dev/null +chown -R pcp:pcp %{_logsdir}/sa 2>/dev/null chown -R pcp:pcp %{_logsdir}/pmie 2>/dev/null chown -R pcp:pcp %{_logsdir}/pmproxy 2>/dev/null touch "$PCP_PMNS_DIR/.NeedRebuild" @@ -2807,6 +2912,7 @@ cd %config(noreplace) %{_sysconfdir}/sysconfig/pmproxy %config(noreplace) %{_sysconfdir}/sysconfig/pmcd %config %{_sysconfdir}/pcp.env +%dir %{_confdir}/labels %dir %{_confdir}/pmcd %config(noreplace) %{_confdir}/pmcd/pmcd.conf %config(noreplace) %{_confdir}/pmcd/pmcd.options @@ -2822,8 +2928,10 @@ cd %config(noreplace) %{_confdir}/pmlogger/control %config(noreplace) %{_confdir}/pmlogger/control.d/local %dir %attr(0775,pcp,pcp) %{_confdir}/nssdb +%dir %{_confdir}/discover +%config(noreplace) %{_confdir}/discover/pcp-kube-pods.conf -%ghost %{_localstatedir}/run/pcp +%ghost %dir %attr(0775,pcp,pcp) %{_localstatedir}/run/pcp %{_localstatedir}/lib/pcp/config/pmafm %dir %attr(0775,pcp,pcp) %{_localstatedir}/lib/pcp/config/pmie %{_localstatedir}/lib/pcp/config/pmie @@ -2847,6 +2955,8 @@ cd #empty %files zeroconf +%{_libexecdir}/pcp/bin/pmlogger_daily_report +%config(noreplace) %{_sysconfdir}/cron.d/pcp-pmlogger-daily-report %{_localstatedir}/lib/pcp/config/pmlogconf/zeroconf #additional pmlogger config files @@ -2905,13 +3015,14 @@ cd %attr(0775,pcp,pcp) %{_logsdir}/pmwebd %{_confdir}/pmwebd %config(noreplace) %{_confdir}/pmwebd/pmwebd.options -# duplicate directories from pcp and pcp-webjs, but rpm copes with that. +# duplicate pcp, pcp-webapi and pcp-webjs directories, but rpm copes with that. %dir %{_datadir}/pcp %dir %{_datadir}/pcp/webapps %endif +%if !%{disable_webapps} %files webjs -# duplicate directories from pcp and pcp-webapi, but rpm copes with that. +# duplicate pcp, pcp-webapi and pcp-webjs directories, but rpm copes with that. %dir %{_datadir}/pcp %dir %{_datadir}/pcp/webapps %{_datadir}/pcp/webapps/*.png @@ -2937,6 +3048,7 @@ cd %dir %{_datadir}/pcp %dir %{_datadir}/pcp/webapps %{_datadir}/pcp/webapps/vector +%endif %files manager %{_initddir}/pmmgr @@ -3089,6 +3201,11 @@ cd %files pmda-dm %{_pmdasdir}/dm +%if !%{disable_bcc} +%files pmda-bcc +%{_pmdasdir}/bcc +%endif + %if !%{disable_python2} || !%{disable_python3} %files pmda-gluster %{_pmdasdir}/gluster @@ -3136,6 +3253,7 @@ cd %files export-zabbix-agent %{_libdir}/zabbix +%{_sysconfdir}/zabbix/zabbix_agentd.d/zbxpcp.conf %if !%{disable_json} %files pmda-json @@ -3186,6 +3304,9 @@ cd %files pmda-shping %{_pmdasdir}/shping +%files pmda-smart +%{_pmdasdir}/smart + %files pmda-summary %{_pmdasdir}/summary @@ -3209,7 +3330,7 @@ cd %files -n perl-PCP-LogSummary -f perl-pcp-logsummary.list %if !%{disable_python2} -%files -n python-pcp -f python-pcp.list.rpm +%files -n %{__python2}-pcp -f python-pcp.list.rpm %endif %if !%{disable_python3} @@ -3234,12 +3355,44 @@ cd %endif %if !%{disable_python2} || !%{disable_python3} -%files system-tools -f pcp_system_tools.list +%files system-tools -f pcp-system-tools.list +%dir %{_confdir}/dstat %dir %{_confdir}/pmrep -%config(noreplace) %{_confdir}/pmrep/pmrep.conf +%config(noreplace) %{_confdir}/dstat/* +%config(noreplace) %{_confdir}/pmrep/* %endif %changelog +* Wed Sep 05 2018 Nathan Scott - 4.1.0-4 +- BPF kernel compatibility fixes (BZ 1597975) +- Several important selinux fixes (BZ 1603596) + +* Thu Aug 02 2018 Nathan Scott - 4.1.0-3 +- Enable transparent decompression in the build. + +* Tue Jun 19 2018 Nathan Scott - 4.1.0-2 +- Enable pcp-pmda-bcc sub-package in the build. + +* Fri Jun 15 2018 Nathan Scott - 4.1.0-1 +- Resolve MMV instance domain mishandling issue (BZ 1586051) + +* Fri May 25 2018 Nathan Scott - 4.0.2-4 +- Clear zero-length pmlogger configuration files (BZ 1581109) + +* Fri May 25 2018 Nathan Scott - 4.0.2-3 +- Resolve rpm verification problem on /var/run/pcp (BZ 1533154) +- Fix device mapper PMDA histogram metrics sigsegv (BZ 1569854) +- Fix pmlogger_daily log rotation open port issue (BZ 1579881) + +* Thu May 17 2018 Nathan Scott - 4.0.2-2 +- Resolve multilib issue in installed header files +- Add whitespace into ASL 2.0 license lines + +* Fri May 11 2018 Nathan Scott - 4.0.2-1 +- Ensure sans font dependency resolved for webapps (BZ 1568109) +- Ensure sans font dependency resolved for pmchart (BZ 1546640) +- Update to latest PCP sources (BZ 1565370). + * Mon Jan 29 2018 Lukas Berk - 3.12.2-5 - Correction to spec file and selinux policy (BZ 1488116) - Show all perfevent metrics in pcpatop (BZ 1525864) @@ -3296,131 +3449,198 @@ cd - Export filesys metrics with persistent DM naming (BZ 1349932) * Fri Jun 17 2016 Nathan Scott - 3.11.3-1 -- Latest upstream PCP, dropping all earlier patches (BZ 1284307) -- Minimal package dependencies for PMAPI applications (BZ 1298993) -- Resolve perl Net:SNMP pmdasnmp dependency problem (BZ 1332624) -- Improve time taken to detect pmcd startup failure (BZ 1336210) -- Fix cron service stopping disabled pmie/pmlogger (BZ 1336792) -- Fix instance domain handling in derived metrics (BZ 1337212) -- Include latest Oracle database PMDA enhancements (BZ 1340430) -- Workaround valgrind failure for pmmgr test case (BZ 1343319) - -* Mon May 02 2016 Nathan Scott - 3.11.2-1 -- Improve PMAPI python clients signal handling (BZ 1238550) -- Fix issues in postfix PMDA search for mail log (BZ 1252308) -- Fix local_sock() souble free error in perl API (BZ 1258860) -- Fix sigsegv in pcp-uptime(1) --archive option (BZ 1262721) -- Update to current stable PCP version (BZ 1284307) -- Fix pcp-compat dependency drawing in many packages (BZ 1293466) -- Support for per-processor softnet kernel metrics (BZ 1316085) -- Fix GFS2 PMDA Install script PMNS parsing error (BZ 1320591) -- Report Docker version 1.10+ container information (BZ 1327737) - -* Mon Aug 24 2015 Nathan Scott - 3.10.6-2 -- Fixes targetting several QE reported test failures (BZ 1241591) -- Remove tool-specific interval settings for pmlogconf (BZ 1243809) - -* Wed Aug 05 2015 Nathan Scott - 3.10.6-1 -- Export the softnet_stat kernel networking metrics (BZ 1190912) -- Latest upstream PCP, dropping all earlier patches (BZ 1200584) -- Re-enable the pcp-pmda-jsonpointer package build (BZ 1238134) -- Fix failing test cases and bugs from Red Hat QE (BZ 1241591) -- pcp2graphite support for exporting from archives (BZ 1242622) -- Remove percpu interrupt metrics from default set (BZ 1243809) -- pcp-collector meta-package enables pmcd+pmlogger (BZ 1249090) - -* Thu Jul 16 2015 Nathan Scott - 3.10.5-5 -- Disable pcp-pmda-json, waiting on missing dependency (BZ 1238134) - -* Wed Jul 08 2015 Dave Brolley - 3.10.5-4 -- Fix concurrency (locking) problem discovered by coverity (BZ 1237412) - -* Mon Jul 06 2015 Dave Brolley - 3.10.5-3 -- Update with missing package dependency for pmda-lustrecomm. -- Rebuild to pickup bintils fix (BZ 1238469) - -* Thu Jun 18 2015 Dave Brolley - 3.10.5-2 -- Update to latest PCP sources (BZ 1200584) -- Support for per-containtainer cgroup metrics (BZ 1121218) -- Allow pmlogger/pmie start when not chkconfig on (BZ 1186012) -- No pmlogger_daily messages when not chkconfig on (BZ 1208699) -- Fix pmdamounts potential stack corruption (BZ 1213833) -- Tackle numerous testsuite issues on aarch64 (BZ 1190680) -- Tackle numerous testsuite issues on ppc64le (BZ 1194244) -- Allow pmlogger to run in local context mode (BZ 1129539) -- Deprecate hinv.map.lvname for hinv.map.dmname (BZ 1109539) - -* Mon Nov 24 2014 Nathan Scott - 3.9.10-8 -- Respin with QA archive missing from last patch (BZ 1161515) - -* Mon Nov 24 2014 Nathan Scott - 3.9.10-7 -- Tackle bugs and test failures found by QE (BZ 1161515) -- Resolve pcp web packaging issues, regression (BZ 1163560) - -* Fri Oct 17 2014 Frank Ch. Eigler - 3.9.10-6 -- Fix BZ1152503 (pcp rebuild - qmake workaround) -- Fix BZ1152535 (systemd daemon-reload) - -* Thu Oct 16 2014 Nathan Scott - 3.9.10-5 -- Fix script locations for systemd services (BZ 1147400) - -* Fri Sep 05 2014 Frank Ch. Eigler - 3.9.10-4 -- Add pcpfans add-ons. -- Correct webapi subrpm license tag - -* Fri Sep 05 2014 Lukas Berk - 3.9.10-2 -- Add condition for disable_papi on arch and rhel version +- Fix memory leak in derived metrics error handling (BZ 1331973) +- Correctly propogate indom in mixed derived metrics (BZ 1337212, BZ 1336130) +- Disallow stopping pmie/pmlogger daemons from cron (BZ 1336792) +- Fail fast for easily detected bad pmcd configuration (BZ 1336210) +- Implement primary (local) pmie concept in rc pmie (BZ 1323851) +- Update to latest PCP sources. + +* Mon May 16 2016 Jitka Plesnikova - 3.11.2-2.1 +- Perl 5.24 rebuild + +* Fri Apr 29 2016 Lukas Berk - 3.11.2-1 +- Negative nice values reported incorrectly (BZ 1328432) +- Multithreaded clients with concurrent pmNewContext improvements (BZ 1325363) +- PMCD agent auto-restart (BZ 1323521) +- Segv in libpcp during discovery error processing (BZ 1319288) +- Update to latest PCP sources. + +* Fri Mar 18 2016 Dave Brolley - 3.11.1-1 +- Call Remove script when uninstalling individual PMDAs (BZ 1304722) +- Restrict pmcd.services to checking known pcp services (BZ 1286361) +- Support for multi-archive contexts, across all clients (BZ 1262723) +- Remove the default shotgun approach to stopping daemons (BZ 1210976) +- Add mechanism for automatic recovery from PMDA timeouts (BZ 1065803) +- Update to latest PCP sources. + +* Fri Jan 29 2016 Mark Goodwin - 3.11.0-1 +- Significant speedups to elapsed time stopping pmcd (BZ 1292027) +- Fix python derived metric exception handling issues (BZ 1299806) +- incorrect interpolation across record in a merged archive (BZ 1296750) +- pcp requires pcp-compat pulling in a lot of unneeded pcp-pmda-* packages (BZ 1293466) +- Update to latest PCP sources. + +* Wed Dec 16 2015 Lukas Berk - 3.10.9-1 +- Add -V/--version support to several more commands (BZ 1284411) +- Resolve a pcp-iostat(1) transient device exception (BZ 1249572) +- Provides pmdapipe, an output-capturing domain agent (BZ 1163413) +- Python PMAPI pmSetMode allows None timeval parameter (BZ 1284417) +- Python PMI pmiPutValue now supports singular metrics (BZ 1285371) +- Fix python PMAPI pmRegisterDerived wrapper interface (BZ 1286733) +- Fix pmstat SEGV when run with graphical time control (BZ 1287678) +- Make pmNonOptionsFromList error message less cryptic (BZ 1287778) +- Drop unimplemented pmdumptext options from usage, man page (BZ 1289909) +- Stop creating configuration files in tmp_t locations (BZ 1256125) +- Update to latest PCP sources. + +* Fri Oct 30 2015 Mark Goodwin - 3.10.8-1 +- Update pmlogger to log an immediate sample first (BZ 1269921) +- Add pmOption host and archive setter python APIs (BZ 1270176) +- Replace old pmatop(1) man page with pcp-atop(1) (BZ 1270761) +- Update to latest PCP sources. + +* Wed Sep 16 2015 Nathan Scott - 3.10.7-1 +- Resolved pmchart sigsegv opening view without context (BZ 1256708) +- Fixed pmchart memory corruption restoring Saved Hosts (BZ 1257009) +- Fix perl PMDA API double-free on socket error path (BZ 1258862) +- Fix python API pmGetOption(3) alignment interface (BZ 1262722) +- Added missing RPM dependencies to several PMDA sub-packages. +- Update to latest stable Vector release for pcp-vector-webapp. +- Update to latest PCP sources. + +* Sat Sep 05 2015 Kalev Lember - 3.10.6-2.1 +- Rebuilt for librpm soname bump + +* Thu Aug 06 2015 Lukas Berk - 3.10.6-2 +- Fix SDT related build error (BZ 1250894) + +* Tue Aug 04 2015 Nathan Scott - 3.10.6-1 +- Fix pcp2graphite write method invocation failure (BZ 1243123) +- Reduce diagnostics in pmdaproc unknown state case (BZ 1224431) +- Derived metrics via multiple files, directory expansion (BZ 1235556) +- Update to latest PCP sources. + +* Mon Jun 15 2015 Mark Goodwin - 3.10.5-1 +- Provide and use non-exit(1)ing pmGetConfig(3) variant (BZ 1187588) +- Resolve a pmdaproc.sh pmlogger restart regression (BZ 1229458) +- Replacement of pmatop/pcp-atop(1) utility (BZ 1160811, BZ 1018575) +- Reduced installation size for minimal applications (BZ 1182184) +- Ensure pmlogger start scripts wait on pmcd startup (BZ 1185760) +- Need to run pmcd at least once before pmval -L will work (BZ 185749) + +* Wed Apr 15 2015 Nathan Scott - 3.10.4-1 +- Update to latest PCP, pcp-webjs and Vector sources. +- Packaging improvements after re-review (BZ 1204467) +- Start pmlogger/pmie independent of persistent state (BZ 1185755) +- Fix cron error reports for disabled pmlogger service (BZ 1208699) +- Incorporate Vector from Netflix (https://github.com/Netflix/vector) +- Sub-packages for pcp-webjs allowing choice and reducing used space. + +* Wed Mar 04 2015 Dave Brolley - 3.10.3-2 +- papi 5.4.1 rebuild + +* Mon Mar 02 2015 Dave Brolley - 3.10.3-1 +- Update to latest PCP sources. +- New sub-package for pcp-import-ganglia2pcp. +- Python3 support, enabled by default in f22 onward (BZ 1194324) + +* Mon Feb 23 2015 Slavek Kabrda - 3.10.2-3 +- Only use Python 3 in Fedora >= 23, more info at + https://bugzilla.redhat.com/show_bug.cgi?id=1194324#c4 + +* Mon Feb 23 2015 Nathan Scott - 3.10.2-2 +- Initial changes to support python3 as default (BZ 1194324) + +* Fri Jan 23 2015 Dave Brolley - 3.10.2-1 +- Update to latest PCP sources. +- Improve pmdaInit diagnostics for DSO helptext (BZ 1182949) +- Tighten up PMDA termination on pmcd stop (BZ 1180109) +- Correct units for cgroup memory metrics (BZ 1180351) +- Add the pcp2graphite(1) export script (BZ 1163986) + +* Mon Dec 01 2014 Nathan Scott - 3.10.1-1 +- New conditionally-built pcp-pmda-perfevent sub-package. +- Update to latest PCP sources. + +* Tue Nov 18 2014 Dave Brolley - 3.10.0-2 +- papi 5.4.0 rebuild + +* Fri Oct 31 2014 Nathan Scott - 3.10.0-1 +- Create new sub-packages for pcp-webjs and python3-pcp. +- Fix __pmDiscoverServicesWithOptions(1) codes (BZ 1139529) +- Update to latest PCP sources. * Fri Sep 05 2014 Nathan Scott - 3.9.10-1 -- Convert PCP init scripts to systemd services (BZ 1044682) -- Improve hinv device mapper metric instances (BZ 1109539) -- Fix pmcollect dev instance domain handling (BZ 1097095) -- Remove bogus pmlogger_daily cron messages (BZ 1125700) -- Update to latest PCP sources (BZ 1107734). +- Convert PCP init scripts to systemd services (BZ 996438) +- Fix pmlogsummary -S/-T time window reporting (BZ 1132476) +- Resolve pmdumptext segfault with invalid host (BZ 1131779) +- Fix signedness in some service discovery codes (BZ 1136166) +- New conditionally-built pcp-pmda-papi sub-package. +- Update to latest PCP sources. + +* Tue Aug 26 2014 Jitka Plesnikova - 3.9.9-1.2 +- Perl 5.20 rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 3.9.9-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Wed Aug 13 2014 Nathan Scott - 3.9.9-1 +- Update to latest PCP sources. + +* Wed Jul 16 2014 Mark Goodwin - 3.9.7-1 +- Update to latest PCP sources. + +* Wed Jun 18 2014 Dave Brolley - 3.9.5-1 +- Daemon signal handlers no longer use unsafe APIs (BZ 847343) +- Handle /var/run setups on a temporary filesystem (BZ 656659) +- Resolve pmlogcheck sigsegv for some archives (BZ 1077432) +- Ensure pcp-gui-{testsuite,debuginfo} packages get replaced. +- Revive support for EPEL5 builds, post pcp-gui merge. +- Update to latest PCP sources. -* Wed Feb 26 2014 Nathan Scott - 3.8.10-8 -- Update pmmgr to pcp 3.9.0+ level (BZ 1067547) +* Fri Jun 06 2014 Fedora Release Engineering - 3.9.4-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild -* Tue Feb 25 2014 Nathan Scott - 3.8.10-7 -- Fix a handful of QE-found test-induced failures (BZ 987086) -- Multilib packaging support for libs and devel (BZ 1059642) +* Thu May 15 2014 Nathan Scott - 3.9.4-1 +- Merged pcp-gui and pcp-doc packages into core PCP. +- Allow for conditional libmicrohttpd builds in spec file. +- Adopt slow-start capability in systemd PMDA (BZ 1073658) +- Resolve pmcollectl network/disk mis-reporting (BZ 1097095) +- Update to latest PCP sources. -* Tue Feb 18 2014 Nathan Scott - 3.8.10-6 -- Added missing qualified output for test qa/844 (BZ 1064311) -- Fix pmdalinux memory corruption issue on s390x (BZ 1064254) -- PMDA installation works without a running pmcd (BZ 1062443) -- Fix some more issues in pcpqa account creation (BZ 1025688) +* Tue Apr 15 2014 Dave Brolley - 3.9.2-1 +- Improve pmdarpm(1) concurrency complications (BZ 1044297) +- Fix pmconfig(1) shell output string quoting (BZ 1085401) +- Update to latest PCP sources. -* Mon Feb 10 2014 Nathan Scott - 3.8.10-5 -- Resolve pmdammv induced pmcd segv during tests (BZ 1061330) -- Fix python-pcp time API wrapper implementation (BZ 1062467) +* Wed Mar 19 2014 Nathan Scott - 3.9.1-1 +- Update to latest PCP sources. -* Wed Jan 29 2014 Nathan Scott - 3.8.10-4 -- Ensure the PMNS stdpmid files are installed (BZ 1059004) +* Thu Feb 20 2014 Nathan Scott - 3.9.0-2 +- Workaround further PowerPC/tapset-related build fallout. -* Fri Jan 24 2014 Daniel Mach - 3.8.10-3 -- Mass rebuild 2014-01-24 +* Wed Feb 19 2014 Nathan Scott - 3.9.0-1 +- Create new sub-packages for pcp-webapi and pcp-manager +- Split configuration from pcp-libs into pcp-conf (multilib) +- Fix pmdagluster to handle more volumes, fileops (BZ 1066544) +- Update to latest PCP sources. -* Wed Jan 22 2014 Nathan Scott - 3.8.10-2 -- Fix pmdalinux failure on unexpected ICMP types (BZ 1055826) -- Add man pages for all of the PMDAs missing out (BZ 1053094) +* Wed Jan 29 2014 Nathan Scott - 3.8.12-1 +- Resolves SNMP procfs file ICMP line parse issue (BZ 1055818) +- Update to latest PCP sources. * Wed Jan 15 2014 Nathan Scott - 3.8.10-1 -- Add symbol-versioning for PCP shared libraries (BZ 1037771) -- Fix pmcd/Avahi interaction with multiple ports (BZ 1035513) -- Confine set of exported symbols from DSO PMDAs (BZ 1025694) -- Ensure pcpqa user created by pcp-testsuite rpm (BZ 1025688) -- Remove empty pmlogger configuration directory (BZ 1025599) -- Resolve warning messages from pcp rpm scripts (BZ 1025587) -- Remove world-writeable private temp directory (BZ 1025583) -- Tackle remaining failing pcp-testsuite cases (BZ 987086) - Update to latest PCP sources. -* Fri Dec 27 2013 Daniel Mach - 3.8.6-3 -- Mass rebuild 2013-12-27 +* Thu Dec 12 2013 Nathan Scott - 3.8.9-1 +- Reduce set of exported symbols from DSO PMDAs (BZ 1025694) +- Symbol-versioning for PCP shared libraries (BZ 1037771) +- Fix pmcd/Avahi interaction with multiple ports (BZ 1035513) +- Update to latest PCP sources. -* Wed Nov 06 2013 Frank Ch. Eigler - 3.8.6-2 -- BZ1027236: adapt to droppage of nss export ciphers +* Sun Nov 03 2013 Nathan Scott - 3.8.8-1 +- Update to latest PCP sources (simple build fixes only). * Fri Nov 01 2013 Nathan Scott - 3.8.6-1 - Update to latest PCP sources. @@ -3429,7 +3649,7 @@ cd * Fri Oct 18 2013 Nathan Scott - 3.8.5-1 - Update to latest PCP sources. -- Correct pcp Infiniband package dependencies (BZ 1016368) +- Disable pcp-pmda-infiniband sub-package on RHEL5 (BZ 1016368) * Mon Sep 16 2013 Nathan Scott - 3.8.4-2 - Disable the pcp-pmda-infiniband sub-package on s390 platforms.