Compare commits
10 Commits
c0eae6e61f
...
5ef232f160
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ef232f160 | ||
|
|
769ee3e5ac | ||
|
|
77e574b153 | ||
|
|
952e705e3b | ||
|
|
2b01017f30 | ||
|
|
aab3fa036d | ||
|
|
96a2a3fbc6 | ||
|
|
76af881bfb | ||
|
|
7f1b469a16 | ||
|
|
714b195665 |
55
Add-pcp_domain-selinux-policy.patch
Normal file
55
Add-pcp_domain-selinux-policy.patch
Normal file
@ -0,0 +1,55 @@
|
||||
From 630e0e4e304c751127329009000dc0abcb5a62dc Mon Sep 17 00:00:00 2001
|
||||
From: lingsheng <lingsheng@huawei.com>
|
||||
Date: Tue, 8 Jun 2021 10:39:37 +0800
|
||||
Subject: [PATCH] Add pcp_domain selinux policy
|
||||
|
||||
---
|
||||
src/selinux/pcpupstream.te.in | 11 +++++++++--
|
||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/selinux/pcpupstream.te.in b/src/selinux/pcpupstream.te.in
|
||||
index 8a8cc22..77ede46 100644
|
||||
--- a/src/selinux/pcpupstream.te.in
|
||||
+++ b/src/selinux/pcpupstream.te.in
|
||||
@@ -1,6 +1,9 @@
|
||||
module pcpupstream @PACKAGE_VERSION@;
|
||||
|
||||
require {
|
||||
+ attribute domain;
|
||||
+ attribute pcp_domain;
|
||||
+
|
||||
type pcp_pmcd_t;
|
||||
type user_home_t;
|
||||
type user_home_dir_t; #RHBZ1488116
|
||||
@@ -79,7 +82,7 @@ require {
|
||||
type system_cronjob_t;
|
||||
type xdm_t;
|
||||
type postgresql_t;
|
||||
- class sem { unix_read associate getattr };
|
||||
+ class sem { unix_read associate getattr read};
|
||||
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 };
|
||||
@@ -93,7 +96,7 @@ require {
|
||||
@PCP_SOCK_FILE_GETATTR@
|
||||
@PCP_CLASS_STATUS@
|
||||
class tcp_socket { name_bind name_connect };
|
||||
- class shm { unix_read associate getattr };
|
||||
+ class shm { unix_read associate getattr read};
|
||||
class filesystem mount;
|
||||
class blk_file { ioctl open read };
|
||||
class msgq { unix_read };
|
||||
@@ -286,6 +289,10 @@ allow pcp_pmcd_t postgresql_t:shm { associate getattr unix_read };
|
||||
#type=AVC msg=audit(...): avc: denied { connectto } for pid=NNN comm="python" path="/run/postgresql/.s.PGSQL.5432" scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:system_r:postgresql_t:s0 tclass=unix_stream_socket
|
||||
allow pcp_pmcd_t postgresql_t:unix_stream_socket connectto;
|
||||
|
||||
+# allow pcp_pmcd_t domain to read shared memory and semaphores of all domain on system
|
||||
+allow pcp_domain domain:shm r_sem_perms;
|
||||
+allow pcp_domain domain:sem r_shm_perms;
|
||||
+
|
||||
#============= pcp_pmlogger_t ==============
|
||||
allow pcp_pmlogger_t kmsg_device_t:chr_file { open write };
|
||||
allow pcp_pmlogger_t self:capability kill;
|
||||
--
|
||||
2.23.0
|
||||
|
||||
184
Fix-some-options-and-syntax-errors.patch
Normal file
184
Fix-some-options-and-syntax-errors.patch
Normal file
@ -0,0 +1,184 @@
|
||||
diff --git a/src/pcp/collectl/pcp-collectl.py b/src/pcp/collectl/pcp-collectl.py
|
||||
index 3cff1f9..58b8c64 100755
|
||||
--- a/src/pcp/collectl/pcp-collectl.py
|
||||
+++ b/src/pcp/collectl/pcp-collectl.py
|
||||
@@ -841,7 +841,7 @@ class _Options(object):
|
||||
opts = pmapi.pmOptions()
|
||||
opts.pmSetOptionCallback(self.option_callback)
|
||||
opts.pmSetOverrideCallback(self.override)
|
||||
- opts.pmSetShortOptions("vp:a:c:f:R:i:s:h:?")
|
||||
+ opts.pmSetShortOptions("Vvp:a:c:f:R:i:s:h:?")
|
||||
opts.pmSetLongOptionText("")
|
||||
opts.pmSetLongOptionText("Interactive: pcp collectl [-h HOST] [options]")
|
||||
opts.pmSetLongOptionText("Read PCP archive: pcp collectl -a ARCHIVE [options]")
|
||||
diff --git a/src/pcp/dmcache/pcp-dmcache.py b/src/pcp/dmcache/pcp-dmcache.py
|
||||
index cd88ed4..29eb0ec 100755
|
||||
--- a/src/pcp/dmcache/pcp-dmcache.py
|
||||
+++ b/src/pcp/dmcache/pcp-dmcache.py
|
||||
@@ -155,7 +155,7 @@ class DmCachePrinter(pmcc.MetricGroupPrinter):
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
- options = pmapi.pmOptions('iR:?')
|
||||
+ options = pmapi.pmOptions('ViR:?')
|
||||
options.pmSetShortUsage('[options] [device ...]')
|
||||
options.pmSetOptionCallback(option)
|
||||
options.pmSetLongOptionHeader('Options')
|
||||
diff --git a/src/pcp/dstat/pcp-dstat.py b/src/pcp/dstat/pcp-dstat.py
|
||||
index c178874..cdd7991 100755
|
||||
--- a/src/pcp/dstat/pcp-dstat.py
|
||||
+++ b/src/pcp/dstat/pcp-dstat.py
|
||||
@@ -727,7 +727,7 @@ class DstatTool(object):
|
||||
# opts.pmSetLongOption('zones', 0, None, '', 'enable zoneinfo stats')
|
||||
opts.pmSetLongOptionText('')
|
||||
opts.pmSetLongOption('list', 0, None, '', 'list all available plugins')
|
||||
- opts.pmSetLongOption('plugin', 0, None, '', 'enable external plugin by name, see --list')
|
||||
+ opts.pmSetLongOption('<plugin-name>', 0, None, '', 'enable external plugin by name, see --list')
|
||||
opts.pmSetLongOptionText('')
|
||||
opts.pmSetLongOption('all', 0, 'a', '', 'equals -cdngy (default)')
|
||||
opts.pmSetLongOption('full', 0, 'f', '', 'automatically expand -C, -D, -I, -N and -S lists')
|
||||
@@ -785,7 +785,7 @@ class DstatTool(object):
|
||||
self.disklist = sorted([x for x in insts if x != 'total'])
|
||||
if 'total' in insts:
|
||||
self.disklist.append('total')
|
||||
- elif opt in ['--filesystem']:
|
||||
+ elif opt in ['filesystem']:
|
||||
self.plugins.append('fs')
|
||||
elif opt in ['g']:
|
||||
self.plugins.append('page')
|
||||
diff --git a/src/pcp/iostat/pcp-iostat.py b/src/pcp/iostat/pcp-iostat.py
|
||||
index bc716c2..b3a810c 100755
|
||||
--- a/src/pcp/iostat/pcp-iostat.py
|
||||
+++ b/src/pcp/iostat/pcp-iostat.py
|
||||
@@ -165,11 +165,11 @@ class IostatReport(pmcc.MetricGroupPrinter):
|
||||
if "t" in IostatOptions.xflag:
|
||||
heading = ('# Timestamp', 'Device',rrqmspace, 'rrqm/s',wrqmspace, 'wrqm/s',precision+5, 'r/s',precision+4,\
|
||||
'w/s',precision+6, 'rkB/s',precision+6, 'wkB/s', avgrqszspace,'avgrq-sz',precision+6, 'avgqu-sz',precision+5, \
|
||||
- 'await',precision+5, 'r_await', precision+5,'w_await',utilspace, '%util')
|
||||
+ 'await_t',precision+5, 'r_await', precision+5,'w_await',utilspace, '%util')
|
||||
else:
|
||||
heading = ('# Device',rrqmspace, 'rrqm/s',wrqmspace, 'wrqm/s',precision+5, 'r/s',precision+4, 'w/s'\
|
||||
,precision+6, 'rkB/s',precision+6, 'wkB/s', avgrqszspace,'avgrq-sz',precision+6, 'avgqu-sz',precision+5,\
|
||||
- 'await',awaitspace, 'r_await',awaitspace, 'w_await',utilspace, '%util')
|
||||
+ 'await_t',awaitspace, 'r_await',awaitspace, 'w_await',utilspace, '%util')
|
||||
print(headfmt % heading)
|
||||
|
||||
if p_rrqm == {} or p_wrqm == {} or p_r == {} or p_w == {} or \
|
||||
@@ -205,7 +205,7 @@ class IostatReport(pmcc.MetricGroupPrinter):
|
||||
# total active time in seconds (same units as dt)
|
||||
tot_active = (float)(c_avactive[inst] - p_avactive[inst]) / 1000.0
|
||||
|
||||
- avgrqsz = avgqsz = await = r_await = w_await = util = 0.0
|
||||
+ avgrqsz = avgqsz = await_t = r_await = w_await = util = 0.0
|
||||
|
||||
# average request size units are KB (sysstat reports in units of sectors)
|
||||
if tot_ios:
|
||||
@@ -214,9 +214,9 @@ class IostatReport(pmcc.MetricGroupPrinter):
|
||||
# average queue length
|
||||
avgqsz = (float)((c_ractive[inst] - p_ractive[inst]) + (c_wactive[inst] - p_wactive[inst])) / dt / 1000.0
|
||||
|
||||
- # await, r_await, w_await
|
||||
+ # await_t, r_await, w_await
|
||||
if tot_ios:
|
||||
- await = ((c_ractive[inst] - p_ractive[inst]) + (c_wactive[inst] - p_wactive[inst])) / tot_ios
|
||||
+ await_t = ((c_ractive[inst] - p_ractive[inst]) + (c_wactive[inst] - p_wactive[inst])) / tot_ios
|
||||
|
||||
if tot_rios:
|
||||
r_await = (c_ractive[inst] - p_ractive[inst]) / tot_rios
|
||||
@@ -229,7 +229,7 @@ class IostatReport(pmcc.MetricGroupPrinter):
|
||||
util = 100.0 * tot_active / dt
|
||||
|
||||
device = inst # prepare name for printing
|
||||
- badcounters = rrqm < 0 or wrqm < 0 or r < 0 or w < 0 or await < 0 or avgrqsz < 0 or avgqsz < 0 or util < 0
|
||||
+ badcounters = rrqm < 0 or wrqm < 0 or r < 0 or w < 0 or await_t < 0 or avgrqsz < 0 or avgqsz < 0 or util < 0
|
||||
|
||||
if "t" in IostatOptions.xflag:
|
||||
if badcounters:
|
||||
@@ -250,7 +250,7 @@ class IostatReport(pmcc.MetricGroupPrinter):
|
||||
if not IostatOptions.Gflag:
|
||||
print(valfmt % (timestamp, device,rrqmspace, precision, rrqm,wrqmspace,precision, wrqm,precision+5,precision,\
|
||||
r,precision+4,precision, w,precision+6,precision, rkb,precision+6,precision, wkb, avgrqszspace,precision+1 ,avgrqsz,\
|
||||
- avgrqszspace,precision+1, avgqsz,precision+5,precision, await,awaitspace,precision, r_await,awaitspace,precision,\
|
||||
+ avgrqszspace,precision+1, avgqsz,precision+5,precision, await_t,awaitspace,precision, r_await,awaitspace,precision,\
|
||||
w_await,utilspace,precision, util))
|
||||
else:
|
||||
if badcounters:
|
||||
@@ -270,7 +270,7 @@ class IostatReport(pmcc.MetricGroupPrinter):
|
||||
if not IostatOptions.Gflag:
|
||||
print(valfmt % (device,rrqmspace, precision, rrqm,wrqmspace,precision, wrqm,precision+5,precision, r,precision+4,\
|
||||
precision, w,precision+6,precision, rkb,precision+6,precision, wkb,\
|
||||
- avgrqszspace,precision+1 ,avgrqsz,avgrqszspace,precision+1, avgqsz,precision+5,precision, await,awaitspace,precision,\
|
||||
+ avgrqszspace,precision+1 ,avgrqsz,avgrqszspace,precision+1, avgqsz,precision+5,precision, await_t,awaitspace,precision,\
|
||||
r_await,awaitspace,precision, w_await,utilspace,precision, util))
|
||||
|
||||
if IostatOptions.Gflag and not badcounters:
|
||||
@@ -282,7 +282,7 @@ class IostatReport(pmcc.MetricGroupPrinter):
|
||||
aggr_wkb = aggregate(aggr, aggr_wkb, wkb)
|
||||
aggr_avgrqsz = aggregate(aggr, aggr_avgrqsz, avgrqsz)
|
||||
aggr_avgqsz = aggregate(aggr, aggr_avgqsz, avgqsz)
|
||||
- aggr_await = aggregate(aggr, aggr_await, await)
|
||||
+ aggr_await = aggregate(aggr, aggr_await, await_t)
|
||||
aggr_r_await = aggregate(aggr, aggr_r_await, r_await)
|
||||
aggr_w_await = aggregate(aggr, aggr_w_await, w_await)
|
||||
aggr_util = aggregate(aggr, aggr_util, util)
|
||||
diff --git a/src/pmlogconf/pmlogconf.sh b/src/pmlogconf/pmlogconf.sh
|
||||
index 44f5099..af2bf37 100755
|
||||
--- a/src/pmlogconf/pmlogconf.sh
|
||||
+++ b/src/pmlogconf/pmlogconf.sh
|
||||
@@ -161,7 +161,7 @@ _split()
|
||||
$PCP_AWK_PROG <$tmp/ctl '
|
||||
BEGIN { out = "'"$tmp/head"'" }
|
||||
/DO NOT UPDATE THE FILE ABOVE/ { seen = 1 }
|
||||
-seen == 0 && /^\#\? [^:]*:[ynx]:/ { print >"'"$tmp/tag"'"
|
||||
+seen == 0 && /^#\? [^:]*:[ynx]:/ { print >"'"$tmp/tag"'"
|
||||
out = "'"$tmp/tail"'"
|
||||
seen = 1
|
||||
next
|
||||
@@ -180,8 +180,8 @@ _update()
|
||||
$PCP_AWK_PROG <$tmp/in >$tmp/ctl '
|
||||
/DO NOT UPDATE THE FILE ABOVE/ { tail = 1 }
|
||||
tail == 1 { print; next }
|
||||
-/^\#\+ [^:]*:[ynx]:/ { sub(/\+/, "?", $1); print; skip = 1; next }
|
||||
-skip == 1 && /^\#----/ { skip = 0; next }
|
||||
+/^#\+ [^:]*:[ynx]:/ { sub(/\+/, "?", $1); print; skip = 1; next }
|
||||
+skip == 1 && /^#----/ { skip = 0; next }
|
||||
skip == 1 { next }
|
||||
{ print }'
|
||||
|
||||
diff --git a/src/pmprobe/pmprobe.c b/src/pmprobe/pmprobe.c
|
||||
index dcf1567..d6d7ab5 100644
|
||||
--- a/src/pmprobe/pmprobe.c
|
||||
+++ b/src/pmprobe/pmprobe.c
|
||||
@@ -63,7 +63,7 @@ overrides(int opt, pmOptions *opts)
|
||||
|
||||
static pmOptions opts = {
|
||||
.flags = PM_OPTFLAG_STDOUT_TZ,
|
||||
- .short_options = "a:b:D:efh:IiK:Ln:FO:VvZ:z?",
|
||||
+ .short_options = "a:b:D:defh:IiK:Ln:FO:VvZ:z?",
|
||||
.long_options = longopts,
|
||||
.short_usage = "[options] [metricname ...]",
|
||||
.override = overrides,
|
||||
diff --git a/src/pmstat/pmstat.c b/src/pmstat/pmstat.c
|
||||
index c4f9881..b3986d7 100644
|
||||
--- a/src/pmstat/pmstat.c
|
||||
+++ b/src/pmstat/pmstat.c
|
||||
@@ -371,6 +371,10 @@ main(int argc, char *argv[])
|
||||
case 'x': /* extended CPU reporting */
|
||||
extraCpuStats = 1;
|
||||
break;
|
||||
+ case 'V':
|
||||
+ pmprintf("%s version %s\n", pmGetProgname(), PCP_VERSION);
|
||||
+ opts.flags |= PM_OPTFLAG_EXIT;
|
||||
+ break;
|
||||
default:
|
||||
opts.errors++;
|
||||
break;
|
||||
@@ -387,7 +391,7 @@ main(int argc, char *argv[])
|
||||
opts.errors++;
|
||||
}
|
||||
|
||||
- if (opts.errors) {
|
||||
+ if (opts.errors || (opts.flags & PM_OPTFLAG_EXIT)) {
|
||||
pmUsageMessage(&opts);
|
||||
exit(1);
|
||||
}
|
||||
24
add-ExecStartPost-option-to-pmwebd-service.patch
Normal file
24
add-ExecStartPost-option-to-pmwebd-service.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 9d04579d74866bfa9022f4f17291be4b807bb218 Mon Sep 17 00:00:00 2001
|
||||
From: wk333 <13474090681@163.com>
|
||||
Date: Thu, 16 Feb 2023 16:02:59 +0800
|
||||
Subject: [PATCH 1/1] add ExecStartPost option to pmwebd.service
|
||||
|
||||
---
|
||||
src/pmwebd/pmwebd.service.in | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/pmwebd/pmwebd.service.in b/src/pmwebd/pmwebd.service.in
|
||||
index 4f0c44c..5dc462e 100644
|
||||
--- a/src/pmwebd/pmwebd.service.in
|
||||
+++ b/src/pmwebd/pmwebd.service.in
|
||||
@@ -8,6 +8,7 @@ After=network-online.target avahi-daemon.service pmcd.service
|
||||
Type=forking
|
||||
Restart=always
|
||||
ExecStart=@PCP_RC_DIR@/pmwebd start
|
||||
+ExecStartPost=/usr/bin/sleep 0.1
|
||||
ExecStop=@PCP_RC_DIR@/pmwebd stop
|
||||
PIDFile=@PCP_RUN_DIR@/pmwebd.pid
|
||||
|
||||
--
|
||||
2.27.0
|
||||
|
||||
26
fix-out-of-range-mpstat.patch
Normal file
26
fix-out-of-range-mpstat.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 9e7d6b2796f669a5e41f5e4fb5ea349a39d8795b Mon Sep 17 00:00:00 2001
|
||||
From: caodongxia <315816521@qq.com>
|
||||
Date: Thu, 14 Jul 2022 15:16:42 +0800
|
||||
Subject: [PATCH] fix out of range
|
||||
|
||||
---
|
||||
src/pcp/mpstat/pcp-mpstat.py | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/pcp/mpstat/pcp-mpstat.py b/src/pcp/mpstat/pcp-mpstat.py
|
||||
index fefb6aa..17da944 100755
|
||||
--- a/src/pcp/mpstat/pcp-mpstat.py
|
||||
+++ b/src/pcp/mpstat/pcp-mpstat.py
|
||||
@@ -602,6 +602,9 @@ class MpstatReport(pmcc.MetricGroupPrinter):
|
||||
# need two fetches to report rate converted counter metrics
|
||||
return
|
||||
|
||||
+ if not group['hinv.ncpu'].netValues or not group['kernel.uname.sysname'].netValues:
|
||||
+ return
|
||||
+
|
||||
if self.Machine_info_count == 0:
|
||||
self.print_machine_info(group, manager)
|
||||
self.Machine_info_count = 1
|
||||
--
|
||||
2.23.0
|
||||
|
||||
12
fix-pcp-pidstat-bug.patch
Normal file
12
fix-pcp-pidstat-bug.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/src/pmlogconf/tools/pidstat b/src/pmlogconf/tools/pidstat
|
||||
index b3cfbce..c040a60 100644
|
||||
--- a/src/pmlogconf/tools/pidstat
|
||||
+++ b/src/pmlogconf/tools/pidstat
|
||||
@@ -1,6 +1,6 @@
|
||||
#pmlogconf-setup 2.0
|
||||
ident metrics used by the pcp-pidstat(1) command
|
||||
-probe proc.psinfo.rss values ? available : exclude
|
||||
+force include
|
||||
|
||||
proc.nprocs
|
||||
proc.psinfo.pid
|
||||
32
pcp.spec
32
pcp.spec
@ -9,15 +9,21 @@
|
||||
Name: pcp
|
||||
Version: 4.1.3
|
||||
Summary: System-level performance monitoring and performance management
|
||||
Release: 10
|
||||
License: GPLv2+ and LGPLv2.1+ and CC-BY
|
||||
Release: 15
|
||||
License: GPLv2+ and LGPLv2.1+ and CC-BY-SA-3.0
|
||||
URL: https://pcp.io
|
||||
Source0: https://dl.bintray.com/pcp/source/pcp-4.1.3.tar.gz
|
||||
Source1: https://github.com/performancecopilot/pcp-webapp-vector/archive/1.3.1-1/pcp-webapp-vector-1.3.1-1.tar.gz
|
||||
Source2: https://github.com/performancecopilot/pcp-webapp-grafana/archive/1.9.1-2/pcp-webapp-grafana-1.9.1-2.tar.gz
|
||||
Source3: https://github.com/performancecopilot/pcp-webapp-graphite/archive/0.9.10/pcp-webapp-graphite-0.9.10.tar.gz
|
||||
Source4: https://github.com/performancecopilot/pcp-webapp-blinkenlights/archive/1.0.1/pcp-webapp-blinkenlights-1.0.1.tar.gz
|
||||
Patch0001: Fix-some-options-and-syntax-errors.patch
|
||||
Patch0002: fix-pcp-pidstat-bug.patch
|
||||
Patch0003: Add-pcp_domain-selinux-policy.patch
|
||||
Patch6000: CVE-2019-3695-CVE-2019-3696.patch
|
||||
#Refer: https://github.com/performancecopilot/pcp/pull/822
|
||||
Patch0004: fix-out-of-range-mpstat.patch
|
||||
Patch0005: add-ExecStartPost-option-to-pmwebd-service.patch
|
||||
|
||||
BuildRequires: gcc gcc-c++ procps autoconf bison flex nss-devel rpm-devel avahi-devel xz-devel zlib-devel
|
||||
BuildRequires: python2-devel python3-devel ncurses-devel readline-devel cyrus-sasl-devel papi-devel libpfm-devel >= 4
|
||||
@ -26,6 +32,7 @@ BuildRequires: perl(ExtUtils::MakeMaker) perl(LWP::UserAgent) perl(JSON) perl
|
||||
BuildRequires: man systemd-devel desktop-file-utils qt5-qtbase-devel qt5-qtsvg-devel
|
||||
Requires: bash bc bzip2 gawk gcc sed grep findutils which pcp-selinux = %{version}-%{release}
|
||||
Requires: pcp-conf = %{version}-%{release}
|
||||
Requires: %{name}-help = %{version}-%{release}
|
||||
Provides: pcp-pmda-kvm pcp-libs = %{version}-%{release}
|
||||
Obsoletes: pcp-pmda-kvm pcp-libs < %{version}-%{release}
|
||||
Obsoletes: pcp-pmda-nvidia pcp-compat
|
||||
@ -859,7 +866,12 @@ This package installs selinux support files for PCP.
|
||||
%setup -q -T -D -a 3 -c -n graphite
|
||||
%setup -q -T -D -a 4 -c -n blinkenlights
|
||||
%setup -q
|
||||
%patch0001 -p1
|
||||
%patch0002 -p1
|
||||
%patch0003 -p1
|
||||
%patch6000 -p1
|
||||
%patch0004 -p1
|
||||
%patch0005 -p1
|
||||
|
||||
%build
|
||||
|
||||
@ -2213,6 +2225,22 @@ fi
|
||||
%config(noreplace) /etc/pcp/pmrep/*
|
||||
|
||||
%changelog
|
||||
* Thu Feb 16 2023 wangkai <wangkai385@h-partners.com> - 4.1.3-15
|
||||
- Add ExecStartPost option to pmwebd.service for solving error message when pmwebd starting
|
||||
|
||||
* Thu Jul 14 2022 caodongxia <caodongxia@h-partners.com> - 4.1.3-14
|
||||
- Fix out of range in pcp-mpstat
|
||||
|
||||
* Tue Jun 8 2021 lingsheng <lingsheng@huawei.com> - 4.1.3-13
|
||||
- Add pcp_domain selinux policy
|
||||
|
||||
* Fri May 14 2021 lingsheng <lingsheng@huawei.com> - 4.1.3-12
|
||||
- Fix some options and syntax errors
|
||||
- Fix pcp pidstat bug -a option
|
||||
|
||||
* Fri Nov 06 2020 caodongxia <caodongxia@huawei.com> - 4.1.3-11
|
||||
- Add install requires help package into main package
|
||||
|
||||
* Mon Nov 09 2020 lingsheng <lingsheng@huawei.com> - 4.1.3-10
|
||||
- Change require to python3-bpfcc
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user