diff --git a/pcp.spec b/pcp.spec index b188393..4f068c1 100644 --- a/pcp.spec +++ b/pcp.spec @@ -1,14 +1,13 @@ Name: pcp -Version: 6.1.1 -Release: 4%{?dist} +Version: 6.2.0 +Release: 1%{?dist} Summary: System-level performance monitoring and performance management License: GPL-2.0-or-later AND LGPL-2.1-or-later AND CC-BY-3.0 URL: https://pcp.io Source0: https://github.com/performancecopilot/pcp/releases/pcp-%{version}.src.tar.gz -Patch1: redhat-issues-RHEL-17335-ss-listen.patch -Patch2: redhat-issues-RHEL-17649-ss-udp.patch +Patch1: redhat-issues-RHEL-2317-default-archive-version.patch %if 0%{?fedora} >= 40 || 0%{?rhel} >= 10 ExcludeArch: %{ix86} @@ -207,6 +206,17 @@ ExcludeArch: %{ix86} %global disable_noarch 1 %endif +# build pcp2arrow whenever possible (no RHEL or 32 bit x86 Fedora python3-arrow) +%if 0%{?fedora} >= 36 +%ifarch %{ix86} x86_64 +%global disable_arrow 1 +%else +%global disable_arrow 0 +%endif +%else +%global disable_arrow 1 +%endif + %if 0%{?fedora} >= 24 %global disable_xlsx 0 %else @@ -874,6 +884,30 @@ Performance Co-Pilot (PCP) front-end tools for exporting metric values in JSON format to Apache Spark. See https://spark.apache.org/ for further details on Apache Spark. +# +# pcp-export-pcp2arrow +# +%if !%{disable_arrow} +%package export-pcp2arrow +License: GPL-2.0-or-later +Summary: Performance Co-Pilot tools for exporting PCP metrics to Apache Arrow +URL: https://pcp.io +Requires: pcp-libs >= %{version}-%{release} +%if !%{disable_python3} +Requires: python3-pcp = %{version}-%{release} +Requires: python3-pyarrow +BuildRequires: python3-pyarrow +%else +Requires: %{__python2}-pcp = %{version}-%{release} +Requires: %{__python2}-pyarrow +BuildRequires: %{__python2}-pyarrow +%endif + +%description export-pcp2arrow +Performance Co-Pilot (PCP) front-end tool for exporting metric values +to Apache Arrow, which supports the columnar parquet data format. +%endif + # # pcp-export-pcp2xlsx # @@ -897,6 +931,7 @@ BuildRequires: %{__python2}-openpyxl Performance Co-Pilot (PCP) front-end tools for exporting metric values in Excel spreadsheet format. %endif + # # pcp-export-pcp2xml # @@ -1064,7 +1099,7 @@ Summary: Performance Co-Pilot (PCP) metrics for NutCracker (TwemCache) URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} Requires: perl-PCP-PMDA = %{version}-%{release} -Requires: perl(YAML::XS::LibYAML) +Requires: perl(YAML::XS) Requires: perl(JSON) %description pmda-nutcracker @@ -1505,7 +1540,7 @@ Summary: Performance Co-Pilot (PCP) metrics from eBPF ELF modules URL: https://pcp.io Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release} Requires: libbpf -BuildRequires: libbpf-devel clang llvm bpftool +BuildRequires: libbpf-devel clang llvm %description pmda-bpf This package contains the PCP Performance Metrics Domain Agent (PMDA) for extracting performance metrics from eBPF ELF modules. @@ -2468,7 +2503,7 @@ sed -i -e 's/usr\/lib\//usr\/lib64\//' pcp-libs-devel-files # some special cases for devel awk '{print $NF}' $DIST_MANIFEST |\ -grep -E 'pcp\/(examples|demos)|(etc/pcp|pcp/pmdas)\/(sample|simple|trivial|txmon)|bin/(pmdbg|pmclient|pmerr|genpmda)' | grep -E -v tutorials >>pcp-devel-files +grep -E 'pcp/(examples|demos)|(etc/pcp|pcp/pmdas)/(sample|simple|trivial|txmon)|bin/(pmdbg|pmclient|pmerr|genpmda)' | grep -E -v tutorials >>pcp-devel-files # Patterns for files to be marked %%config(noreplace). # Note: /etc/pcp.{conf,env,sh} are %%config but not noreplace @@ -2520,6 +2555,7 @@ basic_manifest | keep 'sheet2pcp' >pcp-import-sheet2pcp-files basic_manifest | keep 'mrtg2pcp' >pcp-import-mrtg2pcp-files basic_manifest | keep 'ganglia2pcp' >pcp-import-ganglia2pcp-files basic_manifest | keep 'collectl2pcp' >pcp-import-collectl2pcp-files +basic_manifest | keep 'pcp2arrow' >pcp-export-pcp2arrow-files basic_manifest | keep 'pcp2elasticsearch' >pcp-export-pcp2elasticsearch-files basic_manifest | keep 'pcp2influxdb' >pcp-export-pcp2influxdb-files basic_manifest | keep 'pcp2xlsx' >pcp-export-pcp2xlsx-files @@ -2642,7 +2678,7 @@ do \ done for export_package in \ - pcp2elasticsearch pcp2graphite pcp2influxdb pcp2json \ + pcp2arrow pcp2elasticsearch pcp2graphite pcp2influxdb pcp2json \ pcp2spark pcp2xlsx pcp2xml pcp2zabbix zabbix-agent ; \ do \ export_packages="$export_packages pcp-export-$export_package"; \ @@ -2777,8 +2813,8 @@ semodule -r pcpqa >/dev/null 2>&1 || true chown -R pcpqa:pcpqa %{_testsdir} 2>/dev/null %if 0%{?rhel} %if !%{disable_systemd} - systemctl restart pmcd pmlogger >/dev/null 2>&1 - systemctl enable pmcd pmlogger >/dev/null 2>&1 + systemctl restart pcp-reboot-init pmcd pmlogger >/dev/null 2>&1 + systemctl enable pcp-reboot-init pmcd pmlogger >/dev/null 2>&1 %else /sbin/chkconfig --add pmcd >/dev/null 2>&1 /sbin/chkconfig --add pmlogger >/dev/null 2>&1 @@ -3063,9 +3099,9 @@ if [ "$1" -eq 0 ] then # stop daemons before erasing the package %if !%{disable_systemd} - %systemd_preun pmlogger_check.timer pmlogger_daily.timer pmlogger_farm_check.timer pmlogger_farm_check.service pmlogger_farm.service pmlogger.service pmie_check.timer pmie_daily.timer pmie_farm_check.timer pmie_farm_check.service pmie_farm.service pmie.service pmproxy.service pmfind.service pmcd.service + %systemd_preun pmlogger_check.timer pmlogger_daily.timer pmlogger_farm_check.timer pmlogger_farm_check.service pmlogger_farm.service pmlogger.service pmie_check.timer pmie_daily.timer pmie_farm_check.timer pmie_farm_check.service pmie_farm.service pmie.service pmproxy.service pmfind.service pmcd.service pcp-reboot-init.service - systemctl stop pmlogger.service pmie.service pmproxy.service pmfind.service pmcd.service >/dev/null 2>&1 + systemctl stop pmlogger.service pmie.service pmproxy.service pmfind.service pmcd.service pcp-reboot-init.service >/dev/null 2>&1 %else /sbin/service pmlogger stop >/dev/null 2>&1 /sbin/service pmie stop >/dev/null 2>&1 @@ -3097,10 +3133,10 @@ for PMDA in dm nfsclient openmetrics ; do done # auto-enable these usually optional pmie rules %{run_pmieconf "$PCP_PMIECONFIG_DIR" dmthin} -%if 0%{?rhel} +%if 0%{?rhel} <= 9 %if !%{disable_systemd} - systemctl restart pmcd pmlogger pmie >/dev/null 2>&1 - systemctl enable pmcd pmlogger pmie >/dev/null 2>&1 + systemctl restart pcp-reboot-init pmcd pmlogger pmie >/dev/null 2>&1 + systemctl enable pcp-reboot-init pmcd pmlogger pmie >/dev/null 2>&1 %else /sbin/chkconfig --add pmcd >/dev/null 2>&1 /sbin/chkconfig --add pmlogger >/dev/null 2>&1 @@ -3350,6 +3386,10 @@ fi %files export-pcp2influxdb -f pcp-export-pcp2influxdb-files.rpm %endif +%if !%{disable_arrow} +%files export-pcp2arrow -f pcp-export-pcp2arrow-files.rpm +%endif + %if !%{disable_xlsx} %files export-pcp2xlsx -f pcp-export-pcp2xlsx-files.rpm %endif @@ -3452,6 +3492,9 @@ fi %files zeroconf -f pcp-zeroconf-files.rpm %changelog +* Mon Feb 12 2024 Nathan Scott - 6.2.0-1 +- Rebase to latest stable version of PCP (RHEL-2317) + * Thu Dec 14 2023 Nathan Scott - 6.1.1-4 - Fix pcp-ss(1) handling of UDP packet states (RHEL-17649) diff --git a/redhat-issues-RHEL-17335-ss-listen.patch b/redhat-issues-RHEL-17335-ss-listen.patch deleted file mode 100644 index 19785e5..0000000 --- a/redhat-issues-RHEL-17335-ss-listen.patch +++ /dev/null @@ -1,186 +0,0 @@ -diff -Naurp pcp-6.1.1.orig/qa/1921 pcp-6.1.1/qa/1921 ---- pcp-6.1.1.orig/qa/1921 1970-01-01 10:00:00.000000000 +1000 -+++ pcp-6.1.1/qa/1921 2023-11-29 14:21:22.969455810 +1100 -@@ -0,0 +1,82 @@ -+#!/bin/sh -+# PCP QA Test No. 1921 -+# Exercise default option handling for pcp-ss(1). -+# -+# Copyright (c) 2023 Red Hat. All Rights Reserved. -+# -+ -+seq=`basename $0` -+echo "QA output created by $seq" -+ -+# get standard environment, filters and checks -+. ./common.product -+. ./common.filter -+. ./common.check -+ -+[ $PCP_PLATFORM = linux ] || _notrun "Linux-specific sockets testing" -+[ -f $PCP_BINADM_DIR/pcp-ss ] || _notrun "pcp-ss utility is not installed" -+[ -f $PCP_PMDAS_DIR/sockets/pmdasockets ] || _notrun "sockets PMDA not installed" -+ -+_cleanup() -+{ -+ cd $here -+ $sudo rm -rf $tmp $tmp.* -+} -+ -+status=0 # success is the default! -+$sudo rm -rf $tmp $tmp.* $seq.full -+ -+pmdasockets_install() -+{ -+ # start from known starting points -+ cd $PCP_PMDAS_DIR/sockets -+ $sudo ./Remove >/dev/null 2>&1 -+ -+ echo -+ echo "=== sockets agent installation ===" -+ $sudo ./Install $tmp.out 2>&1 -+ cat $tmp.out >>$here/$seq.full -+ # Check sockets metrics have appeared ... X metrics and Y values -+ _filter_pmda_install <$tmp.out \ -+ | sed \ -+ -e 's/[0-9][0-9]* warnings, //' \ -+ | $PCP_AWK_PROG ' -+/Check network.persocket metrics have appeared/ { -+ if ($7 >= 50 && $7 <= 99) $7 = "X" -+ if ($10 >= 0) $10 = "Y" -+ } -+ { print }' -+} -+ -+pmdasockets_remove() -+{ -+ echo -+ echo "=== remove sockets agent ===" -+ $sudo ./Remove >$tmp.out 2>&1 -+ _filter_pmda_remove <$tmp.out -+} -+ -+# real QA test starts here -+_prepare_pmda sockets -+trap "_cleanup_pmda sockets; exit \$status" 0 1 2 3 15 -+_stop_auto_restart pmcd -+ -+pmdasockets_install -+echo -+ -+pcp ss > $tmp.out 2>&1 -+if grep -q LISTEN $tmp.out # do not show LISTEN state by default -+then -+ echo Failed LISTEN check -+ cat $tmp.out -+ status=1 -+ exit -+else -+ echo Passed LISTEN check -+ cat $tmp.out >> $here/$seq.full -+fi -+ -+pmdasockets_remove -+ -+# success, all done -+exit -diff -Naurp pcp-6.1.1.orig/qa/1921.out pcp-6.1.1/qa/1921.out ---- pcp-6.1.1.orig/qa/1921.out 1970-01-01 10:00:00.000000000 +1000 -+++ pcp-6.1.1/qa/1921.out 2023-11-29 14:21:22.969455810 +1100 -@@ -0,0 +1,17 @@ -+QA output created by 1921 -+ -+=== sockets agent installation === -+Updating the Performance Metrics Name Space (PMNS) ... -+Terminate PMDA if already installed ... -+[...install files, make output...] -+Updating the PMCD control file, and notifying PMCD ... -+Check network.persocket metrics have appeared ... X metrics and Y values -+ -+Passed LISTEN check -+ -+=== remove sockets agent === -+Culling the Performance Metrics Name Space ... -+network.persocket ... done -+Updating the PMCD control file, and notifying PMCD ... -+[...removing files...] -+Check network.persocket metrics have gone away ... OK -diff -Naurp pcp-6.1.1.orig/qa/group pcp-6.1.1/qa/group ---- pcp-6.1.1.orig/qa/group 2023-11-29 14:21:04.266425958 +1100 -+++ pcp-6.1.1/qa/group 2023-11-29 14:21:22.978455824 +1100 -@@ -2090,6 +2090,7 @@ x11 - 1912 pmie local - 1913 pmie local valgrind - 1914 atop local -+1921 pmda.sockets local - 1927 pmda.sockets local - 1931 pmda.bpf local - 1936 other local pmclient -diff -Naurp pcp-6.1.1.orig/src/pcp/ss/pcp-ss.1 pcp-6.1.1/src/pcp/ss/pcp-ss.1 ---- pcp-6.1.1.orig/src/pcp/ss/pcp-ss.1 2023-11-29 14:21:04.266425958 +1100 -+++ pcp-6.1.1/src/pcp/ss/pcp-ss.1 2023-11-29 14:21:22.978455824 +1100 -@@ -168,10 +168,10 @@ show help message and exit - output version information - .TP 5 - \fB\-n\fP, \fB\-\-numeric\fP --don't resolve service names -+don't resolve service names (currently always set) - .TP 5 - \fB\-r\fP, \fB\-\-resolve\fP --resolve host names -+resolve host names (not yet implemented) - .TP 5 - \fB\-a\fP, \fB\-\-all\fP - display all sockets -diff -Naurp pcp-6.1.1.orig/src/pcp/ss/pcp-ss.py pcp-6.1.1/src/pcp/ss/pcp-ss.py ---- pcp-6.1.1.orig/src/pcp/ss/pcp-ss.py 2023-11-29 14:21:04.267425959 +1100 -+++ pcp-6.1.1/src/pcp/ss/pcp-ss.py 2023-11-29 14:21:22.979455826 +1100 -@@ -25,9 +25,6 @@ from pcp import pmapi - from cpmapi import PM_CONTEXT_ARCHIVE, PM_CONTEXT_HOST - from cpmapi import PM_ERR_EOL, PM_MODE_INTERP - --if sys.version >= '3': -- long = int -- - # pmns prefix for pmdasockets(1) metrics - pmns = "network.persocket" - -@@ -57,8 +54,8 @@ class SS(object): - p.add_argument('-V', '--version', action='store_true', help='output version information') - p.add_argument('-n', '--numeric', action='store_true', help='don\'t resolve service names or port names (currently always set)') - p.add_argument('-r', '--resolve', action='store_true', help='resolve host names (currently never set)') -- p.add_argument('-a', '--all', action='store_true', help='display sockets in any state, not just listening') -- p.add_argument('-l', '--listening', action='store_true', help='display only listening sockets') -+ p.add_argument('-a', '--all', action='store_true', help='display both listening and non-listening states') -+ p.add_argument('-l', '--listening', action='store_true', default=False, help='display only listening sockets') - p.add_argument('-o', '--options', action='store_true', help='show timer information') - p.add_argument('-e', '--extended', action='store_true', help='show detailed socket information') - p.add_argument('-m', '--memory', action='store_true', help='show socket memory usage') -@@ -92,9 +89,6 @@ class SS(object): - # default to both ipv4 and ipv6, subject to the prevailing filter - args.ipv4 = args.ipv6 = True - -- if args.all: -- args.listening = True -- - if args.events or args.context or args.contexts or args.net or args.summary or args.processes: - print("Warning: --events, --context --net, --summary and --processes options are not implemented") - -@@ -283,13 +277,16 @@ class SS(object): - return ret - - def filter_listening(self, inst): -- """ filter on tcp state, return True if socket is listening """ -+ """ filter on tcp socket listening state """ - if self.args.all: - return True - state = self.valuesD["state"][inst] - if self.args.listening: - if state != "LISTEN": - return False -+ else: -+ if state == "LISTEN": -+ return False - return True - - def report(self): diff --git a/redhat-issues-RHEL-17649-ss-udp.patch b/redhat-issues-RHEL-17649-ss-udp.patch deleted file mode 100644 index 4f60157..0000000 --- a/redhat-issues-RHEL-17649-ss-udp.patch +++ /dev/null @@ -1,295 +0,0 @@ -commit 885ce6abd66040cb78e985013242b43e7dd5ca14 -Author: Nathan Scott -Date: Fri Dec 8 11:29:25 2023 +1100 - - pcp-ss: fix the UDP UNCONN vs LISTEN state handling - - Resolves Red Hat issue RHEL-17649 - -diff --git a/qa/1921 b/qa/1921 -index e65dc369d..94c7a7383 100755 ---- a/qa/1921 -+++ b/qa/1921 -@@ -76,6 +76,18 @@ else - cat $tmp.out >> $here/$seq.full - fi - -+pcp ss -u > $tmp.out 2>&1 -+if grep -q UNCONN $tmp.out # do not show UNCONN state by default in UDP mode -+then -+ echo Failed UDP UNCONN check -+ cat $tmp.out -+ status=1 -+ exit -+else -+ echo Passed UDP UNCONN check -+ cat $tmp.out >> $here/$seq.full -+fi -+ - pmdasockets_remove - - # success, all done -diff --git a/qa/1921.out b/qa/1921.out -index 2331de828..0f4f815fc 100644 ---- a/qa/1921.out -+++ b/qa/1921.out -@@ -8,6 +8,7 @@ Updating the PMCD control file, and notifying PMCD ... - Check network.persocket metrics have appeared ... X metrics and Y values - - Passed LISTEN check -+Passed UDP UNCONN check - - === remove sockets agent === - Culling the Performance Metrics Name Space ... -diff --git a/src/pcp/ss/pcp-ss.py b/src/pcp/ss/pcp-ss.py -index 91bb81a97..72e0607c1 100755 ---- a/src/pcp/ss/pcp-ss.py -+++ b/src/pcp/ss/pcp-ss.py -@@ -254,7 +254,8 @@ class SS(object): - if self.args.tcp and netid == "tcp": - ret = True - elif self.args.udp and netid == "udp": -- ret = True -+ state = self.valuesD["state"][inst] -+ ret = bool(state != "UNCONN" or self.args.listening) - elif self.args.unix and netid == "unix": - ret = True - elif self.args.raw and netid == "raw": -@@ -282,6 +283,9 @@ class SS(object): - return True - state = self.valuesD["state"][inst] - if self.args.listening: -+ netid = self.valuesD["netid"][inst] -+ if state == "UNCONN" and netid == 'udp': -+ return True - if state != "LISTEN": - return False - else: - -commit 2b184367378a1a69a48da09e284256ed874ffac2 -Author: Nathan Scott -Date: Fri Dec 8 11:43:24 2023 +1100 - - docs: do not document (nor accept) unimplemented pcp-ss options - - Related to Red Hat issue RHEL-17334 - -diff --git a/src/pcp/ss/pcp-ss.1 b/src/pcp/ss/pcp-ss.1 -index 9598fa8d8..69caf35ea 100644 ---- a/src/pcp/ss/pcp-ss.1 -+++ b/src/pcp/ss/pcp-ss.1 -@@ -1,6 +1,6 @@ - '\"macro stdmacro - .\" --.\" Copyright (c) 2021 Red Hat. -+.\" Copyright (c) 2021,2023 Red Hat. - .\" - .\" This program is free software; you can redistribute it and/or modify it - .\" under the terms of the GNU General Public License as published by the -@@ -169,9 +169,9 @@ output version information - .TP 5 - \fB\-n\fP, \fB\-\-numeric\fP - don't resolve service names (currently always set) --.TP 5 --\fB\-r\fP, \fB\-\-resolve\fP --resolve host names (not yet implemented) -+'\" .TP 5 -+'\" \fB\-r\fP, \fB\-\-resolve\fP -+'\" resolve host names (not yet implemented) - .TP 5 - \fB\-a\fP, \fB\-\-all\fP - display all sockets -@@ -187,60 +187,60 @@ show detailed socket information - .TP 5 - \fB\-m\fP, \fB\-\-memory\fP - show socket memory usage --.TP 5 --\fB\-p\fP, \fB\-\-processes\fP --show process using socket -+'\" .TP 5 -+'\" \fB\-p\fP, \fB\-\-processes\fP -+'\" show process using socket - .TP 5 - \fB\-i\fP, \fB\-\-info\fP - show internal TCP information --.TP 5 --\fB\-s\fP, \fB\-\-summary\fP --show socket usage summary --.TP 5 --\fB\-b\fP, \fB\-\-bpf\fP --show bpf filter socket information --.TP 5 --\fB\-E\fP, \fB\-\-events\fP --continually display sockets as they are destroyed --.TP 5 --\fB\-Z\fP, \fB\-\-context\fP --display process SELinux security contexts --.TP 5 --\fB\-z\fP, \fB\-\-contexts\fP --display process and socket SELinux security contexts --.TP 5 --\fB\-N\fP, \fB\-\-net\fP --switch to the specified network namespace name -+'\" .TP 5 -+'\" \fB\-s\fP, \fB\-\-summary\fP -+'\" show socket usage summary -+'\" .TP 5 -+'\" \fB\-b\fP, \fB\-\-bpf\fP -+'\" show bpf filter socket information -+'\" .TP 5 -+'\" \fB\-E\fP, \fB\-\-events\fP -+'\" continually display sockets as they are destroyed -+'\" .TP 5 -+'\" \fB\-Z\fP, \fB\-\-context\fP -+'\" display process SELinux security contexts -+'\" .TP 5 -+'\" \fB\-z\fP, \fB\-\-contexts\fP -+'\" display process and socket SELinux security contexts -+'\" .TP 5 -+'\" \fB\-N\fP, \fB\-\-net\fP -+'\" switch to the specified network namespace name - .TP 5 - \fB\-4\fP, \fB\-\-ipv4\fP - display only IP version 4 sockets - .TP 5 - \fB\-6\fP, \fB\-\-ipv6\fP - display only IP version 6 sockets --.TP 5 --\fB\-0\fP, \fB\-\-packet\fP --display PACKET sockets -+'\" .TP 5 -+'\" \fB\-0\fP, \fB\-\-packet\fP -+'\" display PACKET sockets - .TP 5 - \fB\-t\fP, \fB\-\-tcp\fP - display only TCP sockets --.TP 5 --\fB\-M\fP, \fB\-\-mptcp\fP --display only MPTCP sockets --.TP 5 --\fB\-S\fP, \fB\-\-sctp\fP --display only SCTP sockets -+'\" .TP 5 -+'\" \fB\-M\fP, \fB\-\-mptcp\fP -+'\" display only MPTCP sockets -+'\" .TP 5 -+'\" \fB\-S\fP, \fB\-\-sctp\fP -+'\" display only SCTP sockets - .TP 5 - \fB\-u\fP, \fB\-\-udp\fP - display only UDP sockets --.TP 5 --\fB\-d\fP, \fB\-\-dccp\fP --display only DCCP sockets --.TP 5 --\fB\-w\fP, \fB\-\-raw\fP --display only RAW sockets --.TP 5 --\fB\-x\fP, \fB\-\-unix\fP --display only Unix domain sockets -+'\" .TP 5 -+'\" \fB\-d\fP, \fB\-\-dccp\fP -+'\" display only DCCP sockets -+'\" .TP 5 -+'\" \fB\-w\fP, \fB\-\-raw\fP -+'\" display only RAW sockets -+'\" .TP 5 -+'\" \fB\-x\fP, \fB\-\-unix\fP -+'\" display only Unix domain sockets - .TP 5 - \fB\-H\fP, \fB\-\-noheader\fP - Suppress header line -diff --git a/src/pcp/ss/pcp-ss.py b/src/pcp/ss/pcp-ss.py -index 72e0607c1..74952911a 100755 ---- a/src/pcp/ss/pcp-ss.py -+++ b/src/pcp/ss/pcp-ss.py -@@ -53,45 +53,42 @@ class SS(object): - p = argparse.ArgumentParser() - p.add_argument('-V', '--version', action='store_true', help='output version information') - p.add_argument('-n', '--numeric', action='store_true', help='don\'t resolve service names or port names (currently always set)') -- p.add_argument('-r', '--resolve', action='store_true', help='resolve host names (currently never set)') -+ #p.add_argument('-r', '--resolve', action='store_true', help='resolve host names (currently never set)') - p.add_argument('-a', '--all', action='store_true', help='display both listening and non-listening states') - p.add_argument('-l', '--listening', action='store_true', default=False, help='display only listening sockets') - p.add_argument('-o', '--options', action='store_true', help='show timer information') - p.add_argument('-e', '--extended', action='store_true', help='show detailed socket information') - p.add_argument('-m', '--memory', action='store_true', help='show socket memory usage') -- p.add_argument('-p', '--processes', action='store_true', help='show process using socket (not yet implemented)') -+ #p.add_argument('-p', '--processes', action='store_true', help='show process using socket (not yet implemented)') - p.add_argument('-i', '--info', action='store_true', help='show internal TCP information') -- p.add_argument('-s', '--summary', action='store_true', help='show socket usage summary (not yet implemented)') -- p.add_argument('-b', '--bpf', action='store_true', help='show bpf filter socket information (not yet implemented)') -- p.add_argument('-E', '--events', action='store_true', help='continually display sockets as they are destroyed (not implemented)') -- p.add_argument('-Z', '--context', action='store_true', help='display process SELinux security contexts (not implemented)') -- p.add_argument('-z', '--contexts', action='store_true', help='display process and socket SELinux security contexts (not implemented)') -- p.add_argument('-N', '--net', action='store_true', help='switch to the specified network namespace name (not implemented)') -+ #p.add_argument('-s', '--summary', action='store_true', help='show socket usage summary (not yet implemented)') -+ #p.add_argument('-b', '--bpf', action='store_true', help='show bpf filter socket information (not yet implemented)') -+ #p.add_argument('-E', '--events', action='store_true', help='continually display sockets as they are destroyed (not implemented)') -+ #p.add_argument('-Z', '--context', action='store_true', help='display process SELinux security contexts (not implemented)') -+ #p.add_argument('-z', '--contexts', action='store_true', help='display process and socket SELinux security contexts (not implemented)') -+ #p.add_argument('-N', '--net', action='store_true', help='switch to the specified network namespace name (not implemented)') - p.add_argument('-4', '--ipv4', action='store_true', help='display only IP version 4 sockets') - p.add_argument('-6', '--ipv6', action='store_true', help='display only IP version 6 sockets') -- p.add_argument('-0', '--packet', action='store_true', help='display PACKET sockets (not implemented)') -+ #p.add_argument('-0', '--packet', action='store_true', help='display PACKET sockets (not implemented)') - p.add_argument('-t', '--tcp', action='store_true', help='display only TCP sockets') -- p.add_argument('-M', '--mptcp', action='store_true', help='display only MPTCP sockets (not implemented)') -- p.add_argument('-S', '--sctp', action='store_true', help='display only SCTP sockets (not implemented)') -+ #p.add_argument('-M', '--mptcp', action='store_true', help='display only MPTCP sockets (not implemented)') -+ #p.add_argument('-S', '--sctp', action='store_true', help='display only SCTP sockets (not implemented)') - p.add_argument('-u', '--udp', action='store_true', help='display only UDP sockets') -- p.add_argument('-d', '--dccp', action='store_true', help='display only DCCP sockets (not implemented)') -- p.add_argument('-w', '--raw', action='store_true', help='display only RAW sockets (not implemented)') -- p.add_argument('-x', '--unix', action='store_true', help='display only Unix domain sockets (not implemented)') -+ #p.add_argument('-d', '--dccp', action='store_true', help='display only DCCP sockets (not implemented)') -+ #p.add_argument('-w', '--raw', action='store_true', help='display only RAW sockets (not implemented)') -+ #p.add_argument('-x', '--unix', action='store_true', help='display only Unix domain sockets (not implemented)') - p.add_argument('-H', '--noheader', action='store_true', help='Suppress header line') - p.add_argument('-O', '--oneline', action='store_true', help='print each socket\'s data on a single line') - args = p.parse_args() - - # special cases -- if not (args.tcp or args.udp or args.mptcp or args.sctp or args.packet or args.dccp or args.raw or args.unix): -- args.tcp = args.udp = args.mptcp = args.sctp = args.packet = args.dccp = args.raw = args.unix = True -+ if not (args.tcp or args.udp): # or args.mptcp or args.sctp or args.packet or args.dccp or args.raw or args.unix): -+ args.tcp = args.udp = True # args.mptcp = args.sctp = args.packet = args.dccp = args.raw = args.unix = True - - if not (args.ipv4 or args.ipv6): - # default to both ipv4 and ipv6, subject to the prevailing filter - args.ipv4 = args.ipv6 = True - -- if args.events or args.context or args.contexts or args.net or args.summary or args.processes: -- print("Warning: --events, --context --net, --summary and --processes options are not implemented") -- - return args - - def connect(self): -commit 79fdfd6d01f3e1d2d8449af3a7d9e56f9bfc65b2 -Author: Jan Kurik -Date: Wed Dec 13 18:03:08 2023 +0100 - - Fixed crash of interpreter when using -t/-u option - - Cleanup of remained code for unix and raw sockets causing python - interpreter to crash, generating a traceback. - -diff --git a/src/pcp/ss/pcp-ss.py b/src/pcp/ss/pcp-ss.py -index 74952911a..5cf8ef939 100755 ---- a/src/pcp/ss/pcp-ss.py -+++ b/src/pcp/ss/pcp-ss.py -@@ -253,10 +253,10 @@ class SS(object): - elif self.args.udp and netid == "udp": - state = self.valuesD["state"][inst] - ret = bool(state != "UNCONN" or self.args.listening) -- elif self.args.unix and netid == "unix": -- ret = True -- elif self.args.raw and netid == "raw": -- ret = True -+ #elif self.args.unix and netid == "unix": -+ # ret = True -+ #elif self.args.raw and netid == "raw": -+ # ret = True - return ret - - def filter_ipv46(self, inst): diff --git a/redhat-issues-RHEL-2317-default-archive-version.patch b/redhat-issues-RHEL-2317-default-archive-version.patch new file mode 100644 index 0000000..ac47bd2 --- /dev/null +++ b/redhat-issues-RHEL-2317-default-archive-version.patch @@ -0,0 +1,12 @@ +diff -Naurp pcp-6.2.0.orig/src/include/pcp.conf.in pcp-6.2.0/src/include/pcp.conf.in +--- pcp-6.2.0.orig/src/include/pcp.conf.in 2023-12-08 10:24:17.000000000 +1100 ++++ pcp-6.2.0/src/include/pcp.conf.in 2024-02-12 04:10:10.649953498 +1100 +@@ -140,7 +140,7 @@ PCP_ARCHIVE_DIR=@pcp_archive_dir@ + + # default version for generating PCP archives + # Possible versions: 2, 3 (3 requires PCP 6+) +-PCP_ARCHIVE_VERSION=3 ++PCP_ARCHIVE_VERSION=2 + + # directory for daily PCP activity reports + # Standard path: /var/log/pcp/sa diff --git a/sources b/sources index 16f8b8c..0c480b7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (pcp-6.1.1.src.tar.gz) = 04ab4a6e24f2f4b69e750bf21ff5c717717fb7d2a60dc9317a9721b808e42939e6dd113cf8ea1f40d98edcd176dbb24c584cc41b80249a57c9db3c256230aa19 +SHA512 (pcp-6.2.0.src.tar.gz) = 249ceebf9b87d03fd024d2c75c1f32362cad3d315b68bf3bc305705cbec564d0c162d695988332183f1a595bc88f80929e7d111435ae09ce3c240e0df9b47a1b