[arch-commits] Commit in pcp/trunk (PKGBUILD)
Massimiliano Torromeo
mtorromeo at archlinux.org
Thu Jan 7 20:05:42 UTC 2021
Date: Thursday, January 7, 2021 @ 20:05:42
Author: mtorromeo
Revision: 812675
Fixed pmproxy with missing libuv and split components in separate packages
Modified:
pcp/trunk/PKGBUILD
----------+
PKGBUILD | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 164 insertions(+), 17 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2021-01-07 20:05:34 UTC (rev 812674)
+++ PKGBUILD 2021-01-07 20:05:42 UTC (rev 812675)
@@ -1,20 +1,34 @@
# Maintainer: Massimiliano Torromeo <massimiliano.torromeo at gmail.com>
# Contributor: Iwan Timmer <irtimmer at gmail.com>
-pkgname=pcp
+pkgbase=pcp
+pkgname=(pcp pcp-gui pcp-pmda-activemq pcp-pmda-bcc pcp-pmda-bind2 pcp-pmda-bpftrace pcp-pmda-libvirt
+ pcp-pmda-mysql pcp-pmda-nginx pcp-pmda-nutcracker pcp-pmda-openmetrics
+ pcp-pmda-podman pcp-pmda-postgresql pcp-pmda-snmp)
pkgver=5.2.3
-pkgrel=1
-pkgdesc="System performance analysis toolkit"
+pkgrel=2
arch=('x86_64')
url="https://pcp.io"
license=('LGPL')
-depends=('python' 'avahi' 'procps-ng' 'which')
-makedepends=('libmicrohttpd' 'cairo' 'qt5-svg')
-optdepends=('libmicrohttpd: support for pmwebd'
- 'cairo: support for pmwebd'
- 'qt5-svg: support for PCP-GUI and pmchart'
- 'perl-xml-tokeparser: support for sar2pcp'
- 'perl-date-parse: support for sar2pcp')
+makedepends=('avahi' 'procps-ng' 'which' 'libuv'
+ 'rsync'
+ 'qt5-svg' # gui
+ 'python-openpyxl' # pcp2xlsx
+ 'python-jsonpointer' 'python-six' # json
+ 'libvirt-python' # libvirt
+ 'python-lxml' # libvirt
+ 'python-requests' # influxdb
+ 'bpftrace' 'python-bcc' # bcc
+ 'perl-net-snmp' # snmp
+ 'perl-libwww' # nginx, activemq, bind2
+ 'perl-xml-libxml' # bind2
+ 'perl-file-slurp' # bind2
+ 'perl-yaml-libyaml' # nutcracker
+ 'perl-json' # nutcracker
+ 'perl-dbd-mysql' # mysql
+ 'python-psycopg2' # postgresql
+ 'libvarlink' # podman
+ )
source=("https://github.com/performancecopilot/pcp/archive/$pkgver/$pkgname-$pkgver.tar.gz"
"ncurses-config.patch::https://github.com/performancecopilot/pcp/commit/c57d71813b342e340eb5d399400f10ba35040da5.patch"
"sysuser.conf"
@@ -25,12 +39,12 @@
'0166ffea180527de5a48a8e8f145cc80860b93e8f44bc5f96836c3d1cb4b01a2')
prepare() {
- cd "$pkgname-$pkgver"
+ cd "$pkgbase-$pkgver"
patch -p1 -i "$srcdir"/ncurses-config.patch
}
build() {
- cd "$pkgname-$pkgver"
+ cd "$pkgbase-$pkgver"
./configure \
--prefix=/usr \
--sbindir=/usr/bin \
@@ -38,16 +52,149 @@
--sysconfdir=/etc \
--localstatedir=/var \
--with-rundir=/run/pcp \
- --without-dstat-symlink
+ --without-dstat-symlink \
+ --with-python=no
make
+
+ mkdir -p "$srcdir"/installskel
+ make DIST_ROOT="$srcdir/installskel" NO_CHOWN=true install_pcp
+ rm -rf "$srcdir"/installskel/{var/lib/pcp/testsuite,run,var/tmp}
+
+ echo -e /{etc/pcp,var/lib/pcp/config}/{pmchart,pmsnap} \
+ /usr/share/applications/pmchart.desktop \
+ /usr/lib/pcp/bin/pmsnap \
+ /usr/bin/{pmchart,pmconfirm,pmdumptext,pmmessage,pmquery,pmtime} \
+ /usr/share/bash-completion/completions/pmdumptext \
+ | sed -r 's/ +/\n/g' > ../gui.list
}
-package() {
- cd "$pkgname-$pkgver"
- make DIST_ROOT="$pkgdir" PCP_USER=root PCP_GROUP=root install
+_package_module() {
+ local module="$1"
+ for moddir in {etc/pcp,var/lib/pcp/config/pmlogconf} {var,usr}/lib/pcp/pmdas; do
+ [ ! -e "$srcdir/installskel/$moddir/$module" ] && continue
+ install -dm0755 "$pkgdir/$moddir"
+ mv "$srcdir/installskel/$moddir/$module" "$pkgdir"/$moddir/
+ done
+
+ if [ -e "$srcdir/installskel/usr/share/man/man1/pmda$module.1.gz" ]; then
+ install -dm0755 "$pkgdir/usr/share/man/man1/"
+ mv "$srcdir/installskel/usr/share/man/man1/pmda$module.1.gz" "$pkgdir/usr/share/man/man1/"
+ fi
+}
+
+package_pcp() {
+ pkgdesc='System performance analysis toolkit'
+ depends=('python' 'perl' 'avahi' 'procps-ng' 'which' 'libuv')
+ optdepends=('perl-xml-tokeparser: sar2pcp'
+ 'perl-date-parse: sar2pcp'
+ 'python-openpyxl: pcp2xlsx')
+
+ cd "$pkgbase-$pkgver"
+ rsync -vaHAX --exclude-from=../gui.list --exclude-from=<(echo /{etc/pcp,var/lib/pcp/config/pmlogconf,{usr,var}/lib/pcp/pmdas}/{activemq,bcc,bind2,bpftrace,libvirt,json,mysql,nginx,nutcracker,openmetrics,podman,postgresql,snmp} /usr/share/man/man1/pmda{activemq,bcc,bind2,bpftrace,libvirt,json,mysql,nginx,nutcracker,openmetrics,podman,postgresql,snmp}.1.gz | sed -r 's/ +/\n/g') "$srcdir"/installskel/ "$pkgdir"/
+
install -D -m644 "$srcdir"/sysuser.conf "$pkgdir"/usr/lib/sysusers.d/pcp.conf
install -D -m644 "$srcdir"/tmpfile.conf "$pkgdir"/usr/lib/tmpfiles.d/pcp.conf
+}
- rm -vrf "$pkgdir"/var/lib/pcp/testsuite "$pkgdir"/run "$pkgdir"/var/tmp
+package_pcp-gui() {
+ pkgdesc='Visualization tools for the Performance Co-Pilot toolkit'
+ depends=('pcp' 'qt5-svg')
+
+ while read f; do
+ [[ "$f" = "" ]] && continue
+ install -dm0755 "$pkgdir"/$(dirname "$f")
+ mv "$srcdir/installskel$f" "$pkgdir$f"
+ done < gui.list
}
+
+package_pcp-pmda-activemq() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from ActiveMQ'
+ depends=('pcp' 'perl-libwww')
+
+ _package_module activemq
+}
+
+package_pcp-pmda-bcc() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from eBPF/BCC modules'
+ depends=('pcp' 'python-bcc')
+
+ _package_module bcc
+}
+
+package_pcp-pmda-bind2() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from BIND via its REST interface'
+ depends=('pcp' 'perl-libwww' 'perl-xml-libxml' 'perl-file-slurp')
+
+ _package_module bind2
+}
+
+package_pcp-pmda-bpftrace() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from bpftrace scripts'
+ depends=('pcp' 'bpftrace')
+
+ _package_module bpftrace
+}
+
+package_pcp-pmda-libvirt() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from libvirt virtual machines'
+ depends=('pcp' 'libvirt-python' 'python-lxml')
+
+ _package_module libvirt
+}
+
+package_pcp-pmda-json() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from JSON data'
+ depends=('pcp' 'python-jsonpointer' 'python-six')
+
+ _package_module json
+}
+
+package_pcp-pmda-nginx() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from Nginx'
+ depends=('pcp' 'perl-libwww')
+
+ _package_module nginx
+}
+
+package_pcp-pmda-mysql() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from MySQL'
+ depends=('pcp' 'perl-dbd-mysql')
+
+ _package_module mysql
+}
+
+package_pcp-pmda-nutcracker() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from NutCracker (TwemCache)'
+ depends=('pcp' 'perl-yaml-libyaml' 'perl-json')
+
+ _package_module nutcracker
+}
+
+package_pcp-pmda-openmetrics() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from OpenMetrics endpoints'
+ depends=('pcp' 'python-requests')
+
+ _package_module openmetrics
+}
+
+package_pcp-pmda-podman() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from podman'
+ depends=('pcp' 'libvarlink')
+
+ _package_module podman
+}
+
+package_pcp-pmda-postgresql() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from PostgreSQL'
+ depends=('pcp' 'python-psycopg2')
+
+ _package_module postgresql
+}
+
+package_pcp-pmda-snmp() {
+ pkgdesc='PCP Performance Metrics Domain Agent (PMDA) for collecting metrics from SNMP'
+ depends=('pcp' 'perl-net-snmp')
+
+ _package_module snmp
+}
More information about the arch-commits
mailing list