update to pcp v5.0.0

This commit is contained in:
Mark Goodwin 2019-10-20 00:09:24 +11:00
parent 5f1d7403cb
commit 0b77ce60b4
3 changed files with 208 additions and 313 deletions

488
pcp.spec
View File

@ -1,18 +1,13 @@
Name: pcp Name: pcp
Version: 4.3.4 Version: 5.0.0
Release: 3%{?dist} Release: 1%{?dist}
Summary: System-level performance monitoring and performance management Summary: System-level performance monitoring and performance management
License: GPLv2+ and LGPLv2+ and CC-BY License: GPLv2+ and LGPLv2+ and CC-BY
URL: https://pcp.io URL: https://pcp.io
%global bintray https://bintray.com/artifact/download %global bintray https://bintray.com/artifact/download
%global github https://github.com/performancecopilot Source0: %{bintray}/pcp/source/pcp-%{version}.src.tar.gz
Source0: %{bintray}/download/pcp/source/pcp-%{version}.src.tar.gz
Source1: %{github}/pcp-webapp-vector/archive/1.3.1-1/pcp-webapp-vector-1.3.1-1.tar.gz
Source2: %{github}/pcp-webapp-grafana/archive/1.9.1-2/pcp-webapp-grafana-1.9.1-2.tar.gz
Source3: %{github}/pcp-webapp-graphite/archive/0.9.10/pcp-webapp-graphite-0.9.10.tar.gz
Source4: %{github}/pcp-webapp-blinkenlights/archive/1.0.1/pcp-webapp-blinkenlights-1.0.1.tar.gz
Patch0: pmcd-pmlogger-local-context.patch Patch0: pmcd-pmlogger-local-context.patch
%if 0%{?fedora} >= 26 || 0%{?rhel} > 7 %if 0%{?fedora} >= 26 || 0%{?rhel} > 7
@ -47,9 +42,12 @@ Patch0: pmcd-pmlogger-local-context.patch
%global disable_podman 1 %global disable_podman 1
%endif %endif
%global disable_microhttpd 0 # libchan, libhdr_histogram and pmdastatsd
%global disable_webapps 0 %if 0%{?fedora} > 31 || 0%{?rhel} > 8
%global disable_cairo 0 %global disable_statsd 0
%else
%global disable_statsd 1
%endif
%if 0%{?rhel} > 7 || 0%{?fedora} >= 30 %if 0%{?rhel} > 7 || 0%{?fedora} >= 30
%global _with_python2 --with-python=no %global _with_python2 --with-python=no
@ -90,6 +88,17 @@ Patch0: pmcd-pmlogger-local-context.patch
%global disable_bcc 1 %global disable_bcc 1
%endif %endif
# support for pmdabpftrace
%if 0%{?fedora} >= 30 || 0%{?rhel} > 8
%ifarch s390 s390x armv7hl aarch64 i686
%global disable_bpftrace 1
%else
%global disable_bpftrace 0
%endif
%else
%global disable_bpftrace 1
%endif
# support for pmdajson # support for pmdajson
%if 0%{?rhel} == 0 || 0%{?rhel} > 6 %if 0%{?rhel} == 0 || 0%{?rhel} > 6
%if !%{disable_python2} || !%{disable_python3} %if !%{disable_python2} || !%{disable_python3}
@ -132,7 +141,7 @@ Patch0: pmcd-pmlogger-local-context.patch
%global disable_systemd 1 %global disable_systemd 1
%endif %endif
# systemtap static probing, missing before el6 and on some architectures # static probes, missing before el6 and on some architectures
%if 0%{?rhel} == 0 || 0%{?rhel} > 5 %if 0%{?rhel} == 0 || 0%{?rhel} > 5
%global disable_sdt 0 %global disable_sdt 0
%else %else
@ -143,14 +152,7 @@ Patch0: pmcd-pmlogger-local-context.patch
%endif %endif
%endif %endif
# boost c++ library, widely available # libuv async event library
%if 0%{?rhel} == 0 || 0%{?rhel} > 5
%global disable_boost 0
%else
%global disable_boost 1
%endif
# libuv
%if 0%{?fedora} >= 28 || 0%{?rhel} > 7 %if 0%{?fedora} >= 28 || 0%{?rhel} > 7
%global disable_libuv 0 %global disable_libuv 0
%else %else
@ -179,6 +181,10 @@ Conflicts: librapi
Obsoletes: pcp-pmda-kvm Obsoletes: pcp-pmda-kvm
Provides: pcp-pmda-kvm Provides: pcp-pmda-kvm
# PCP REST APIs are now provided by pmproxy
Obsoletes: pcp-webapi pcp-webapi-debuginfo
Provides: pcp-webapi
# https://fedoraproject.org/wiki/Packaging "C and C++" # https://fedoraproject.org/wiki/Packaging "C and C++"
BuildRequires: gcc gcc-c++ BuildRequires: gcc gcc-c++
BuildRequires: procps autoconf bison flex BuildRequires: procps autoconf bison flex
@ -186,7 +192,6 @@ BuildRequires: nss-devel
BuildRequires: rpm-devel BuildRequires: rpm-devel
BuildRequires: avahi-devel BuildRequires: avahi-devel
BuildRequires: xz-devel BuildRequires: xz-devel
BuildRequires: zlib-devel
%if !%{disable_python2} %if !%{disable_python2}
%if 0%{?default_python} != 3 %if 0%{?default_python} != 3
BuildRequires: python%{?default_python}-devel BuildRequires: python%{?default_python}-devel
@ -203,23 +208,17 @@ BuildRequires: cyrus-sasl-devel
%if !%{disable_podman} %if !%{disable_podman}
BuildRequires: libvarlink-devel BuildRequires: libvarlink-devel
%endif %endif
%if !%{disable_statsd}
BuildRequires: ragel chan-devel HdrHistogram_c-devel
%endif
%if !%{disable_perfevent} %if !%{disable_perfevent}
BuildRequires: libpfm-devel >= 4 BuildRequires: libpfm-devel >= 4
%endif %endif
%if !%{disable_microhttpd}
BuildRequires: libmicrohttpd-devel
%endif
%if !%{disable_cairo}
BuildRequires: cairo-devel
%endif
%if !%{disable_sdt} %if !%{disable_sdt}
BuildRequires: systemtap-sdt-devel BuildRequires: systemtap-sdt-devel
%endif %endif
%if !%{disable_boost}
BuildRequires: boost-devel
%endif
%if !%{disable_libuv} %if !%{disable_libuv}
BuildRequires: libuv-devel >= 1.16 BuildRequires: libuv-devel >= 1.0
%endif %endif
%if !%{disable_openssl} %if !%{disable_openssl}
BuildRequires: openssl-devel >= 1.1.1 BuildRequires: openssl-devel >= 1.1.1
@ -255,10 +254,8 @@ Requires: pcp-selinux = %{version}-%{release}
Obsoletes: pcp-gui-debuginfo Obsoletes: pcp-gui-debuginfo
%endif %endif
Obsoletes: pcp-pmda-nvidia
# Obsoletes for distros that already have single install pmda's with compat package
Obsoletes: pcp-compat pcp-collector pcp-monitor Obsoletes: pcp-compat pcp-collector pcp-monitor
Obsoletes: pcp-pmda-nvidia
Requires: pcp-libs = %{version}-%{release} Requires: pcp-libs = %{version}-%{release}
@ -323,12 +320,24 @@ Requires: pcp-libs = %{version}-%{release}
%global _with_podman --with-podman=yes %global _with_podman --with-podman=yes
%endif %endif
%if %{disable_statsd}
%global _with_statsd --with-statsd=no
%else
%global _with_statsd --with-statsd=yes
%endif
%if %{disable_bcc} %if %{disable_bcc}
%global _with_bcc --with-pmdabcc=no %global _with_bcc --with-pmdabcc=no
%else %else
%global _with_bcc --with-pmdabcc=yes %global _with_bcc --with-pmdabcc=yes
%endif %endif
%if %{disable_bpftrace}
%global _with_bpftrace --with-pmdabpftrace=no
%else
%global _with_bpftrace --with-pmdabpftrace=yes
%endif
%if %{disable_json} %if %{disable_json}
%global _with_json --with-pmdajson=no %global _with_json --with-pmdajson=no
%else %else
@ -347,12 +356,6 @@ Requires: pcp-libs = %{version}-%{release}
%global _with_snmp --with-pmdasnmp=yes %global _with_snmp --with-pmdasnmp=yes
%endif %endif
%if %{disable_webapps}
%global _with_webapps --with-webapps=no
%else
%global _with_webapps --with-webapps=yes
%endif
%global pmda_remove() %{expand: %global pmda_remove() %{expand:
if [ %1 -eq 0 ] if [ %1 -eq 0 ]
then then
@ -445,7 +448,7 @@ Requires: pcp-libs = %{version}-%{release}
Requires: pcp-libs-devel = %{version}-%{release} Requires: pcp-libs-devel = %{version}-%{release}
Requires: pcp-devel = %{version}-%{release} Requires: pcp-devel = %{version}-%{release}
%if !%{disable_libuv} %if !%{disable_libuv}
Requires: libuv-devel >= 1.16 Requires: libuv-devel >= 1.0
%endif %endif
Obsoletes: pcp-gui-testsuite Obsoletes: pcp-gui-testsuite
# The following are inherited from pcp-collector and pcp-monitor, # The following are inherited from pcp-collector and pcp-monitor,
@ -462,16 +465,22 @@ Requires: pcp-pmda-lustrecomm pcp-pmda-logger pcp-pmda-docker pcp-pmda-bind2
%if !%{disable_podman} %if !%{disable_podman}
Requires: pcp-pmda-podman Requires: pcp-pmda-podman
%endif %endif
%if !%{disable_statsd}
Requires: pcp-pmda-statsd
%endif
%if !%{disable_nutcracker} %if !%{disable_nutcracker}
Requires: pcp-pmda-nutcracker Requires: pcp-pmda-nutcracker
%endif %endif
%if !%{disable_bcc} %if !%{disable_bcc}
Requires: pcp-pmda-bcc Requires: pcp-pmda-bcc
%endif %endif
%if !%{disable_bpftrace}
Requires: pcp-pmda-bpftrace
%endif
%if !%{disable_python2} || !%{disable_python3} %if !%{disable_python2} || !%{disable_python3}
Requires: pcp-pmda-gluster pcp-pmda-zswap pcp-pmda-unbound pcp-pmda-mic Requires: pcp-pmda-gluster pcp-pmda-zswap pcp-pmda-unbound pcp-pmda-mic
Requires: pcp-pmda-libvirt pcp-pmda-lio pcp-pmda-prometheus pcp-pmda-haproxy Requires: pcp-pmda-libvirt pcp-pmda-lio pcp-pmda-openmetrics pcp-pmda-haproxy
Requires: pcp-pmda-lmsensors Requires: pcp-pmda-lmsensors pcp-pmda-mssql pcp-pmda-netcheck
%endif %endif
%if !%{disable_snmp} %if !%{disable_snmp}
Requires: pcp-pmda-snmp Requires: pcp-pmda-snmp
@ -483,9 +492,6 @@ Requires: pcp-pmda-json
Requires: pcp-pmda-rpm Requires: pcp-pmda-rpm
%endif %endif
Requires: pcp-pmda-summary pcp-pmda-trace pcp-pmda-weblog Requires: pcp-pmda-summary pcp-pmda-trace pcp-pmda-weblog
%if !%{disable_microhttpd}
Requires: pcp-webapi
%endif
%if !%{disable_python2} || !%{disable_python3} %if !%{disable_python2} || !%{disable_python3}
Requires: pcp-system-tools Requires: pcp-system-tools
%endif %endif
@ -516,100 +522,6 @@ daemons are running when appropriate, and manages their log rotation
needs. It is an alternative to the cron-based pmlogger/pmie service needs. It is an alternative to the cron-based pmlogger/pmie service
scripts. scripts.
%if !%{disable_microhttpd}
#
# pcp-webapi
#
%package webapi
License: GPLv2+
Summary: Performance Co-Pilot (PCP) web API service
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
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: ASL 2.0 and MIT and CC-BY and GPLv3
Conflicts: pcp-webjs < 3.11.9
%if !%{disable_noarch}
BuildArch: noarch
%endif
Requires: pcp-webapp-vector pcp-webapp-blinkenlights
Requires: pcp-webapp-graphite pcp-webapp-grafana
Summary: Performance Co-Pilot (PCP) web applications
URL: https://pcp.io
%description webjs
Javascript web application content for the Performance Co-Pilot (PCP)
web service.
%package webapp-vector
License: ASL 2.0
%if !%{disable_noarch}
BuildArch: noarch
%endif
Summary: Vector web application for Performance Co-Pilot (PCP)
URL: https://github.com/Netflix/vector
%description webapp-vector
Vector web application for the Performance Co-Pilot (PCP).
%package webapp-grafana
License: ASL 2.0
Conflicts: pcp-webjs < 3.10.4
%if !%{disable_noarch}
BuildArch: noarch
%endif
Summary: Grafana web application for Performance Co-Pilot (PCP)
URL: https://grafana.org
%description webapp-grafana
Grafana is an open source, feature rich metrics dashboard and graph
editor. This package provides a Grafana that uses the Performance
Co-Pilot (PCP) as the data repository. Other Grafana backends are
not used.
Grafana can render time series dashboards at the browser via flot.js
(more interactive, slower, for beefy browsers) or alternately at the
server via png (less interactive, faster).
%package webapp-graphite
License: ASL 2.0 and GPLv3
Conflicts: pcp-webjs < 3.10.4
%if !%{disable_noarch}
BuildArch: noarch
%endif
Summary: Graphite web application for Performance Co-Pilot (PCP)
URL: http://graphite.readthedocs.org
%description webapp-graphite
Graphite is a highly scalable real-time graphing system. This package
provides a graphite version that uses the Performance Co-Pilot (PCP)
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: ASL 2.0
%if !%{disable_noarch}
BuildArch: noarch
%endif
Summary: Blinking lights web application for Performance Co-Pilot (PCP)
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. # perl-PCP-PMDA. This is the PCP agent perl binding.
# #
@ -936,6 +848,22 @@ This package contains the PCP Performance Metrics Domain Agent (PMDA) for
collecting podman container and pod statistics through libvarlink. collecting podman container and pod statistics through libvarlink.
%endif %endif
%if !%{disable_statsd}
#
# pcp-pmda-statsd
#
%package pmda-statsd
License: GPLv2+
Summary: Performance Co-Pilot (PCP) metrics from statsd
URL: https://pcp.io
Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release}
Requires: libchan.so.0() HdrHistogram_c
%description pmda-statsd
This package contains the PCP Performance Metrics Domain Agent (PMDA) for
collecting statistics from the statsd daemon.
%endif
%if !%{disable_perfevent} %if !%{disable_perfevent}
# #
# pcp-pmda-perfevent # pcp-pmda-perfevent
@ -1432,6 +1360,23 @@ extracting performance metrics from eBPF/BCC Python modules.
# end pcp-pmda-bcc # end pcp-pmda-bcc
%endif %endif
%if !%{disable_bpftrace}
#
# pcp-pmda-bpftrace
#
%package pmda-bpftrace
License: ASL 2.0 and GPLv2+
Summary: Performance Co-Pilot (PCP) metrics from bpftrace scripts
URL: https://pcp.io
Requires: bpftrace >= 0.9.2
Requires: python3-pcp
Requires: python3 >= 3.6
%description pmda-bpftrace
This package contains the PCP Performance Metrics Domain Agent (PMDA) for
extracting performance metrics from bpftrace scripts.
# end pcp-pmda-bpftrace
%endif
%if !%{disable_python2} || !%{disable_python3} %if !%{disable_python2} || !%{disable_python3}
# #
# pcp-pmda-gluster # pcp-pmda-gluster
@ -1627,11 +1572,11 @@ target.
#end pcp-pmda-lio #end pcp-pmda-lio
# #
# pcp-pmda-prometheus # pcp-pmda-openmetrics
# #
%package pmda-prometheus %package pmda-openmetrics
License: GPLv2+ License: GPLv2+
Summary: Performance Co-Pilot (PCP) metrics from Prometheus endpoints Summary: Performance Co-Pilot (PCP) metrics from OpenMetrics endpoints
URL: https://pcp.io URL: https://pcp.io
Requires: pcp-libs = %{version}-%{release} Requires: pcp-libs = %{version}-%{release}
%if !%{disable_python3} %if !%{disable_python3}
@ -1643,11 +1588,13 @@ Requires: %{__python2}-pcp
Requires: %{__python2}-requests Requires: %{__python2}-requests
BuildRequires: %{__python2}-requests BuildRequires: %{__python2}-requests
%endif %endif
Obsoletes: pcp-pmda-prometheus
Provides: pcp-pmda-prometheus
%description pmda-prometheus %description pmda-openmetrics
This package contains the PCP Performance Metrics Domain Agent (PMDA) for This package contains the PCP Performance Metrics Domain Agent (PMDA) for
extracting statistics from programs instrumented as Prometheus endpoints. extracting metrics from OpenMetrics (https://openmetrics.io/) endpoints.
#end pcp-pmda-prometheus #end pcp-pmda-openmetrics
# #
# pcp-pmda-lmsensors # pcp-pmda-lmsensors
@ -1669,6 +1616,42 @@ This package contains the PCP Performance Metrics Domain Agent (PMDA) for
collecting metrics about the Linux hardware monitoring sensors. collecting metrics about the Linux hardware monitoring sensors.
# end pcp-pmda-lmsensors # end pcp-pmda-lmsensors
#
# pcp-pmda-mssql
#
%package pmda-mssql
License: GPLv2+
Summary: Performance Co-Pilot (PCP) metrics for Microsoft SQL Server
URL: https://pcp.io
Requires: pcp-libs = %{version}-%{release}
%if !%{disable_python3}
Requires: python3-pcp
%else
Requires: %{__python2}-pcp
%endif
%description pmda-mssql
This package contains the PCP Performance Metrics Domain Agent (PMDA) for
collecting metrics from Microsoft SQL Server.
# end pcp-pmda-mssql
#
# pcp-pmda-netcheck
#
%package pmda-netcheck
License: GPLv2+
Summary: Performance Co-Pilot (PCP) metrics for simple network checks
URL: https://pcp.io
Requires: pcp-libs = %{version}-%{release}
%if !%{disable_python3}
Requires: python3-pcp
%else
Requires: %{__python2}-pcp
%endif
%description pmda-netcheck
This package contains the PCP Performance Metrics Domain Agent (PMDA) for
collecting metrics from simple network checks.
# end pcp-pmda-netcheck
%endif # !%{disable_python2} || !%{disable_python3} %endif # !%{disable_python2} || !%{disable_python3}
%if !%{disable_json} %if !%{disable_json}
@ -2086,7 +2069,7 @@ BuildRequires: setools
%else %else
BuildRequires: setools-console BuildRequires: setools-console
%endif %endif
Requires: policycoreutils Requires: policycoreutils selinux-policy-targeted
%description selinux %description selinux
This package contains SELinux support for PCP. The package contains This package contains SELinux support for PCP. The package contains
@ -2095,10 +2078,6 @@ updated policy package.
%endif %endif
%prep %prep
%setup -q -T -D -a 1 -c -n vector
%setup -q -T -D -a 2 -c -n grafana
%setup -q -T -D -a 3 -c -n graphite
%setup -q -T -D -a 4 -c -n blinkenlights
%setup -q %setup -q
%patch0 -p1 %patch0 -p1
@ -2106,7 +2085,7 @@ updated policy package.
%if !%{disable_python2} && 0%{?default_python} != 3 %if !%{disable_python2} && 0%{?default_python} != 3
export PYTHON=python%{?default_python} export PYTHON=python%{?default_python}
%endif %endif
%configure %{?_with_initd} %{?_with_doc} %{?_with_dstat} %{?_with_ib} %{?_with_podman} %{?_with_perfevent} %{?_with_bcc} %{?_with_json} %{?_with_snmp} %{?_with_nutcracker} %{?_with_webapps} %{?_with_python2} %configure %{?_with_initd} %{?_with_doc} %{?_with_dstat} %{?_with_ib} %{?_with_podman} %{?_with_statsd} %{?_with_perfevent} %{?_with_bcc} %{?_with_bpftrace} %{?_with_json} %{?_with_snmp} %{?_with_nutcracker} %{?_with_python2}
make %{?_smp_mflags} default_pcp make %{?_smp_mflags} default_pcp
%install %install
@ -2126,20 +2105,6 @@ rm -f $RPM_BUILD_ROOT/%{_bindir}/sheet2pcp $RPM_BUILD_ROOT/%{_mandir}/man1/sheet
rm -f $RPM_BUILD_ROOT/%{_includedir}/pcp/configsz.h rm -f $RPM_BUILD_ROOT/%{_includedir}/pcp/configsz.h
rm -f $RPM_BUILD_ROOT/%{_includedir}/pcp/platformsz.h rm -f $RPM_BUILD_ROOT/%{_includedir}/pcp/platformsz.h
%if %{disable_microhttpd}
rm -fr $RPM_BUILD_ROOT/%{_confdir}/pmwebd
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} %if %{disable_infiniband}
# remove pmdainfiniband on platforms lacking IB devel packages. # remove pmdainfiniband on platforms lacking IB devel packages.
rm -f $RPM_BUILD_ROOT/%{_pmdasdir}/ib rm -f $RPM_BUILD_ROOT/%{_pmdasdir}/ib
@ -2165,7 +2130,7 @@ desktop-file-validate $RPM_BUILD_ROOT/%{_datadir}/applications/pmchart.desktop
%endif %endif
# default chkconfig off for Fedora and RHEL # default chkconfig off for Fedora and RHEL
for f in $RPM_BUILD_ROOT/%{_initddir}/{pcp,pmcd,pmlogger,pmie,pmwebd,pmmgr,pmproxy}; do for f in $RPM_BUILD_ROOT/%{_initddir}/{pcp,pmcd,pmlogger,pmie,pmmgr,pmproxy}; do
test -f "$f" || continue test -f "$f" || continue
sed -i -e '/^# chkconfig/s/:.*$/: - 95 05/' -e '/^# Default-Start:/s/:.*$/:/' $f sed -i -e '/^# chkconfig/s/:.*$/: - 95 05/' -e '/^# Default-Start:/s/:.*$/:/' $f
done done
@ -2206,6 +2171,7 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\
grep -E -v '^samba' |\ grep -E -v '^samba' |\
grep -E -v '^slurm' |\ grep -E -v '^slurm' |\
grep -E -v '^snmp' |\ grep -E -v '^snmp' |\
grep -E -v '^statsd' |\
grep -E -v '^vmware' |\ grep -E -v '^vmware' |\
grep -E -v '^zimbra' |\ grep -E -v '^zimbra' |\
grep -E -v '^dm' |\ grep -E -v '^dm' |\
@ -2219,6 +2185,8 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\
grep -E -v '^logger' |\ grep -E -v '^logger' |\
grep -E -v '^mailq' |\ grep -E -v '^mailq' |\
grep -E -v '^mounts' |\ grep -E -v '^mounts' |\
grep -E -v '^mssql' |\
grep -E -v '^netcheck' |\
grep -E -v '^nvidia' |\ grep -E -v '^nvidia' |\
grep -E -v '^roomtemp' |\ grep -E -v '^roomtemp' |\
grep -E -v '^sendmail' |\ grep -E -v '^sendmail' |\
@ -2231,6 +2199,7 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\
grep -E -v '^json' |\ grep -E -v '^json' |\
grep -E -v '^mic' |\ grep -E -v '^mic' |\
grep -E -v '^bcc' |\ grep -E -v '^bcc' |\
grep -E -v '^bpftrace' |\
grep -E -v '^gluster' |\ grep -E -v '^gluster' |\
grep -E -v '^zswap' |\ grep -E -v '^zswap' |\
grep -E -v '^unbound' |\ grep -E -v '^unbound' |\
@ -2239,7 +2208,7 @@ ls -1 $RPM_BUILD_ROOT/%{_pmdasdir} |\
# 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} |\ ls -1 $RPM_BUILD_ROOT/%{_bindir} |\
grep -E -v 'pmiostat|pmcollectl|zabbix|zbxpcp|dstat' |\ grep -E -v 'pmiostat|zabbix|zbxpcp|dstat' |\
grep -E -v 'pmrep|pcp2graphite|pcp2influxdb|pcp2zabbix' |\ grep -E -v 'pmrep|pcp2graphite|pcp2influxdb|pcp2zabbix' |\
grep -E -v 'pcp2elasticsearch|pcp2json|pcp2xlsx|pcp2xml' |\ grep -E -v 'pcp2elasticsearch|pcp2json|pcp2xlsx|pcp2xml' |\
grep -E -v 'pcp2spark' |\ grep -E -v 'pcp2spark' |\
@ -2247,11 +2216,11 @@ ls -1 $RPM_BUILD_ROOT/%{_bindir} |\
sed -e 's#^#'%{_bindir}'\/#' >base_bin.list sed -e 's#^#'%{_bindir}'\/#' >base_bin.list
# Separate the pcp-system-tools package files. # Separate the pcp-system-tools package files.
# pmcollectl and pmiostat are back-compat symlinks to their # pmiostat is a back-compat symlink to its pcp(1) sub-command variant
# pcp(1) sub-command variants so are also in pcp-system-tools. # so its also in pcp-system-tools.
%if !%{disable_python2} || !%{disable_python3} %if !%{disable_python2} || !%{disable_python3}
ls -1 $RPM_BUILD_ROOT/%{_bindir} |\ ls -1 $RPM_BUILD_ROOT/%{_bindir} |\
egrep -e 'pmiostat|pmcollectl|pmrep|dstat' |\ egrep -e 'pmiostat|pmrep|dstat' |\
sed -e 's#^#'%{_bindir}'\/#' >pcp-system-tools.list sed -e 's#^#'%{_bindir}'\/#' >pcp-system-tools.list
ls -1 $RPM_BUILD_ROOT/%{_libexecdir}/pcp/bin |\ ls -1 $RPM_BUILD_ROOT/%{_libexecdir}/pcp/bin |\
egrep -e 'atop|collectl|dmcache|dstat|free|iostat|ipcs|lvmcache|mpstat' \ egrep -e 'atop|collectl|dmcache|dstat|free|iostat|ipcs|lvmcache|mpstat' \
@ -2293,7 +2262,7 @@ ls -1 $RPM_BUILD_ROOT/%{_logconfdir}/ |\
sed -e 's#^#'%{_logconfdir}'\/#' |\ sed -e 's#^#'%{_logconfdir}'\/#' |\
grep -E -v 'zeroconf' >pcp-logconf.list grep -E -v 'zeroconf' >pcp-logconf.list
cat base_pmdas.list base_bin.list base_exec.list pcp-logconf.list |\ cat base_pmdas.list base_bin.list base_exec.list pcp-logconf.list |\
grep -E -v 'pmdaib|pmmgr|pmweb|pmsnap|2pcp|pmdas/systemd' |\ grep -E -v 'pmdaib|pmmgr|pmsnap|2pcp|pmdas/systemd' |\
grep -E -v "$PCP_GUI|pixmaps|hicolor|pcp-doc|tutorials|selinux" |\ grep -E -v "$PCP_GUI|pixmaps|hicolor|pcp-doc|tutorials|selinux" |\
grep -E -v %{_confdir} | grep -E -v %{_logsdir} > base.list grep -E -v %{_confdir} | grep -E -v %{_logsdir} > base.list
@ -2335,72 +2304,8 @@ exit 0
getent group pcp >/dev/null || groupadd -r pcp getent group pcp >/dev/null || groupadd -r pcp
getent passwd pcp >/dev/null || \ getent passwd pcp >/dev/null || \
useradd -c "Performance Co-Pilot" -g pcp -d %{_localstatedir}/lib/pcp -M -r -s /sbin/nologin pcp useradd -c "Performance Co-Pilot" -g pcp -d %{_localstatedir}/lib/pcp -M -r -s /sbin/nologin pcp
PCP_CONFIG_DIR=%{_localstatedir}/lib/pcp/config
PCP_SYSCONF_DIR=%{_confdir}
PCP_LOG_DIR=%{_logsdir}
PCP_ETC_DIR=%{_sysconfdir}
# rename crontab files to align with current Fedora packaging guidelines
for crontab in pmlogger pmie
do
test -f "$PCP_ETC_DIR/cron.d/$crontab" || continue
mv -f "$PCP_ETC_DIR/cron.d/$crontab" "$PCP_ETC_DIR/cron.d/pcp-$crontab"
done
# produce a script to run post-install to move configs to their new homes
save_configs_script()
{
_new="$1"
shift
for _dir
do
[ "$_dir" = "$_new" ] && continue
if [ -d "$_dir" ]
then
( cd "$_dir" ; find . -maxdepth 1 -type f ) | sed -e 's/^\.\///' \
| while read _file
do
[ "$_file" = "control" ] && continue
_want=true
if [ -f "$_new/$_file" ]
then
# file exists in both directories, pick the more
# recently modified one
_try=`find "$_dir/$_file" -newer "$_new/$_file" -print`
[ -n "$_try" ] || _want=false
fi
$_want && echo cp -p "$_dir/$_file" "$_new/$_file"
done
fi
done
}
# migrate and clean configs if we have had a previous in-use installation
[ -d "$PCP_LOG_DIR" ] || exit 0 # no configuration file upgrades required
rm -f "$PCP_LOG_DIR/configs.sh"
for daemon in pmie pmlogger
do
save_configs_script >> "$PCP_LOG_DIR/configs.sh" "$PCP_CONFIG_DIR/$daemon" \
"$PCP_SYSCONF_DIR/$daemon"
done
for daemon in pmcd pmproxy
do
save_configs_script >> "$PCP_LOG_DIR/configs.sh" "$PCP_SYSCONF_DIR/$daemon"\
"$PCP_CONFIG_DIR/$daemon" /etc/$daemon
done
exit 0 exit 0
%if !%{disable_microhttpd}
%preun webapi
if [ "$1" -eq 0 ]
then
%if !%{disable_systemd}
systemctl --no-reload disable pmwebd.service >/dev/null 2>&1
systemctl stop pmwebd.service >/dev/null 2>&1
%else
/sbin/service pmwebd stop >/dev/null 2>&1
/sbin/chkconfig --del pmwebd >/dev/null 2>&1
%endif
fi
%endif
%preun manager %preun manager
if [ "$1" -eq 0 ] if [ "$1" -eq 0 ]
then then
@ -2438,6 +2343,11 @@ fi
%{pmda_remove "$1" "podman"} %{pmda_remove "$1" "podman"}
%endif #preun pmda-podman %endif #preun pmda-podman
%if !%{disable_statsd}
%preun pmda-statsd
%{pmda_remove "$1" "statsd"}
%endif #preun pmda-statsd
%if !%{disable_json} %if !%{disable_json}
%preun pmda-json %preun pmda-json
%{pmda_remove "$1" "json"} %{pmda_remove "$1" "json"}
@ -2496,8 +2406,8 @@ fi
%preun pmda-lio %preun pmda-lio
%{pmda_remove "$1" "lio"} %{pmda_remove "$1" "lio"}
%preun pmda-prometheus %preun pmda-openmetrics
%{pmda_remove "$1" "prometheus"} %{pmda_remove "$1" "openmetrics"}
%preun pmda-lustre %preun pmda-lustre
%{pmda_remove "$1" "lustre"} %{pmda_remove "$1" "lustre"}
@ -2551,6 +2461,11 @@ fi
%{pmda_remove "$1" "bcc"} %{pmda_remove "$1" "bcc"}
%endif %endif
%if !%{disable_bpftrace}
%preun pmda-bpftrace
%{pmda_remove "$1" "bpftrace"}
%endif
%if !%{disable_python2} || !%{disable_python3} %if !%{disable_python2} || !%{disable_python3}
%preun pmda-gluster %preun pmda-gluster
%{pmda_remove "$1" "gluster"} %{pmda_remove "$1" "gluster"}
@ -2573,6 +2488,12 @@ fi
%preun pmda-lmsensors %preun pmda-lmsensors
%{pmda_remove "$1" "lmsensors"} %{pmda_remove "$1" "lmsensors"}
%preun pmda-mssql
%{pmda_remove "$1" "mssql"}
%preun pmda-netcheck
%{pmda_remove "$1" "netcheck"}
%endif # !%{disable_python[2,3]} %endif # !%{disable_python[2,3]}
%preun pmda-apache %preun pmda-apache
@ -2664,17 +2585,6 @@ then
rm -f "$PCP_PMNS_DIR/.NeedRebuild" >/dev/null 2>&1 rm -f "$PCP_PMNS_DIR/.NeedRebuild" >/dev/null 2>&1
fi fi
%if !%{disable_microhttpd}
%post webapi
chown -R pcp:pcp %{_logsdir}/pmwebd 2>/dev/null
%if !%{disable_systemd}
systemctl condrestart pmwebd.service >/dev/null 2>&1
%else
/sbin/chkconfig --add pmwebd >/dev/null 2>&1
/sbin/service pmwebd condrestart
%endif
%endif
%post manager %post manager
chown -R pcp:pcp %{_logsdir}/pmmgr 2>/dev/null chown -R pcp:pcp %{_logsdir}/pmmgr 2>/dev/null
%if !%{disable_systemd} %if !%{disable_systemd}
@ -2729,12 +2639,7 @@ pmieconf -c enable dmthin
%endif %endif
%post %post
PCP_LOG_DIR=%{_logsdir}
PCP_PMNS_DIR=%{_pmnsdir} PCP_PMNS_DIR=%{_pmnsdir}
# restore saved configs, if any
test -s "$PCP_LOG_DIR/configs.sh" && source "$PCP_LOG_DIR/configs.sh"
rm -f $PCP_LOG_DIR/configs.sh
chown -R pcp:pcp %{_logsdir}/pmcd 2>/dev/null chown -R pcp:pcp %{_logsdir}/pmcd 2>/dev/null
chown -R pcp:pcp %{_logsdir}/pmlogger 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}/sa 2>/dev/null
@ -2761,7 +2666,7 @@ chmod 644 "$PCP_PMNS_DIR/.NeedRebuild"
/sbin/service pmproxy condrestart /sbin/service pmproxy condrestart
%endif %endif
cd $PCP_PMNS_DIR && ./Rebuild -s && rm -f .NeedRebuild cd "$PCP_PMNS_DIR" && ./Rebuild -s && rm -f .NeedRebuild
cd cd
%if 0%{?fedora} >= 26 || 0%{?rhel} > 7 %if 0%{?fedora} >= 26 || 0%{?rhel} > 7
@ -2949,51 +2854,6 @@ cd
%defattr(-,pcpqa,pcpqa) %defattr(-,pcpqa,pcpqa)
%{_testsdir} %{_testsdir}
%if !%{disable_microhttpd}
%files webapi
%{_initddir}/pmwebd
%if !%{disable_systemd}
%{_unitdir}/pmwebd.service
%endif
%{_libexecdir}/pcp/bin/pmwebd
%attr(0775,pcp,pcp) %{_logsdir}/pmwebd
%{_confdir}/pmwebd
%config(noreplace) %{_confdir}/pmwebd/pmwebd.options
# 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 pcp, pcp-webapi and pcp-webjs directories, but rpm copes with that.
%dir %{_datadir}/pcp
%dir %{_datadir}/pcp/webapps
%{_datadir}/pcp/webapps/*.png
%{_datadir}/pcp/webapps/*.ico
%{_datadir}/pcp/webapps/*.html
%files webapp-blinkenlights
%dir %{_datadir}/pcp
%dir %{_datadir}/pcp/webapps
%{_datadir}/pcp/webapps/blinkenlights
%files webapp-grafana
%dir %{_datadir}/pcp
%dir %{_datadir}/pcp/webapps
%{_datadir}/pcp/webapps/grafana
%files webapp-graphite
%dir %{_datadir}/pcp
%dir %{_datadir}/pcp/webapps
%{_datadir}/pcp/webapps/graphite
%files webapp-vector
%dir %{_datadir}/pcp
%dir %{_datadir}/pcp/webapps
%{_datadir}/pcp/webapps/vector
%endif
%files manager %files manager
%{_initddir}/pmmgr %{_initddir}/pmmgr
%if !%{disable_systemd} %if !%{disable_systemd}
@ -3024,6 +2884,12 @@ cd
%{_pmdasdir}/podman %{_pmdasdir}/podman
%endif %endif
%if !%{disable_statsd}
%files pmda-statsd
%{_pmdasdir}/statsd
%config(noreplace) %{_pmdasdir}/statsd/statsd.ini
%endif
%if !%{disable_perfevent} %if !%{disable_perfevent}
%files pmda-perfevent %files pmda-perfevent
%{_pmdasdir}/perfevent %{_pmdasdir}/perfevent
@ -3069,8 +2935,8 @@ cd
%files pmda-lio %files pmda-lio
%{_pmdasdir}/lio %{_pmdasdir}/lio
%files pmda-prometheus %files pmda-openmetrics
%{_pmdasdir}/prometheus %{_pmdasdir}/openmetrics
%files pmda-lustre %files pmda-lustre
%{_pmdasdir}/lustre %{_pmdasdir}/lustre
@ -3148,6 +3014,11 @@ cd
%{_pmdasdir}/bcc %{_pmdasdir}/bcc
%endif %endif
%if !%{disable_bpftrace}
%files pmda-bpftrace
%{_pmdasdir}/bpftrace
%endif
%if !%{disable_python2} || !%{disable_python3} %if !%{disable_python2} || !%{disable_python3}
%files pmda-gluster %files pmda-gluster
%{_pmdasdir}/gluster %{_pmdasdir}/gluster
@ -3196,6 +3067,12 @@ cd
%files pmda-lmsensors %files pmda-lmsensors
%{_pmdasdir}/lmsensors %{_pmdasdir}/lmsensors
%files pmda-mssql
%{_pmdasdir}/mssql
%files pmda-netcheck
%{_pmdasdir}/netcheck
%endif # !%{disable_python2} || !%{disable_python3} %endif # !%{disable_python2} || !%{disable_python3}
%files export-zabbix-agent %files export-zabbix-agent
@ -3307,11 +3184,8 @@ cd
%endif %endif
%changelog %changelog
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 4.3.4-3 * Fri Oct 11 2019 Mark Goodwin <mgoodwin@redhat.com> - 5.0.0-1
- Rebuilt for Python 3.8.0rc1 (#1748018) - Update to latest PCP sources.
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 4.3.4-2
- Rebuilt for Python 3.8
* Fri Aug 16 2019 Nathan Scott <nathans@redhat.com> - 4.3.4-1 * Fri Aug 16 2019 Nathan Scott <nathans@redhat.com> - 4.3.4-1
- Resolve bootup issues with pmlogger service (BZ 1737091, BZ 1721223) - Resolve bootup issues with pmlogger service (BZ 1737091, BZ 1721223)

View File

@ -0,0 +1,26 @@
diff --git a/src/pmcd/pmcd.defaults b/src/pmcd/pmcd.defaults
index 83ee4d9a9..56e125553 100644
--- a/src/pmcd/pmcd.defaults
+++ b/src/pmcd/pmcd.defaults
@@ -4,7 +4,7 @@
# Behaviour regarding listening on external-facing interfaces;
# unset PMCD_LOCAL to allow connections from remote hosts.
# A value of 0 permits remote connections, 1 permits local only.
-# PMCD_LOCAL=1
+PMCD_LOCAL=1
# Max length to which the queue of pending connections may grow
# A value of 5 is the default.
diff --git a/src/pmlogger/pmlogger.defaults b/src/pmlogger/pmlogger.defaults
index 5462403ec..261a79039 100644
--- a/src/pmlogger/pmlogger.defaults
+++ b/src/pmlogger/pmlogger.defaults
@@ -4,7 +4,7 @@
# Behaviour regarding listening on external-facing interfaces;
# unset PMLOGGER_LOCAL to allow connections from remote hosts.
# A value of 0 permits remote connections, 1 permits local only.
-# PMLOGGER_LOCAL=1
+PMLOGGER_LOCAL=1
# Max length to which the queue of pending connections may grow
# A value of 5 is the default.

View File

@ -1,6 +1 @@
SHA512 (pcp-4.3.4.src.tar.gz) = 27e7d3558253edde342256b4f750160c216bb8323c47dd01ef8d67d49e702d1d70ba406cafdcbf6867ad63e460279e8214c39a1fd20b6b8c781dc33920587569 SHA512 (pcp-5.0.0.src.tar.gz) = 4a00b199343fcc33b9e4f262974e9d075892a76af92811428221ea9fbacf479a4852e2734caaff56fa6b492b0440e34db55256c91e4b89a9fe52a775645adf89
SHA512 (pcp-webapp-blinkenlights-1.0.1.tar.gz) = dadf0bc0742a3344a75f8f304851762572ddc9a5c7c66fd085adcabb70f9e7a9b2c9b6095a8fb358f6a6c64dbf41cf245e2da74a60b8120880f314b6ed3d271c
SHA512 (pcp-webapp-grafana-1.9.1-2.tar.gz) = abd0f360b057853d343e506e352a37d16f78bbae6760124ecdfab0e43ffcf3b31404311f1fe5c962e8abdbf2ad8699df3f27e2920f03f1a10bca3c0e01179e21
SHA512 (pcp-webapp-graphite-0.9.10.tar.gz) = f716e5145e5d39b54be02e39202c51bdd1158d56fa16185a591c0f54fb376a637653f0c13aa9c5ad5700fc62d0c71163e94b9fa689fabe3e6de4ddf19fa827fa
SHA512 (pcp-webapp-vector-1.3.1-1.tar.gz) = b1463d4da3727f130752699dd433e997212c19241ac440df389c1153e468ace840b7d5f43a37b2173e4eee4f4a807338a3c40cc9635801e626c1530baf46e289
SHA512 (pmcd-pmlogger-local-context.patch) = 8f4b6b49494781d0a711ac27738a75b1adead72cb1baef9a78754686c48ae2d278d691108233e9cf9ad33fede5ba7b7a43f4674205b9bf448f267c844ddc1a01