X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=pcp.spec;h=f4f99a5932e45d4aaa3fbb18942290a5c6585535;hb=HEAD;hp=57ea4b53674370bf8c4cbcaa4cd3356b69730cad;hpb=d79e1e7b88f19f4c41f25b29794744e4806d1613;p=packages%2Fpcp.git diff --git a/pcp.spec b/pcp.spec index 57ea4b5..f4f99a5 100644 --- a/pcp.spec +++ b/pcp.spec @@ -1,40 +1,84 @@ # TODO: -# - pcp user/group, log dirs (see Debian packaging) +# - TONS of unpackaged files # - PLDify init scripts -# - /var/lib/pcp looks like mess, configs/variable data/scripts/ELFs (maybe consult Debian packaging?) +# - build pmview (BR: openinventor?) +# - /var/lib/pcp looks like mess, configs/variable data/scripts/ELFs (successively resolved upstream) +# NOTE: user/group must be in -libs because of /var/run/pcp, needed for Make.stdpmid in post +# - package zabbix agent +# - package zsh completions # -%include /usr/lib/rpm/macros.perl +# Conditional build: +%bcond_without qt # Qt 5.x based GUI +%bcond_without systemtap # systemtap/dtrace support + Summary: Performance Co-Pilot - system level performance monitoring and management Summary(pl.UTF-8): Performance Co-Pilot - monitorowanie i zarządzanie wydajnością na poziomie systemu Name: pcp -Version: 3.8.0 -Release: 2 +Version: 5.3.6 +Release: 5 License: LGPL v2.1 (libraries), GPL v2 (the rest) Group: Applications/System -Source0: ftp://oss.sgi.com/projects/pcp/download/%{name}-%{version}.src.tar.gz -# Source0-md5: e84224ad8ca40b7e207513180e717caf -Patch0: %{name}-ps.patch +Source0: https://github.com/performancecopilot/pcp/archive/%{version}/%{name}-%{version}.tar.gz +# Source0-md5: c753c01cad55719e67fc62b7a20bc0ef +Patch0: build-man.patch Patch1: %{name}-opt.patch Patch2: %{name}-nspr.patch -URL: http://oss.sgi.com/projects/pcp/ +Patch3: %{name}-saslconfdir.patch +Patch5: python-install.patch +Patch6: install-icons.patch +URL: http://pcp.io/ BuildRequires: autoconf >= 2.60 +BuildRequires: avahi-devel BuildRequires: bison BuildRequires: cyrus-sasl-devel >= 2 BuildRequires: flex +%ifarch i386 +BuildRequires: libatomic-devel +%endif +BuildRequires: libibmad-devel +BuildRequires: libibumad-devel BuildRequires: libmicrohttpd-devel >= 0.9.10 +BuildRequires: libuv-devel >= 1 BuildRequires: nspr-devel >= 4 BuildRequires: nss-devel >= 3 BuildRequires: openssl-devel +BuildRequires: perl-DBD-Pg +BuildRequires: perl-DBD-mysql BuildRequires: perl-ExtUtils-MakeMaker +BuildRequires: perl-File-Slurp +BuildRequires: perl-JSON +BuildRequires: perl-Net-SNMP +BuildRequires: perl-XML-LibXML BuildRequires: perl-base +BuildRequires: perl-libwww BuildRequires: perl-tools-pod -BuildRequires: python-devel +BuildRequires: pkgconfig +BuildRequires: python-devel >= 2.0 +BuildRequires: python3-devel >= 1:3.2 +BuildRequires: python3-psycopg2 BuildRequires: readline-devel +BuildRequires: rpm-devel BuildRequires: rpm-perlprov BuildRequires: rpm-pythonprov BuildRequires: rpmbuild(macros) >= 1.219 +BuildRequires: systemd-devel +%{?with_systemtap:BuildRequires: systemtap-sdt-devel} +%if %{with qt} +BuildRequires: Qt5Concurrent-devel +BuildRequires: Qt5Core-devel +BuildRequires: Qt5Gui-devel +BuildRequires: Qt5Network-devel +BuildRequires: Qt5PrintSupport-devel +BuildRequires: Qt5Svg-devel +BuildRequires: qt5-build +BuildRequires: qt5-qmake +%endif Requires: %{name}-libs = %{version}-%{release} Requires: libmicrohttpd >= 0.9.10 +Requires: perl-pcp = %{version}-%{release} +Requires: python-pcp = %{version}-%{release} +Requires(post): /usr/bin/gawk +Suggests: crondaemon BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -46,17 +90,51 @@ the interesting performance data in a system, and allows client applications to easily retrieve and process any subset of that data. %description -l pl.UTF-8 -PCP (Performance Co-Pilot) to szkielet i usługi mające na celu -obsługę monitorowania wydajności i zarządzania wydajnością. +PCP (Performance Co-Pilot) to szkielet i usługi mające na celu obsługę +monitorowania wydajności i zarządzania wydajnością. PCP udostępnia ujednoliconą abstrakcję dla wszystkich interesujących danych związanych z wydajnością w systemie i pozwala aplikacjom klienckim łatwo odczytywać i przetwarzać dowolny podzbiór tych danych. +%package gui +Summary: Performance Co-Pilot GUI tools +Summary(pl.UTF-8): Performance Co-Pilot - narzędzia GUI +Group: X11/Applications +Requires: %{name} = %{version}-%{release} + +%description gui +pmchart is designed to produce stripcharts from Performance Co-Pilot +(PCP) performance metrics fetched from live sources (one or more pmcd +hosts) and also historical sources (one or more PCP archives). + +pmtime is a graphical time controller utility that coordinates time +updates and VCR-like playback for other utilities like pmchart and +pmval. + +%description gui -l pl.UTF-8 +pmchart służy do tworzenia wykresów z danych o wydajności pakietu PCP +(Performance Co-Pilot) pobranych z żywych źródeł (jednego lub większej +liczby hostów pmcd) oraz źródeł historycznych (jednego lub większej +liczby archiwów PCP). + +pmtime to graficzne narzędzie do kontroli czasu, koordynujące +aktualizację czasu oraz odtwarzanie w stylu VCR dla innych narzędzi, +takich jak pmchart czy pmval. + %package libs Summary: PCP libraries Summary(pl.UTF-8): Biblioteki PCP Group: Libraries +Requires(post,postun): /sbin/ldconfig +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel +Provides: group(pcp) +Provides: user(pcp) %description libs PCP libraries. @@ -101,22 +179,35 @@ Perl interface to PCP libraries. Perlowy interfejs do bibliotek PCP. %package -n python-pcp -Summary: Python interface to PCP libraries -Summary(pl.UTF-8): Pythonowy interfejs do bibliotek PCP +Summary: Python 2 interface to PCP libraries +Summary(pl.UTF-8): Interfejs Pythona 2 do bibliotek PCP Group: Development/Languages/Python Requires: %{name}-libs = %{version}-%{release} %description -n python-pcp -Python interface to PCP libraries. +Python 2 interface to PCP libraries. %description -n python-pcp -l pl.UTF-8 -Pythonowy interfejs do bibliotek PCP. +Interfejs Pythona 2 do bibliotek PCP. + +%package -n python3-pcp +Summary: Python 3 interface to PCP libraries +Summary(pl.UTF-8): Interfejs Pythona 3 do bibliotek PCP +Group: Development/Languages/Python +Requires: %{name}-libs = %{version}-%{release} + +%description -n python3-pcp +Python 3 interface to PCP libraries. + +%description -n python3-pcp -l pl.UTF-8 +Interfejs Pythona 3 do bibliotek PCP. %package -n bash-completion-pcp Summary: bash-completion for PCP utilities Summary(pl.UTF-8): Bashowe uzupełnianie nazw dla narzędzi PCP Group: Applications/Shells Requires: bash-completion +BuildArch: noarch %description -n bash-completion-pcp bash-completion for PCP utilities. @@ -124,15 +215,61 @@ bash-completion for PCP utilities. %description -n bash-completion-pcp -l pl.UTF-8 Bashowe uzupełnianie nazw dla narzędzi PCP. +%package -n systemtap-pcp +Summary: systemtap/dtrace probes for PCP +Summary(pl.UTF-8): Sondy systemtap/dtrace dla PCP +Group: Development/Tools +Requires: %{name} = %{version}-%{release} +Requires: systemtap-client + +%description -n systemtap-pcp +systemtap/dtrace probes for PCP. + +%description -n systemtap-pcp -l pl.UTF-8 +Sondy systemtap/dtrace dla PCP. + %prep %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch5 -p1 +%patch6 -p1 + +%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+perl(\s|$),#!%{__perl}\1,' \ + src/ganglia2pcp/ganglia2pcp \ + src/iostat2pcp/iostat2pcp \ + src/mrtg2pcp/mrtg2pcp \ + src/perl/LogSummary/extract.pl \ + src/perl/MMV/server.pl \ + src/pmdas/oracle/connect.pl \ + src/pmdas/redis/pmdaredis.pl \ + src/pmdas/simple/pmdasimple.perl \ + src/sar2pcp/sar2pcp \ + src/sheet2pcp/sheet2pcp \ + src/pmdas/perfevent/perfevent-makerewrite.pl + +find \( -name '*.py' -o -name '*.python' \) -print0 | xargs -0 \ + %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+pmpython(\s|$),#!%{_bindir}/pmpython\1,' + +%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+pmpython(\s|$),#!%{_bindir}/pmpython\1,' \ + src/pmdas/haproxy/connect \ + src/pmdas/json/generate_ceph_metadata \ + src/pmdas/libvirt/connect \ + src/pmdas/netcheck/pyprep + +%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\1,' \ + src/pmdas/bash/test-child.sh \ + src/pmdas/bash/test-trace.sh %build +QTDIR=%{_libdir}/qt5; export QTDIR %{__autoconf} %configure \ + --with%{!?with_qt:out}-qt \ + --with%{!?with_systemtap:out}-static-probes \ + --with-python_prefix=%{_prefix} \ --with-rcdir=/etc/rc.d/init.d # ensure not *zipping man pages on install %{__sed} -i -e '/^HAVE_.*ED_MANPAGES/s,true,false,' src/include/builddefs @@ -145,6 +282,7 @@ install -d $RPM_BUILD_ROOT%{_sysconfdir} %{__make} install \ DIST_ROOT=$RPM_BUILD_ROOT \ + BASHDIR=/etc/bash_completion.d/pcp \ INSTALL='$(INSTALL_SH)' \ HAVE_BZIP2ED_MANPAGES=false \ HAVE_GZIPPED_MANPAGES=false \ @@ -153,54 +291,97 @@ install -d $RPM_BUILD_ROOT%{_sysconfdir} install -p src/pmns/stdpmid $RPM_BUILD_ROOT/var/lib/pcp/pmns +install -d $RPM_BUILD_ROOT%{systemdtmpfilesdir} +cat >$RPM_BUILD_ROOT%{systemdtmpfilesdir}/pcp.conf <