From e3872864be25f7421015bef2732fa57c0c9fb726 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 4 Aug 2018 08:53:53 +0100 Subject: gentoo resync : 04.08.2018 --- app-metrics/collectd/Manifest | 9 +- app-metrics/collectd/collectd-5.7.2-r3.ebuild | 548 ----------- app-metrics/collectd/collectd-5.8.0-r1.ebuild | 536 +++++++++++ app-metrics/collectd/collectd-5.8.0.ebuild | 534 ---------- .../collectd/files/collectd-5.6.0-gentoo.patch | 153 --- .../files/collectd-5.7.2-CVE-2017-16820.patch | 39 - .../collectd/files/collectd-5.7.2-issue-2443.patch | 160 --- .../files/collectd-5.7.2-varnish-5.2+.patch | 1018 -------------------- .../collectd-5.8.0-disk-plugin-udev-fix.patch | 98 ++ 9 files changed, 636 insertions(+), 2459 deletions(-) delete mode 100644 app-metrics/collectd/collectd-5.7.2-r3.ebuild create mode 100644 app-metrics/collectd/collectd-5.8.0-r1.ebuild delete mode 100644 app-metrics/collectd/collectd-5.8.0.ebuild delete mode 100644 app-metrics/collectd/files/collectd-5.6.0-gentoo.patch delete mode 100644 app-metrics/collectd/files/collectd-5.7.2-CVE-2017-16820.patch delete mode 100644 app-metrics/collectd/files/collectd-5.7.2-issue-2443.patch delete mode 100644 app-metrics/collectd/files/collectd-5.7.2-varnish-5.2+.patch create mode 100644 app-metrics/collectd/files/collectd-5.8.0-disk-plugin-udev-fix.patch (limited to 'app-metrics/collectd') diff --git a/app-metrics/collectd/Manifest b/app-metrics/collectd/Manifest index d4c822e465a5..f175f543b023 100644 --- a/app-metrics/collectd/Manifest +++ b/app-metrics/collectd/Manifest @@ -1,13 +1,8 @@ -AUX collectd-5.6.0-gentoo.patch 4294 BLAKE2B 99274b5a2734910a35ab6a0003d6fe257e239fc0a3b1f3ca398c82b0e28b9365729980999af0db417b3818c7b4de47f48c0118eea88a43f8de162ae40eeb68be SHA512 088f65e2d90c29092621693847f165be7024caa2237a2129dbffcedba3c1f93baa8169de9d3c2979c709219ec12ee0d3b6dd36586ede92062d1a14a28b8611c8 -AUX collectd-5.7.2-CVE-2017-16820.patch 1326 BLAKE2B 0dbd15e6c52531423b47d25b0fab0319c867482fbcd7f9e5a59c9ae6908ce1844f9ed41590a048ff247acf2bfdb8ddd34723dd289074269fb8bd7133ae324d40 SHA512 13e7ad198c88538a8bdcdd1d0ee8ed3ebe7b8ac00df98341a1248a4e5fd02b44b24d239c6c3ac70fce6492674163371755f126e2f4a0099159032514a842ea0b -AUX collectd-5.7.2-issue-2443.patch 4628 BLAKE2B 357f4171c4cc5e13e43da0709bcecff8d9c7d529c1c2c910e14ec2502ea4abd3df2e1be591b2d98b06d6dd5f984e9dd5615f7cd7e14cad79d49adc6f369cf37b SHA512 16c7bc99a6401c96fb3b2cda5ad6e540024ae13d66268b4d5ada4c65c456a5dbd210ea58d116463381dbac953f9f8d4907d2185a24195a304e0f5a645829755e -AUX collectd-5.7.2-varnish-5.2+.patch 40982 BLAKE2B a1f90a27e95b2665626fc2112646f5fb092472f32b58fb6bcc2a6a15e2916bb067b7f8aa7c85fba12eaf839d10b94004a1847f537d5f5535d9a7aac0fe2fe5a7 SHA512 eea0fd89f65b14ba6012160c4d2560e8c6339f7aeb873d93ed35b9c3551d76d6087c6cdbe986610502e8a73b144fba945f1efd1db31e5be792b9ecead2d0eeec +AUX collectd-5.8.0-disk-plugin-udev-fix.patch 2659 BLAKE2B 9b787040e34e62f06993d5bc2ccf92032b9880a1ba65f69c351300ad61ffa6e1ff5ace074285abf3e05962b61a2aa15f355f48ab9f789357197dc24d50138025 SHA512 bdac64df91de88d0cb8220a9cd5a9d303a5d9f3551484bf6319c8a2987ef69c2becc4dfb37350836767aed06704be3da9500433c21f1363c80c6d3faac13e1e5 AUX collectd.confd-r2 2001 BLAKE2B fbf1a64aab6ec60111553466c3a8b725200ab13d0e09c1ba1d71e68213e8f978c3cad0dfc5eb2c536ced8213f172804f0596b3494f9b42b0cacf3432105cab5a SHA512 729f2b4e06c4a8c95d32c03c6f3f292eaa4895780ace180b74fcf139a949e9c28a2b3ae823bdebec0014f9b4d919adb399bc7f019c68c0e268b263326959edb7 AUX collectd.initd-r2 1843 BLAKE2B ccb12e55de72565aa7b6bb0f2c4e7a5a6d15ff23d5bc75e9cb36e1f2dba85b3b2b587336f976059af165ae89333d681ffe0cf53bbcd8098eaeff75228cb80b68 SHA512 8f0a73f0f2b2280c0f2e35894a9dfa38af937930eb090eab52cbe81089a146bd974f6a2a3062b7147611f9c13b770a945a1a9228a026405d31578e27a3fd3b80 AUX collectd.logrotate 115 BLAKE2B ce2a79787096b04af6ecd128633dde68fb868a02cc1d246c3e512c1733133fcc8da41b3ab2a0051b4da78c53e6629b2ad8085872dec1d4c28e397c88cafe3a90 SHA512 87ec01784d415f00834c2b20614f11f7e08b70f88d7c87509a8b8fd7e1af8758565b9ed6a6840af7bf1006cb941a61a6ff4f3176f6ded722728f24483b08bc8e AUX collectd.tmpfile 39 BLAKE2B 0d1ee2f02e539e854b62b47032308d08505fa31d8428e98f8d150c924201074c5edae22eea3990edf3a7837f1473193fe009a501645bf064638c532ec53a36cc SHA512 55fb70da9ece74b143c3e971b890954842230691039f8ad2240cc4c8d699e4e7a21efcbfd0b3cb2503e90af0bbdd0c7d886e09baf9fc86ec26c115a0bce6a668 -DIST collectd-5.7.2.tar.bz2 1798777 BLAKE2B 4af359a773457bb9c05b6a301d7728eea7598c200f7ca534875b07d1d011b280ab138f680d9607723f14523dd71dcbec3a41e0d8d183848c8ef809cef86c2b8f SHA512 8844b67159f8da2203b5ac57ef19fce0a01050a016174d196b48b5fb24925ad2935af9bdd9af06097ff663499abc496cdcc2d9e9a10f403f8d707c465c1a88f3 DIST collectd-5.8.0.tar.bz2 1686017 BLAKE2B 26d995cdb9c25869bf96a056e6ba879de9f009fd4bbf1364a7dedba93b822e57c4b606ca8c84da68cc29db8e77333047695e85d7eb101080de9cee783240f5ea SHA512 1b3d0cc44e2ca54e13eebf292074f1efa8b33d6800d04405e0eaaa2dd1cb2416c6eae580729fb5aead23a5039f41ffe8a9989a907a8c18be8f867f1099fc0008 -EBUILD collectd-5.7.2-r3.ebuild 19604 BLAKE2B a8029a04105fc974d7509caec64d4ac4b36cc0f4c94ab626a73a9e9097076618c26c0fc69c8b3f0af4cee6c4834bac0425fd3905caf9356cd864f0c810f2fb79 SHA512 e8359fc8644c775fe5c9158fa26fd7b0c63aef1f68d2f0dc242043a6dd223338c2544d8680377243c2939fb74b998fb5530febe4f1d0376c6ec3771d47303af7 -EBUILD collectd-5.8.0.ebuild 19353 BLAKE2B c73debc06ed9a3633be39be1019fe75a6dee65faec7e08d787c32b5d78620f5d8ccb6175260b435341d8ec30fc6b1098df6ab20b0e14bc90f75321ce80c42a9b SHA512 ded4e1a6431679ae141a9cc1711819bf5407cc060164532996fb51e38e9590be0d5f53e770a010666961000b229ca97eed95a32469467e5f1801e6dfbe06956f +EBUILD collectd-5.8.0-r1.ebuild 19415 BLAKE2B 1dfcc4d012ebc4b075896d0917325d31079eb1345ad6e10f336bf71f47637964b000aa34d6c9fcd33f4411cd42bab4ee4dbaeeb30d96d8c194d053346bc2f6e8 SHA512 483d9f72ec422b55ca9868e452bd2f014de3cd691d8572b00b2029d976cffefd3d93ed70dca7fd939b22c3296ba9e9704147ff70d9b6184d7d500c6e10641095 MISC metadata.xml 1515 BLAKE2B 5525766b822463f94f7c2cddbdf78b4c4ea5a473880a473d0b51481d948569cfc7f51bd2e74eb67065ab2be1b23e4fb7ee99512d018c6e6b5ac1ee7331eae9eb SHA512 51c17c16d27b722d729d036d67c562ab76e212dac9bcd004a7e43c2c5e041b8c46e74f9a130f30c2e18cc95ca1b367034246eff02cfaf55f6f9375ff836749e5 diff --git a/app-metrics/collectd/collectd-5.7.2-r3.ebuild b/app-metrics/collectd/collectd-5.7.2-r3.ebuild deleted file mode 100644 index 32854c2b44a5..000000000000 --- a/app-metrics/collectd/collectd-5.7.2-r3.ebuild +++ /dev/null @@ -1,548 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) -JAVA_PKG_OPT_USE="collectd_plugins_java" - -inherit autotools fcaps flag-o-matic java-pkg-opt-2 linux-info multilib perl-functions python-single-r1 systemd tmpfiles user - -DESCRIPTION="Collects system statistics and provides mechanisms to store the values" - -HOMEPAGE="https://collectd.org/" -SRC_URI="${HOMEPAGE%/}/files/${P}.tar.bz2" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="alpha amd64 arm x86" -IUSE="contrib debug java kernel_Darwin kernel_FreeBSD kernel_linux perl selinux static-libs udev xfs" - -# The plugin lists have to follow here since they extend IUSE - -# Plugins that don't build (e.g. dependencies not in Gentoo) -# apple_sensors: Requires libIOKit -# aquaero: Requires aerotools-ng/libaquaero5 -# barometer: Requires libi2c (i2c_smbus_read_i2c_block_data) -# dpdkstat: Requires dpdk -# grpc: Requires libgrpc -# intel_rdt Requires libpqos from intel-cmt-cat project -# lpar: Requires libperfstat (AIX only) -# mic: Requires Intel Many Integrated Core Architecture API -# (part of Intel's Xeon Phi software) -# netapp: Requires libnetapp (http://communities.netapp.com/docs/DOC-1110) -# pf: Requires BSD packet filter -# pinba: Requires MySQL Pinba engine (http://pinba.org/) -# tape: Requires libkstat (Solaris only) -# write_mongodb: https://github.com/collectd/collectd/issues/492 -# write_riemann: Requires riemann-c-client -# xmms: Requires libxmms (v1) -# zone: Solaris only... -COLLECTD_IMPOSSIBLE_PLUGINS="apple_sensors aquaero barometer dpdkstat grpc - intel_rdt lpar mic netapp pf pinba tape write_mongodb - write_riemann xmms zone" - -# Plugins that have been (compile) tested and can be enabled via COLLECTD_PLUGINS -COLLECTD_TESTED_PLUGINS="aggregation amqp apache apcups ascent battery bind - ceph cgroups chrony conntrack contextswitch cpu cpufreq cpusleep - csv curl curl_json curl_xml dbi df disk dns drbd email - entropy ethstat exec fhcount filecount fscache gmond gps hddtemp - hugepages interface ipc ipmi iptables ipvs irq java lua - load logfile log_logstash lvm madwifi match_empty_counter - match_hashed match_regex match_timediff match_value mbmon md - memcachec memcached memory modbus mqtt multimeter mysql netlink - network network nfs nginx notify_desktop notify_email notify_nagios - ntpd numa nut olsrd onewire openldap openvpn oracle perl ping - postgresql powerdns processes protocols python python redis - routeros rrdcached rrdtool sensors serial sigrok smart snmp statsd - swap syslog table tail tail_csv target_notification target_replace - target_scale target_set tcpconns teamspeak2 ted thermal threshold - tokyotyrant turbostat unixsock uptime users uuid varnish virt - vmem vserver wireless write_graphite write_http write_kafka - write_log write_prometheus write_redis write_sensu write_tsdb - xencpu zfs_arc zookeeper" - -COLLECTD_DISABLED_PLUGINS="${COLLECTD_IMPOSSIBLE_PLUGINS}" - -COLLECTD_ALL_PLUGINS=${COLLECTD_TESTED_PLUGINS} - -for plugin in ${COLLECTD_ALL_PLUGINS}; do - IUSE="${IUSE} collectd_plugins_${plugin}" -done -unset plugin - -# Now come the dependencies. - -COMMON_DEPEND=" - dev-libs/libgcrypt:= - dev-libs/libltdl:0= - perl? ( dev-lang/perl:=[ithreads] ) - udev? ( virtual/udev ) - xfs? ( sys-fs/xfsprogs ) - collectd_plugins_amqp? ( net-libs/rabbitmq-c ) - collectd_plugins_apache? ( net-misc/curl:0= ) - collectd_plugins_ascent? ( net-misc/curl:0= dev-libs/libxml2:2= ) - collectd_plugins_bind? ( net-misc/curl:0= dev-libs/libxml2:2= ) - collectd_plugins_ceph? ( dev-libs/yajl:= ) - collectd_plugins_curl? ( net-misc/curl:0= ) - collectd_plugins_curl_json? ( net-misc/curl:0= dev-libs/yajl:= ) - collectd_plugins_curl_xml? ( net-misc/curl:0= dev-libs/libxml2:2= ) - collectd_plugins_dbi? ( dev-db/libdbi ) - collectd_plugins_dns? ( net-libs/libpcap ) - collectd_plugins_gmond? ( sys-cluster/ganglia ) - collectd_plugins_gps? ( sci-geosciences/gpsd:= ) - collectd_plugins_ipmi? ( >=sys-libs/openipmi-2.0.16-r1 ) - collectd_plugins_iptables? ( >=net-firewall/iptables-1.4.13:0= ) - collectd_plugins_log_logstash? ( dev-libs/yajl:= ) - collectd_plugins_lua? ( dev-lang/lua:0= ) - collectd_plugins_lvm? ( sys-fs/lvm2 ) - collectd_plugins_memcachec? ( dev-libs/libmemcached ) - collectd_plugins_modbus? ( dev-libs/libmodbus ) - collectd_plugins_mqtt? ( app-misc/mosquitto ) - collectd_plugins_mysql? ( virtual/libmysqlclient:= ) - collectd_plugins_netlink? ( net-libs/libmnl ) - collectd_plugins_nginx? ( net-misc/curl:0= ) - collectd_plugins_notify_desktop? ( x11-libs/libnotify ) - collectd_plugins_notify_email? ( net-libs/libesmtp ) - collectd_plugins_nut? ( >=sys-power/nut-2.7.2-r2 ) - collectd_plugins_openldap? ( net-nds/openldap ) - collectd_plugins_onewire? ( >=sys-fs/owfs-3.1:= ) - collectd_plugins_oracle? ( dev-db/oracle-instantclient-basic ) - collectd_plugins_perl? ( dev-lang/perl:=[ithreads] ) - collectd_plugins_ping? ( net-libs/liboping ) - collectd_plugins_postgresql? ( dev-db/postgresql:= ) - collectd_plugins_python? ( ${PYTHON_DEPS} ) - collectd_plugins_redis? ( dev-libs/hiredis:= ) - collectd_plugins_routeros? ( net-libs/librouteros ) - collectd_plugins_rrdcached? ( net-analyzer/rrdtool:= ) - collectd_plugins_rrdtool? ( net-analyzer/rrdtool:= ) - collectd_plugins_sensors? ( sys-apps/lm_sensors ) - collectd_plugins_sigrok? ( =dev-libs/librdkafka-0.9.0.99:= dev-libs/yajl:= ) - collectd_plugins_write_prometheus? ( >=dev-libs/protobuf-c-1.2.1-r1:= net-libs/libmicrohttpd:= ) - collectd_plugins_write_redis? ( dev-libs/hiredis:= ) - collectd_plugins_xencpu? ( app-emulation/xen-tools:= ) - - kernel_FreeBSD? ( - collectd_plugins_disk? ( sys-libs/libstatgrab:= ) - collectd_plugins_interface? ( sys-libs/libstatgrab:= ) - collectd_plugins_load? ( sys-libs/libstatgrab:= ) - collectd_plugins_memory? ( sys-libs/libstatgrab:= ) - collectd_plugins_swap? ( sys-libs/libstatgrab:= ) - collectd_plugins_users? ( sys-libs/libstatgrab:= ) - )" - -# Enforcing !=sys-kernel/linux-headers-4.5 > due to #577846 -DEPEND="${COMMON_DEPEND} - collectd_plugins_iptables? ( || ( <=sys-kernel/linux-headers-4.4 >=sys-kernel/linux-headers-4.6 ) ) - collectd_plugins_java? ( >=virtual/jdk-1.6 ) - virtual/pkgconfig" - -RDEPEND="${COMMON_DEPEND} - collectd_plugins_java? ( >=virtual/jre-1.6 ) - collectd_plugins_syslog? ( virtual/logger ) - selinux? ( sec-policy/selinux-collectd ) - ! -# kernel_options is a list of kernel configurations options; the check tests whether at least -# one of them is enabled. If no, depending on the third argument an elog, ewarn, or eerror message -# is emitted. -collectd_plugin_kernel_linux() { - local multi_opt opt - if has ${1} ${COLLECTD_ALL_PLUGINS}; then - if use collectd_plugins_${1}; then - for opt in ${2}; do - if linux_chkconfig_present ${opt}; then - return 0; - fi - done - multi_opt=${2//\ /\ or\ } - case ${3} in - (info) - elog "The ${1} plugin can use kernel features that are disabled now; enable ${multi_opt} in your kernel" - ;; - (warn) - ewarn "The ${1} plugin uses kernel features that are disabled now; enable ${multi_opt} in your kernel" - ;; - (error) - eerror "The ${1} plugin needs kernel features that are disabled now; enable ${multi_opt} in your kernel" - ;; - (*) - die "function collectd_plugin_kernel_linux called with invalid third argument" - ;; - esac - fi - fi -} - -collectd_linux_kernel_checks() { - if ! linux_chkconfig_present PROC_FS; then - ewarn "/proc file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable PROC_FS in your kernel" - fi - - if ! linux_chkconfig_present SYSFS; then - ewarn "/sys file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable SYSFS in your kernel" - fi - - # battery.c: /proc/pmu/battery_%i - # battery.c: /proc/acpi/battery - collectd_plugin_kernel_linux battery ACPI_BATTERY warn - - # cgroups.c: /sys/fs/cgroup/ - collectd_plugin_kernel_linux cgroups CGROUPS warn - - # cpufreq.c: /sys/devices/system/cpu/cpu%d/cpufreq/ - collectd_plugin_kernel_linux cpufreq SYSFS warn - collectd_plugin_kernel_linux cpufreq CPU_FREQ_STAT warn - - # drbd.c: /proc/drbd - collectd_plugin_kernel_linux drbd BLK_DEV_DRBD warn - - # conntrack.c: /proc/sys/net/netfilter/* - collectd_plugin_kernel_linux conntrack NETFILTER warn - - # fscache.c: /proc/fs/fscache/stats - collectd_plugin_kernel_linux fscache FSCACHE warn - - # nfs.c: /proc/net/rpc/nfs - # nfs.c: /proc/net/rpc/nfsd - collectd_plugin_kernel_linux nfs NFS_COMMON warn - - # serial.c: /proc/tty/driver/serial - # serial.c: /proc/tty/driver/ttyS - collectd_plugin_kernel_linux serial SERIAL_CORE warn - - # swap.c: /proc/meminfo - collectd_plugin_kernel_linux swap SWAP warn - - # thermal.c: /proc/acpi/thermal_zone - # thermal.c: /sys/class/thermal - collectd_plugin_kernel_linux thermal ACPI_THERMAL warn - - # turbostat.c: /dev/cpu/%d/msr - collectd_plugin_kernel_linux turbostat X86_MSR warn - - # vmem.c: /proc/vmstat - collectd_plugin_kernel_linux vmem VM_EVENT_COUNTERS warn - - # vserver.c: /proc/virtual - collectd_plugin_kernel_linux vserver VSERVER warn - - # uuid.c: /sys/hypervisor/uuid - collectd_plugin_kernel_linux uuid SYSFS info - - # wireless.c: /proc/net/wireless - collectd_plugin_kernel_linux wireless "WIRELESS MAC80211 IEEE80211" warn - - # zfs_arc.c: /proc/spl/kstat/zfs/arcstats - collectd_plugin_kernel_linux zfs_arc "SPL ZFS" warn -} - -pkg_setup() { - if use kernel_linux; then - linux-info_pkg_setup - - if linux_config_exists; then - einfo "Checking your linux kernel configuration:" - collectd_linux_kernel_checks - else - elog "Cannot find a linux kernel configuration. Continuing anyway." - fi - fi - - if use collectd_plugins_java; then - java-pkg-opt-2_pkg_setup - fi - - use collectd_plugins_python && python-single-r1_pkg_setup - - enewgroup collectd - enewuser collectd -1 -1 /var/lib/collectd collectd -} - -src_prepare() { - default - - # There's some strange prefix handling in the default config file, resulting in - # paths like "/usr/var/..." - sed -i -e "s:@prefix@/var:/var:g" src/collectd.conf.in || die - - # fix installdirs for perl, bug 444360 - sed -i -e 's/INSTALL_BASE=$(DESTDIR)$(prefix) //' bindings/Makefile.am || die - - # Adjust upstream's systemd unit - # - Get rid of EnvironmentFile directive; These files don't exist on Gentoo! - # - Add User=collectd to run collectd as user "collectd" per default - sed -i \ - -e '/^EnvironmentFile=.*/d' \ - -e '/^\[Service\]/aUser=collectd' \ - contrib/systemd.${PN}.service || die - - if use collectd_plugins_java; then - # Set javac -source and -target flags according to (R)DEPEND. - sed -i -e "s/\$(JAVAC)/\0 $(java-pkg_javac-args)/g" bindings/java/Makefile.am || die - fi - - ebegin "Removing bundled libltdl" - rm -rf libltdl || die - eend 0 - - eautoreconf -} - -src_configure() { - # Now come the lists of os-dependent plugins. Any plugin that is not listed anywhere here - # should work independent of the operating system. - - local linux_plugins="barometer battery cpu cpufreq disk - drbd entropy ethstat hugepages interface iptables - ipvs irq ipc load memory md netlink nfs numa processes - serial swap tcpconns thermal turbostat users vmem wireless - zfc_arc" - - local need_libstatgrab=0 - local libstatgrab_plugins="cpu disk interface load memory swap users" - local bsd_plugins="cpu tcpconns ${libstatgrab_plugins} zfc_arc" - - local darwin_plugins="apple_sensors battery cpu disk interface memory processes tcpconns" - - local osdependent_plugins="${linux_plugins} ${bsd_plugins} ${darwin_plugins}" - local myos_plugins="" - if use kernel_linux; then - einfo "Enabling Linux plugins." - myos_plugins=${linux_plugins} - elif use kernel_FreeBSD; then - einfo "Enabling FreeBSD plugins." - myos_plugins=${bsd_plugins} - elif use kernel_Darwin; then - einfo "Enabling Darwin plugins." - myos_plugins=${darwin_plugins} - fi - - local myconf="--disable-werror" - - # Do we debug? - myconf+=" $(use_enable debug)" - - # udev support? - # Required for smart plugin via REQUIRED_USE; Optional for disk plugin - if use udev; then - myconf+=" --with-libudev" - else - myconf+=" --without-libudev" - fi - - local plugin - - # Disable what needs to be disabled. - for plugin in ${COLLECTD_DISABLED_PLUGINS}; do - myconf+=" --disable-${plugin}" - done - - # Set enable/disable for each single plugin. - for plugin in ${COLLECTD_ALL_PLUGINS}; do - if has ${plugin} ${osdependent_plugins}; then - # plugin is os-dependent ... - if has ${plugin} ${myos_plugins}; then - # ... and available in this os - myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})" - # ... must we link against libstatgrab? Bug #541518 - if use kernel_FreeBSD && has ${plugin} ${libstatgrab_plugins}; then - einfo "We must link against libstatgrab due to plugin \"${plugin}\" ..." - need_libstatgrab=1 - fi - else - # ... and NOT available in this os - if use collectd_plugins_${plugin}; then - ewarn "You try to enable the ${plugin} plugin, but it is not available for this" - ewarn "kernel. Disabling it automatically." - fi - myconf+=" --disable-${plugin}" - fi - elif [[ "${plugin}" = "collectd_plugins_perl" ]]; then - if use collectd_plugins_perl && ! use perl; then - ewarn "Perl plugin disabled as perl bindings disabled by -perl use flag" - myconf+= --disable-perl - else - myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})" - fi - else - myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})" - fi - done - - if [ "${need_libstatgrab}" -eq 1 ]; then - myconf+=" --with-libstatgrab" - else - myconf+=" --without-libstatgrab" - fi - - # JAVA_HOME is set by eclasses. - if use collectd_plugins_java; then - myconf+=" --with-java" - fi - - # Need libiptc ONLY for iptables. If we try to use it otherwise bug 340109 happens. - # lots of libs are only needed for plugins, if they are disabled, also disable the lib - use collectd_plugins_iptables || myconf+=" --with-libiptc=no" - use collectd_plugins_openldap || myconf+=" --with-libldap=no" - use collectd_plugins_redis || use collectd_plugins_write_redis || myconf+=" --with-libhiredis=no" - use collectd_plugins_smart || myconf+=" --with-libatasmart=no" - use collectd_plugins_gps || myconf+=" --with-libgps=no" - - if use perl; then - myconf+=" --with-perl-bindings=INSTALLDIRS=vendor" - else - myconf+=" --without-perl-bindings" - fi - - # No need for v5upgrade - myconf+=" --disable-target_v5upgrade" - - # Python - if use collectd_plugins_python; then - myconf+=" --with-libpython=yes" - export PYTHON_CONFIG=$(python_get_PYTHON_CONFIG) - else - myconf+=" --with-libpython=no" - fi - - # XFS support - myconf+=" $(use_enable xfs)" - - # Finally, run econf. - KERNEL_DIR="${KERNEL_DIR}" econf --config-cache \ - $(use_enable static-libs static) \ - --localstatedir=/var ${myconf} -} - -src_install() { - emake DESTDIR="${D%/}" install - - perl_delete_localpod - - find "${ED}"usr/ -name "*.la" -delete || die - - if use collectd_plugins_java; then - java-pkg_regjar "${ED}"usr/share/${PN}/java/*.jar - fi - - fowners root:collectd /etc/collectd.conf - fperms u=rw,g=r,o= /etc/collectd.conf - - dodoc AUTHORS ChangeLog README - - if use contrib ; then - insinto /usr/share/doc/${PF} - doins -r contrib - fi - - keepdir /var/lib/${PN} - fowners collectd:collectd /var/lib/${PN} - - newinitd "${FILESDIR}/${PN}.initd-r2" ${PN} - newconfd "${FILESDIR}/${PN}.confd-r2" ${PN} - systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service - - insinto /etc/logrotate.d - newins "${FILESDIR}/${PN}.logrotate" ${PN} - - newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf - - sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":#PIDFile "/run/collectd.pid":' "${ED}"etc/collectd.conf || die - sed -i -e 's:^# SocketFile "/var/run/collectd-unixsock":# SocketFile "/run/collectd/collectd.socket":' "${ED}"etc/collectd.conf || die - sed -i -e 's:^.*LoadPlugin perl$:# The new, correct way to load the perl plugin -- \n# \n# Globals true\n# :' "${ED}"etc/collectd.conf || die - sed -i -e 's:^.*LoadPlugin python$:# The new, correct way to load the python plugin -- \n# \n# Globals true\n# :' "${ED}"etc/collectd.conf || die -} - -pkg_postinst() { - tmpfiles_process "${PN}.conf" - - if use filecaps; then - local caps=() - use collectd_plugins_ceph && caps+=('CAP_DAC_OVERRIDE') - use collectd_plugins_exec && caps+=('CAP_SETUID' 'CAP_SETGID') - use collectd_plugins_iptables && caps+=('CAP_NET_ADMIN') - use collectd_plugins_filecount && caps+=('CAP_DAC_READ_SEARCH') - - if use collectd_plugins_dns || use collectd_plugins_ping; then - caps+=('CAP_NET_RAW') - fi - - if use collectd_plugins_turbostat || use collectd_plugins_smart; then - caps+=('CAP_SYS_RAWIO') - fi - - if [ ${#caps[@]} -gt 0 ]; then - local caps_str=$(IFS=","; echo "${caps[*]}") - fcaps ${caps_str} usr/sbin/collectd - elog "Capabilities for ${EROOT}usr/sbin/collectd set to:" - elog " ${caps_str}+EP" - elog - - local systemd_unit="$(systemd_get_systemunitdir)/collectd.service" - if [[ -e "${systemd_unit}" ]]; then - caps_str="${caps[*]}" - sed -i -e "s:^CapabilityBoundingSet=.*:CapabilityBoundingSet=${caps_str}:" "${systemd_unit}" || \ - die "Failed to set CapabilityBoundingSet in '${systemd_unit}'" - - elog "CapabilityBoundingSet in '${systemd_unit}'" - elog "updated to match capabilities set above." - elog - else - if has_version "sys-apps/systemd"; then - # Bug 596852 - ewarn "Failed to update CapabilityBoundingSet in '${systemd_unit}'" - ewarn "because unit was not found. Please file a bug about this." - fi - fi - fi - fi - - elog "Note: Collectd is only the collector." - elog " You need to install 'data' sources (applications) locally or" - elog " remotely on your own." - - elog - elog "Collectd is configured to run as unprivileged user by default." - elog "You may want to revisit the configuration." - elog - - if use collectd_plugins_email; then - ewarn "The email plug-in is deprecated. To submit statistics please use the unixsock plugin." - fi - - if use collectd_plugins_smart; then - elog "" - elog "If you are using smart plugin and don't run collectd as root make sure" - elog "that the collectd user is allowed to access the disk you want to monitor" - elog "(can be done via udev rule for example) and that collectd has the required" - elog "capabilities set (which is the default when package was emerged with" - elog "'filecaps' USE flag set)." - fi - - if use contrib; then - elog "The scripts in /usr/share/doc/${PF}/collection3 for generating graphs need dev-perl/HTML-Parser," - elog "dev-perl/config-general, dev-perl/regexp-common, and net-analyzer/rrdtool[perl] to be installed." - fi -} diff --git a/app-metrics/collectd/collectd-5.8.0-r1.ebuild b/app-metrics/collectd/collectd-5.8.0-r1.ebuild new file mode 100644 index 000000000000..0f37f6abcfc2 --- /dev/null +++ b/app-metrics/collectd/collectd-5.8.0-r1.ebuild @@ -0,0 +1,536 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6,3_7} ) +JAVA_PKG_OPT_USE="collectd_plugins_java" + +inherit autotools fcaps flag-o-matic java-pkg-opt-2 linux-info multilib perl-functions python-single-r1 systemd tmpfiles user + +DESCRIPTION="Collects system statistics and provides mechanisms to store the values" + +HOMEPAGE="https://collectd.org/" +SRC_URI="${HOMEPAGE%/}/files/${P}.tar.bz2" + +LICENSE="MIT GPL-2 GPL-2+ GPL-3 GPL-3+" +SLOT="0" +KEYWORDS="alpha amd64 arm x86" +IUSE="contrib debug java kernel_Darwin kernel_FreeBSD kernel_linux perl selinux static-libs udev xfs" + +# The plugin lists have to follow here since they extend IUSE + +# Plugins that don't build (e.g. dependencies not in Gentoo) +# apple_sensors: Requires libIOKit +# aquaero: Requires aerotools-ng/libaquaero5 +# barometer: Requires libi2c (i2c_smbus_read_i2c_block_data) +# dpdkevents: Requires dpdk +# dpdkstat: Requires dpdk +# grpc: Requires libgrpc +# intel_pmu: Requires libjevents (pmu-tools) +# intel_rdt: Requires libpqos from intel-cmt-cat project +# lpar: Requires libperfstat (AIX only) +# mic: Requires Intel Many Integrated Core Architecture API +# (part of Intel's Xeon Phi software) +# netapp: Requires libnetapp (http://communities.netapp.com/docs/DOC-1110) +# pf: Requires BSD packet filter +# pinba: Requires MySQL Pinba engine (http://pinba.org/) +# tape: Requires libkstat (Solaris only) +# write_riemann: Requires riemann-c-client +# xmms: Requires libxmms (v1) +# zone: Solaris only... +COLLECTD_IMPOSSIBLE_PLUGINS="apple_sensors aquaero barometer dpdkstat grpc + intel_pmu intel_rdt lpar mic netapp pf pinba tape write_riemann + xmms zone" + +# Plugins that have been (compile) tested and can be enabled via COLLECTD_PLUGINS +COLLECTD_TESTED_PLUGINS="aggregation amqp apache apcups ascent battery bind + ceph cgroups chrony conntrack contextswitch cpu cpufreq cpusleep + csv curl curl_json curl_xml dbi df disk dns drbd email + entropy ethstat exec fhcount filecount fscache gmond gps hddtemp + hugepages interface ipc ipmi iptables ipvs irq java lua + load logfile log_logstash lvm madwifi match_empty_counter + match_hashed match_regex match_timediff match_value mbmon mcelog md + memcachec memcached memory modbus mqtt multimeter mysql netlink + network network nfs nginx notify_desktop notify_email notify_nagios + ntpd numa nut olsrd onewire openldap openvpn oracle ovs_events + ovs_stats perl ping postgresql powerdns processes protocols python + python redis routeros rrdcached rrdtool sensors serial sigrok smart + snmp snmp_agent statsd swap syslog table tail tail_csv + target_notification target_replace target_scale target_set tcpconns + teamspeak2 ted thermal threshold tokyotyrant turbostat unixsock + uptime users uuid varnish virt vmem vserver wireless write_graphite + write_http write_kafka write_log write_mongodb write_prometheus + write_redis write_sensu write_tsdb xencpu zfs_arc zookeeper" + +COLLECTD_DISABLED_PLUGINS="${COLLECTD_IMPOSSIBLE_PLUGINS}" + +COLLECTD_ALL_PLUGINS=${COLLECTD_TESTED_PLUGINS} + +for plugin in ${COLLECTD_ALL_PLUGINS}; do + IUSE="${IUSE} collectd_plugins_${plugin}" +done +unset plugin + +# Now come the dependencies. + +COMMON_DEPEND=" + dev-libs/libgcrypt:= + dev-libs/libltdl:0= + perl? ( dev-lang/perl:=[ithreads] ) + udev? ( virtual/udev ) + xfs? ( sys-fs/xfsprogs ) + collectd_plugins_amqp? ( net-libs/rabbitmq-c ) + collectd_plugins_apache? ( net-misc/curl:0= ) + collectd_plugins_ascent? ( net-misc/curl:0= dev-libs/libxml2:2= ) + collectd_plugins_bind? ( net-misc/curl:0= dev-libs/libxml2:2= ) + collectd_plugins_ceph? ( dev-libs/yajl:= ) + collectd_plugins_curl? ( net-misc/curl:0= ) + collectd_plugins_curl_json? ( net-misc/curl:0= dev-libs/yajl:= ) + collectd_plugins_curl_xml? ( net-misc/curl:0= dev-libs/libxml2:2= ) + collectd_plugins_dbi? ( dev-db/libdbi ) + collectd_plugins_dns? ( net-libs/libpcap ) + collectd_plugins_gmond? ( sys-cluster/ganglia ) + collectd_plugins_gps? ( sci-geosciences/gpsd:= ) + collectd_plugins_ipmi? ( >=sys-libs/openipmi-2.0.16-r1 ) + collectd_plugins_iptables? ( >=net-firewall/iptables-1.4.13:0= ) + collectd_plugins_log_logstash? ( dev-libs/yajl:= ) + collectd_plugins_lua? ( dev-lang/lua:0= ) + collectd_plugins_lvm? ( sys-fs/lvm2 ) + collectd_plugins_memcachec? ( dev-libs/libmemcached ) + collectd_plugins_modbus? ( dev-libs/libmodbus ) + collectd_plugins_mqtt? ( app-misc/mosquitto ) + collectd_plugins_mysql? ( virtual/libmysqlclient:= ) + collectd_plugins_netlink? ( net-libs/libmnl ) + collectd_plugins_nginx? ( net-misc/curl:0= ) + collectd_plugins_notify_desktop? ( x11-libs/libnotify ) + collectd_plugins_notify_email? ( net-libs/libesmtp ) + collectd_plugins_nut? ( >=sys-power/nut-2.7.2-r2 ) + collectd_plugins_openldap? ( net-nds/openldap ) + collectd_plugins_onewire? ( >=sys-fs/owfs-3.1:= ) + collectd_plugins_oracle? ( dev-db/oracle-instantclient-basic ) + collectd_plugins_ovs_events? ( dev-libs/yajl:= ) + collectd_plugins_ovs_stats? ( dev-libs/yajl:= ) + collectd_plugins_perl? ( dev-lang/perl:=[ithreads] ) + collectd_plugins_ping? ( net-libs/liboping ) + collectd_plugins_postgresql? ( dev-db/postgresql:= ) + collectd_plugins_python? ( ${PYTHON_DEPS} ) + collectd_plugins_redis? ( dev-libs/hiredis:= ) + collectd_plugins_routeros? ( net-libs/librouteros ) + collectd_plugins_rrdcached? ( net-analyzer/rrdtool:= ) + collectd_plugins_rrdtool? ( net-analyzer/rrdtool:= ) + collectd_plugins_sensors? ( sys-apps/lm_sensors ) + collectd_plugins_sigrok? ( =dev-libs/librdkafka-0.9.0.99:= dev-libs/yajl:= ) + collectd_plugins_write_mongodb? ( >=dev-libs/mongo-c-driver-1.8.2:= ) + collectd_plugins_write_prometheus? ( >=dev-libs/protobuf-c-1.2.1-r1:= net-libs/libmicrohttpd:= ) + collectd_plugins_write_redis? ( dev-libs/hiredis:= ) + collectd_plugins_xencpu? ( app-emulation/xen-tools:= ) + + kernel_FreeBSD? ( + collectd_plugins_disk? ( sys-libs/libstatgrab:= ) + collectd_plugins_interface? ( sys-libs/libstatgrab:= ) + collectd_plugins_load? ( sys-libs/libstatgrab:= ) + collectd_plugins_memory? ( sys-libs/libstatgrab:= ) + collectd_plugins_swap? ( sys-libs/libstatgrab:= ) + collectd_plugins_users? ( sys-libs/libstatgrab:= ) + )" + +# Enforcing !=sys-kernel/linux-headers-4.5 > due to #577846 +DEPEND="${COMMON_DEPEND} + collectd_plugins_iptables? ( || ( <=sys-kernel/linux-headers-4.4 >=sys-kernel/linux-headers-4.6 ) ) + collectd_plugins_java? ( >=virtual/jdk-1.6 ) + virtual/pkgconfig" + +RDEPEND="${COMMON_DEPEND} + collectd_plugins_java? ( >=virtual/jre-1.6 ) + collectd_plugins_syslog? ( virtual/logger ) + selinux? ( sec-policy/selinux-collectd ) + ! +# kernel_options is a list of kernel configurations options; the check tests whether at least +# one of them is enabled. If no, depending on the third argument an elog, ewarn, or eerror message +# is emitted. +collectd_plugin_kernel_linux() { + local multi_opt opt + if has ${1} ${COLLECTD_ALL_PLUGINS}; then + if use collectd_plugins_${1}; then + for opt in ${2}; do + if linux_chkconfig_present ${opt}; then + return 0; + fi + done + multi_opt=${2//\ /\ or\ } + case ${3} in + (info) + elog "The ${1} plugin can use kernel features that are disabled now; enable ${multi_opt} in your kernel" + ;; + (warn) + ewarn "The ${1} plugin uses kernel features that are disabled now; enable ${multi_opt} in your kernel" + ;; + (error) + eerror "The ${1} plugin needs kernel features that are disabled now; enable ${multi_opt} in your kernel" + ;; + (*) + die "function collectd_plugin_kernel_linux called with invalid third argument" + ;; + esac + fi + fi +} + +collectd_linux_kernel_checks() { + if ! linux_chkconfig_present PROC_FS; then + ewarn "/proc file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable PROC_FS in your kernel" + fi + + if ! linux_chkconfig_present SYSFS; then + ewarn "/sys file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable SYSFS in your kernel" + fi + + # battery.c: /proc/pmu/battery_%i + # battery.c: /proc/acpi/battery + collectd_plugin_kernel_linux battery ACPI_BATTERY warn + + # cgroups.c: /sys/fs/cgroup/ + collectd_plugin_kernel_linux cgroups CGROUPS warn + + # cpufreq.c: /sys/devices/system/cpu/cpu%d/cpufreq/ + collectd_plugin_kernel_linux cpufreq SYSFS warn + collectd_plugin_kernel_linux cpufreq CPU_FREQ_STAT warn + + # drbd.c: /proc/drbd + collectd_plugin_kernel_linux drbd BLK_DEV_DRBD warn + + # conntrack.c: /proc/sys/net/netfilter/* + collectd_plugin_kernel_linux conntrack NETFILTER warn + + # fscache.c: /proc/fs/fscache/stats + collectd_plugin_kernel_linux fscache FSCACHE warn + + # nfs.c: /proc/net/rpc/nfs + # nfs.c: /proc/net/rpc/nfsd + collectd_plugin_kernel_linux nfs NFS_COMMON warn + + # serial.c: /proc/tty/driver/serial + # serial.c: /proc/tty/driver/ttyS + collectd_plugin_kernel_linux serial SERIAL_CORE warn + + # swap.c: /proc/meminfo + collectd_plugin_kernel_linux swap SWAP warn + + # thermal.c: /proc/acpi/thermal_zone + # thermal.c: /sys/class/thermal + collectd_plugin_kernel_linux thermal ACPI_THERMAL warn + + # turbostat.c: /dev/cpu/%d/msr + collectd_plugin_kernel_linux turbostat X86_MSR warn + + # vmem.c: /proc/vmstat + collectd_plugin_kernel_linux vmem VM_EVENT_COUNTERS warn + + # vserver.c: /proc/virtual + collectd_plugin_kernel_linux vserver VSERVER warn + + # uuid.c: /sys/hypervisor/uuid + collectd_plugin_kernel_linux uuid SYSFS info + + # wireless.c: /proc/net/wireless + collectd_plugin_kernel_linux wireless "WIRELESS MAC80211 IEEE80211" warn + + # zfs_arc.c: /proc/spl/kstat/zfs/arcstats + collectd_plugin_kernel_linux zfs_arc "SPL ZFS" warn +} + +pkg_setup() { + if use kernel_linux; then + linux-info_pkg_setup + + if linux_config_exists; then + einfo "Checking your linux kernel configuration:" + collectd_linux_kernel_checks + else + elog "Cannot find a linux kernel configuration. Continuing anyway." + fi + fi + + if use collectd_plugins_java; then + java-pkg-opt-2_pkg_setup + fi + + use collectd_plugins_python && python-single-r1_pkg_setup + + enewgroup collectd + enewuser collectd -1 -1 /var/lib/collectd collectd +} + +src_prepare() { + default + + # There's some strange prefix handling in the default config file, resulting in + # paths like "/usr/var/..." + sed -i -e "s:@prefix@/var:/var:g" src/collectd.conf.in || die + + # Adjust upstream's systemd unit + # - Get rid of EnvironmentFile directive; These files don't exist on Gentoo! + # - Add User=collectd to run collectd as user "collectd" per default + sed -i \ + -e '/^EnvironmentFile=.*/d' \ + -e '/^\[Service\]/aUser=collectd' \ + contrib/systemd.${PN}.service || die + + eautoreconf +} + +src_configure() { + # Now come the lists of os-dependent plugins. Any plugin that is not listed anywhere here + # should work independent of the operating system. + + local linux_plugins="barometer battery cpu cpufreq disk + drbd entropy ethstat hugepages interface iptables + ipvs irq ipc load memory md netlink nfs numa processes + serial swap tcpconns thermal turbostat users vmem wireless + zfc_arc" + + local need_libstatgrab=0 + local libstatgrab_plugins="cpu disk interface load memory swap users" + local bsd_plugins="cpu tcpconns ${libstatgrab_plugins} zfc_arc" + + local darwin_plugins="apple_sensors battery cpu disk interface memory processes tcpconns" + + local osdependent_plugins="${linux_plugins} ${bsd_plugins} ${darwin_plugins}" + local myos_plugins="" + if use kernel_linux; then + einfo "Enabling Linux plugins." + myos_plugins=${linux_plugins} + elif use kernel_FreeBSD; then + einfo "Enabling FreeBSD plugins." + myos_plugins=${bsd_plugins} + elif use kernel_Darwin; then + einfo "Enabling Darwin plugins." + myos_plugins=${darwin_plugins} + fi + + local myconf="--disable-werror" + + # Do we debug? + myconf+=" $(use_enable debug)" + + # udev support? + # Required for smart plugin via REQUIRED_USE; Optional for disk plugin + if use udev; then + myconf+=" --with-libudev" + else + myconf+=" --without-libudev" + fi + + local plugin + + # Disable what needs to be disabled. + for plugin in ${COLLECTD_DISABLED_PLUGINS}; do + myconf+=" --disable-${plugin}" + done + + # Set enable/disable for each single plugin. + for plugin in ${COLLECTD_ALL_PLUGINS}; do + if has ${plugin} ${osdependent_plugins}; then + # plugin is os-dependent ... + if has ${plugin} ${myos_plugins}; then + # ... and available in this os + myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})" + # ... must we link against libstatgrab? Bug #541518 + if use kernel_FreeBSD && has ${plugin} ${libstatgrab_plugins}; then + einfo "We must link against libstatgrab due to plugin \"${plugin}\" ..." + need_libstatgrab=1 + fi + else + # ... and NOT available in this os + if use collectd_plugins_${plugin}; then + ewarn "You try to enable the ${plugin} plugin, but it is not available for this" + ewarn "kernel. Disabling it automatically." + fi + myconf+=" --disable-${plugin}" + fi + elif [[ "${plugin}" = "collectd_plugins_perl" ]]; then + if use collectd_plugins_perl && ! use perl; then + ewarn "Perl plugin disabled as perl bindings disabled by -perl use flag" + myconf+= --disable-perl + else + myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})" + fi + else + myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})" + fi + done + + if [ "${need_libstatgrab}" -eq 1 ]; then + myconf+=" --with-libstatgrab" + else + myconf+=" --without-libstatgrab" + fi + + # JAVA_HOME is set by eclasses. + if use collectd_plugins_java; then + myconf+=" --with-java" + fi + + # Need libiptc ONLY for iptables. If we try to use it otherwise bug 340109 happens. + # lots of libs are only needed for plugins, if they are disabled, also disable the lib + use collectd_plugins_iptables || myconf+=" --with-libiptc=no" + use collectd_plugins_openldap || myconf+=" --with-libldap=no" + use collectd_plugins_redis || use collectd_plugins_write_redis || myconf+=" --with-libhiredis=no" + use collectd_plugins_smart || myconf+=" --with-libatasmart=no" + use collectd_plugins_gps || myconf+=" --with-libgps=no" + + if use perl; then + myconf+=" --with-perl-bindings=INSTALLDIRS=vendor" + else + myconf+=" --without-perl-bindings" + fi + + # No need for v5upgrade + myconf+=" --disable-target_v5upgrade" + + # Python + if use collectd_plugins_python; then + myconf+=" --with-libpython=yes" + export PYTHON_CONFIG=$(python_get_PYTHON_CONFIG) + else + myconf+=" --with-libpython=no" + fi + + # XFS support + myconf+=" $(use_enable xfs)" + + # Finally, run econf. + KERNEL_DIR="${KERNEL_DIR}" econf --config-cache \ + $(use_enable static-libs static) \ + --localstatedir=/var ${myconf} +} + +src_install() { + emake DESTDIR="${D%/}" install + + perl_delete_localpod + + find "${ED}"usr/ -name "*.la" -delete || die + + if use collectd_plugins_java; then + java-pkg_regjar "${ED}"usr/share/${PN}/java/*.jar + fi + + fowners root:collectd /etc/collectd.conf + fperms u=rw,g=r,o= /etc/collectd.conf + + dodoc AUTHORS ChangeLog README + + if use contrib ; then + insinto /usr/share/doc/${PF} + doins -r contrib + fi + + keepdir /var/lib/${PN} + fowners collectd:collectd /var/lib/${PN} + + newinitd "${FILESDIR}/${PN}.initd-r2" ${PN} + newconfd "${FILESDIR}/${PN}.confd-r2" ${PN} + systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service + + insinto /etc/logrotate.d + newins "${FILESDIR}/${PN}.logrotate" ${PN} + + newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf + + sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":#PIDFile "/run/collectd.pid":' "${ED}"etc/collectd.conf || die + sed -i -e 's:^# SocketFile "/var/run/collectd-unixsock":# SocketFile "/run/collectd/collectd.socket":' "${ED}"etc/collectd.conf || die + sed -i -e 's:^.*LoadPlugin perl$:# The new, correct way to load the perl plugin -- \n# \n# Globals true\n# :' "${ED}"etc/collectd.conf || die + sed -i -e 's:^.*LoadPlugin python$:# The new, correct way to load the python plugin -- \n# \n# Globals true\n# :' "${ED}"etc/collectd.conf || die +} + +pkg_postinst() { + tmpfiles_process "${PN}.conf" + + if use filecaps; then + local caps=() + use collectd_plugins_ceph && caps+=('CAP_DAC_OVERRIDE') + use collectd_plugins_exec && caps+=('CAP_SETUID' 'CAP_SETGID') + use collectd_plugins_iptables && caps+=('CAP_NET_ADMIN') + use collectd_plugins_filecount && caps+=('CAP_DAC_READ_SEARCH') + + if use collectd_plugins_dns || use collectd_plugins_ping; then + caps+=('CAP_NET_RAW') + fi + + if use collectd_plugins_turbostat || use collectd_plugins_smart; then + caps+=('CAP_SYS_RAWIO') + fi + + if [ ${#caps[@]} -gt 0 ]; then + local caps_str=$(IFS=","; echo "${caps[*]}") + fcaps ${caps_str} usr/sbin/collectd + elog "Capabilities for ${EROOT}usr/sbin/collectd set to:" + elog " ${caps_str}+EP" + elog + + local systemd_unit="$(systemd_get_systemunitdir)/collectd.service" + if [[ -e "${systemd_unit}" ]]; then + caps_str="${caps[*]}" + sed -i -e "s:^CapabilityBoundingSet=.*:CapabilityBoundingSet=${caps_str}:" "${systemd_unit}" || \ + die "Failed to set CapabilityBoundingSet in '${systemd_unit}'" + + elog "CapabilityBoundingSet in '${systemd_unit}'" + elog "updated to match capabilities set above." + elog + else + if has_version "sys-apps/systemd"; then + # Bug 596852 + ewarn "Failed to update CapabilityBoundingSet in '${systemd_unit}'" + ewarn "because unit was not found. Please file a bug about this." + fi + fi + fi + fi + + elog "Note: Collectd is only the collector." + elog " You need to install 'data' sources (applications) locally or" + elog " remotely on your own." + + elog + elog "Collectd is configured to run as unprivileged user by default." + elog "You may want to revisit the configuration." + elog + + if use collectd_plugins_email; then + ewarn "The email plug-in is deprecated. To submit statistics please use the unixsock plugin." + fi + + if use collectd_plugins_smart; then + elog "" + elog "If you are using smart plugin and don't run collectd as root make sure" + elog "that the collectd user is allowed to access the disk you want to monitor" + elog "(can be done via udev rule for example) and that collectd has the required" + elog "capabilities set (which is the default when package was emerged with" + elog "'filecaps' USE flag set)." + fi + + if use contrib; then + elog "The scripts in /usr/share/doc/${PF}/collection3 for generating graphs need dev-perl/HTML-Parser," + elog "dev-perl/config-general, dev-perl/regexp-common, and net-analyzer/rrdtool[perl] to be installed." + fi +} diff --git a/app-metrics/collectd/collectd-5.8.0.ebuild b/app-metrics/collectd/collectd-5.8.0.ebuild deleted file mode 100644 index 4b1009c1eba6..000000000000 --- a/app-metrics/collectd/collectd-5.8.0.ebuild +++ /dev/null @@ -1,534 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) -JAVA_PKG_OPT_USE="collectd_plugins_java" - -inherit autotools fcaps flag-o-matic java-pkg-opt-2 linux-info multilib perl-functions python-single-r1 systemd tmpfiles user - -DESCRIPTION="Collects system statistics and provides mechanisms to store the values" - -HOMEPAGE="https://collectd.org/" -SRC_URI="${HOMEPAGE%/}/files/${P}.tar.bz2" - -LICENSE="MIT GPL-2 GPL-2+ GPL-3 GPL-3+" -SLOT="0" -KEYWORDS="~alpha amd64 arm x86" -IUSE="contrib debug java kernel_Darwin kernel_FreeBSD kernel_linux perl selinux static-libs udev xfs" - -# The plugin lists have to follow here since they extend IUSE - -# Plugins that don't build (e.g. dependencies not in Gentoo) -# apple_sensors: Requires libIOKit -# aquaero: Requires aerotools-ng/libaquaero5 -# barometer: Requires libi2c (i2c_smbus_read_i2c_block_data) -# dpdkevents: Requires dpdk -# dpdkstat: Requires dpdk -# grpc: Requires libgrpc -# intel_pmu: Requires libjevents (pmu-tools) -# intel_rdt: Requires libpqos from intel-cmt-cat project -# lpar: Requires libperfstat (AIX only) -# mic: Requires Intel Many Integrated Core Architecture API -# (part of Intel's Xeon Phi software) -# netapp: Requires libnetapp (http://communities.netapp.com/docs/DOC-1110) -# pf: Requires BSD packet filter -# pinba: Requires MySQL Pinba engine (http://pinba.org/) -# tape: Requires libkstat (Solaris only) -# write_riemann: Requires riemann-c-client -# xmms: Requires libxmms (v1) -# zone: Solaris only... -COLLECTD_IMPOSSIBLE_PLUGINS="apple_sensors aquaero barometer dpdkstat grpc - intel_pmu intel_rdt lpar mic netapp pf pinba tape write_riemann - xmms zone" - -# Plugins that have been (compile) tested and can be enabled via COLLECTD_PLUGINS -COLLECTD_TESTED_PLUGINS="aggregation amqp apache apcups ascent battery bind - ceph cgroups chrony conntrack contextswitch cpu cpufreq cpusleep - csv curl curl_json curl_xml dbi df disk dns drbd email - entropy ethstat exec fhcount filecount fscache gmond gps hddtemp - hugepages interface ipc ipmi iptables ipvs irq java lua - load logfile log_logstash lvm madwifi match_empty_counter - match_hashed match_regex match_timediff match_value mbmon mcelog md - memcachec memcached memory modbus mqtt multimeter mysql netlink - network network nfs nginx notify_desktop notify_email notify_nagios - ntpd numa nut olsrd onewire openldap openvpn oracle ovs_events - ovs_stats perl ping postgresql powerdns processes protocols python - python redis routeros rrdcached rrdtool sensors serial sigrok smart - snmp snmp_agent statsd swap syslog table tail tail_csv - target_notification target_replace target_scale target_set tcpconns - teamspeak2 ted thermal threshold tokyotyrant turbostat unixsock - uptime users uuid varnish virt vmem vserver wireless write_graphite - write_http write_kafka write_log write_mongodb write_prometheus - write_redis write_sensu write_tsdb xencpu zfs_arc zookeeper" - -COLLECTD_DISABLED_PLUGINS="${COLLECTD_IMPOSSIBLE_PLUGINS}" - -COLLECTD_ALL_PLUGINS=${COLLECTD_TESTED_PLUGINS} - -for plugin in ${COLLECTD_ALL_PLUGINS}; do - IUSE="${IUSE} collectd_plugins_${plugin}" -done -unset plugin - -# Now come the dependencies. - -COMMON_DEPEND=" - dev-libs/libgcrypt:= - dev-libs/libltdl:0= - perl? ( dev-lang/perl:=[ithreads] ) - udev? ( virtual/udev ) - xfs? ( sys-fs/xfsprogs ) - collectd_plugins_amqp? ( net-libs/rabbitmq-c ) - collectd_plugins_apache? ( net-misc/curl:0= ) - collectd_plugins_ascent? ( net-misc/curl:0= dev-libs/libxml2:2= ) - collectd_plugins_bind? ( net-misc/curl:0= dev-libs/libxml2:2= ) - collectd_plugins_ceph? ( dev-libs/yajl:= ) - collectd_plugins_curl? ( net-misc/curl:0= ) - collectd_plugins_curl_json? ( net-misc/curl:0= dev-libs/yajl:= ) - collectd_plugins_curl_xml? ( net-misc/curl:0= dev-libs/libxml2:2= ) - collectd_plugins_dbi? ( dev-db/libdbi ) - collectd_plugins_dns? ( net-libs/libpcap ) - collectd_plugins_gmond? ( sys-cluster/ganglia ) - collectd_plugins_gps? ( sci-geosciences/gpsd:= ) - collectd_plugins_ipmi? ( >=sys-libs/openipmi-2.0.16-r1 ) - collectd_plugins_iptables? ( >=net-firewall/iptables-1.4.13:0= ) - collectd_plugins_log_logstash? ( dev-libs/yajl:= ) - collectd_plugins_lua? ( dev-lang/lua:0= ) - collectd_plugins_lvm? ( sys-fs/lvm2 ) - collectd_plugins_memcachec? ( dev-libs/libmemcached ) - collectd_plugins_modbus? ( dev-libs/libmodbus ) - collectd_plugins_mqtt? ( app-misc/mosquitto ) - collectd_plugins_mysql? ( virtual/libmysqlclient:= ) - collectd_plugins_netlink? ( net-libs/libmnl ) - collectd_plugins_nginx? ( net-misc/curl:0= ) - collectd_plugins_notify_desktop? ( x11-libs/libnotify ) - collectd_plugins_notify_email? ( net-libs/libesmtp ) - collectd_plugins_nut? ( >=sys-power/nut-2.7.2-r2 ) - collectd_plugins_openldap? ( net-nds/openldap ) - collectd_plugins_onewire? ( >=sys-fs/owfs-3.1:= ) - collectd_plugins_oracle? ( dev-db/oracle-instantclient-basic ) - collectd_plugins_ovs_events? ( dev-libs/yajl:= ) - collectd_plugins_ovs_stats? ( dev-libs/yajl:= ) - collectd_plugins_perl? ( dev-lang/perl:=[ithreads] ) - collectd_plugins_ping? ( net-libs/liboping ) - collectd_plugins_postgresql? ( dev-db/postgresql:= ) - collectd_plugins_python? ( ${PYTHON_DEPS} ) - collectd_plugins_redis? ( dev-libs/hiredis:= ) - collectd_plugins_routeros? ( net-libs/librouteros ) - collectd_plugins_rrdcached? ( net-analyzer/rrdtool:= ) - collectd_plugins_rrdtool? ( net-analyzer/rrdtool:= ) - collectd_plugins_sensors? ( sys-apps/lm_sensors ) - collectd_plugins_sigrok? ( =dev-libs/librdkafka-0.9.0.99:= dev-libs/yajl:= ) - collectd_plugins_write_mongodb? ( >=dev-libs/mongo-c-driver-1.8.2:= ) - collectd_plugins_write_prometheus? ( >=dev-libs/protobuf-c-1.2.1-r1:= net-libs/libmicrohttpd:= ) - collectd_plugins_write_redis? ( dev-libs/hiredis:= ) - collectd_plugins_xencpu? ( app-emulation/xen-tools:= ) - - kernel_FreeBSD? ( - collectd_plugins_disk? ( sys-libs/libstatgrab:= ) - collectd_plugins_interface? ( sys-libs/libstatgrab:= ) - collectd_plugins_load? ( sys-libs/libstatgrab:= ) - collectd_plugins_memory? ( sys-libs/libstatgrab:= ) - collectd_plugins_swap? ( sys-libs/libstatgrab:= ) - collectd_plugins_users? ( sys-libs/libstatgrab:= ) - )" - -# Enforcing !=sys-kernel/linux-headers-4.5 > due to #577846 -DEPEND="${COMMON_DEPEND} - collectd_plugins_iptables? ( || ( <=sys-kernel/linux-headers-4.4 >=sys-kernel/linux-headers-4.6 ) ) - collectd_plugins_java? ( >=virtual/jdk-1.6 ) - virtual/pkgconfig" - -RDEPEND="${COMMON_DEPEND} - collectd_plugins_java? ( >=virtual/jre-1.6 ) - collectd_plugins_syslog? ( virtual/logger ) - selinux? ( sec-policy/selinux-collectd ) - ! -# kernel_options is a list of kernel configurations options; the check tests whether at least -# one of them is enabled. If no, depending on the third argument an elog, ewarn, or eerror message -# is emitted. -collectd_plugin_kernel_linux() { - local multi_opt opt - if has ${1} ${COLLECTD_ALL_PLUGINS}; then - if use collectd_plugins_${1}; then - for opt in ${2}; do - if linux_chkconfig_present ${opt}; then - return 0; - fi - done - multi_opt=${2//\ /\ or\ } - case ${3} in - (info) - elog "The ${1} plugin can use kernel features that are disabled now; enable ${multi_opt} in your kernel" - ;; - (warn) - ewarn "The ${1} plugin uses kernel features that are disabled now; enable ${multi_opt} in your kernel" - ;; - (error) - eerror "The ${1} plugin needs kernel features that are disabled now; enable ${multi_opt} in your kernel" - ;; - (*) - die "function collectd_plugin_kernel_linux called with invalid third argument" - ;; - esac - fi - fi -} - -collectd_linux_kernel_checks() { - if ! linux_chkconfig_present PROC_FS; then - ewarn "/proc file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable PROC_FS in your kernel" - fi - - if ! linux_chkconfig_present SYSFS; then - ewarn "/sys file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable SYSFS in your kernel" - fi - - # battery.c: /proc/pmu/battery_%i - # battery.c: /proc/acpi/battery - collectd_plugin_kernel_linux battery ACPI_BATTERY warn - - # cgroups.c: /sys/fs/cgroup/ - collectd_plugin_kernel_linux cgroups CGROUPS warn - - # cpufreq.c: /sys/devices/system/cpu/cpu%d/cpufreq/ - collectd_plugin_kernel_linux cpufreq SYSFS warn - collectd_plugin_kernel_linux cpufreq CPU_FREQ_STAT warn - - # drbd.c: /proc/drbd - collectd_plugin_kernel_linux drbd BLK_DEV_DRBD warn - - # conntrack.c: /proc/sys/net/netfilter/* - collectd_plugin_kernel_linux conntrack NETFILTER warn - - # fscache.c: /proc/fs/fscache/stats - collectd_plugin_kernel_linux fscache FSCACHE warn - - # nfs.c: /proc/net/rpc/nfs - # nfs.c: /proc/net/rpc/nfsd - collectd_plugin_kernel_linux nfs NFS_COMMON warn - - # serial.c: /proc/tty/driver/serial - # serial.c: /proc/tty/driver/ttyS - collectd_plugin_kernel_linux serial SERIAL_CORE warn - - # swap.c: /proc/meminfo - collectd_plugin_kernel_linux swap SWAP warn - - # thermal.c: /proc/acpi/thermal_zone - # thermal.c: /sys/class/thermal - collectd_plugin_kernel_linux thermal ACPI_THERMAL warn - - # turbostat.c: /dev/cpu/%d/msr - collectd_plugin_kernel_linux turbostat X86_MSR warn - - # vmem.c: /proc/vmstat - collectd_plugin_kernel_linux vmem VM_EVENT_COUNTERS warn - - # vserver.c: /proc/virtual - collectd_plugin_kernel_linux vserver VSERVER warn - - # uuid.c: /sys/hypervisor/uuid - collectd_plugin_kernel_linux uuid SYSFS info - - # wireless.c: /proc/net/wireless - collectd_plugin_kernel_linux wireless "WIRELESS MAC80211 IEEE80211" warn - - # zfs_arc.c: /proc/spl/kstat/zfs/arcstats - collectd_plugin_kernel_linux zfs_arc "SPL ZFS" warn -} - -pkg_setup() { - if use kernel_linux; then - linux-info_pkg_setup - - if linux_config_exists; then - einfo "Checking your linux kernel configuration:" - collectd_linux_kernel_checks - else - elog "Cannot find a linux kernel configuration. Continuing anyway." - fi - fi - - if use collectd_plugins_java; then - java-pkg-opt-2_pkg_setup - fi - - use collectd_plugins_python && python-single-r1_pkg_setup - - enewgroup collectd - enewuser collectd -1 -1 /var/lib/collectd collectd -} - -src_prepare() { - default - - # There's some strange prefix handling in the default config file, resulting in - # paths like "/usr/var/..." - sed -i -e "s:@prefix@/var:/var:g" src/collectd.conf.in || die - - # Adjust upstream's systemd unit - # - Get rid of EnvironmentFile directive; These files don't exist on Gentoo! - # - Add User=collectd to run collectd as user "collectd" per default - sed -i \ - -e '/^EnvironmentFile=.*/d' \ - -e '/^\[Service\]/aUser=collectd' \ - contrib/systemd.${PN}.service || die - - eautoreconf -} - -src_configure() { - # Now come the lists of os-dependent plugins. Any plugin that is not listed anywhere here - # should work independent of the operating system. - - local linux_plugins="barometer battery cpu cpufreq disk - drbd entropy ethstat hugepages interface iptables - ipvs irq ipc load memory md netlink nfs numa processes - serial swap tcpconns thermal turbostat users vmem wireless - zfc_arc" - - local need_libstatgrab=0 - local libstatgrab_plugins="cpu disk interface load memory swap users" - local bsd_plugins="cpu tcpconns ${libstatgrab_plugins} zfc_arc" - - local darwin_plugins="apple_sensors battery cpu disk interface memory processes tcpconns" - - local osdependent_plugins="${linux_plugins} ${bsd_plugins} ${darwin_plugins}" - local myos_plugins="" - if use kernel_linux; then - einfo "Enabling Linux plugins." - myos_plugins=${linux_plugins} - elif use kernel_FreeBSD; then - einfo "Enabling FreeBSD plugins." - myos_plugins=${bsd_plugins} - elif use kernel_Darwin; then - einfo "Enabling Darwin plugins." - myos_plugins=${darwin_plugins} - fi - - local myconf="--disable-werror" - - # Do we debug? - myconf+=" $(use_enable debug)" - - # udev support? - # Required for smart plugin via REQUIRED_USE; Optional for disk plugin - if use udev; then - myconf+=" --with-libudev" - else - myconf+=" --without-libudev" - fi - - local plugin - - # Disable what needs to be disabled. - for plugin in ${COLLECTD_DISABLED_PLUGINS}; do - myconf+=" --disable-${plugin}" - done - - # Set enable/disable for each single plugin. - for plugin in ${COLLECTD_ALL_PLUGINS}; do - if has ${plugin} ${osdependent_plugins}; then - # plugin is os-dependent ... - if has ${plugin} ${myos_plugins}; then - # ... and available in this os - myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})" - # ... must we link against libstatgrab? Bug #541518 - if use kernel_FreeBSD && has ${plugin} ${libstatgrab_plugins}; then - einfo "We must link against libstatgrab due to plugin \"${plugin}\" ..." - need_libstatgrab=1 - fi - else - # ... and NOT available in this os - if use collectd_plugins_${plugin}; then - ewarn "You try to enable the ${plugin} plugin, but it is not available for this" - ewarn "kernel. Disabling it automatically." - fi - myconf+=" --disable-${plugin}" - fi - elif [[ "${plugin}" = "collectd_plugins_perl" ]]; then - if use collectd_plugins_perl && ! use perl; then - ewarn "Perl plugin disabled as perl bindings disabled by -perl use flag" - myconf+= --disable-perl - else - myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})" - fi - else - myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})" - fi - done - - if [ "${need_libstatgrab}" -eq 1 ]; then - myconf+=" --with-libstatgrab" - else - myconf+=" --without-libstatgrab" - fi - - # JAVA_HOME is set by eclasses. - if use collectd_plugins_java; then - myconf+=" --with-java" - fi - - # Need libiptc ONLY for iptables. If we try to use it otherwise bug 340109 happens. - # lots of libs are only needed for plugins, if they are disabled, also disable the lib - use collectd_plugins_iptables || myconf+=" --with-libiptc=no" - use collectd_plugins_openldap || myconf+=" --with-libldap=no" - use collectd_plugins_redis || use collectd_plugins_write_redis || myconf+=" --with-libhiredis=no" - use collectd_plugins_smart || myconf+=" --with-libatasmart=no" - use collectd_plugins_gps || myconf+=" --with-libgps=no" - - if use perl; then - myconf+=" --with-perl-bindings=INSTALLDIRS=vendor" - else - myconf+=" --without-perl-bindings" - fi - - # No need for v5upgrade - myconf+=" --disable-target_v5upgrade" - - # Python - if use collectd_plugins_python; then - myconf+=" --with-libpython=yes" - export PYTHON_CONFIG=$(python_get_PYTHON_CONFIG) - else - myconf+=" --with-libpython=no" - fi - - # XFS support - myconf+=" $(use_enable xfs)" - - # Finally, run econf. - KERNEL_DIR="${KERNEL_DIR}" econf --config-cache \ - $(use_enable static-libs static) \ - --localstatedir=/var ${myconf} -} - -src_install() { - emake DESTDIR="${D%/}" install - - perl_delete_localpod - - find "${ED}"usr/ -name "*.la" -delete || die - - if use collectd_plugins_java; then - java-pkg_regjar "${ED}"usr/share/${PN}/java/*.jar - fi - - fowners root:collectd /etc/collectd.conf - fperms u=rw,g=r,o= /etc/collectd.conf - - dodoc AUTHORS ChangeLog README - - if use contrib ; then - insinto /usr/share/doc/${PF} - doins -r contrib - fi - - keepdir /var/lib/${PN} - fowners collectd:collectd /var/lib/${PN} - - newinitd "${FILESDIR}/${PN}.initd-r2" ${PN} - newconfd "${FILESDIR}/${PN}.confd-r2" ${PN} - systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service - - insinto /etc/logrotate.d - newins "${FILESDIR}/${PN}.logrotate" ${PN} - - newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf - - sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":#PIDFile "/run/collectd.pid":' "${ED}"etc/collectd.conf || die - sed -i -e 's:^# SocketFile "/var/run/collectd-unixsock":# SocketFile "/run/collectd/collectd.socket":' "${ED}"etc/collectd.conf || die - sed -i -e 's:^.*LoadPlugin perl$:# The new, correct way to load the perl plugin -- \n# \n# Globals true\n# :' "${ED}"etc/collectd.conf || die - sed -i -e 's:^.*LoadPlugin python$:# The new, correct way to load the python plugin -- \n# \n# Globals true\n# :' "${ED}"etc/collectd.conf || die -} - -pkg_postinst() { - tmpfiles_process "${PN}.conf" - - if use filecaps; then - local caps=() - use collectd_plugins_ceph && caps+=('CAP_DAC_OVERRIDE') - use collectd_plugins_exec && caps+=('CAP_SETUID' 'CAP_SETGID') - use collectd_plugins_iptables && caps+=('CAP_NET_ADMIN') - use collectd_plugins_filecount && caps+=('CAP_DAC_READ_SEARCH') - - if use collectd_plugins_dns || use collectd_plugins_ping; then - caps+=('CAP_NET_RAW') - fi - - if use collectd_plugins_turbostat || use collectd_plugins_smart; then - caps+=('CAP_SYS_RAWIO') - fi - - if [ ${#caps[@]} -gt 0 ]; then - local caps_str=$(IFS=","; echo "${caps[*]}") - fcaps ${caps_str} usr/sbin/collectd - elog "Capabilities for ${EROOT}usr/sbin/collectd set to:" - elog " ${caps_str}+EP" - elog - - local systemd_unit="$(systemd_get_systemunitdir)/collectd.service" - if [[ -e "${systemd_unit}" ]]; then - caps_str="${caps[*]}" - sed -i -e "s:^CapabilityBoundingSet=.*:CapabilityBoundingSet=${caps_str}:" "${systemd_unit}" || \ - die "Failed to set CapabilityBoundingSet in '${systemd_unit}'" - - elog "CapabilityBoundingSet in '${systemd_unit}'" - elog "updated to match capabilities set above." - elog - else - if has_version "sys-apps/systemd"; then - # Bug 596852 - ewarn "Failed to update CapabilityBoundingSet in '${systemd_unit}'" - ewarn "because unit was not found. Please file a bug about this." - fi - fi - fi - fi - - elog "Note: Collectd is only the collector." - elog " You need to install 'data' sources (applications) locally or" - elog " remotely on your own." - - elog - elog "Collectd is configured to run as unprivileged user by default." - elog "You may want to revisit the configuration." - elog - - if use collectd_plugins_email; then - ewarn "The email plug-in is deprecated. To submit statistics please use the unixsock plugin." - fi - - if use collectd_plugins_smart; then - elog "" - elog "If you are using smart plugin and don't run collectd as root make sure" - elog "that the collectd user is allowed to access the disk you want to monitor" - elog "(can be done via udev rule for example) and that collectd has the required" - elog "capabilities set (which is the default when package was emerged with" - elog "'filecaps' USE flag set)." - fi - - if use contrib; then - elog "The scripts in /usr/share/doc/${PF}/collection3 for generating graphs need dev-perl/HTML-Parser," - elog "dev-perl/config-general, dev-perl/regexp-common, and net-analyzer/rrdtool[perl] to be installed." - fi -} diff --git a/app-metrics/collectd/files/collectd-5.6.0-gentoo.patch b/app-metrics/collectd/files/collectd-5.6.0-gentoo.patch deleted file mode 100644 index dd8c1576354c..000000000000 --- a/app-metrics/collectd/files/collectd-5.6.0-gentoo.patch +++ /dev/null @@ -1,153 +0,0 @@ -From 8fe20883e248572690798e4dd1423511aa2f4e5d Mon Sep 17 00:00:00 2001 -From: Thomas Deutschmann -Date: Thu, 22 Sep 2016 00:53:58 +0200 -Subject: [PATCH 1/3] Remove bundled libltdl - ---- - Makefile.am | 6 ------ - configure.ac | 8 ++++---- - 2 files changed, 4 insertions(+), 10 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 03bdd39..ad04a3c 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,11 +1,5 @@ --ACLOCAL_AMFLAGS = -I libltdl/m4 -- - SUBDIRS = - --if BUILD_INCLUDED_LTDL --SUBDIRS += libltdl --endif -- - SUBDIRS += proto src bindings . - - AM_CPPFLAGS = $(LTDLINCL) -diff --git a/configure.ac b/configure.ac -index 9a6da11..68e15e0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3,7 +3,6 @@ AC_PREREQ([2.60]) - AC_INIT([collectd],[m4_esyscmd(./version-gen.sh)]) - AC_CONFIG_SRCDIR(src/target_set.c) - AC_CONFIG_HEADERS(src/config.h) --AC_CONFIG_AUX_DIR([libltdl/config]) - - dnl older automake's default of ARFLAGS=cru is noisy on newer binutils; - dnl we don't really need the 'u' even in older toolchains. Then there is -@@ -13,7 +12,6 @@ m4_divert_text([DEFAULTS], [: "${ARFLAGS=cr} ${AR_FLAGS=cr}"]) - m4_ifdef([LT_PACKAGE_VERSION], - # libtool >= 2.2 - [ -- LT_CONFIG_LTDL_DIR([libltdl]) - LT_INIT([dlopen]) - LTDL_INIT([convenience]) - AC_DEFINE(LIBTOOL_VERSION, 2, [Define to used libtool version.]) -@@ -25,12 +23,14 @@ m4_ifdef([LT_PACKAGE_VERSION], - AC_SUBST(LTDLINCL) - AC_SUBST(LIBLTDL) - AC_LIBTOOL_DLOPEN -- AC_CONFIG_SUBDIRS(libltdl) - AC_DEFINE(LIBTOOL_VERSION, 1, [Define to used libtool version.]) - ] - ) - --AM_CONDITIONAL([BUILD_INCLUDED_LTDL], [test "x$LTDLDEPS" != "x"]) -+if test "x$LTDLDEPS" != "x" -+then -+ AC_MSG_ERROR(["system's libltdl is too old! Should never happen. Please file a bug at https://bugs.gentoo.org"]) -+fi - - AM_INIT_AUTOMAKE([subdir-objects tar-pax dist-bzip2 no-dist-gzip foreign]) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) --- -2.10.0 - - -From 0b00f519ce183b8ceaab5cf8e56f574ecd2cb7c4 Mon Sep 17 00:00:00 2001 -From: Thomas Deutschmann -Date: Thu, 22 Sep 2016 00:54:08 +0200 -Subject: [PATCH 2/3] Remove libhal dependency - -X-Gentoo-Bug: 353839 -X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=353839 ---- - configure.ac | 24 ------------------------ - 1 file changed, 24 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 68e15e0..1700c44 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1663,30 +1663,6 @@ AM_CONDITIONAL(BUILD_WITH_LIBRESOLV, test "x$with_libresolv" = "xyes") - - dnl Check for HAL (hardware abstraction library) - with_libhal="no" --PKG_CHECK_MODULES([HAL], [hal], -- [ -- SAVE_LIBS="$LIBS" -- LIBS="$HAL_LIBS $LIBS" -- AC_CHECK_LIB([hal], [libhal_device_property_exists], -- [ -- SAVE_CPPFLAGS="$CPPFLAGS" -- CPPFLAGS="$HAL_CFLAGS $CPPFLAGS" -- AC_CHECK_HEADERS([libhal.h], -- [ -- with_libhal="yes" -- BUILD_WITH_LIBHAL_CFLAGS="$HAL_CFLAGS" -- BUILD_WITH_LIBHAL_LIBS="$HAL_LIBS" -- ]) -- CPPFLAGS="$SAVE_CPPFLAGS" -- ], -- [ : ] -- ) -- LIBS="$SAVE_LIBS" -- ], -- [ : ] --) --AC_SUBST(BUILD_WITH_LIBHAL_CFLAGS) --AC_SUBST(BUILD_WITH_LIBHAL_LIBS) - - - SAVE_LIBS="$LIBS" --- -2.10.0 - - -From 380c61888bed5856319fa32816d8f2f4c88ee7bc Mon Sep 17 00:00:00 2001 -From: Thomas Deutschmann -Date: Thu, 22 Sep 2016 00:54:19 +0200 -Subject: [PATCH 3/3] Link Oracle plug-in against libocci - -Author: Aurelien Minet -X-Gentoo-Bug: 347607 -X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=347607 ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 1700c44..83909a0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3587,14 +3587,14 @@ AC_ARG_WITH(oracle, [AS_HELP_STRING([--with-oracle@<:@=ORACLE_HOME@:>@], [Path t - ]) - if test "x$ORACLE_HOME" != "x" - then -- with_oracle_cppflags="-I$ORACLE_HOME/rdbms/public" -+ with_oracle_cppflags="-I$ORACLE_HOME/rdbms/public -locci" - - if test -e "$ORACLE_HOME/lib/ldflags" - then - with_oracle_libs=`cat "$ORACLE_HOME/lib/ldflags"` - fi - #with_oracle_libs="-L$ORACLE_HOME/lib $with_oracle_libs -lclntsh" -- with_oracle_libs="-L$ORACLE_HOME/lib -lclntsh" -+ with_oracle_libs="-L$ORACLE_HOME/lib -lclntsh -locci" - fi - if test "x$with_oracle" = "xyes" - then --- -2.10.0 - diff --git a/app-metrics/collectd/files/collectd-5.7.2-CVE-2017-16820.patch b/app-metrics/collectd/files/collectd-5.7.2-CVE-2017-16820.patch deleted file mode 100644 index 0090f2940bf6..000000000000 --- a/app-metrics/collectd/files/collectd-5.7.2-CVE-2017-16820.patch +++ /dev/null @@ -1,39 +0,0 @@ -CVE-2017-16820: Fix double free of request PDU - -https://github.com/collectd/collectd/commit/d16c24542b2f96a194d43a73c2e5778822b9cb47 - ---- a/src/snmp.c -+++ b/src/snmp.c -@@ -1357,11 +1357,13 @@ static int csnmp_read_table(host_definition_t *host, data_definition_t *data) { - if (oid_list_todo_num == 0) { - /* The request is still empty - so we are finished */ - DEBUG("snmp plugin: all variables have left their subtree"); -+ snmp_free_pdu(req); - status = 0; - break; - } - - res = NULL; -+ /* snmp_sess_synch_response always frees our req PDU */ - status = snmp_sess_synch_response(host->sess_handle, req, &res); - if ((status != STAT_SUCCESS) || (res == NULL)) { - char *errstr = NULL; -@@ -1376,8 +1378,6 @@ static int csnmp_read_table(host_definition_t *host, data_definition_t *data) { - snmp_free_pdu(res); - res = NULL; - -- /* snmp_synch_response already freed our PDU */ -- req = NULL; - sfree(errstr); - csnmp_host_close_session(host); - -@@ -1492,9 +1492,6 @@ static int csnmp_read_table(host_definition_t *host, data_definition_t *data) { - snmp_free_pdu(res); - res = NULL; - -- if (req != NULL) -- snmp_free_pdu(req); -- req = NULL; - - if (status == 0) - csnmp_dispatch_table(host, data, instance_list_head, value_list_head); diff --git a/app-metrics/collectd/files/collectd-5.7.2-issue-2443.patch b/app-metrics/collectd/files/collectd-5.7.2-issue-2443.patch deleted file mode 100644 index 19410c139b0a..000000000000 --- a/app-metrics/collectd/files/collectd-5.7.2-issue-2443.patch +++ /dev/null @@ -1,160 +0,0 @@ -turbostat: import msr-index header from linux to allow building against - >=linux-4.12 - -Backport of https://github.com/collectd/collectd/pull/2446 - ---- a/configure.ac -+++ b/configure.ac -@@ -805,28 +805,6 @@ AC_CACHE_CHECK([whether clock_boottime and clock_monotonic are supported], - - - # For the turbostat plugin --have_asm_msrindex_h="no" --AC_CHECK_HEADERS(asm/msr-index.h, [have_asm_msrindex_h="yes"]) -- --if test "x$have_asm_msrindex_h" = "xyes" --then -- AC_CACHE_CHECK([whether asm/msr-index.h has MSR_PKG_C10_RESIDENCY], -- [c_cv_have_usable_asm_msrindex_h], -- AC_COMPILE_IFELSE([AC_LANG_PROGRAM( --[[[ --#include --]]], --[[[ --int y = MSR_PKG_C10_RESIDENCY; --return(y); --]]] -- )], -- [c_cv_have_usable_asm_msrindex_h="yes"], -- [c_cv_have_usable_asm_msrindex_h="no"], -- ) -- ) --fi -- - have_cpuid_h="no" - AC_CHECK_HEADERS(cpuid.h, [have_cpuid_h="yes"]) - -@@ -6108,7 +6086,7 @@ then - then - plugin_ipvs="yes" - fi -- if test "x$c_cv_have_usable_asm_msrindex_h" = "xyes" && test "x$have_cpuid_h" = "xyes" -+ if test "x$have_cpuid_h" = "xyes" - then - plugin_turbostat="yes" - fi ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1212,7 +1212,9 @@ endif - - if BUILD_PLUGIN_TURBOSTAT - pkglib_LTLIBRARIES += turbostat.la --turbostat_la_SOURCES = turbostat.c -+turbostat_la_SOURCES = \ -+ turbostat.c \ -+ msr-index.h - turbostat_la_LDFLAGS = $(PLUGIN_LDFLAGS) - endif - ---- /dev/null -+++ b/src/msr-index.h -@@ -0,0 +1,88 @@ -+/* -+ * Partial header file imported from the linux kernel -+ * (arch/x86/include/asm/msr-index.h) -+ * as it is not provided by the kernel sources anymore -+ * -+ * Only the minimal blocks of macro have been included -+ * ---- -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms and conditions of the GNU General Public License, -+ * version 2, as published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -+ * more details. -+ * -+ * You should have received a copy of the GNU General Public License along with -+ * this program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. -+ * ---- -+ */ -+ -+#ifndef _ASM_X86_MSR_INDEX_H -+#define _ASM_X86_MSR_INDEX_H -+ -+/* -+ * CPU model specific register (MSR) numbers. -+ * -+ * Do not add new entries to this file unless the definitions are shared -+ * between multiple compilation units. -+ */ -+ -+/* Intel MSRs. Some also available on other CPUs */ -+ -+/* C-state Residency Counters */ -+#define MSR_PKG_C3_RESIDENCY 0x000003f8 -+#define MSR_PKG_C6_RESIDENCY 0x000003f9 -+#define MSR_ATOM_PKG_C6_RESIDENCY 0x000003fa -+#define MSR_PKG_C7_RESIDENCY 0x000003fa -+#define MSR_CORE_C3_RESIDENCY 0x000003fc -+#define MSR_CORE_C6_RESIDENCY 0x000003fd -+#define MSR_CORE_C7_RESIDENCY 0x000003fe -+#define MSR_KNL_CORE_C6_RESIDENCY 0x000003ff -+#define MSR_PKG_C2_RESIDENCY 0x0000060d -+#define MSR_PKG_C8_RESIDENCY 0x00000630 -+#define MSR_PKG_C9_RESIDENCY 0x00000631 -+#define MSR_PKG_C10_RESIDENCY 0x00000632 -+ -+/* Run Time Average Power Limiting (RAPL) Interface */ -+ -+#define MSR_RAPL_POWER_UNIT 0x00000606 -+ -+#define MSR_PKG_POWER_LIMIT 0x00000610 -+#define MSR_PKG_ENERGY_STATUS 0x00000611 -+#define MSR_PKG_PERF_STATUS 0x00000613 -+#define MSR_PKG_POWER_INFO 0x00000614 -+ -+#define MSR_DRAM_POWER_LIMIT 0x00000618 -+#define MSR_DRAM_ENERGY_STATUS 0x00000619 -+#define MSR_DRAM_PERF_STATUS 0x0000061b -+#define MSR_DRAM_POWER_INFO 0x0000061c -+ -+#define MSR_PP0_POWER_LIMIT 0x00000638 -+#define MSR_PP0_ENERGY_STATUS 0x00000639 -+#define MSR_PP0_POLICY 0x0000063a -+#define MSR_PP0_PERF_STATUS 0x0000063b -+ -+#define MSR_PP1_POWER_LIMIT 0x00000640 -+#define MSR_PP1_ENERGY_STATUS 0x00000641 -+#define MSR_PP1_POLICY 0x00000642 -+ -+ -+ -+/* Intel defined MSRs. */ -+#define MSR_IA32_TSC 0x00000010 -+#define MSR_SMI_COUNT 0x00000034 -+ -+#define MSR_IA32_MPERF 0x000000e7 -+#define MSR_IA32_APERF 0x000000e8 -+ -+#define MSR_IA32_THERM_STATUS 0x0000019c -+ -+#define MSR_IA32_TEMPERATURE_TARGET 0x000001a2 -+ -+#define MSR_IA32_PACKAGE_THERM_STATUS 0x000001b1 -+ -+ -+#endif /* _ASM_X86_MSR_INDEX_H */ ---- a/src/turbostat.c -+++ b/src/turbostat.c -@@ -41,7 +41,7 @@ - #include "plugin.h" - #include "utils_time.h" - --#include -+#include "msr-index.h" - #include - #ifdef HAVE_SYS_CAPABILITY_H - #include diff --git a/app-metrics/collectd/files/collectd-5.7.2-varnish-5.2+.patch b/app-metrics/collectd/files/collectd-5.7.2-varnish-5.2+.patch deleted file mode 100644 index 60830042fa6a..000000000000 --- a/app-metrics/collectd/files/collectd-5.7.2-varnish-5.2+.patch +++ /dev/null @@ -1,1018 +0,0 @@ -Fix building against >=www-servers/varnish-5.2 - -https://github.com/collectd/collectd/commit/3c42182e912e3d634fe8c4f6a636053959fcde49 -https://github.com/collectd/collectd/commit/3ab73ae8b23b9816fb69fde630c5ad667aa1e09f -https://github.com/collectd/collectd/commit/7978b43670472a000831f7ff37a6a30771a6ee6f -https://github.com/collectd/collectd/commit/68123637814ea09efff5bf56f3209eefbe41287a -https://github.com/collectd/collectd/commit/8192bfcf975ff6275505c99193a23e2a066927d0 -https://github.com/collectd/collectd/commit/c1e2bf3d2bfa1a1da3a6b42186577f635795e7f8 - ---- a/configure.ac -+++ b/configure.ac -@@ -5614,13 +5614,18 @@ then - - CPPFLAGS="$CPPFLAGS $with_libvarnish_cflags" - -- AC_CHECK_HEADERS(vapi/vsc.h, -- [AC_DEFINE([HAVE_VARNISH_V4], [1], [Varnish 4 API support])], -- [AC_CHECK_HEADERS(vsc.h, -- [AC_DEFINE([HAVE_VARNISH_V3], [1], [Varnish 3 API support])], -- [AC_CHECK_HEADERS(varnishapi.h, -- [AC_DEFINE([HAVE_VARNISH_V2], [1], [Varnish 2 API support])], -- [with_libvarnish="no (found none of the varnish header files)"])])]) -+ $PKG_CONFIG --atleast-version=5.2 'varnishapi' 2>/dev/null -+ if test $? -eq 0; then -+ AC_DEFINE([HAVE_VARNISH_V5], [1], [Varnish 5 API support]) -+ else -+ AC_CHECK_HEADERS(vapi/vsc.h, -+ [AC_DEFINE([HAVE_VARNISH_V4], [1], [Varnish 4 API support])], -+ [AC_CHECK_HEADERS(vsc.h, -+ [AC_DEFINE([HAVE_VARNISH_V3], [1], [Varnish 3 API support])], -+ [AC_CHECK_HEADERS(varnishapi.h, -+ [AC_DEFINE([HAVE_VARNISH_V2], [1], [Varnish 2 API support])], -+ [with_libvarnish="no (found none of the varnish header files)"])])]) -+ fi - - CPPFLAGS="$SAVE_CPPFLAGS" - fi ---- a/src/varnish.c -+++ b/src/varnish.c -@@ -21,6 +21,7 @@ - * Jérôme Renard - * Marc Fournier - * Florian octo Forster -+ * Denes Matetelki - **/ - - #include "collectd.h" -@@ -28,7 +29,7 @@ - #include "common.h" - #include "plugin.h" - --#if HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - #include - #include - typedef struct VSC_C_main c_varnish_stats_t; -@@ -69,17 +70,25 @@ struct user_config_s { - _Bool collect_sms; - #if HAVE_VARNISH_V2 - _Bool collect_sm; -+#endif -+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - _Bool collect_sma; - #endif - _Bool collect_struct; - _Bool collect_totals; --#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - _Bool collect_uptime; - #endif - _Bool collect_vcl; - _Bool collect_workers; --#if HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - _Bool collect_vsm; -+ _Bool collect_lck; -+ _Bool collect_mempool; -+ _Bool collect_mgt; -+ _Bool collect_smf; -+ _Bool collect_vbe; -+ _Bool collect_mse; - #endif - }; - typedef struct user_config_s user_config_t; /* }}} */ -@@ -98,60 +107,70 @@ static int varnish_submit(const char *plugin_instance, /* {{{ */ - - if (plugin_instance == NULL) - plugin_instance = "default"; -- ssnprintf(vl.plugin_instance, sizeof(vl.plugin_instance), "%s-%s", -- plugin_instance, category); -+ snprintf(vl.plugin_instance, sizeof(vl.plugin_instance), "%s-%s", -+ plugin_instance, category); - - sstrncpy(vl.type, type, sizeof(vl.type)); - - if (type_instance != NULL) - sstrncpy(vl.type_instance, type_instance, sizeof(vl.type_instance)); - -- return (plugin_dispatch_values(&vl)); -+ return plugin_dispatch_values(&vl); - } /* }}} int varnish_submit */ - - static int varnish_submit_gauge(const char *plugin_instance, /* {{{ */ - const char *category, const char *type, - const char *type_instance, - uint64_t gauge_value) { -- return (varnish_submit(plugin_instance, category, type, type_instance, -- (value_t){.gauge = (gauge_t)gauge_value})); -+ return varnish_submit(plugin_instance, category, type, type_instance, -+ (value_t){ -+ .gauge = (gauge_t)gauge_value, -+ }); - } /* }}} int varnish_submit_gauge */ - - static int varnish_submit_derive(const char *plugin_instance, /* {{{ */ - const char *category, const char *type, - const char *type_instance, - uint64_t derive_value) { -- return (varnish_submit(plugin_instance, category, type, type_instance, -- (value_t){.derive = (derive_t)derive_value})); -+ return varnish_submit(plugin_instance, category, type, type_instance, -+ (value_t){ -+ .derive = (derive_t)derive_value, -+ }); - } /* }}} int varnish_submit_derive */ - --#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - static int varnish_monitor(void *priv, - const struct VSC_point *const pt) /* {{{ */ - { - uint64_t val; - const user_config_t *conf; -- const char *class; - const char *name; - - if (pt == NULL) -- return (0); -+ return 0; - - conf = priv; - --#if HAVE_VARNISH_V4 -- class = pt->section->fantom->type; -- name = pt->desc->name; -+#if HAVE_VARNISH_V5 -+ char namebuff[DATA_MAX_NAME_LEN]; - -- if (strcmp(class, "MAIN") != 0) -- return (0); -+ char const *c = strrchr(pt->name, '.'); -+ if (c == NULL) { -+ return EINVAL; -+ } -+ sstrncpy(namebuff, c + 1, sizeof(namebuff)); -+ name = namebuff; -+ -+#elif HAVE_VARNISH_V4 -+ if (strcmp(pt->section->fantom->type, "MAIN") != 0) -+ return 0; - -+ name = pt->desc->name; - #elif HAVE_VARNISH_V3 -- class = pt->class; -- name = pt->name; -+ if (strcmp(pt->class, "") != 0) -+ return 0; - -- if (strcmp(class, "") != 0) -- return (0); -+ name = pt->name; - #endif - - val = *(const volatile uint64_t *)pt->ptr; -@@ -178,6 +197,14 @@ static int varnish_monitor(void *priv, - else if (strcmp(name, "client_req") == 0) - return varnish_submit_derive(conf->instance, "connections", "connections", - "received", val); -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ else if (strcmp(name, "client_req_400") == 0) -+ return varnish_submit_derive(conf->instance, "connections", "connections", -+ "error_400", val); -+ else if (strcmp(name, "client_req_417") == 0) -+ return varnish_submit_derive(conf->instance, "connections", "connections", -+ "error_417", val); -+#endif - } - - #ifdef HAVE_VARNISH_V3 -@@ -207,6 +234,9 @@ static int varnish_monitor(void *priv, - else if (strcmp(name, "esi_warnings") == 0) - return varnish_submit_derive(conf->instance, "esi", "total_operations", - "warning", val); -+ else if (strcmp(name, "esi_maxdepth") == 0) -+ return varnish_submit_derive(conf->instance, "esi", "total_operations", -+ "max_depth", val); - } - - if (conf->collect_backend) { -@@ -282,6 +312,20 @@ static int varnish_monitor(void *priv, - else if (strcmp(name, "fetch_304") == 0) - return varnish_submit_derive(conf->instance, "fetch", "http_requests", - "no_body_304", val); -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ else if (strcmp(name, "fetch_no_thread") == 0) -+ return varnish_submit_derive(conf->instance, "fetch", "http_requests", -+ "no_thread", val); -+ else if (strcmp(name, "fetch_none") == 0) -+ return varnish_submit_derive(conf->instance, "fetch", "http_requests", -+ "none", val); -+ else if (strcmp(name, "busy_sleep") == 0) -+ return varnish_submit_derive(conf->instance, "fetch", "http_requests", -+ "busy_sleep", val); -+ else if (strcmp(name, "busy_wakeup") == 0) -+ return varnish_submit_derive(conf->instance, "fetch", "http_requests", -+ "busy_wakeup", val); -+#endif - } - - if (conf->collect_hcb) { -@@ -327,6 +371,14 @@ static int varnish_monitor(void *priv, - else if (strcmp(name, "n_objoverflow") == 0) - return varnish_submit_derive(conf->instance, "objects", "total_objects", - "workspace_overflow", val); -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ else if (strcmp(name, "exp_mailed") == 0) -+ return varnish_submit_gauge(conf->instance, "struct", "objects", -+ "exp_mailed", val); -+ else if (strcmp(name, "exp_received") == 0) -+ return varnish_submit_gauge(conf->instance, "struct", "objects", -+ "exp_received", val); -+#endif - } - - #if HAVE_VARNISH_V3 -@@ -351,7 +403,7 @@ static int varnish_monitor(void *priv, - "duplicate", val); - } - #endif --#if HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - if (conf->collect_ban) { - if (strcmp(name, "bans") == 0) - return varnish_submit_derive(conf->instance, "ban", "total_operations", -@@ -377,6 +429,33 @@ static int varnish_monitor(void *priv, - else if (strcmp(name, "bans_dups") == 0) - return varnish_submit_derive(conf->instance, "ban", "total_operations", - "duplicate", val); -+ else if (strcmp(name, "bans_tested") == 0) -+ return varnish_submit_derive(conf->instance, "ban", "total_operations", -+ "tested", val); -+ else if (strcmp(name, "bans_lurker_contention") == 0) -+ return varnish_submit_derive(conf->instance, "ban", "total_operations", -+ "lurker_contention", val); -+ else if (strcmp(name, "bans_lurker_obj_killed") == 0) -+ return varnish_submit_derive(conf->instance, "ban", "total_operations", -+ "lurker_obj_killed", val); -+ else if (strcmp(name, "bans_lurker_tested") == 0) -+ return varnish_submit_derive(conf->instance, "ban", "total_operations", -+ "lurker_tested", val); -+ else if (strcmp(name, "bans_lurker_tests_tested") == 0) -+ return varnish_submit_derive(conf->instance, "ban", "total_operations", -+ "lurker_tests_tested", val); -+ else if (strcmp(name, "bans_obj_killed") == 0) -+ return varnish_submit_derive(conf->instance, "ban", "total_operations", -+ "obj_killed", val); -+ else if (strcmp(name, "bans_persisted_bytes") == 0) -+ return varnish_submit_derive(conf->instance, "ban", "total_bytes", -+ "persisted_bytes", val); -+ else if (strcmp(name, "bans_persisted_fragmentation") == 0) -+ return varnish_submit_derive(conf->instance, "ban", "total_bytes", -+ "persisted_fragmentation", val); -+ else if (strcmp(name, "bans_tests_tested") == 0) -+ return varnish_submit_derive(conf->instance, "ban", "total_operations", -+ "tests_tested", val); - } - #endif - -@@ -411,6 +490,15 @@ static int varnish_monitor(void *priv, - else if (strcmp(name, "sess_herd") == 0) - return varnish_submit_derive(conf->instance, "session", - "total_operations", "herd", val); -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ else if (strcmp(name, "sess_closed_err") == 0) -+ return varnish_submit_derive(conf->instance, "session", -+ "total_operations", "closed_err", val); -+ else if (strcmp(name, "sess_dropped") == 0) -+ return varnish_submit_derive(conf->instance, "session", -+ "total_operations", "dropped_for_thread", -+ val); -+#endif - } - - if (conf->collect_shm) { -@@ -510,12 +598,18 @@ static int varnish_monitor(void *priv, - else if (strcmp(name, "s_req_bodybytes") == 0) - return varnish_submit_derive(conf->instance, "totals", "total_bytes", - "req_body", val); -+ else if (strcmp(name, "s_req_protobytes") == 0) -+ return varnish_submit_derive(conf->instance, "totals", "total_bytes", -+ "req_proto", val); - else if (strcmp(name, "s_resp_hdrbytes") == 0) - return varnish_submit_derive(conf->instance, "totals", "total_bytes", - "resp_header", val); - else if (strcmp(name, "s_resp_bodybytes") == 0) - return varnish_submit_derive(conf->instance, "totals", "total_bytes", - "resp_body", val); -+ else if (strcmp(name, "s_resp_protobytes") == 0) -+ return varnish_submit_derive(conf->instance, "totals", "total_bytes", -+ "resp_proto", val); - else if (strcmp(name, "s_pipe_hdrbytes") == 0) - return varnish_submit_derive(conf->instance, "totals", "total_bytes", - "pipe_header", val); -@@ -580,8 +674,8 @@ static int varnish_monitor(void *priv, - return varnish_submit_derive(conf->instance, "workers", "total_threads", - "dropped", val); - else if (strcmp(name, "thread_queue_len") == 0) -- return varnish_submit_derive(conf->instance, "workers", "queue_length", -- "threads", val); -+ return varnish_submit_gauge(conf->instance, "workers", "queue_length", -+ "threads", val); - else if (strcmp(name, "n_wrk") == 0) - return varnish_submit_gauge(conf->instance, "workers", "threads", - "worker", val); -@@ -609,9 +703,17 @@ static int varnish_monitor(void *priv, - else if (strcmp(name, "n_wrk_lqueue") == 0) - return varnish_submit_derive(conf->instance, "workers", "total_requests", - "queue_length", val); -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ else if (strcmp(name, "pools") == 0) -+ return varnish_submit_gauge(conf->instance, "workers", "pools", "pools", -+ val); -+ else if (strcmp(name, "busy_killed") == 0) -+ return varnish_submit_derive(conf->instance, "workers", "http_requests", -+ "busy_killed", val); -+#endif - } - --#if HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - if (conf->collect_vsm) { - if (strcmp(name, "vsm_free") == 0) - return varnish_submit_gauge(conf->instance, "vsm", "bytes", "free", val); -@@ -627,9 +729,262 @@ static int varnish_monitor(void *priv, - return varnish_submit_derive(conf->instance, "vsm", "total_bytes", - "overflowed", val); - } -+ -+ if (conf->collect_vbe) { -+ /* @TODO figure out the collectd type for bitmap -+ if (strcmp(name, "happy") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", -+ "bitmap", "happy_hprobes", val); -+ */ -+ if (strcmp(name, "bereq_hdrbytes") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes", -+ "bereq_hdrbytes", val); -+ else if (strcmp(name, "bereq_bodybytes") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes", -+ "bereq_bodybytes", val); -+ else if (strcmp(name, "bereq_protobytes") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes", -+ "bereq_protobytes", val); -+ else if (strcmp(name, "beresp_hdrbytes") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes", -+ "beresp_hdrbytes", val); -+ else if (strcmp(name, "beresp_bodybytes") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes", -+ "beresp_bodybytes", val); -+ else if (strcmp(name, "beresp_protobytes") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes", -+ "beresp_protobytes", val); -+ else if (strcmp(name, "pipe_hdrbytes") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes", -+ "pipe_hdrbytes", val); -+ else if (strcmp(name, "pipe_out") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes", -+ "pipe_out", val); -+ else if (strcmp(name, "pipe_in") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes", -+ "pipe_in", val); -+ else if (strcmp(name, "conn") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "connections", -+ "c_conns", val); -+ else if (strcmp(name, "req") == 0) -+ return varnish_submit_derive(conf->instance, "vbe", "http_requests", -+ "b_reqs", val); -+ } -+ -+ /* All Stevedores support these counters */ -+ if (conf->collect_sma || conf->collect_smf || conf->collect_mse) { -+ -+ char category[4]; -+ if (conf->collect_sma) -+ strncpy(category, "sma", 4); -+ else if (conf->collect_smf) -+ strncpy(category, "smf", 4); -+ else -+ strncpy(category, "mse", 4); -+ -+ if (strcmp(name, "c_req") == 0) -+ return varnish_submit_derive(conf->instance, category, "total_operations", -+ "alloc_req", val); -+ else if (strcmp(name, "c_fail") == 0) -+ return varnish_submit_derive(conf->instance, category, "total_operations", -+ "alloc_fail", val); -+ else if (strcmp(name, "c_bytes") == 0) -+ return varnish_submit_derive(conf->instance, category, "total_bytes", -+ "bytes_allocated", val); -+ else if (strcmp(name, "c_freed") == 0) -+ return varnish_submit_derive(conf->instance, category, "total_bytes", -+ "bytes_freed", val); -+ else if (strcmp(name, "g_alloc") == 0) -+ return varnish_submit_derive(conf->instance, category, "total_operations", -+ "alloc_outstanding", val); -+ else if (strcmp(name, "g_bytes") == 0) -+ return varnish_submit_gauge(conf->instance, category, "bytes", -+ "bytes_outstanding", val); -+ else if (strcmp(name, "g_space") == 0) -+ return varnish_submit_gauge(conf->instance, category, "bytes", -+ "bytes_available", val); -+ } -+ -+ /* No SMA specific counters */ -+ -+ if (conf->collect_smf) { -+ if (strcmp(name, "g_smf") == 0) -+ return varnish_submit_gauge(conf->instance, "smf", "objects", -+ "n_struct_smf", val); -+ else if (strcmp(name, "g_smf_frag") == 0) -+ return varnish_submit_gauge(conf->instance, "smf", "objects", -+ "n_small_free_smf", val); -+ else if (strcmp(name, "g_smf_large") == 0) -+ return varnish_submit_gauge(conf->instance, "smf", "objects", -+ "n_large_free_smf", val); -+ } -+ -+ if (conf->collect_mgt) { -+ if (strcmp(name, "uptime") == 0) -+ return varnish_submit_gauge(conf->instance, "mgt", "uptime", -+ "mgt_proc_uptime", val); -+ else if (strcmp(name, "child_start") == 0) -+ return varnish_submit_derive(conf->instance, "mgt", "total_operations", -+ "child_start", val); -+ else if (strcmp(name, "child_exit") == 0) -+ return varnish_submit_derive(conf->instance, "mgt", "total_operations", -+ "child_exit", val); -+ else if (strcmp(name, "child_stop") == 0) -+ return varnish_submit_derive(conf->instance, "mgt", "total_operations", -+ "child_stop", val); -+ else if (strcmp(name, "child_died") == 0) -+ return varnish_submit_derive(conf->instance, "mgt", "total_operations", -+ "child_died", val); -+ else if (strcmp(name, "child_dump") == 0) -+ return varnish_submit_derive(conf->instance, "mgt", "total_operations", -+ "child_dump", val); -+ else if (strcmp(name, "child_panic") == 0) -+ return varnish_submit_derive(conf->instance, "mgt", "total_operations", -+ "child_panic", val); -+ } -+ -+ if (conf->collect_lck) { -+ if (strcmp(name, "creat") == 0) -+ return varnish_submit_gauge(conf->instance, "lck", "objects", "created", -+ val); -+ else if (strcmp(name, "destroy") == 0) -+ return varnish_submit_gauge(conf->instance, "lck", "objects", "destroyed", -+ val); -+ else if (strcmp(name, "locks") == 0) -+ return varnish_submit_derive(conf->instance, "lck", "total_operations", -+ "lock_ops", val); -+ } -+ -+ if (conf->collect_mempool) { -+ if (strcmp(name, "live") == 0) -+ return varnish_submit_gauge(conf->instance, "mempool", "objects", -+ "in_use", val); -+ else if (strcmp(name, "pool") == 0) -+ return varnish_submit_gauge(conf->instance, "mempool", "objects", -+ "in_pool", val); -+ else if (strcmp(name, "sz_wanted") == 0) -+ return varnish_submit_gauge(conf->instance, "mempool", "bytes", -+ "size_requested", val); -+ else if (strcmp(name, "sz_actual") == 0) -+ return varnish_submit_gauge(conf->instance, "mempool", "bytes", -+ "size_allocated", val); -+ else if (strcmp(name, "allocs") == 0) -+ return varnish_submit_derive(conf->instance, "mempool", -+ "total_operations", "allocations", val); -+ else if (strcmp(name, "frees") == 0) -+ return varnish_submit_derive(conf->instance, "mempool", -+ "total_operations", "frees", val); -+ else if (strcmp(name, "recycle") == 0) -+ return varnish_submit_gauge(conf->instance, "mempool", "objects", -+ "recycled", val); -+ else if (strcmp(name, "timeout") == 0) -+ return varnish_submit_gauge(conf->instance, "mempool", "objects", -+ "timed_out", val); -+ else if (strcmp(name, "toosmall") == 0) -+ return varnish_submit_gauge(conf->instance, "mempool", "objects", -+ "too_small", val); -+ else if (strcmp(name, "surplus") == 0) -+ return varnish_submit_gauge(conf->instance, "mempool", "objects", -+ "surplus", val); -+ else if (strcmp(name, "randry") == 0) -+ return varnish_submit_gauge(conf->instance, "mempool", "objects", -+ "ran_dry", val); -+ } -+ -+ if (conf->collect_mse) { -+ if (strcmp(name, "c_full") == 0) -+ return varnish_submit_derive(conf->instance, "mse", "total_operations", -+ "full_allocs", val); -+ else if (strcmp(name, "c_truncated") == 0) -+ return varnish_submit_derive(conf->instance, "mse", "total_operations", -+ "truncated_allocs", val); -+ else if (strcmp(name, "c_expanded") == 0) -+ return varnish_submit_derive(conf->instance, "mse", "total_operations", -+ "expanded_allocs", val); -+ else if (strcmp(name, "c_failed") == 0) -+ return varnish_submit_derive(conf->instance, "mse", "total_operations", -+ "failed_allocs", val); -+ else if (strcmp(name, "c_bytes") == 0) -+ return varnish_submit_derive(conf->instance, "mse", "total_bytes", -+ "bytes_allocated", val); -+ else if (strcmp(name, "c_freed") == 0) -+ return varnish_submit_derive(conf->instance, "mse", "total_bytes", -+ "bytes_freed", val); -+ else if (strcmp(name, "g_fo_alloc") == 0) -+ return varnish_submit_derive(conf->instance, "mse", "total_operations", -+ "fo_allocs_outstanding", val); -+ else if (strcmp(name, "g_fo_bytes") == 0) -+ return varnish_submit_gauge(conf->instance, "mse", "bytes", -+ "fo_bytes_outstanding", val); -+ else if (strcmp(name, "g_membuf_alloc") == 0) -+ return varnish_submit_gauge(conf->instance, "mse", "objects", -+ "membufs_allocated", val); -+ else if (strcmp(name, "g_membuf_inuse") == 0) -+ return varnish_submit_gauge(conf->instance, "mse", "objects", -+ "membufs_inuse", val); -+ else if (strcmp(name, "g_bans_bytes") == 0) -+ return varnish_submit_gauge(conf->instance, "mse", "bytes", -+ "persisted_banspace_used", val); -+ else if (strcmp(name, "g_bans_space") == 0) -+ return varnish_submit_gauge(conf->instance, "mse", "bytes", -+ "persisted_banspace_available", val); -+ else if (strcmp(name, "g_bans_persisted") == 0) -+ return varnish_submit_derive(conf->instance, "mse", "total_operations", -+ "bans_persisted", val); -+ else if (strcmp(name, "g_bans_lost") == 0) -+ return varnish_submit_derive(conf->instance, "mse", "total_operations", -+ "bans_lost", val); -+ -+ /* mse seg */ -+ else if (strcmp(name, "g_journal_bytes") == 0) -+ return varnish_submit_gauge(conf->instance, "mse_reg", "bytes", -+ "journal_bytes_used", val); -+ else if (strcmp(name, "g_journal_space") == 0) -+ return varnish_submit_gauge(conf->instance, "mse_reg", "bytes", -+ "journal_bytes_free", val); -+ -+ /* mse segagg */ -+ else if (strcmp(name, "g_bigspace") == 0) -+ return varnish_submit_gauge(conf->instance, "mse_segagg", "bytes", -+ "big_extents_bytes_available", val); -+ else if (strcmp(name, "g_extfree") == 0) -+ return varnish_submit_gauge(conf->instance, "mse_segagg", "objects", -+ "free_extents", val); -+ else if (strcmp(name, "g_sparenode") == 0) -+ return varnish_submit_gauge(conf->instance, "mse_segagg", "objects", -+ "spare_nodes_available", val); -+ else if (strcmp(name, "g_objnode") == 0) -+ return varnish_submit_gauge(conf->instance, "mse_segagg", "objects", -+ "object_nodes_in_use", val); -+ else if (strcmp(name, "g_extnode") == 0) -+ return varnish_submit_gauge(conf->instance, "mse_segagg", "objects", -+ "extent_nodes_in_use", val); -+ else if (strcmp(name, "g_bigextfree") == 0) -+ return varnish_submit_gauge(conf->instance, "mse_segagg", "objects", -+ "free_big_extents", val); -+ else if (strcmp(name, "c_pruneloop") == 0) -+ return varnish_submit_derive(conf->instance, "mse_segagg", -+ "total_operations", "prune_loops", val); -+ else if (strcmp(name, "c_pruned") == 0) -+ return varnish_submit_derive(conf->instance, "mse_segagg", -+ "total_objects", "pruned_objects", val); -+ else if (strcmp(name, "c_spared") == 0) -+ return varnish_submit_derive(conf->instance, "mse_segagg", -+ "total_operations", "spared_objects", val); -+ else if (strcmp(name, "c_skipped") == 0) -+ return varnish_submit_derive(conf->instance, "mse_segagg", -+ "total_operations", "missed_objects", val); -+ else if (strcmp(name, "c_nuked") == 0) -+ return varnish_submit_derive(conf->instance, "mse_segagg", -+ "total_operations", "nuked_objects", val); -+ else if (strcmp(name, "c_sniped") == 0) -+ return varnish_submit_derive(conf->instance, "mse_segagg", -+ "total_operations", "sniped_objects", val); -+ } -+ - #endif - -- return (0); -+ return 0; - - } /* }}} static int varnish_monitor */ - #else /* if HAVE_VARNISH_V2 */ -@@ -971,21 +1326,32 @@ static void varnish_monitor(const user_config_t *conf, /* {{{ */ - } /* }}} void varnish_monitor */ - #endif - --#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - static int varnish_read(user_data_t *ud) /* {{{ */ - { -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 - struct VSM_data *vd; -- const c_varnish_stats_t *stats; - _Bool ok; -+ const c_varnish_stats_t *stats; -+#elif HAVE_VARNISH_V5 -+ struct vsm *vd; -+ struct vsc *vsc; -+ int vsm_status; -+#endif - - user_config_t *conf; - - if ((ud == NULL) || (ud->data == NULL)) -- return (EINVAL); -+ return EINVAL; - - conf = ud->data; - - vd = VSM_New(); -+ -+#if HAVE_VARNISH_V5 -+ vsc = VSC_New(); -+#endif -+ - #if HAVE_VARNISH_V3 - VSC_Setup(vd); - #endif -@@ -993,48 +1359,85 @@ static int varnish_read(user_data_t *ud) /* {{{ */ - if (conf->instance != NULL) { - int status; - -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 - status = VSM_n_Arg(vd, conf->instance); -+#elif HAVE_VARNISH_V5 -+ status = VSM_Arg(vd, 'n', conf->instance); -+#endif -+ - if (status < 0) { -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 - VSM_Delete(vd); -- ERROR("varnish plugin: VSM_n_Arg (\"%s\") failed " -+#elif HAVE_VARNISH_V5 -+ VSC_Destroy(&vsc, vd); -+ VSM_Destroy(&vd); -+#endif -+ ERROR("varnish plugin: VSM_Arg (\"%s\") failed " - "with status %i.", - conf->instance, status); -- return (-1); -+ return -1; - } - } - - #if HAVE_VARNISH_V3 - ok = (VSC_Open(vd, /* diag = */ 1) == 0); --#else /* if HAVE_VARNISH_V4 */ -+#elif HAVE_VARNISH_V4 - ok = (VSM_Open(vd) == 0); - #endif -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 - if (!ok) { - VSM_Delete(vd); - ERROR("varnish plugin: Unable to open connection."); -- -- return (-1); -+ return -1; - } -+#endif - - #if HAVE_VARNISH_V3 - stats = VSC_Main(vd); --#else /* if HAVE_VARNISH_V4 */ -+#elif HAVE_VARNISH_V4 - stats = VSC_Main(vd, NULL); - #endif -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 - if (!stats) { - VSM_Delete(vd); - ERROR("varnish plugin: Unable to get statistics."); -+ return -1; -+ } -+#endif -+ -+#if HAVE_VARNISH_V5 -+ if (VSM_Attach(vd, STDERR_FILENO)) { -+ ERROR("varnish plugin: Cannot attach to varnish. %s", VSM_Error(vd)); -+ VSC_Destroy(&vsc, vd); -+ VSM_Destroy(&vd); -+ return -1; -+ } - -- return (-1); -+ vsm_status = VSM_Status(vd); -+ if (vsm_status & ~(VSM_MGT_RUNNING | VSM_WRK_RUNNING)) { -+ ERROR("varnish plugin: Unable to get statistics."); -+ VSC_Destroy(&vsc, vd); -+ VSM_Destroy(&vd); -+ return -1; - } -+#endif - - #if HAVE_VARNISH_V3 - VSC_Iter(vd, varnish_monitor, conf); --#else /* if HAVE_VARNISH_V4 */ -+#elif HAVE_VARNISH_V4 - VSC_Iter(vd, NULL, varnish_monitor, conf); -+#elif HAVE_VARNISH_V5 -+ VSC_Iter(vsc, vd, varnish_monitor, conf); - #endif -+ -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 - VSM_Delete(vd); -+#elif HAVE_VARNISH_V5 -+ VSC_Destroy(&vsc, vd); -+ VSM_Destroy(&vd); -+#endif - -- return (0); -+ return 0; - } /* }}} */ - #else /* if HAVE_VARNISH_V2 */ - static int varnish_read(user_data_t *ud) /* {{{ */ -@@ -1044,7 +1447,7 @@ static int varnish_read(user_data_t *ud) /* {{{ */ - user_config_t *conf; - - if ((ud == NULL) || (ud->data == NULL)) -- return (EINVAL); -+ return EINVAL; - - conf = ud->data; - -@@ -1052,12 +1455,12 @@ static int varnish_read(user_data_t *ud) /* {{{ */ - if (stats == NULL) { - ERROR("Varnish plugin : unable to load statistics"); - -- return (-1); -+ return -1; - } - - varnish_monitor(conf, stats); - -- return (0); -+ return 0; - } /* }}} */ - #endif - -@@ -1075,7 +1478,7 @@ static void varnish_config_free(void *ptr) /* {{{ */ - static int varnish_config_apply_default(user_config_t *conf) /* {{{ */ - { - if (conf == NULL) -- return (EINVAL); -+ return EINVAL; - - conf->collect_backend = 1; - conf->collect_cache = 1; -@@ -1096,21 +1499,29 @@ static int varnish_config_apply_default(user_config_t *conf) /* {{{ */ - conf->collect_shm = 1; - #if HAVE_VARNISH_V2 - conf->collect_sm = 0; -+#endif -+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - conf->collect_sma = 0; - #endif - conf->collect_sms = 0; - conf->collect_struct = 0; - conf->collect_totals = 0; --#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - conf->collect_uptime = 0; - #endif - conf->collect_vcl = 0; - conf->collect_workers = 0; --#if HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - conf->collect_vsm = 0; -+ conf->collect_lck = 0; -+ conf->collect_mempool = 0; -+ conf->collect_mgt = 0; -+ conf->collect_smf = 0; -+ conf->collect_vbe = 0; -+ conf->collect_mse = 0; - #endif - -- return (0); -+ return 0; - } /* }}} int varnish_config_apply_default */ - - static int varnish_init(void) /* {{{ */ -@@ -1118,11 +1529,11 @@ static int varnish_init(void) /* {{{ */ - user_config_t *conf; - - if (have_instance) -- return (0); -+ return 0; - - conf = calloc(1, sizeof(*conf)); - if (conf == NULL) -- return (ENOMEM); -+ return ENOMEM; - - /* Default settings: */ - conf->instance = NULL; -@@ -1133,11 +1544,12 @@ static int varnish_init(void) /* {{{ */ - /* group = */ "varnish", - /* name = */ "varnish/localhost", - /* callback = */ varnish_read, -- /* interval = */ 0, &(user_data_t){ -- .data = conf, .free_func = varnish_config_free, -- }); -+ /* interval = */ 0, -+ &(user_data_t){ -+ .data = conf, .free_func = varnish_config_free, -+ }); - -- return (0); -+ return 0; - } /* }}} int varnish_init */ - - static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */ -@@ -1147,7 +1559,7 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */ - - conf = calloc(1, sizeof(*conf)); - if (conf == NULL) -- return (ENOMEM); -+ return ENOMEM; - conf->instance = NULL; - - varnish_config_apply_default(conf); -@@ -1158,7 +1570,7 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */ - status = cf_util_get_string(ci, &conf->instance); - if (status != 0) { - sfree(conf); -- return (status); -+ return status; - } - assert(conf->instance != NULL); - -@@ -1170,7 +1582,7 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */ - WARNING("Varnish plugin: \"Instance\" blocks accept only " - "one argument."); - sfree(conf); -- return (EINVAL); -+ return EINVAL; - } - - for (int i = 0; i < ci->children_num; i++) { -@@ -1218,11 +1630,11 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */ - else if (strcasecmp("CollectSMS", child->key) == 0) - cf_util_get_boolean(child, &conf->collect_sms); - else if (strcasecmp("CollectSMA", child->key) == 0) --#if HAVE_VARNISH_V2 -+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - cf_util_get_boolean(child, &conf->collect_sma); - #else - WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.", -- child->key, "v2"); -+ child->key, "v2 and v4"); - #endif - else if (strcasecmp("CollectSM", child->key) == 0) - #if HAVE_VARNISH_V2 -@@ -1236,7 +1648,7 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */ - else if (strcasecmp("CollectTotals", child->key) == 0) - cf_util_get_boolean(child, &conf->collect_totals); - else if (strcasecmp("CollectUptime", child->key) == 0) --#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - cf_util_get_boolean(child, &conf->collect_uptime); - #else - WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.", -@@ -1247,11 +1659,60 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */ - else if (strcasecmp("CollectWorkers", child->key) == 0) - cf_util_get_boolean(child, &conf->collect_workers); - else if (strcasecmp("CollectVSM", child->key) == 0) --#if HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - cf_util_get_boolean(child, &conf->collect_vsm); - #else - WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.", - child->key, "v4"); -+#endif -+ else if (strcasecmp("CollectLock", child->key) == 0) -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ cf_util_get_boolean(child, &conf->collect_lck); -+#else -+ WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.", -+ child->key, "v4"); -+#endif -+ else if (strcasecmp("CollectMempool", child->key) == 0) -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ cf_util_get_boolean(child, &conf->collect_mempool); -+#else -+ WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.", -+ child->key, "v4"); -+#endif -+ else if (strcasecmp("CollectManagement", child->key) == 0) -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ cf_util_get_boolean(child, &conf->collect_mgt); -+#else -+ WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.", -+ child->key, "v4"); -+#endif -+ else if (strcasecmp("CollectSMF", child->key) == 0) -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ cf_util_get_boolean(child, &conf->collect_smf); -+#else -+ WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.", -+ child->key, "v4"); -+#endif -+ else if (strcasecmp("CollectSMF", child->key) == 0) -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ cf_util_get_boolean(child, &conf->collect_smf); -+#else -+ WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.", -+ child->key, "v4"); -+#endif -+ else if (strcasecmp("CollectVBE", child->key) == 0) -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ cf_util_get_boolean(child, &conf->collect_vbe); -+#else -+ WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.", -+ child->key, "v4"); -+#endif -+ else if (strcasecmp("CollectMSE", child->key) == 0) -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ cf_util_get_boolean(child, &conf->collect_mse); -+#else -+ WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.", -+ child->key, "Plus v4"); - #endif - else { - WARNING("Varnish plugin: Ignoring unknown " -@@ -1275,38 +1736,44 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */ - #endif - && !conf->collect_session && !conf->collect_shm && !conf->collect_sms - #if HAVE_VARNISH_V2 -- && !conf->collect_sma && !conf->collect_sm -+ && !conf->collect_sm -+#endif -+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ && !conf->collect_sma - #endif - && !conf->collect_struct && !conf->collect_totals --#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 -+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 - && !conf->collect_uptime - #endif - && !conf->collect_vcl && !conf->collect_workers --#if HAVE_VARNISH_V4 -- && !conf->collect_vsm -+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 -+ && !conf->collect_vsm && !conf->collect_vbe && !conf->collect_smf && -+ !conf->collect_mgt && !conf->collect_lck && !conf->collect_mempool && -+ !conf->collect_mse - #endif - ) { - WARNING("Varnish plugin: No metric has been configured for " - "instance \"%s\". Disabling this instance.", - (conf->instance == NULL) ? "localhost" : conf->instance); - sfree(conf); -- return (EINVAL); -+ return EINVAL; - } - -- ssnprintf(callback_name, sizeof(callback_name), "varnish/%s", -- (conf->instance == NULL) ? "localhost" : conf->instance); -+ snprintf(callback_name, sizeof(callback_name), "varnish/%s", -+ (conf->instance == NULL) ? "localhost" : conf->instance); - - plugin_register_complex_read( - /* group = */ "varnish", - /* name = */ callback_name, - /* callback = */ varnish_read, -- /* interval = */ 0, &(user_data_t){ -- .data = conf, .free_func = varnish_config_free, -- }); -+ /* interval = */ 0, -+ &(user_data_t){ -+ .data = conf, .free_func = varnish_config_free, -+ }); - - have_instance = 1; - -- return (0); -+ return 0; - } /* }}} int varnish_config_instance */ - - static int varnish_config(oconfig_item_t *ci) /* {{{ */ -@@ -1323,7 +1790,7 @@ static int varnish_config(oconfig_item_t *ci) /* {{{ */ - } - } - -- return (0); -+ return 0; - } /* }}} int varnish_config */ - - void module_register(void) /* {{{ */ -@@ -1331,5 +1798,3 @@ void module_register(void) /* {{{ */ - plugin_register_complex_config("varnish", varnish_config); - plugin_register_init("varnish", varnish_init); - } /* }}} */ -- --/* vim: set sw=8 noet fdm=marker : */ diff --git a/app-metrics/collectd/files/collectd-5.8.0-disk-plugin-udev-fix.patch b/app-metrics/collectd/files/collectd-5.8.0-disk-plugin-udev-fix.patch new file mode 100644 index 000000000000..1a96f06df0a8 --- /dev/null +++ b/app-metrics/collectd/files/collectd-5.8.0-disk-plugin-udev-fix.patch @@ -0,0 +1,98 @@ +From ed696c1b3adcb42d55759efe6f8034337f0fd243 Mon Sep 17 00:00:00 2001 +From: Dylan Stephano-Shachter +Date: Thu, 15 Feb 2018 16:37:33 -0500 +Subject: [PATCH] change HAVE_UDEV_H to HAVE_LIBUDEV_H for bug 2651 + +--- + src/disk.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/src/disk.c b/src/disk.c +index 004ce9e2d7..04f337415f 100644 +--- a/src/disk.c ++++ b/src/disk.c +@@ -139,7 +139,7 @@ static int pnumdisk; + #error "No applicable input method." + #endif + +-#if HAVE_UDEV_H ++#if HAVE_LIBUDEV_H + #include + + static char *conf_udev_name_attr = NULL; +@@ -173,7 +173,7 @@ static int disk_config(const char *key, const char *value) { + "on Mach / Mac OS X and will be ignored."); + #endif + } else if (strcasecmp("UdevNameAttr", key) == 0) { +-#if HAVE_UDEV_H ++#if HAVE_LIBUDEV_H + if (conf_udev_name_attr != NULL) { + free(conf_udev_name_attr); + conf_udev_name_attr = NULL; +@@ -209,7 +209,7 @@ static int disk_init(void) { + /* #endif HAVE_IOKIT_IOKITLIB_H */ + + #elif KERNEL_LINUX +-#if HAVE_UDEV_H ++#if HAVE_LIBUDEV_H + if (conf_udev_name_attr != NULL) { + handle_udev = udev_new(); + if (handle_udev == NULL) { +@@ -217,7 +217,7 @@ static int disk_init(void) { + return -1; + } + } +-#endif /* HAVE_UDEV_H */ ++#endif /* HAVE_LIBUDEV_H */ + /* #endif KERNEL_LINUX */ + + #elif KERNEL_FREEBSD +@@ -260,10 +260,10 @@ static int disk_init(void) { + + static int disk_shutdown(void) { + #if KERNEL_LINUX +-#if HAVE_UDEV_H ++#if HAVE_LIBUDEV_H + if (handle_udev != NULL) + udev_unref(handle_udev); +-#endif /* HAVE_UDEV_H */ ++#endif /* HAVE_LIBUDEV_H */ + #endif /* KERNEL_LINUX */ + return 0; + } /* int disk_shutdown */ +@@ -325,7 +325,7 @@ static counter_t disk_calc_time_incr(counter_t delta_time, + } + #endif + +-#if HAVE_UDEV_H ++#if HAVE_LIBUDEV_H + /** + * Attempt to provide an rename disk instance from an assigned udev attribute. + * +@@ -841,7 +841,7 @@ static int disk_read(void) { + + output_name = disk_name; + +-#if HAVE_UDEV_H ++#if HAVE_LIBUDEV_H + char *alt_name = NULL; + if (conf_udev_name_attr != NULL) { + alt_name = +@@ -852,7 +852,7 @@ static int disk_read(void) { + #endif + + if (ignorelist_match(ignorelist, output_name) != 0) { +-#if HAVE_UDEV_H ++#if HAVE_LIBUDEV_H + /* release udev-based alternate name, if allocated */ + sfree(alt_name); + #endif +@@ -878,7 +878,7 @@ static int disk_read(void) { + submit_io_time(output_name, io_time, weighted_time); + } /* if (is_disk) */ + +-#if HAVE_UDEV_H ++#if HAVE_LIBUDEV_H + /* release udev-based alternate name, if allocated */ + sfree(alt_name); + #endif -- cgit v1.2.3