aboutsummaryrefslogtreecommitdiffstats
path: root/community/collectd/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/collectd/APKBUILD')
-rw-r--r--community/collectd/APKBUILD341
1 files changed, 271 insertions, 70 deletions
diff --git a/community/collectd/APKBUILD b/community/collectd/APKBUILD
index ceb4d99d1e9..57fd0dc6c2f 100644
--- a/community/collectd/APKBUILD
+++ b/community/collectd/APKBUILD
@@ -1,45 +1,184 @@
# Contributor: Ɓukasz Jendrysik <scadu@yandex.com>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=collectd
pkgver=5.12.0
-pkgrel=0
+pkgrel=19
pkgdesc="The system statistics collection daemon"
-options="!check" # test_common fails
url="https://collectd.org/"
-arch="all !mips !mips64 !s390x" # libvirt
+arch="all"
license="GPL-2.0-or-later"
pkgusers="collectd"
pkggroups="collectd"
-makedepends="curl-dev net-snmp-dev postgresql-dev perl-dev python3-dev
- libgcrypt-dev mariadb-connector-c-dev zlib-dev iptables-dev
- rrdtool-dev yajl-dev libvirt-dev lm-sensors-dev libxml2-dev
- hiredis-dev eudev-dev mosquitto-dev lua-dev openipmi-dev
- libpcap-dev liboping-dev
- autoconf automake libtool"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-libs
- $pkgname-perl $pkgname-snmp $pkgname-curl:_curl $pkgname-utils
- $pkgname-write_http $pkgname-nginx $pkgname-apache $pkgname-postgresql
- $pkgname-network $pkgname-mysql $pkgname-rrdtool $pkgname-sensors
- $pkgname-python:_python $pkgname-iptables:_ipt $pkgname-bind
- $pkgname-ascent $pkgname-virt $pkgname-redis $pkgname-write_redis
- $pkgname-log_logstash $pkgname-ceph $pkgname-disk $pkgname-lua
- $pkgname-mqtt $pkgname-ipmi $pkgname-ping $pkgname-dns $pkgname-openrc
+makedepends="
+ autoconf
+ automake
+ curl-dev
+ eudev-dev
+ gpsd-dev
+ hiredis-dev
+ i2c-tools-dev
+ iptables-dev
+ jansson-dev
+ libatasmart-dev
+ libdbi-dev
+ libgcrypt-dev
+ libmemcached-dev
+ libmicrohttpd-dev
+ libmnl-dev
+ libmodbus-dev
+ libnotify-dev
+ liboping-dev
+ libpcap-dev
+ libpq-dev
+ librdkafka-dev
+ libtool
+ libxml2-dev
+ lm-sensors-dev
+ lua-dev
+ mariadb-connector-c-dev
+ mosquitto-dev
+ net-snmp-dev
+ openipmi-dev
+ openldap-dev
+ openssl-dev>3
+ owfs-dev
+ patchelf
+ perl-dev
+ python3-dev
+ rabbitmq-c-dev
+ riemann-c-client-dev
+ rrdtool-dev
+ varnish-dev
+ yajl-dev
+ zlib-dev
"
-install="$pkgname.pre-install"
-source="
- https://storage.googleapis.com/collectd-tarballs/collectd-$pkgver.tar.bz2
- collectd.initd
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-openrc
+ $pkgname-libs
+ $pkgname-perl
+ $pkgname-utils
+ $pkgname-plugins-all:_all:noarch
+ "
+install="$pkgname.pre-install $pkgname.post-upgrade"
+source="https://storage.googleapis.com/collectd-tarballs/collectd-$pkgver.tar.bz2
+ $pkgname-3f57541-fix-broken-t-option.patch::https://github.com/collectd/collectd/commit/3f575419e7ccb37a3b10ecc82adb2e83ff2826e1.patch
+ $pkgname-dd7e4fd-2-nginx-add-support-for-unix-socket.patch::https://github.com/collectd/collectd/commit/dd7e4fd34042483cc90ee2762f4b507fd6637d37.patch
+ $pkgname-cc565f5-2-nginx-add-support-for-unix-socket.patch::https://github.com/collectd/collectd/commit/cc565f5f94b117e2c64b2060627dc3fc49a8abb3.patch
+ $pkgname-24bb9e2-2-oauth-increase-buf-size.patch::https://github.com/collectd/collectd/commit/24bb9e251969d5cf0e6eee14aad7a7e3bcc59dd8.patch
+ $pkgname-91a6423-2-ovs_stats-fix-port-deletion.patch::https://github.com/collectd/collectd/commit/91a642385e2d068d106aa5c307de968f8b33add5.patch
+ $pkgname-1483ef8-snmp-remove-des-support.patch::https://github.com/collectd/collectd/commit/1483ef8e03603bb8e1f89745325a17ba50fbbedf.patch
gnu_source.patch
+ pyinclude.patch
+ collectd.initd
"
+options="!check" # test_common fails
+
+# TODO: Move /etc/collectd/collectd.conf to /etc/collectd.conf.
+# TODO: Clean up defualt collectd.conf.
# secfixes:
# 5.5.2-r0:
# - CVE-2016-6254
+# <subpackage>[:<libname>...]
+_plugins="
+ amqp
+ apache
+ apcups
+ ascent
+ barometer
+ battery
+ bind
+ capabilities
+ ceph
+ chrony
+ connectivity
+ curl:curl*
+ dbi
+ disk
+ dns
+ email
+ exec
+ gps
+ hddtemp
+ infiniband
+ ipmi
+ iptables
+ log_logstash
+ lua
+ madwifi
+ mbmon
+ mcelog
+ memcachec
+ memcached
+ modbus
+ mqtt
+ multimeter
+ mysql
+ network
+ nginx
+ notify_desktop
+ olsrd
+ onewire
+ openldap
+ openvpn
+ ovs:ovs_*
+ pcie_errors
+ pinba
+ ping
+ postgresql
+ powerdns
+ python
+ redis
+ rrdtool:rrd*
+ sensors
+ serial
+ smart
+ snmp:snmp*
+ statsd
+ sysevent
+ teamspeak2
+ ted
+ varnish
+ vserver
+ wireless
+ write_http
+ write_kafka
+ write_redis
+ write_riemann
+ write_stackdriver
+ zookeeper
+ "
+_flags=
+case "$CARCH" in
+ x86 | x86_64) _plugins="$_plugins turbostat";;
+ *) _flags="--disable-turbostat";;
+esac
+case "$CARCH" in
+ x86 | armhf | armv7 | riscv64) _flags="$_flags --disable-java";;
+ *) _plugins="$_plugins java"; makedepends="$makedepends java-jdk";;
+esac
+case "$CARCH" in
+ s390x | riscv64) _flags="$_flags --disable-virt";;
+ *) _plugins="$_plugins virt"; makedepends="$makedepends libvirt-dev";;
+esac
+for _i in $_plugins; do
+ subpackages="$subpackages $pkgname-${_i%%:*}:_plugin"
+done
+
prepare() {
default_prepare
autoreconf -vif
+
+ cat >> src/collectd.conf.in <<-EOF
+ <Include "/etc/collectd.d">
+ Filter "*.conf"
+ </Include>
+ EOF
}
build() {
@@ -52,17 +191,55 @@ build() {
--infodir=/usr/share/info \
--localstate=/var \
--with-libiptc \
- --enable-rrdtool \
- --enable-bind \
--disable-werror \
- --with-perl-bindings=INSTALLDIRS=vendor
-
+ --with-perl-bindings=INSTALLDIRS=vendor \
+ --with-java=/usr/lib/jvm/default-jvm \
+ \
+ --enable-all-plugins \
+ --disable-amqp1 \
+ --disable-apple_sensors \
+ --disable-aquaero \
+ --disable-dcpmm \
+ --disable-dpdkevents \
+ --disable-dpdkstat \
+ --disable-dpdk_telemetry \
+ --disable-gmond \
+ --disable-gpu_nvidia \
+ --disable-grpc \
+ --disable-intel_pmu \
+ --disable-intel_rdt \
+ --disable-ipstats \
+ --disable-lpar \
+ --disable-mic \
+ --disable-netapp \
+ --disable-netlink \
+ --disable-netstat_udp \
+ --disable-notify_email \
+ --disable-nut \
+ --disable-oracle \
+ --disable-pf \
+ --disable-redfish \
+ --disable-routeros \
+ --disable-sigrok \
+ --disable-slurm \
+ --disable-tape \
+ --disable-tokyotyrant \
+ --disable-write_mongodb \
+ --disable-write_prometheus \
+ --disable-xencpu \
+ --disable-xmms \
+ --disable-zone \
+ $_flags
make
+ if [ -f .libs/java.so ]; then
+ # Fix RPATH (there's /usr/lib/jvm/default-jvm/lib/server/jre/jre/.../jre/lib/server).
+ patchelf --set-rpath "$(readlink -f /usr/lib/jvm/default-jvm/lib/server)" .libs/java.so
+ fi
+
# disable plugins by default since its in a subpackage
sed -i -e 's/^LoadPlugin network/#LoadPlugin network/' \
- src/collectd.conf
- sed -i -e 's/^LoadPlugin rrdtool/#LoadPlugin rrdtool/' \
+ -e 's/^LoadPlugin rrdtool/#LoadPlugin rrdtool/' \
src/collectd.conf
}
@@ -71,63 +248,87 @@ check() {
}
package() {
+ local header path
+
make DESTDIR="$pkgdir" install
- chown root:collectd "$pkgdir"/etc/collectd/collectd.conf
+
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
- install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+
+ chown root:collectd "$pkgdir"/etc/collectd/collectd.conf
+ mkdir -p "$pkgdir"/etc/collectd.d
+
+ install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+
+ # Install all header files to allow building out-of-tree plugins.
+ # This is based on Debian.
+ for path in $(find src -path src/libcollectdclient -prune \
+ -o -path src/liboconfig -prune \
+ -o -name '*.h' -print)
+ do
+ install -D -m644 "$path" "$pkgdir"/usr/include/collectd/core/${path#src/}
+ done
+ install -D -m644 src/liboconfig/oconfig.h -t "$pkgdir"/usr/include/collectd/liboconfig/
+
+ cd "$pkgdir"/usr/include/collectd/
+
+ # Update include path for collectd core header files.
+ headers=$(find ./core ./liboconfig -type f -name '*.h')
+ for path in $headers; do
+ sed -r -i "s|(include\s+)\".*\<${path##*/}\"|\1\"collectd/${path#./}\"|" $headers
+ done
}
perl() {
pkgdesc="perl bindings to collectd"
- mkdir -p "$subpkgdir"/usr/lib/collectd \
- "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/lib/collectd/perl.so \
- "$subpkgdir"/usr/lib/collectd/
- mv "$pkgdir"/usr/lib/perl* "$subpkgdir"/usr/lib/
- mv "$pkgdir"/usr/share/perl* "$subpkgdir"/usr/share/
+
+ amove usr/lib/collectd/perl.so
+ amove usr/lib/perl*
+ amove usr/share/perl*
}
utils() {
pkgdesc="$pkgname utilities"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin/
+
+ amove usr/bin/*
+}
+
+_all() {
+ pkgdesc="Meta package for all collectd plugins"
+ depends=""
+
+ local plugin; for plugin in $_plugins; do
+ depends="$depends $pkgname-${plugin%%:*}"
+ done
+
+ mkdir -p "$subpkgdir"
}
_plugin() {
- local mod=$1
- local desc=${2:-$mod}
- pkgdesc="$desc pluin for collectd"
+ local name="${subpkgname#$pkgname-}"
+ pkgdesc="$name pluin for collectd"
depends="collectd"
- install -d "$subpkgdir"/usr/lib/collectd
- mv "$pkgdir"/usr/lib/collectd/$mod.so "$subpkgdir"/usr/lib/collectd/
+
+ local libnames=$(printf '%s\n' $_plugins | grep "^$name:" | cut -d: -f2- | tr : ' ')
+ local libname
+
+ for libname in ${libnames:-$name}; do
+ amove usr/lib/collectd/$libname.so
+ done
+
+ case "$name" in
+ java) amove usr/share/collectd/java;;
+ esac
}
-snmp() { _plugin snmp; }
-_curl() { _plugin 'curl*'; }
-write_http() { _plugin write_http; }
-nginx() { _plugin nginx; }
-apache() { _plugin apache; }
-postgresql() { _plugin postgresql; }
-mysql() { _plugin mysql; }
-network() { _plugin network; }
-rrdtool() { _plugin 'rrd*'; }
-sensors() { _plugin sensors; }
-_python() { _plugin python; }
-_ipt() { _plugin iptables; }
-bind() { _plugin bind; }
-ascent() { _plugin ascent; }
-redis() { _plugin redis; }
-write_redis() { _plugin write_redis; }
-log_logstash() { _plugin log_logstash; }
-ceph() { _plugin ceph; }
-disk() { _plugin disk; }
-lua() { _plugin lua; }
-mqtt() { _plugin mqtt; }
-virt() { _plugin virt; provides="$pkgname-libvirt"; }
-ipmi() { _plugin ipmi; }
-ping() { _plugin ping; }
-dns() { _plugin dns; }
-
-sha512sums="7a15e4c0ae587db4987d673a790a4f3bea1cab29ce24a506fb21fa7bd2f60bfec70867eaa1c1395cb5b0e0ae81a024fb6109b064da0ef50e7c146d2198871c70 collectd-5.12.0.tar.bz2
+sha512sums="
+7a15e4c0ae587db4987d673a790a4f3bea1cab29ce24a506fb21fa7bd2f60bfec70867eaa1c1395cb5b0e0ae81a024fb6109b064da0ef50e7c146d2198871c70 collectd-5.12.0.tar.bz2
+b8af8bb68d4da90f77cea5ed2cd751340fa2abe7e6b56e5abd52f8e79d4cd40c5a73a79cfb1e517657dd2b89169320e71f2c0061e4fbed27864fb6dc958d240e collectd-3f57541-fix-broken-t-option.patch
+58389c5c8839439040ba7f1c39089c7102b36a96e07865dd5b38092560c9cb58ca3be5ba7e45d2450e658d886fdc0a9b24af024eb158c05d3a2f5f1b75745654 collectd-dd7e4fd-2-nginx-add-support-for-unix-socket.patch
+57c28aaf013cf5893594abfa08a040f34a246bfcffd1cef578158be25f7e18ac579ce96a26af57e6b31f4bb87ef367f1dee6ad41f1514736519af8f32a5d1a37 collectd-cc565f5-2-nginx-add-support-for-unix-socket.patch
+37c116c5e026f8cb1c3ff6772745d8e6fafcc6683e4b5ba7f1afbef6da856b7b8a7193a009bfb8b4d5d1ff3fee14e2d281035ee530471138a2f1102aa8895c11 collectd-24bb9e2-2-oauth-increase-buf-size.patch
+8ba5f533550da579fc851491efc6aaeac58436d81a4e4a09224e3e8c51b6ec90d007d58b843a7d886a58624b75ad0a79b6bc5e40176552e4dff6207f7ddd4941 collectd-91a6423-2-ovs_stats-fix-port-deletion.patch
+e5089707e349c10a3cfb25d6a9d52db8fdd450b404c68fe82d9a321d8f6d7bd20ba6f9ef045dd76e3251e67a2cf728cc0ac58b8c791a5fb260b74cd520608cea collectd-1483ef8-snmp-remove-des-support.patch
+3078e43fc1aa5e5d5f7042472f465cc3b077c59f43a9867ade038e59bb210f26f53bb9a1e1e8a198ca53939a4b2e03a1f05628aa54f826746f970faa36acff6a gnu_source.patch
+bf1362d1bfaff1468409de815cff20c3f1446f2362282cdb7b764b736e2d8a51ca81f706a13cd13344858fe8fc34561a59a828f7a861f9723972b26452e8c682 pyinclude.patch
a286c2164af196154d017658d6e5aa3cc4f76dadf90b68c3021418979d9f0377776bb990d737ae5c916c04475725365aea8b78e3bc5e2f3679d5a99f8b9af13e collectd.initd
-3078e43fc1aa5e5d5f7042472f465cc3b077c59f43a9867ade038e59bb210f26f53bb9a1e1e8a198ca53939a4b2e03a1f05628aa54f826746f970faa36acff6a gnu_source.patch"
+"