From 80208fb578cf92cc308906660ca6d7860c6b2a1f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 9 Mar 2018 16:53:27 +0000 Subject: gentoo resync : 09.03.2018 --- app-admin/collectd/Manifest | 12 +- app-admin/collectd/collectd-5.6.2-r4.ebuild | 532 ---------- app-admin/collectd/collectd-5.7.1.ebuild | 537 ----------- app-admin/collectd/collectd-5.7.2-r1.ebuild | 1 + app-admin/collectd/collectd-5.7.2.ebuild | 536 ----------- .../files/collectd-5.6.2-CVE-2017-7401.patch | 56 -- .../collectd/files/collectd-5.6.2-issue2303.patch | 44 - .../files/collectd-5.7.2-varnish-5.2+.patch | 1018 ++++++++++++++++++++ app-admin/collectd/files/collectd.confd-r1 | 45 - app-admin/collectd/files/collectd.initd-r1 | 78 -- 10 files changed, 1021 insertions(+), 1838 deletions(-) delete mode 100644 app-admin/collectd/collectd-5.6.2-r4.ebuild delete mode 100644 app-admin/collectd/collectd-5.7.1.ebuild delete mode 100644 app-admin/collectd/collectd-5.7.2.ebuild delete mode 100644 app-admin/collectd/files/collectd-5.6.2-CVE-2017-7401.patch delete mode 100644 app-admin/collectd/files/collectd-5.6.2-issue2303.patch create mode 100644 app-admin/collectd/files/collectd-5.7.2-varnish-5.2+.patch delete mode 100644 app-admin/collectd/files/collectd.confd-r1 delete mode 100644 app-admin/collectd/files/collectd.initd-r1 (limited to 'app-admin/collectd') diff --git a/app-admin/collectd/Manifest b/app-admin/collectd/Manifest index 35cdbeb311e5..2206025c11b1 100644 --- a/app-admin/collectd/Manifest +++ b/app-admin/collectd/Manifest @@ -1,19 +1,11 @@ AUX collectd-5.6.0-gentoo.patch 4294 BLAKE2B 99274b5a2734910a35ab6a0003d6fe257e239fc0a3b1f3ca398c82b0e28b9365729980999af0db417b3818c7b4de47f48c0118eea88a43f8de162ae40eeb68be SHA512 088f65e2d90c29092621693847f165be7024caa2237a2129dbffcedba3c1f93baa8169de9d3c2979c709219ec12ee0d3b6dd36586ede92062d1a14a28b8611c8 -AUX collectd-5.6.2-CVE-2017-7401.patch 1823 BLAKE2B b723cbe76f0e5b3a6671f9bc385cf1b122dfe919c8ebbf24b82eba0d5b0d49eaac294c0ec5d5961757d688e00e6812c131dc5c051888f2e058970e7f05e7d1f4 SHA512 731fc3d8af2459425ff779325cf1dc9f633521ed539932cb8b254fc49cb5ab2ccae4350d197e479a333658cfc405f4dfcc0a7289bdb9f93e2341c64ee0c772e4 -AUX collectd-5.6.2-issue2303.patch 1349 BLAKE2B ab96687595437f1d6644cba941c2d67ed2ed2ce73dd5f8f2910b33ec4dd7c7a82137317442802a1f05d1577b301d7cf72f33f9c1edf616f19009876012f274e0 SHA512 6d46020d2fad43e1e624c7058d5ea5962bdf647bcd8f4c282ea83a0c57d026408be5efea8190c301fc45e134cb6e52ba02c88c02a693204dc3a917a750813965 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.confd-r1 1742 BLAKE2B fd6b1909bdfae7ee8c63d8c6659651af8318313800a60bdff932202616b8455e7b6459119b590f498dd0720229670ba0fbd2ae0a1f99a5eae6e1a8fc975fb8d1 SHA512 31fc083a5c3a1e16246fc767c24d23d4b4763621ad2b2464f6d333fb3e327150caaf26905ab1c7aae5f6ec503882fc823e05fb272e2941af903f2b5b71aa788d +AUX collectd-5.7.2-varnish-5.2+.patch 40982 BLAKE2B a1f90a27e95b2665626fc2112646f5fb092472f32b58fb6bcc2a6a15e2916bb067b7f8aa7c85fba12eaf839d10b94004a1847f537d5f5535d9a7aac0fe2fe5a7 SHA512 eea0fd89f65b14ba6012160c4d2560e8c6339f7aeb873d93ed35b9c3551d76d6087c6cdbe986610502e8a73b144fba945f1efd1db31e5be792b9ecead2d0eeec AUX collectd.confd-r2 2001 BLAKE2B fbf1a64aab6ec60111553466c3a8b725200ab13d0e09c1ba1d71e68213e8f978c3cad0dfc5eb2c536ced8213f172804f0596b3494f9b42b0cacf3432105cab5a SHA512 729f2b4e06c4a8c95d32c03c6f3f292eaa4895780ace180b74fcf139a949e9c28a2b3ae823bdebec0014f9b4d919adb399bc7f019c68c0e268b263326959edb7 -AUX collectd.initd-r1 2118 BLAKE2B 1824662e55640e09cfeddd982bcc048e17815570af3a603f815195a8515e4e0887fb9e3c9df311e6998badf3b368faf6aeda33b386f9b0f9ba294f94d7fa1162 SHA512 556b0255e5d7ab93e934693431c02ef96d7a3a8df5ec6eb0c1e946f54eac822a1fbdf2a1784c617634cf60c2348681dc639b8c80cab041517a4ac39f18f6ae98 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.6.2.tar.bz2 1806969 BLAKE2B 2311b6cc51297264e1bfc705553c728ad2ae3355ce8b5fb25b8ac91aaef4b78921235c675ff26535e3388c1b1af37aec4d810b2e6c6b60fcc3d79e0149841989 SHA512 81438e2e653649cf8a447f475b41844b7adb8ec436b43fb395ba9cf8b09b56a068633fe4b6c802d5cde3909d85a3af2542f5804005b3843f7936a37553911d61 -DIST collectd-5.7.1.tar.bz2 1797725 BLAKE2B 5a24d74ff26ed8745d3b50d3b22db0a939aedc6048ff279880f892572d5e5799b1e3b4630250ebb9066325b2583f99b441a42d0bd0ab4a3c20b1aba82b9d16f2 SHA512 f2edf4ecf3bbf5f4e10c797614a7ae39c18678601038574cec4f2ea6a8773444af4592e2872ed75a5afe5f746adaff2449df51443d98d2560a23722e46bef164 DIST collectd-5.7.2.tar.bz2 1798777 BLAKE2B 4af359a773457bb9c05b6a301d7728eea7598c200f7ca534875b07d1d011b280ab138f680d9607723f14523dd71dcbec3a41e0d8d183848c8ef809cef86c2b8f SHA512 8844b67159f8da2203b5ac57ef19fce0a01050a016174d196b48b5fb24925ad2935af9bdd9af06097ff663499abc496cdcc2d9e9a10f403f8d707c465c1a88f3 -EBUILD collectd-5.6.2-r4.ebuild 19013 BLAKE2B 01d5c6d9c6258f7956d115e562e8166c3efbe59e4e99a19ed4ee58c4751c1e0c0f896bbd6a0e3a65f562ed404446ebbafef4d728ca0116e4a90896062090b423 SHA512 b5f7790378a0c78c1c7bb052f52d8736fe52b4f7046083a55df33b4139f78b67110a4ca63391f8d5748a8d3085ac24dc141fa47c17b88b3e7431e33b1250e7f1 -EBUILD collectd-5.7.1.ebuild 19243 BLAKE2B 419ca67a4e4ad7526305101feeacd723a11b4ec0807f81e23aa9f0fcb44375798a4e400b5e4c1b5a361a4fdb6b418073069957675dbc0f0f47b1f0d5af366018 SHA512 608a21594c5d608be74f3ab55e206c0ead06e3ae8444bee34e6131a981959de9d01a41ca5ce3664986513873f872da02ce58546d593e52ff44da3275bd98bbba -EBUILD collectd-5.7.2-r1.ebuild 19328 BLAKE2B 9a24f57709e01faa261cf9e427dc4f05e42d3a4234aacc791276af83828ff2880f444c832a728df5133473da2c3d45221e70d88385c09c14c9ee224b8356eccd SHA512 0b535d952b7e12286466ca5786ab915d57aeb825375479cc0daaa69ab1a194bb8e794734515ce25daaa96a5c96cbdf1b04f7833586827662432a05eee80eafe3 -EBUILD collectd-5.7.2.ebuild 19197 BLAKE2B 2696638e0bc1b82d5522040ec654cf720acaa16b947d3248d6b9c5f7eeba61840103e6757271ef561ad3c4cb0d353b0d34b0ddf4be18c97b8dc7e2d8542a51e0 SHA512 810a8f73af91f7cd03caedc361eb421c912bc6ca1386c87527d9e20b8bfba7f25e0064fb5fec52ee00dff264f0756d64a7cc2aa78569ebecca427512f40c5075 +EBUILD collectd-5.7.2-r1.ebuild 19374 BLAKE2B 045fcc1d04414d76f4d39006471783484635328c8fa489cbb1e612a3c4bb53b367723d3e1e3551b678b8f5f3a109eb66c115252e8343097de6a241c5692194dd SHA512 b39c2de505c2e9f2d5649c6b594fb2477373967287300170d17f983d14222111bd18df4a8c586c903365d8fa578d6fe7b388a726e49238f9d51b2d2e618ce742 MISC metadata.xml 1515 BLAKE2B 5525766b822463f94f7c2cddbdf78b4c4ea5a473880a473d0b51481d948569cfc7f51bd2e74eb67065ab2be1b23e4fb7ee99512d018c6e6b5ac1ee7331eae9eb SHA512 51c17c16d27b722d729d036d67c562ab76e212dac9bcd004a7e43c2c5e041b8c46e74f9a130f30c2e18cc95ca1b367034246eff02cfaf55f6f9375ff836749e5 diff --git a/app-admin/collectd/collectd-5.6.2-r4.ebuild b/app-admin/collectd/collectd-5.6.2-r4.ebuild deleted file mode 100644 index af56c138d936..000000000000 --- a/app-admin/collectd/collectd-5.6.2-r4.ebuild +++ /dev/null @@ -1,532 +0,0 @@ -# Copyright 1999-2017 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 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="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) -# grpc: Requires libgrpc -# 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 grpc lpar mic - netapp pf pinba tape write_kafka 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 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_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/mysql-5.0 ) - 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_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 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 NEWS README TODO - - 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-r1" ${PN} - newconfd "${FILESDIR}/${PN}.confd-r1" ${PN} - systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service - - insinto /etc/logrotate.d - newins "${FILESDIR}/${PN}.logrotate" ${PN} - - sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":PIDFile "/run/collectd/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() { - 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="${EROOT}usr/lib/systemd/system/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 - 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-admin/collectd/collectd-5.7.1.ebuild b/app-admin/collectd/collectd-5.7.1.ebuild deleted file mode 100644 index 300d0261307e..000000000000 --- a/app-admin/collectd/collectd-5.7.1.ebuild +++ /dev/null @@ -1,537 +0,0 @@ -# Copyright 1999-2017 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 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="~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/mysql-5.0 ) - 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-r1" ${PN} - newconfd "${FILESDIR}/${PN}.confd-r1" ${PN} - systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service - - insinto /etc/logrotate.d - newins "${FILESDIR}/${PN}.logrotate" ${PN} - - sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":PIDFile "/run/collectd/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() { - 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="${EROOT}usr/lib/systemd/system/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 - 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-admin/collectd/collectd-5.7.2-r1.ebuild b/app-admin/collectd/collectd-5.7.2-r1.ebuild index a040f5e72fca..c2cd8a8283ea 100644 --- a/app-admin/collectd/collectd-5.7.2-r1.ebuild +++ b/app-admin/collectd/collectd-5.7.2-r1.ebuild @@ -158,6 +158,7 @@ PATCHES=( "${FILESDIR}"/${PN}-5.6.0-gentoo.patch "${FILESDIR}"/${PN}-5.7.2-issue-2443.patch "${FILESDIR}"/${PN}-5.7.2-CVE-2017-16820.patch + "${FILESDIR}"/${PN}-5.7.2-varnish-5.2+.patch ) # @FUNCTION: collectd_plugin_kernel_linux diff --git a/app-admin/collectd/collectd-5.7.2.ebuild b/app-admin/collectd/collectd-5.7.2.ebuild deleted file mode 100644 index a24d03f2715a..000000000000 --- a/app-admin/collectd/collectd-5.7.2.ebuild +++ /dev/null @@ -1,536 +0,0 @@ -# Copyright 1999-2017 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 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="~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/mysql-5.0 ) - 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-r1" ${PN} - newconfd "${FILESDIR}/${PN}.confd-r1" ${PN} - systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service - - insinto /etc/logrotate.d - newins "${FILESDIR}/${PN}.logrotate" ${PN} - - sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":PIDFile "/run/collectd/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() { - 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="${EROOT}usr/lib/systemd/system/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 - 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-admin/collectd/files/collectd-5.6.2-CVE-2017-7401.patch b/app-admin/collectd/files/collectd-5.6.2-CVE-2017-7401.patch deleted file mode 100644 index 7c23ac18d8f8..000000000000 --- a/app-admin/collectd/files/collectd-5.6.2-CVE-2017-7401.patch +++ /dev/null @@ -1,56 +0,0 @@ -From f6be4f9b49b949b379326c3d7002476e6ce4f211 Mon Sep 17 00:00:00 2001 -From: Pavel Rochnyack -Date: Mon, 3 Apr 2017 11:57:09 +0600 -Subject: [PATCH] network plugin: Fix endless loop DOS in parse_packet() - -When correct 'Signature part' is received by Collectd, configured without -AuthFile option, condition for endless loop occurs due to missing increase -of pointer to next unprocessed part. - -This is a forward-port of #2233. - -Fixes: CVE-2017-7401 -Closes: #2174 -Signed-off-by: Florian Forster ---- - src/network.c | 20 ++++++++++++-------- - 1 file changed, 12 insertions(+), 8 deletions(-) - -diff --git a/src/network.c b/src/network.c -index be4c3ba..2ff09af 100644 ---- a/src/network.c -+++ b/src/network.c -@@ -1003,14 +1003,6 @@ static int parse_part_sign_sha256(sockent_t *se, /* {{{ */ - buffer_len = *ret_buffer_len; - buffer_offset = 0; - -- if (se->data.server.userdb == NULL) { -- c_complain( -- LOG_NOTICE, &complain_no_users, -- "network plugin: Received signed network packet but can't verify it " -- "because no user DB has been configured. Will accept it."); -- return (0); -- } -- - /* Check if the buffer has enough data for this structure. */ - if (buffer_len <= PART_SIGNATURE_SHA256_SIZE) - return (-ENOMEM); -@@ -1027,6 +1019,18 @@ static int parse_part_sign_sha256(sockent_t *se, /* {{{ */ - return (-1); - } - -+ if (se->data.server.userdb == NULL) { -+ c_complain( -+ LOG_NOTICE, &complain_no_users, -+ "network plugin: Received signed network packet but can't verify it " -+ "because no user DB has been configured. Will accept it."); -+ -+ *ret_buffer = buffer + pss_head_length; -+ *ret_buffer_len -= pss_head_length; -+ -+ return (0); -+ } -+ - /* Copy the hash. */ - BUFFER_READ(pss.hash, sizeof(pss.hash)); - diff --git a/app-admin/collectd/files/collectd-5.6.2-issue2303.patch b/app-admin/collectd/files/collectd-5.6.2-issue2303.patch deleted file mode 100644 index 0fffcd6b9224..000000000000 --- a/app-admin/collectd/files/collectd-5.6.2-issue2303.patch +++ /dev/null @@ -1,44 +0,0 @@ -From fd01cdd0546ccbbda7f4cf5db2d0ae28e1e770cd Mon Sep 17 00:00:00 2001 -From: Ruben Kerkhof -Date: Tue, 30 May 2017 17:25:17 +0200 -Subject: [PATCH] Bind plugin: plug a few leaks - -Fixes: #2303 ---- - src/bind.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/src/bind.c b/src/bind.c -index 4860f1b604..853b9c26a3 100644 ---- a/src/bind.c -+++ b/src/bind.c -@@ -526,8 +526,10 @@ static int bind_parse_generic_name_value(const char *xpath_expression, /* {{{ */ - status = bind_xml_read_gauge(doc, counter, &value.gauge); - else - status = bind_xml_read_derive(doc, counter, &value.derive); -- if (status != 0) -+ if (status != 0) { -+ xmlFree(name); - continue; -+ } - - status = (*list_callback)(name, value, current_time, user_data); - if (status == 0) -@@ -659,12 +661,16 @@ static int bind_parse_generic_name_attr_value_list( - status = bind_xml_read_gauge(doc, child, &value.gauge); - else - status = bind_xml_read_derive(doc, child, &value.derive); -- if (status != 0) -+ if (status != 0) { -+ xmlFree(attr_name); - continue; -+ } - - status = (*list_callback)(attr_name, value, current_time, user_data); - if (status == 0) - num_entries++; -+ -+ xmlFree(attr_name); - } - } - diff --git a/app-admin/collectd/files/collectd-5.7.2-varnish-5.2+.patch b/app-admin/collectd/files/collectd-5.7.2-varnish-5.2+.patch new file mode 100644 index 000000000000..60830042fa6a --- /dev/null +++ b/app-admin/collectd/files/collectd-5.7.2-varnish-5.2+.patch @@ -0,0 +1,1018 @@ +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-admin/collectd/files/collectd.confd-r1 b/app-admin/collectd/files/collectd.confd-r1 deleted file mode 100644 index 1ad78f839d8a..000000000000 --- a/app-admin/collectd/files/collectd.confd-r1 +++ /dev/null @@ -1,45 +0,0 @@ -# Distributed under the terms of the GNU General Public License v2 - -# Nice value used to launch collectd, to change priority of the process. As -# you usually we want to run it in background, a default of 5 is used. -# -#COLLECTD_NICELEVEL=5 - -# Location of configuration file. Modify if you don't like the standard -# one. -# -#COLLECTD_CONFIGFILE="/etc/collectd.conf" - -# File used to store the PID file. Usually you won't need to touch it. -# -#COLLECTD_PIDFILE="/run/collectd/collectd.pid" - -# User to run collectd as (default is collectd, change to root or give -# collectd user appropriate privileges if you use one of the plugins that -# require it, as e.g. ping or iptables plugins) -# -#COLLECTD_USER="collectd" - -# The group is only important if you are using collectd's UNIX socket -# in the default location (/run/collectd) because we will chown the -# default location to COLLECTD_USER:COLLECTD_GROUP. The default value -# is "collectd". -#COLLECTD_GROUP="collectd" - -# You can use this configuration option to pass additional options to the -# start-stop-daemon, see start-stop-daemon(8) for more details. -# Per default we wait 1000ms after we have started the service to ensure -# that the daemon is really up and running. -#COLLECTD_SSDARGS="--wait 1000" - -# The termination timeout (start-stop-daemon parameter "retry") ensures -# that the service will be terminated within a given time (25 + 5 seconds -# per default) when you are stopping the service. -#COLLECTD_TERMTIMEOUT="TERM/25/KILL/5" - -# Options to collectd -# See collectd(8) for more details -# Notes: -# * Do not specify another PIDFILE but use the variable above to change the location -# * Do not specify another CONFIGFILE but use the variable above to change the location -#COLLECTD_OPTS="" diff --git a/app-admin/collectd/files/collectd.initd-r1 b/app-admin/collectd/files/collectd.initd-r1 deleted file mode 100644 index e65f85a7bcbf..000000000000 --- a/app-admin/collectd/files/collectd.initd-r1 +++ /dev/null @@ -1,78 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -COLLECTD_CONFIGFILE=${COLLECTD_CONFIGFILE:-"/etc/collectd.conf"} -COLLECTD_PIDFILE=${COLLECTD_PIDFILE:-"/run/collectd/collectd.pid"} -COLLECTD_NICELEVEL=${COLLECTD_NICELEVEL:-5} -COLLECTD_USER=${COLLECTD_USER:-"collectd"} -COLLECTD_GROUP=${COLLECTD_GROUP:-"collectd"} -COLLECTD_SSDARGS=${COLLECTD_SSDARGS:-"--wait 1000"} -COLLECTD_TERMTIMEOUT=${COLLECTD_TERMTIMEOUT:-"TERM/25/KILL/5"} -COLLECTD_OPTS=${COLLECTD_OPTS:-""} - -command="/usr/sbin/collectd" -command_args="${COLLECTD_OPTS} -C \"${COLLECTD_CONFIGFILE}\" -P \"${COLLECTD_PIDFILE}\"" -start_stop_daemon_args="${COLLECTD_SSDARGS} --nice ${COLLECTD_NICELEVEL} --user ${COLLECTD_USER}:${COLLECTD_GROUP}" -pidfile="${COLLECTD_PIDFILE}" -retry="${COLLECTD_TERMTIMEOUT}" - -extra_commands="configtest" -description_configtest="Run collectd's internal config check." - -required_files="\"${COLLECTD_CONFIGFILE}\"" - -depend() { - use dns -} - -_checkconfig() { - if [ $(sed '/^$\|^#/d' "${COLLECTD_CONFIGFILE}" | grep 'LoadPlugin[[:space:]]\+oracle' | wc -l) -ge 1 ] ; then - if [ -e /etc/env.d/50oracle-instantclient-basic ] ; then - . /etc/env.d/50oracle-instantclient-basic - export ORACLE_HOME - export TNS_ADMIN - else - ewarn "Unable to set Oracle environment, Oracle plugin wont work" - fi - fi - - local test_command="${command} -t -C \"${COLLECTD_CONFIGFILE}\"" - - eval ${test_command} 1>/dev/null 2>&1 - ret=$? - if [ $ret -ne 0 ]; then - eerror "${SVCNAME} has detected an error in your configuration:" - eval ${test_command} - fi - - return $ret -} - -configtest() { - ebegin "Checking ${SVCNAME} configuration" - _checkconfig - eend $? -} - -start_pre() { - if [ "${RC_CMD}" != "restart" ]; then - configtest || return 1 - fi - - checkpath --directory --mode 0770 --owner ${COLLECTD_USER}:${COLLECTD_GROUP} "$(dirname "${COLLECTD_PIDFILE}")" -} - -stop_pre() { - if [ "${RC_CMD}" = "restart" ]; then - configtest || return 1 - fi -} - -stop_post() { - if [ -f "${COLLECTD_PIDFILE}" ]; then - vebegin "Removing stale PID file" - rm --force "${COLLECTD_PIDFILE}" - veend $? - fi -} -- cgit v1.2.3