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 <[email protected]> # Contributor: Iwan Timmer <[email protected]> -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 +}
