* [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/
@ 2018-08-02 18:40 Thomas Deutschmann
0 siblings, 0 replies; 10+ messages in thread
From: Thomas Deutschmann @ 2018-08-02 18:40 UTC (permalink / raw
To: gentoo-commits
commit: 230977ee8c2ce01b6b5d1e8c5900f6c4e496c550
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 2 18:40:08 2018 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Thu Aug 2 18:40:33 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=230977ee
app-metrics/collectd: drop old
Package-Manager: Portage-2.3.44, Repoman-2.3.10
app-metrics/collectd/Manifest | 1 -
app-metrics/collectd/collectd-5.7.2-r3.ebuild | 548 -----------
.../collectd/files/collectd-5.6.0-gentoo.patch | 153 ---
.../files/collectd-5.7.2-CVE-2017-16820.patch | 39 -
.../collectd/files/collectd-5.7.2-issue-2443.patch | 160 ---
.../files/collectd-5.7.2-varnish-5.2+.patch | 1018 --------------------
6 files changed, 1919 deletions(-)
diff --git a/app-metrics/collectd/Manifest b/app-metrics/collectd/Manifest
index 9fb11846c23..36255f3caad 100644
--- a/app-metrics/collectd/Manifest
+++ b/app-metrics/collectd/Manifest
@@ -1,2 +1 @@
-DIST collectd-5.7.2.tar.bz2 1798777 BLAKE2B 4af359a773457bb9c05b6a301d7728eea7598c200f7ca534875b07d1d011b280ab138f680d9607723f14523dd71dcbec3a41e0d8d183848c8ef809cef86c2b8f SHA512 8844b67159f8da2203b5ac57ef19fce0a01050a016174d196b48b5fb24925ad2935af9bdd9af06097ff663499abc496cdcc2d9e9a10f403f8d707c465c1a88f3
DIST collectd-5.8.0.tar.bz2 1686017 BLAKE2B 26d995cdb9c25869bf96a056e6ba879de9f009fd4bbf1364a7dedba93b822e57c4b606ca8c84da68cc29db8e77333047695e85d7eb101080de9cee783240f5ea SHA512 1b3d0cc44e2ca54e13eebf292074f1efa8b33d6800d04405e0eaaa2dd1cb2416c6eae580729fb5aead23a5039f41ffe8a9989a907a8c18be8f867f1099fc0008
diff --git a/app-metrics/collectd/collectd-5.7.2-r3.ebuild b/app-metrics/collectd/collectd-5.7.2-r3.ebuild
deleted file mode 100644
index 32854c2b44a..00000000000
--- a/app-metrics/collectd/collectd-5.7.2-r3.ebuild
+++ /dev/null
@@ -1,548 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
-JAVA_PKG_OPT_USE="collectd_plugins_java"
-
-inherit autotools fcaps flag-o-matic java-pkg-opt-2 linux-info multilib perl-functions python-single-r1 systemd tmpfiles user
-
-DESCRIPTION="Collects system statistics and provides mechanisms to store the values"
-
-HOMEPAGE="https://collectd.org/"
-SRC_URI="${HOMEPAGE%/}/files/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="alpha amd64 arm x86"
-IUSE="contrib debug java kernel_Darwin kernel_FreeBSD kernel_linux perl selinux static-libs udev xfs"
-
-# The plugin lists have to follow here since they extend IUSE
-
-# Plugins that don't build (e.g. dependencies not in Gentoo)
-# apple_sensors: Requires libIOKit
-# aquaero: Requires aerotools-ng/libaquaero5
-# barometer: Requires libi2c (i2c_smbus_read_i2c_block_data)
-# dpdkstat: Requires dpdk
-# grpc: Requires libgrpc
-# intel_rdt Requires libpqos from intel-cmt-cat project
-# lpar: Requires libperfstat (AIX only)
-# mic: Requires Intel Many Integrated Core Architecture API
-# (part of Intel's Xeon Phi software)
-# netapp: Requires libnetapp (http://communities.netapp.com/docs/DOC-1110)
-# pf: Requires BSD packet filter
-# pinba: Requires MySQL Pinba engine (http://pinba.org/)
-# tape: Requires libkstat (Solaris only)
-# write_mongodb: https://github.com/collectd/collectd/issues/492
-# write_riemann: Requires riemann-c-client
-# xmms: Requires libxmms (v1)
-# zone: Solaris only...
-COLLECTD_IMPOSSIBLE_PLUGINS="apple_sensors aquaero barometer dpdkstat grpc
- intel_rdt lpar mic netapp pf pinba tape write_mongodb
- write_riemann xmms zone"
-
-# Plugins that have been (compile) tested and can be enabled via COLLECTD_PLUGINS
-COLLECTD_TESTED_PLUGINS="aggregation amqp apache apcups ascent battery bind
- ceph cgroups chrony conntrack contextswitch cpu cpufreq cpusleep
- csv curl curl_json curl_xml dbi df disk dns drbd email
- entropy ethstat exec fhcount filecount fscache gmond gps hddtemp
- hugepages interface ipc ipmi iptables ipvs irq java lua
- load logfile log_logstash lvm madwifi match_empty_counter
- match_hashed match_regex match_timediff match_value mbmon md
- memcachec memcached memory modbus mqtt multimeter mysql netlink
- network network nfs nginx notify_desktop notify_email notify_nagios
- ntpd numa nut olsrd onewire openldap openvpn oracle perl ping
- postgresql powerdns processes protocols python python redis
- routeros rrdcached rrdtool sensors serial sigrok smart snmp statsd
- swap syslog table tail tail_csv target_notification target_replace
- target_scale target_set tcpconns teamspeak2 ted thermal threshold
- tokyotyrant turbostat unixsock uptime users uuid varnish virt
- vmem vserver wireless write_graphite write_http write_kafka
- write_log write_prometheus write_redis write_sensu write_tsdb
- xencpu zfs_arc zookeeper"
-
-COLLECTD_DISABLED_PLUGINS="${COLLECTD_IMPOSSIBLE_PLUGINS}"
-
-COLLECTD_ALL_PLUGINS=${COLLECTD_TESTED_PLUGINS}
-
-for plugin in ${COLLECTD_ALL_PLUGINS}; do
- IUSE="${IUSE} collectd_plugins_${plugin}"
-done
-unset plugin
-
-# Now come the dependencies.
-
-COMMON_DEPEND="
- dev-libs/libgcrypt:=
- dev-libs/libltdl:0=
- perl? ( dev-lang/perl:=[ithreads] )
- udev? ( virtual/udev )
- xfs? ( sys-fs/xfsprogs )
- collectd_plugins_amqp? ( net-libs/rabbitmq-c )
- collectd_plugins_apache? ( net-misc/curl:0= )
- collectd_plugins_ascent? ( net-misc/curl:0= dev-libs/libxml2:2= )
- collectd_plugins_bind? ( net-misc/curl:0= dev-libs/libxml2:2= )
- collectd_plugins_ceph? ( dev-libs/yajl:= )
- collectd_plugins_curl? ( net-misc/curl:0= )
- collectd_plugins_curl_json? ( net-misc/curl:0= dev-libs/yajl:= )
- collectd_plugins_curl_xml? ( net-misc/curl:0= dev-libs/libxml2:2= )
- collectd_plugins_dbi? ( dev-db/libdbi )
- collectd_plugins_dns? ( net-libs/libpcap )
- collectd_plugins_gmond? ( sys-cluster/ganglia )
- collectd_plugins_gps? ( sci-geosciences/gpsd:= )
- collectd_plugins_ipmi? ( >=sys-libs/openipmi-2.0.16-r1 )
- collectd_plugins_iptables? ( >=net-firewall/iptables-1.4.13:0= )
- collectd_plugins_log_logstash? ( dev-libs/yajl:= )
- collectd_plugins_lua? ( dev-lang/lua:0= )
- collectd_plugins_lvm? ( sys-fs/lvm2 )
- collectd_plugins_memcachec? ( dev-libs/libmemcached )
- collectd_plugins_modbus? ( dev-libs/libmodbus )
- collectd_plugins_mqtt? ( app-misc/mosquitto )
- collectd_plugins_mysql? ( virtual/libmysqlclient:= )
- collectd_plugins_netlink? ( net-libs/libmnl )
- collectd_plugins_nginx? ( net-misc/curl:0= )
- collectd_plugins_notify_desktop? ( x11-libs/libnotify )
- collectd_plugins_notify_email? ( net-libs/libesmtp )
- collectd_plugins_nut? ( >=sys-power/nut-2.7.2-r2 )
- collectd_plugins_openldap? ( net-nds/openldap )
- collectd_plugins_onewire? ( >=sys-fs/owfs-3.1:= )
- collectd_plugins_oracle? ( dev-db/oracle-instantclient-basic )
- collectd_plugins_perl? ( dev-lang/perl:=[ithreads] )
- collectd_plugins_ping? ( net-libs/liboping )
- collectd_plugins_postgresql? ( dev-db/postgresql:= )
- collectd_plugins_python? ( ${PYTHON_DEPS} )
- collectd_plugins_redis? ( dev-libs/hiredis:= )
- collectd_plugins_routeros? ( net-libs/librouteros )
- collectd_plugins_rrdcached? ( net-analyzer/rrdtool:= )
- collectd_plugins_rrdtool? ( net-analyzer/rrdtool:= )
- collectd_plugins_sensors? ( sys-apps/lm_sensors )
- collectd_plugins_sigrok? ( <sci-libs/libsigrok-0.4:= dev-libs/glib:2 )
- collectd_plugins_smart? ( dev-libs/libatasmart )
- collectd_plugins_snmp? ( net-analyzer/net-snmp )
- collectd_plugins_tokyotyrant? ( net-misc/tokyotyrant )
- collectd_plugins_varnish? ( www-servers/varnish )
- collectd_plugins_virt? ( app-emulation/libvirt:= dev-libs/libxml2:2= )
- collectd_plugins_write_http? ( net-misc/curl:0= dev-libs/yajl:= )
- collectd_plugins_write_kafka? ( >=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 )
- !<sys-apps/openrc-0.18.2"
-
-REQUIRED_USE="
- collectd_plugins_python? ( ${PYTHON_REQUIRED_USE} )
- collectd_plugins_smart? ( udev )"
-
-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
-# @DESCRIPTION:
-# USAGE: <plugin name> <kernel_options> <severity>
-# kernel_options is a list of kernel configurations options; the check tests whether at least
-# one of them is enabled. If no, depending on the third argument an elog, ewarn, or eerror message
-# is emitted.
-collectd_plugin_kernel_linux() {
- local multi_opt opt
- if has ${1} ${COLLECTD_ALL_PLUGINS}; then
- if use collectd_plugins_${1}; then
- for opt in ${2}; do
- if linux_chkconfig_present ${opt}; then
- return 0;
- fi
- done
- multi_opt=${2//\ /\ or\ }
- case ${3} in
- (info)
- elog "The ${1} plugin can use kernel features that are disabled now; enable ${multi_opt} in your kernel"
- ;;
- (warn)
- ewarn "The ${1} plugin uses kernel features that are disabled now; enable ${multi_opt} in your kernel"
- ;;
- (error)
- eerror "The ${1} plugin needs kernel features that are disabled now; enable ${multi_opt} in your kernel"
- ;;
- (*)
- die "function collectd_plugin_kernel_linux called with invalid third argument"
- ;;
- esac
- fi
- fi
-}
-
-collectd_linux_kernel_checks() {
- if ! linux_chkconfig_present PROC_FS; then
- ewarn "/proc file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable PROC_FS in your kernel"
- fi
-
- if ! linux_chkconfig_present SYSFS; then
- ewarn "/sys file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable SYSFS in your kernel"
- fi
-
- # battery.c: /proc/pmu/battery_%i
- # battery.c: /proc/acpi/battery
- collectd_plugin_kernel_linux battery ACPI_BATTERY warn
-
- # cgroups.c: /sys/fs/cgroup/
- collectd_plugin_kernel_linux cgroups CGROUPS warn
-
- # cpufreq.c: /sys/devices/system/cpu/cpu%d/cpufreq/
- collectd_plugin_kernel_linux cpufreq SYSFS warn
- collectd_plugin_kernel_linux cpufreq CPU_FREQ_STAT warn
-
- # drbd.c: /proc/drbd
- collectd_plugin_kernel_linux drbd BLK_DEV_DRBD warn
-
- # conntrack.c: /proc/sys/net/netfilter/*
- collectd_plugin_kernel_linux conntrack NETFILTER warn
-
- # fscache.c: /proc/fs/fscache/stats
- collectd_plugin_kernel_linux fscache FSCACHE warn
-
- # nfs.c: /proc/net/rpc/nfs
- # nfs.c: /proc/net/rpc/nfsd
- collectd_plugin_kernel_linux nfs NFS_COMMON warn
-
- # serial.c: /proc/tty/driver/serial
- # serial.c: /proc/tty/driver/ttyS
- collectd_plugin_kernel_linux serial SERIAL_CORE warn
-
- # swap.c: /proc/meminfo
- collectd_plugin_kernel_linux swap SWAP warn
-
- # thermal.c: /proc/acpi/thermal_zone
- # thermal.c: /sys/class/thermal
- collectd_plugin_kernel_linux thermal ACPI_THERMAL warn
-
- # turbostat.c: /dev/cpu/%d/msr
- collectd_plugin_kernel_linux turbostat X86_MSR warn
-
- # vmem.c: /proc/vmstat
- collectd_plugin_kernel_linux vmem VM_EVENT_COUNTERS warn
-
- # vserver.c: /proc/virtual
- collectd_plugin_kernel_linux vserver VSERVER warn
-
- # uuid.c: /sys/hypervisor/uuid
- collectd_plugin_kernel_linux uuid SYSFS info
-
- # wireless.c: /proc/net/wireless
- collectd_plugin_kernel_linux wireless "WIRELESS MAC80211 IEEE80211" warn
-
- # zfs_arc.c: /proc/spl/kstat/zfs/arcstats
- collectd_plugin_kernel_linux zfs_arc "SPL ZFS" warn
-}
-
-pkg_setup() {
- if use kernel_linux; then
- linux-info_pkg_setup
-
- if linux_config_exists; then
- einfo "Checking your linux kernel configuration:"
- collectd_linux_kernel_checks
- else
- elog "Cannot find a linux kernel configuration. Continuing anyway."
- fi
- fi
-
- if use collectd_plugins_java; then
- java-pkg-opt-2_pkg_setup
- fi
-
- use collectd_plugins_python && python-single-r1_pkg_setup
-
- enewgroup collectd
- enewuser collectd -1 -1 /var/lib/collectd collectd
-}
-
-src_prepare() {
- default
-
- # There's some strange prefix handling in the default config file, resulting in
- # paths like "/usr/var/..."
- sed -i -e "s:@prefix@/var:/var:g" src/collectd.conf.in || die
-
- # fix installdirs for perl, bug 444360
- sed -i -e 's/INSTALL_BASE=$(DESTDIR)$(prefix) //' bindings/Makefile.am || die
-
- # Adjust upstream's systemd unit
- # - Get rid of EnvironmentFile directive; These files don't exist on Gentoo!
- # - Add User=collectd to run collectd as user "collectd" per default
- sed -i \
- -e '/^EnvironmentFile=.*/d' \
- -e '/^\[Service\]/aUser=collectd' \
- contrib/systemd.${PN}.service || die
-
- if use collectd_plugins_java; then
- # Set javac -source and -target flags according to (R)DEPEND.
- sed -i -e "s/\$(JAVAC)/\0 $(java-pkg_javac-args)/g" bindings/java/Makefile.am || die
- fi
-
- ebegin "Removing bundled libltdl"
- rm -rf libltdl || die
- eend 0
-
- eautoreconf
-}
-
-src_configure() {
- # Now come the lists of os-dependent plugins. Any plugin that is not listed anywhere here
- # should work independent of the operating system.
-
- local linux_plugins="barometer battery cpu cpufreq disk
- drbd entropy ethstat hugepages interface iptables
- ipvs irq ipc load memory md netlink nfs numa processes
- serial swap tcpconns thermal turbostat users vmem wireless
- zfc_arc"
-
- local need_libstatgrab=0
- local libstatgrab_plugins="cpu disk interface load memory swap users"
- local bsd_plugins="cpu tcpconns ${libstatgrab_plugins} zfc_arc"
-
- local darwin_plugins="apple_sensors battery cpu disk interface memory processes tcpconns"
-
- local osdependent_plugins="${linux_plugins} ${bsd_plugins} ${darwin_plugins}"
- local myos_plugins=""
- if use kernel_linux; then
- einfo "Enabling Linux plugins."
- myos_plugins=${linux_plugins}
- elif use kernel_FreeBSD; then
- einfo "Enabling FreeBSD plugins."
- myos_plugins=${bsd_plugins}
- elif use kernel_Darwin; then
- einfo "Enabling Darwin plugins."
- myos_plugins=${darwin_plugins}
- fi
-
- local myconf="--disable-werror"
-
- # Do we debug?
- myconf+=" $(use_enable debug)"
-
- # udev support?
- # Required for smart plugin via REQUIRED_USE; Optional for disk plugin
- if use udev; then
- myconf+=" --with-libudev"
- else
- myconf+=" --without-libudev"
- fi
-
- local plugin
-
- # Disable what needs to be disabled.
- for plugin in ${COLLECTD_DISABLED_PLUGINS}; do
- myconf+=" --disable-${plugin}"
- done
-
- # Set enable/disable for each single plugin.
- for plugin in ${COLLECTD_ALL_PLUGINS}; do
- if has ${plugin} ${osdependent_plugins}; then
- # plugin is os-dependent ...
- if has ${plugin} ${myos_plugins}; then
- # ... and available in this os
- myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
- # ... must we link against libstatgrab? Bug #541518
- if use kernel_FreeBSD && has ${plugin} ${libstatgrab_plugins}; then
- einfo "We must link against libstatgrab due to plugin \"${plugin}\" ..."
- need_libstatgrab=1
- fi
- else
- # ... and NOT available in this os
- if use collectd_plugins_${plugin}; then
- ewarn "You try to enable the ${plugin} plugin, but it is not available for this"
- ewarn "kernel. Disabling it automatically."
- fi
- myconf+=" --disable-${plugin}"
- fi
- elif [[ "${plugin}" = "collectd_plugins_perl" ]]; then
- if use collectd_plugins_perl && ! use perl; then
- ewarn "Perl plugin disabled as perl bindings disabled by -perl use flag"
- myconf+= --disable-perl
- else
- myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
- fi
- else
- myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
- fi
- done
-
- if [ "${need_libstatgrab}" -eq 1 ]; then
- myconf+=" --with-libstatgrab"
- else
- myconf+=" --without-libstatgrab"
- fi
-
- # JAVA_HOME is set by eclasses.
- if use collectd_plugins_java; then
- myconf+=" --with-java"
- fi
-
- # Need libiptc ONLY for iptables. If we try to use it otherwise bug 340109 happens.
- # lots of libs are only needed for plugins, if they are disabled, also disable the lib
- use collectd_plugins_iptables || myconf+=" --with-libiptc=no"
- use collectd_plugins_openldap || myconf+=" --with-libldap=no"
- use collectd_plugins_redis || use collectd_plugins_write_redis || myconf+=" --with-libhiredis=no"
- use collectd_plugins_smart || myconf+=" --with-libatasmart=no"
- use collectd_plugins_gps || myconf+=" --with-libgps=no"
-
- if use perl; then
- myconf+=" --with-perl-bindings=INSTALLDIRS=vendor"
- else
- myconf+=" --without-perl-bindings"
- fi
-
- # No need for v5upgrade
- myconf+=" --disable-target_v5upgrade"
-
- # Python
- if use collectd_plugins_python; then
- myconf+=" --with-libpython=yes"
- export PYTHON_CONFIG=$(python_get_PYTHON_CONFIG)
- else
- myconf+=" --with-libpython=no"
- fi
-
- # XFS support
- myconf+=" $(use_enable xfs)"
-
- # Finally, run econf.
- KERNEL_DIR="${KERNEL_DIR}" econf --config-cache \
- $(use_enable static-libs static) \
- --localstatedir=/var ${myconf}
-}
-
-src_install() {
- emake DESTDIR="${D%/}" install
-
- perl_delete_localpod
-
- find "${ED}"usr/ -name "*.la" -delete || die
-
- if use collectd_plugins_java; then
- java-pkg_regjar "${ED}"usr/share/${PN}/java/*.jar
- fi
-
- fowners root:collectd /etc/collectd.conf
- fperms u=rw,g=r,o= /etc/collectd.conf
-
- dodoc AUTHORS ChangeLog README
-
- if use contrib ; then
- insinto /usr/share/doc/${PF}
- doins -r contrib
- fi
-
- keepdir /var/lib/${PN}
- fowners collectd:collectd /var/lib/${PN}
-
- newinitd "${FILESDIR}/${PN}.initd-r2" ${PN}
- newconfd "${FILESDIR}/${PN}.confd-r2" ${PN}
- systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf
-
- sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":#PIDFile "/run/collectd.pid":' "${ED}"etc/collectd.conf || die
- sed -i -e 's:^# SocketFile "/var/run/collectd-unixsock":# SocketFile "/run/collectd/collectd.socket":' "${ED}"etc/collectd.conf || die
- sed -i -e 's:^.*LoadPlugin perl$:# The new, correct way to load the perl plugin -- \n# <LoadPlugin perl>\n# Globals true\n# </LoadPlugin>:' "${ED}"etc/collectd.conf || die
- sed -i -e 's:^.*LoadPlugin python$:# The new, correct way to load the python plugin -- \n# <LoadPlugin python>\n# Globals true\n# </LoadPlugin>:' "${ED}"etc/collectd.conf || die
-}
-
-pkg_postinst() {
- tmpfiles_process "${PN}.conf"
-
- if use filecaps; then
- local caps=()
- use collectd_plugins_ceph && caps+=('CAP_DAC_OVERRIDE')
- use collectd_plugins_exec && caps+=('CAP_SETUID' 'CAP_SETGID')
- use collectd_plugins_iptables && caps+=('CAP_NET_ADMIN')
- use collectd_plugins_filecount && caps+=('CAP_DAC_READ_SEARCH')
-
- if use collectd_plugins_dns || use collectd_plugins_ping; then
- caps+=('CAP_NET_RAW')
- fi
-
- if use collectd_plugins_turbostat || use collectd_plugins_smart; then
- caps+=('CAP_SYS_RAWIO')
- fi
-
- if [ ${#caps[@]} -gt 0 ]; then
- local caps_str=$(IFS=","; echo "${caps[*]}")
- fcaps ${caps_str} usr/sbin/collectd
- elog "Capabilities for ${EROOT}usr/sbin/collectd set to:"
- elog " ${caps_str}+EP"
- elog
-
- local systemd_unit="$(systemd_get_systemunitdir)/collectd.service"
- if [[ -e "${systemd_unit}" ]]; then
- caps_str="${caps[*]}"
- sed -i -e "s:^CapabilityBoundingSet=.*:CapabilityBoundingSet=${caps_str}:" "${systemd_unit}" || \
- die "Failed to set CapabilityBoundingSet in '${systemd_unit}'"
-
- elog "CapabilityBoundingSet in '${systemd_unit}'"
- elog "updated to match capabilities set above."
- elog
- else
- if has_version "sys-apps/systemd"; then
- # Bug 596852
- ewarn "Failed to update CapabilityBoundingSet in '${systemd_unit}'"
- ewarn "because unit was not found. Please file a bug about this."
- fi
- fi
- fi
- fi
-
- elog "Note: Collectd is only the collector."
- elog " You need to install 'data' sources (applications) locally or"
- elog " remotely on your own."
-
- elog
- elog "Collectd is configured to run as unprivileged user by default."
- elog "You may want to revisit the configuration."
- elog
-
- if use collectd_plugins_email; then
- ewarn "The email plug-in is deprecated. To submit statistics please use the unixsock plugin."
- fi
-
- if use collectd_plugins_smart; then
- elog ""
- elog "If you are using smart plugin and don't run collectd as root make sure"
- elog "that the collectd user is allowed to access the disk you want to monitor"
- elog "(can be done via udev rule for example) and that collectd has the required"
- elog "capabilities set (which is the default when package was emerged with"
- elog "'filecaps' USE flag set)."
- fi
-
- if use contrib; then
- elog "The scripts in /usr/share/doc/${PF}/collection3 for generating graphs need dev-perl/HTML-Parser,"
- elog "dev-perl/config-general, dev-perl/regexp-common, and net-analyzer/rrdtool[perl] to be installed."
- fi
-}
diff --git a/app-metrics/collectd/files/collectd-5.6.0-gentoo.patch b/app-metrics/collectd/files/collectd-5.6.0-gentoo.patch
deleted file mode 100644
index dd8c1576354..00000000000
--- a/app-metrics/collectd/files/collectd-5.6.0-gentoo.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From 8fe20883e248572690798e4dd1423511aa2f4e5d Mon Sep 17 00:00:00 2001
-From: Thomas Deutschmann <whissi@gentoo.org>
-Date: Thu, 22 Sep 2016 00:53:58 +0200
-Subject: [PATCH 1/3] Remove bundled libltdl
-
----
- Makefile.am | 6 ------
- configure.ac | 8 ++++----
- 2 files changed, 4 insertions(+), 10 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 03bdd39..ad04a3c 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,11 +1,5 @@
--ACLOCAL_AMFLAGS = -I libltdl/m4
--
- SUBDIRS =
-
--if BUILD_INCLUDED_LTDL
--SUBDIRS += libltdl
--endif
--
- SUBDIRS += proto src bindings .
-
- AM_CPPFLAGS = $(LTDLINCL)
-diff --git a/configure.ac b/configure.ac
-index 9a6da11..68e15e0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3,7 +3,6 @@ AC_PREREQ([2.60])
- AC_INIT([collectd],[m4_esyscmd(./version-gen.sh)])
- AC_CONFIG_SRCDIR(src/target_set.c)
- AC_CONFIG_HEADERS(src/config.h)
--AC_CONFIG_AUX_DIR([libltdl/config])
-
- dnl older automake's default of ARFLAGS=cru is noisy on newer binutils;
- dnl we don't really need the 'u' even in older toolchains. Then there is
-@@ -13,7 +12,6 @@ m4_divert_text([DEFAULTS], [: "${ARFLAGS=cr} ${AR_FLAGS=cr}"])
- m4_ifdef([LT_PACKAGE_VERSION],
- # libtool >= 2.2
- [
-- LT_CONFIG_LTDL_DIR([libltdl])
- LT_INIT([dlopen])
- LTDL_INIT([convenience])
- AC_DEFINE(LIBTOOL_VERSION, 2, [Define to used libtool version.])
-@@ -25,12 +23,14 @@ m4_ifdef([LT_PACKAGE_VERSION],
- AC_SUBST(LTDLINCL)
- AC_SUBST(LIBLTDL)
- AC_LIBTOOL_DLOPEN
-- AC_CONFIG_SUBDIRS(libltdl)
- AC_DEFINE(LIBTOOL_VERSION, 1, [Define to used libtool version.])
- ]
- )
-
--AM_CONDITIONAL([BUILD_INCLUDED_LTDL], [test "x$LTDLDEPS" != "x"])
-+if test "x$LTDLDEPS" != "x"
-+then
-+ AC_MSG_ERROR(["system's libltdl is too old! Should never happen. Please file a bug at https://bugs.gentoo.org"])
-+fi
-
- AM_INIT_AUTOMAKE([subdir-objects tar-pax dist-bzip2 no-dist-gzip foreign])
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
---
-2.10.0
-
-
-From 0b00f519ce183b8ceaab5cf8e56f574ecd2cb7c4 Mon Sep 17 00:00:00 2001
-From: Thomas Deutschmann <whissi@gentoo.org>
-Date: Thu, 22 Sep 2016 00:54:08 +0200
-Subject: [PATCH 2/3] Remove libhal dependency
-
-X-Gentoo-Bug: 353839
-X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=353839
----
- configure.ac | 24 ------------------------
- 1 file changed, 24 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 68e15e0..1700c44 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1663,30 +1663,6 @@ AM_CONDITIONAL(BUILD_WITH_LIBRESOLV, test "x$with_libresolv" = "xyes")
-
- dnl Check for HAL (hardware abstraction library)
- with_libhal="no"
--PKG_CHECK_MODULES([HAL], [hal],
-- [
-- SAVE_LIBS="$LIBS"
-- LIBS="$HAL_LIBS $LIBS"
-- AC_CHECK_LIB([hal], [libhal_device_property_exists],
-- [
-- SAVE_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="$HAL_CFLAGS $CPPFLAGS"
-- AC_CHECK_HEADERS([libhal.h],
-- [
-- with_libhal="yes"
-- BUILD_WITH_LIBHAL_CFLAGS="$HAL_CFLAGS"
-- BUILD_WITH_LIBHAL_LIBS="$HAL_LIBS"
-- ])
-- CPPFLAGS="$SAVE_CPPFLAGS"
-- ],
-- [ : ]
-- )
-- LIBS="$SAVE_LIBS"
-- ],
-- [ : ]
--)
--AC_SUBST(BUILD_WITH_LIBHAL_CFLAGS)
--AC_SUBST(BUILD_WITH_LIBHAL_LIBS)
-
-
- SAVE_LIBS="$LIBS"
---
-2.10.0
-
-
-From 380c61888bed5856319fa32816d8f2f4c88ee7bc Mon Sep 17 00:00:00 2001
-From: Thomas Deutschmann <whissi@gentoo.org>
-Date: Thu, 22 Sep 2016 00:54:19 +0200
-Subject: [PATCH 3/3] Link Oracle plug-in against libocci
-
-Author: Aurelien Minet
-X-Gentoo-Bug: 347607
-X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=347607
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1700c44..83909a0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3587,14 +3587,14 @@ AC_ARG_WITH(oracle, [AS_HELP_STRING([--with-oracle@<:@=ORACLE_HOME@:>@], [Path t
- ])
- if test "x$ORACLE_HOME" != "x"
- then
-- with_oracle_cppflags="-I$ORACLE_HOME/rdbms/public"
-+ with_oracle_cppflags="-I$ORACLE_HOME/rdbms/public -locci"
-
- if test -e "$ORACLE_HOME/lib/ldflags"
- then
- with_oracle_libs=`cat "$ORACLE_HOME/lib/ldflags"`
- fi
- #with_oracle_libs="-L$ORACLE_HOME/lib $with_oracle_libs -lclntsh"
-- with_oracle_libs="-L$ORACLE_HOME/lib -lclntsh"
-+ with_oracle_libs="-L$ORACLE_HOME/lib -lclntsh -locci"
- fi
- if test "x$with_oracle" = "xyes"
- then
---
-2.10.0
-
diff --git a/app-metrics/collectd/files/collectd-5.7.2-CVE-2017-16820.patch b/app-metrics/collectd/files/collectd-5.7.2-CVE-2017-16820.patch
deleted file mode 100644
index 0090f2940bf..00000000000
--- a/app-metrics/collectd/files/collectd-5.7.2-CVE-2017-16820.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-CVE-2017-16820: Fix double free of request PDU
-
-https://github.com/collectd/collectd/commit/d16c24542b2f96a194d43a73c2e5778822b9cb47
-
---- a/src/snmp.c
-+++ b/src/snmp.c
-@@ -1357,11 +1357,13 @@ static int csnmp_read_table(host_definition_t *host, data_definition_t *data) {
- if (oid_list_todo_num == 0) {
- /* The request is still empty - so we are finished */
- DEBUG("snmp plugin: all variables have left their subtree");
-+ snmp_free_pdu(req);
- status = 0;
- break;
- }
-
- res = NULL;
-+ /* snmp_sess_synch_response always frees our req PDU */
- status = snmp_sess_synch_response(host->sess_handle, req, &res);
- if ((status != STAT_SUCCESS) || (res == NULL)) {
- char *errstr = NULL;
-@@ -1376,8 +1378,6 @@ static int csnmp_read_table(host_definition_t *host, data_definition_t *data) {
- snmp_free_pdu(res);
- res = NULL;
-
-- /* snmp_synch_response already freed our PDU */
-- req = NULL;
- sfree(errstr);
- csnmp_host_close_session(host);
-
-@@ -1492,9 +1492,6 @@ static int csnmp_read_table(host_definition_t *host, data_definition_t *data) {
- snmp_free_pdu(res);
- res = NULL;
-
-- if (req != NULL)
-- snmp_free_pdu(req);
-- req = NULL;
-
- if (status == 0)
- csnmp_dispatch_table(host, data, instance_list_head, value_list_head);
diff --git a/app-metrics/collectd/files/collectd-5.7.2-issue-2443.patch b/app-metrics/collectd/files/collectd-5.7.2-issue-2443.patch
deleted file mode 100644
index 19410c139b0..00000000000
--- a/app-metrics/collectd/files/collectd-5.7.2-issue-2443.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-turbostat: import msr-index header from linux to allow building against
- >=linux-4.12
-
-Backport of https://github.com/collectd/collectd/pull/2446
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -805,28 +805,6 @@ AC_CACHE_CHECK([whether clock_boottime and clock_monotonic are supported],
-
-
- # For the turbostat plugin
--have_asm_msrindex_h="no"
--AC_CHECK_HEADERS(asm/msr-index.h, [have_asm_msrindex_h="yes"])
--
--if test "x$have_asm_msrindex_h" = "xyes"
--then
-- AC_CACHE_CHECK([whether asm/msr-index.h has MSR_PKG_C10_RESIDENCY],
-- [c_cv_have_usable_asm_msrindex_h],
-- AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
--[[[
--#include<asm/msr-index.h>
--]]],
--[[[
--int y = MSR_PKG_C10_RESIDENCY;
--return(y);
--]]]
-- )],
-- [c_cv_have_usable_asm_msrindex_h="yes"],
-- [c_cv_have_usable_asm_msrindex_h="no"],
-- )
-- )
--fi
--
- have_cpuid_h="no"
- AC_CHECK_HEADERS(cpuid.h, [have_cpuid_h="yes"])
-
-@@ -6108,7 +6086,7 @@ then
- then
- plugin_ipvs="yes"
- fi
-- if test "x$c_cv_have_usable_asm_msrindex_h" = "xyes" && test "x$have_cpuid_h" = "xyes"
-+ if test "x$have_cpuid_h" = "xyes"
- then
- plugin_turbostat="yes"
- fi
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -1212,7 +1212,9 @@ endif
-
- if BUILD_PLUGIN_TURBOSTAT
- pkglib_LTLIBRARIES += turbostat.la
--turbostat_la_SOURCES = turbostat.c
-+turbostat_la_SOURCES = \
-+ turbostat.c \
-+ msr-index.h
- turbostat_la_LDFLAGS = $(PLUGIN_LDFLAGS)
- endif
-
---- /dev/null
-+++ b/src/msr-index.h
-@@ -0,0 +1,88 @@
-+/*
-+ * Partial header file imported from the linux kernel
-+ * (arch/x86/include/asm/msr-index.h)
-+ * as it is not provided by the kernel sources anymore
-+ *
-+ * Only the minimal blocks of macro have been included
-+ * ----
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms and conditions of the GNU General Public License,
-+ * version 2, as published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-+ * more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-+ * ----
-+ */
-+
-+#ifndef _ASM_X86_MSR_INDEX_H
-+#define _ASM_X86_MSR_INDEX_H
-+
-+/*
-+ * CPU model specific register (MSR) numbers.
-+ *
-+ * Do not add new entries to this file unless the definitions are shared
-+ * between multiple compilation units.
-+ */
-+
-+/* Intel MSRs. Some also available on other CPUs */
-+
-+/* C-state Residency Counters */
-+#define MSR_PKG_C3_RESIDENCY 0x000003f8
-+#define MSR_PKG_C6_RESIDENCY 0x000003f9
-+#define MSR_ATOM_PKG_C6_RESIDENCY 0x000003fa
-+#define MSR_PKG_C7_RESIDENCY 0x000003fa
-+#define MSR_CORE_C3_RESIDENCY 0x000003fc
-+#define MSR_CORE_C6_RESIDENCY 0x000003fd
-+#define MSR_CORE_C7_RESIDENCY 0x000003fe
-+#define MSR_KNL_CORE_C6_RESIDENCY 0x000003ff
-+#define MSR_PKG_C2_RESIDENCY 0x0000060d
-+#define MSR_PKG_C8_RESIDENCY 0x00000630
-+#define MSR_PKG_C9_RESIDENCY 0x00000631
-+#define MSR_PKG_C10_RESIDENCY 0x00000632
-+
-+/* Run Time Average Power Limiting (RAPL) Interface */
-+
-+#define MSR_RAPL_POWER_UNIT 0x00000606
-+
-+#define MSR_PKG_POWER_LIMIT 0x00000610
-+#define MSR_PKG_ENERGY_STATUS 0x00000611
-+#define MSR_PKG_PERF_STATUS 0x00000613
-+#define MSR_PKG_POWER_INFO 0x00000614
-+
-+#define MSR_DRAM_POWER_LIMIT 0x00000618
-+#define MSR_DRAM_ENERGY_STATUS 0x00000619
-+#define MSR_DRAM_PERF_STATUS 0x0000061b
-+#define MSR_DRAM_POWER_INFO 0x0000061c
-+
-+#define MSR_PP0_POWER_LIMIT 0x00000638
-+#define MSR_PP0_ENERGY_STATUS 0x00000639
-+#define MSR_PP0_POLICY 0x0000063a
-+#define MSR_PP0_PERF_STATUS 0x0000063b
-+
-+#define MSR_PP1_POWER_LIMIT 0x00000640
-+#define MSR_PP1_ENERGY_STATUS 0x00000641
-+#define MSR_PP1_POLICY 0x00000642
-+
-+
-+
-+/* Intel defined MSRs. */
-+#define MSR_IA32_TSC 0x00000010
-+#define MSR_SMI_COUNT 0x00000034
-+
-+#define MSR_IA32_MPERF 0x000000e7
-+#define MSR_IA32_APERF 0x000000e8
-+
-+#define MSR_IA32_THERM_STATUS 0x0000019c
-+
-+#define MSR_IA32_TEMPERATURE_TARGET 0x000001a2
-+
-+#define MSR_IA32_PACKAGE_THERM_STATUS 0x000001b1
-+
-+
-+#endif /* _ASM_X86_MSR_INDEX_H */
---- a/src/turbostat.c
-+++ b/src/turbostat.c
-@@ -41,7 +41,7 @@
- #include "plugin.h"
- #include "utils_time.h"
-
--#include <asm/msr-index.h>
-+#include "msr-index.h"
- #include <cpuid.h>
- #ifdef HAVE_SYS_CAPABILITY_H
- #include <sys/capability.h>
diff --git a/app-metrics/collectd/files/collectd-5.7.2-varnish-5.2+.patch b/app-metrics/collectd/files/collectd-5.7.2-varnish-5.2+.patch
deleted file mode 100644
index 60830042fa6..00000000000
--- a/app-metrics/collectd/files/collectd-5.7.2-varnish-5.2+.patch
+++ /dev/null
@@ -1,1018 +0,0 @@
-Fix building against >=www-servers/varnish-5.2
-
-https://github.com/collectd/collectd/commit/3c42182e912e3d634fe8c4f6a636053959fcde49
-https://github.com/collectd/collectd/commit/3ab73ae8b23b9816fb69fde630c5ad667aa1e09f
-https://github.com/collectd/collectd/commit/7978b43670472a000831f7ff37a6a30771a6ee6f
-https://github.com/collectd/collectd/commit/68123637814ea09efff5bf56f3209eefbe41287a
-https://github.com/collectd/collectd/commit/8192bfcf975ff6275505c99193a23e2a066927d0
-https://github.com/collectd/collectd/commit/c1e2bf3d2bfa1a1da3a6b42186577f635795e7f8
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -5614,13 +5614,18 @@ then
-
- CPPFLAGS="$CPPFLAGS $with_libvarnish_cflags"
-
-- AC_CHECK_HEADERS(vapi/vsc.h,
-- [AC_DEFINE([HAVE_VARNISH_V4], [1], [Varnish 4 API support])],
-- [AC_CHECK_HEADERS(vsc.h,
-- [AC_DEFINE([HAVE_VARNISH_V3], [1], [Varnish 3 API support])],
-- [AC_CHECK_HEADERS(varnishapi.h,
-- [AC_DEFINE([HAVE_VARNISH_V2], [1], [Varnish 2 API support])],
-- [with_libvarnish="no (found none of the varnish header files)"])])])
-+ $PKG_CONFIG --atleast-version=5.2 'varnishapi' 2>/dev/null
-+ if test $? -eq 0; then
-+ AC_DEFINE([HAVE_VARNISH_V5], [1], [Varnish 5 API support])
-+ else
-+ AC_CHECK_HEADERS(vapi/vsc.h,
-+ [AC_DEFINE([HAVE_VARNISH_V4], [1], [Varnish 4 API support])],
-+ [AC_CHECK_HEADERS(vsc.h,
-+ [AC_DEFINE([HAVE_VARNISH_V3], [1], [Varnish 3 API support])],
-+ [AC_CHECK_HEADERS(varnishapi.h,
-+ [AC_DEFINE([HAVE_VARNISH_V2], [1], [Varnish 2 API support])],
-+ [with_libvarnish="no (found none of the varnish header files)"])])])
-+ fi
-
- CPPFLAGS="$SAVE_CPPFLAGS"
- fi
---- a/src/varnish.c
-+++ b/src/varnish.c
-@@ -21,6 +21,7 @@
- * Jérôme Renard <jerome.renard at gmail.com>
- * Marc Fournier <marc.fournier at camptocamp.com>
- * Florian octo Forster <octo at collectd.org>
-+ * Denes Matetelki <dmatetelki at varnish-software.com>
- **/
-
- #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 <vapi/vsc.h>
- #include <vapi/vsm.h>
- 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 : */
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/
@ 2018-11-30 19:50 Thomas Deutschmann
0 siblings, 0 replies; 10+ messages in thread
From: Thomas Deutschmann @ 2018-11-30 19:50 UTC (permalink / raw
To: gentoo-commits
commit: 7dbfccac96626dd3bcc4b54577427924e40410f8
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 30 19:49:25 2018 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Fri Nov 30 19:49:57 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7dbfccac
app-metrics/collectd: allow lm_sensors-4.5.0 usage
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
app-metrics/collectd/collectd-5.8.1.ebuild | 2 +
...ectd-5.8.1-lm_sensors-4.5.0-compatibility.patch | 70 ++++++++++++++++++++++
2 files changed, 72 insertions(+)
diff --git a/app-metrics/collectd/collectd-5.8.1.ebuild b/app-metrics/collectd/collectd-5.8.1.ebuild
index 9ce52b83d6c..d58a3a63c4d 100644
--- a/app-metrics/collectd/collectd-5.8.1.ebuild
+++ b/app-metrics/collectd/collectd-5.8.1.ebuild
@@ -159,6 +159,8 @@ REQUIRED_USE="
collectd_plugins_python? ( ${PYTHON_REQUIRED_USE} )
collectd_plugins_smart? ( udev )"
+PATCHES=( "${FILESDIR}"/${PN}-5.8.1-lm_sensors-4.5.0-compatibility.patch )
+
# @FUNCTION: collectd_plugin_kernel_linux
# @DESCRIPTION:
# USAGE: <plugin name> <kernel_options> <severity>
diff --git a/app-metrics/collectd/files/collectd-5.8.1-lm_sensors-4.5.0-compatibility.patch b/app-metrics/collectd/files/collectd-5.8.1-lm_sensors-4.5.0-compatibility.patch
new file mode 100644
index 00000000000..3476d50664a
--- /dev/null
+++ b/app-metrics/collectd/files/collectd-5.8.1-lm_sensors-4.5.0-compatibility.patch
@@ -0,0 +1,70 @@
+https://github.com/collectd/collectd/issues/3006
+
+--- old/src/sensors.c
++++ new/src/sensors.c
+@@ -149,7 +149,7 @@
+ static char *conffile = SENSORS_CONF_PATH;
+ /* #endif SENSORS_API_VERSION < 0x400 */
+
+-#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500)
++#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600)
+ typedef struct featurelist {
+ const sensors_chip_name *chip;
+ const sensors_feature *feature;
+@@ -159,9 +159,9 @@
+
+ static char *conffile = NULL;
+ static _Bool use_labels = 0;
+-/* #endif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) */
++/* #endif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600) */
+
+-#else /* if SENSORS_API_VERSION >= 0x500 */
++#else /* if SENSORS_API_VERSION >= 0x600 */
+ #error "This version of libsensors is not supported yet. Please report this " \
+ "as bug."
+ #endif
+@@ -223,7 +223,7 @@
+ if (IS_TRUE(value))
+ ignorelist_set_invert(sensor_list, 0);
+ }
+-#if (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500)
++#if (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600)
+ else if (strcasecmp(key, "UseLabels") == 0) {
+ use_labels = IS_TRUE(value) ? 1 : 0;
+ }
+@@ -353,7 +353,7 @@
+ } /* while sensors_get_detected_chips */
+ /* #endif SENSORS_API_VERSION < 0x400 */
+
+-#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500)
++#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600)
+ chip_num = 0;
+ while ((chip = sensors_get_detected_chips(NULL, &chip_num)) != NULL) {
+ const sensors_feature *feature;
+@@ -410,7 +410,7 @@
+ } /* while (subfeature) */
+ } /* while (feature) */
+ } /* while (chip) */
+-#endif /* (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) */
++#endif /* (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600) */
+
+ if (first_feature == NULL) {
+ sensors_cleanup();
+@@ -485,7 +485,7 @@
+ } /* for fl = first_feature .. NULL */
+ /* #endif SENSORS_API_VERSION < 0x400 */
+
+-#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500)
++#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600)
+ for (featurelist_t *fl = first_feature; fl != NULL; fl = fl->next) {
+ double value;
+ int status;
+@@ -528,7 +528,7 @@
+
+ sensors_submit(plugin_instance, type, type_instance, value);
+ } /* for fl = first_feature .. NULL */
+-#endif /* (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) */
++#endif /* (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600) */
+
+ return 0;
+ } /* int sensors_read */
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/
@ 2019-07-20 0:13 Thomas Deutschmann
0 siblings, 0 replies; 10+ messages in thread
From: Thomas Deutschmann @ 2019-07-20 0:13 UTC (permalink / raw
To: gentoo-commits
commit: 3afefc69ca98b1871e724df2528786f38e4c0903
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 19 17:41:55 2019 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Sat Jul 20 00:13:16 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3afefc69
app-metrics/collectd: drop old
Package-Manager: Portage-2.3.68, Repoman-2.3.16
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
app-metrics/collectd/Manifest | 1 -
app-metrics/collectd/collectd-5.8.0-r1.ebuild | 536 ---------------------
.../collectd-5.8.0-disk-plugin-udev-fix.patch | 98 ----
3 files changed, 635 deletions(-)
diff --git a/app-metrics/collectd/Manifest b/app-metrics/collectd/Manifest
index ae878e1916e..f639ce1d2be 100644
--- a/app-metrics/collectd/Manifest
+++ b/app-metrics/collectd/Manifest
@@ -1,2 +1 @@
-DIST collectd-5.8.0.tar.bz2 1686017 BLAKE2B 26d995cdb9c25869bf96a056e6ba879de9f009fd4bbf1364a7dedba93b822e57c4b606ca8c84da68cc29db8e77333047695e85d7eb101080de9cee783240f5ea SHA512 1b3d0cc44e2ca54e13eebf292074f1efa8b33d6800d04405e0eaaa2dd1cb2416c6eae580729fb5aead23a5039f41ffe8a9989a907a8c18be8f867f1099fc0008
DIST collectd-5.8.1.tar.bz2 1789228 BLAKE2B 739f961172978db33bdf95c8f93bde0036a26b2ed2abd3396a734d4b97c4ae117bb26a62fcdbb3d77bd63d9f64a38f83d0c8a0665e8fa7bf5ed2efc6838b0e8e SHA512 8c75448c6e59ee1ea5c1cf486c07040d20fb36d5b7a1be2ab45facea330166e8c1d1fa38e3fa82ec905428d7b2c92c66aae35ee8e3546f67ce76f7f410739901
diff --git a/app-metrics/collectd/collectd-5.8.0-r1.ebuild b/app-metrics/collectd/collectd-5.8.0-r1.ebuild
deleted file mode 100644
index 64b897cee82..00000000000
--- a/app-metrics/collectd/collectd-5.8.0-r1.ebuild
+++ /dev/null
@@ -1,536 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} )
-JAVA_PKG_OPT_USE="collectd_plugins_java"
-
-inherit autotools fcaps flag-o-matic java-pkg-opt-2 linux-info multilib perl-functions python-single-r1 systemd tmpfiles user
-
-DESCRIPTION="Collects system statistics and provides mechanisms to store the values"
-
-HOMEPAGE="https://collectd.org/"
-SRC_URI="${HOMEPAGE%/}/files/${P}.tar.bz2"
-
-LICENSE="MIT GPL-2 GPL-2+ GPL-3 GPL-3+"
-SLOT="0"
-KEYWORDS="alpha amd64 arm x86"
-IUSE="contrib debug java kernel_Darwin kernel_FreeBSD kernel_linux perl selinux static-libs udev xfs"
-
-# The plugin lists have to follow here since they extend IUSE
-
-# Plugins that don't build (e.g. dependencies not in Gentoo)
-# apple_sensors: Requires libIOKit
-# aquaero: Requires aerotools-ng/libaquaero5
-# barometer: Requires libi2c (i2c_smbus_read_i2c_block_data)
-# dpdkevents: Requires dpdk
-# dpdkstat: Requires dpdk
-# grpc: Requires libgrpc
-# intel_pmu: Requires libjevents (pmu-tools)
-# intel_rdt: Requires libpqos from intel-cmt-cat project
-# lpar: Requires libperfstat (AIX only)
-# mic: Requires Intel Many Integrated Core Architecture API
-# (part of Intel's Xeon Phi software)
-# netapp: Requires libnetapp (http://communities.netapp.com/docs/DOC-1110)
-# pf: Requires BSD packet filter
-# pinba: Requires MySQL Pinba engine (http://pinba.org/)
-# tape: Requires libkstat (Solaris only)
-# write_riemann: Requires riemann-c-client
-# xmms: Requires libxmms (v1)
-# zone: Solaris only...
-COLLECTD_IMPOSSIBLE_PLUGINS="apple_sensors aquaero barometer dpdkstat grpc
- intel_pmu intel_rdt lpar mic netapp pf pinba tape write_riemann
- xmms zone"
-
-# Plugins that have been (compile) tested and can be enabled via COLLECTD_PLUGINS
-COLLECTD_TESTED_PLUGINS="aggregation amqp apache apcups ascent battery bind
- ceph cgroups chrony conntrack contextswitch cpu cpufreq cpusleep
- csv curl curl_json curl_xml dbi df disk dns drbd email
- entropy ethstat exec fhcount filecount fscache gmond gps hddtemp
- hugepages interface ipc ipmi iptables ipvs irq java lua
- load logfile log_logstash lvm madwifi match_empty_counter
- match_hashed match_regex match_timediff match_value mbmon mcelog md
- memcachec memcached memory modbus mqtt multimeter mysql netlink
- network network nfs nginx notify_desktop notify_email notify_nagios
- ntpd numa nut olsrd onewire openldap openvpn oracle ovs_events
- ovs_stats perl ping postgresql powerdns processes protocols python
- python redis routeros rrdcached rrdtool sensors serial sigrok smart
- snmp snmp_agent statsd swap syslog table tail tail_csv
- target_notification target_replace target_scale target_set tcpconns
- teamspeak2 ted thermal threshold tokyotyrant turbostat unixsock
- uptime users uuid varnish virt vmem vserver wireless write_graphite
- write_http write_kafka write_log write_mongodb write_prometheus
- write_redis write_sensu write_tsdb xencpu zfs_arc zookeeper"
-
-COLLECTD_DISABLED_PLUGINS="${COLLECTD_IMPOSSIBLE_PLUGINS}"
-
-COLLECTD_ALL_PLUGINS=${COLLECTD_TESTED_PLUGINS}
-
-for plugin in ${COLLECTD_ALL_PLUGINS}; do
- IUSE="${IUSE} collectd_plugins_${plugin}"
-done
-unset plugin
-
-# Now come the dependencies.
-
-COMMON_DEPEND="
- dev-libs/libgcrypt:=
- dev-libs/libltdl:0=
- perl? ( dev-lang/perl:=[ithreads] )
- udev? ( virtual/udev )
- xfs? ( sys-fs/xfsprogs )
- collectd_plugins_amqp? ( net-libs/rabbitmq-c )
- collectd_plugins_apache? ( net-misc/curl:0= )
- collectd_plugins_ascent? ( net-misc/curl:0= dev-libs/libxml2:2= )
- collectd_plugins_bind? ( net-misc/curl:0= dev-libs/libxml2:2= )
- collectd_plugins_ceph? ( dev-libs/yajl:= )
- collectd_plugins_curl? ( net-misc/curl:0= )
- collectd_plugins_curl_json? ( net-misc/curl:0= dev-libs/yajl:= )
- collectd_plugins_curl_xml? ( net-misc/curl:0= dev-libs/libxml2:2= )
- collectd_plugins_dbi? ( dev-db/libdbi )
- collectd_plugins_dns? ( net-libs/libpcap )
- collectd_plugins_gmond? ( sys-cluster/ganglia )
- collectd_plugins_gps? ( sci-geosciences/gpsd:= )
- collectd_plugins_ipmi? ( >=sys-libs/openipmi-2.0.16-r1 )
- collectd_plugins_iptables? ( >=net-firewall/iptables-1.4.13:0= )
- collectd_plugins_log_logstash? ( dev-libs/yajl:= )
- collectd_plugins_lua? ( dev-lang/lua:0= )
- collectd_plugins_lvm? ( sys-fs/lvm2 )
- collectd_plugins_memcachec? ( dev-libs/libmemcached )
- collectd_plugins_modbus? ( dev-libs/libmodbus )
- collectd_plugins_mqtt? ( app-misc/mosquitto )
- collectd_plugins_mysql? ( virtual/libmysqlclient:= )
- collectd_plugins_netlink? ( net-libs/libmnl )
- collectd_plugins_nginx? ( net-misc/curl:0= )
- collectd_plugins_notify_desktop? ( x11-libs/libnotify )
- collectd_plugins_notify_email? ( net-libs/libesmtp )
- collectd_plugins_nut? ( >=sys-power/nut-2.7.2-r2 )
- collectd_plugins_openldap? ( net-nds/openldap )
- collectd_plugins_onewire? ( >=sys-fs/owfs-3.1:= )
- collectd_plugins_oracle? ( dev-db/oracle-instantclient-basic )
- collectd_plugins_ovs_events? ( dev-libs/yajl:= )
- collectd_plugins_ovs_stats? ( dev-libs/yajl:= )
- collectd_plugins_perl? ( dev-lang/perl:=[ithreads] )
- collectd_plugins_ping? ( net-libs/liboping )
- collectd_plugins_postgresql? ( dev-db/postgresql:= )
- collectd_plugins_python? ( ${PYTHON_DEPS} )
- collectd_plugins_redis? ( dev-libs/hiredis:= )
- collectd_plugins_routeros? ( net-libs/librouteros )
- collectd_plugins_rrdcached? ( net-analyzer/rrdtool:= )
- collectd_plugins_rrdtool? ( net-analyzer/rrdtool:= )
- collectd_plugins_sensors? ( sys-apps/lm_sensors:= )
- collectd_plugins_sigrok? ( <sci-libs/libsigrok-0.4:= dev-libs/glib:2 )
- collectd_plugins_smart? ( dev-libs/libatasmart )
- collectd_plugins_snmp? ( net-analyzer/net-snmp )
- collectd_plugins_snmp_agent? ( net-analyzer/net-snmp )
- collectd_plugins_tokyotyrant? ( net-misc/tokyotyrant )
- collectd_plugins_varnish? ( www-servers/varnish:= )
- collectd_plugins_virt? ( app-emulation/libvirt:= dev-libs/libxml2:2= )
- collectd_plugins_write_http? ( net-misc/curl:0= dev-libs/yajl:= )
- collectd_plugins_write_kafka? ( >=dev-libs/librdkafka-0.9.0.99:= dev-libs/yajl:= )
- collectd_plugins_write_mongodb? ( >=dev-libs/mongo-c-driver-1.8.2:= )
- collectd_plugins_write_prometheus? ( >=dev-libs/protobuf-c-1.2.1-r1:= net-libs/libmicrohttpd:= )
- collectd_plugins_write_redis? ( dev-libs/hiredis:= )
- collectd_plugins_xencpu? ( app-emulation/xen-tools:= )
-
- kernel_FreeBSD? (
- collectd_plugins_disk? ( sys-libs/libstatgrab:= )
- collectd_plugins_interface? ( sys-libs/libstatgrab:= )
- collectd_plugins_load? ( sys-libs/libstatgrab:= )
- collectd_plugins_memory? ( sys-libs/libstatgrab:= )
- collectd_plugins_swap? ( sys-libs/libstatgrab:= )
- collectd_plugins_users? ( sys-libs/libstatgrab:= )
- )"
-
-# Enforcing !=sys-kernel/linux-headers-4.5 > due to #577846
-DEPEND="${COMMON_DEPEND}
- collectd_plugins_iptables? ( || ( <=sys-kernel/linux-headers-4.4 >=sys-kernel/linux-headers-4.6 ) )
- collectd_plugins_java? ( >=virtual/jdk-1.6 )
- virtual/pkgconfig"
-
-RDEPEND="${COMMON_DEPEND}
- collectd_plugins_java? ( >=virtual/jre-1.6 )
- collectd_plugins_syslog? ( virtual/logger )
- selinux? ( sec-policy/selinux-collectd )
- !<sys-apps/openrc-0.18.2"
-
-REQUIRED_USE="
- collectd_plugins_python? ( ${PYTHON_REQUIRED_USE} )
- collectd_plugins_smart? ( udev )"
-
-PATCHES=( "${FILESDIR}"/${P}-disk-plugin-udev-fix.patch )
-
-# @FUNCTION: collectd_plugin_kernel_linux
-# @DESCRIPTION:
-# USAGE: <plugin name> <kernel_options> <severity>
-# kernel_options is a list of kernel configurations options; the check tests whether at least
-# one of them is enabled. If no, depending on the third argument an elog, ewarn, or eerror message
-# is emitted.
-collectd_plugin_kernel_linux() {
- local multi_opt opt
- if has ${1} ${COLLECTD_ALL_PLUGINS}; then
- if use collectd_plugins_${1}; then
- for opt in ${2}; do
- if linux_chkconfig_present ${opt}; then
- return 0;
- fi
- done
- multi_opt=${2//\ /\ or\ }
- case ${3} in
- (info)
- elog "The ${1} plugin can use kernel features that are disabled now; enable ${multi_opt} in your kernel"
- ;;
- (warn)
- ewarn "The ${1} plugin uses kernel features that are disabled now; enable ${multi_opt} in your kernel"
- ;;
- (error)
- eerror "The ${1} plugin needs kernel features that are disabled now; enable ${multi_opt} in your kernel"
- ;;
- (*)
- die "function collectd_plugin_kernel_linux called with invalid third argument"
- ;;
- esac
- fi
- fi
-}
-
-collectd_linux_kernel_checks() {
- if ! linux_chkconfig_present PROC_FS; then
- ewarn "/proc file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable PROC_FS in your kernel"
- fi
-
- if ! linux_chkconfig_present SYSFS; then
- ewarn "/sys file system support is disabled, many plugins will not be able to read any statistics from your system unless you enable SYSFS in your kernel"
- fi
-
- # battery.c: /proc/pmu/battery_%i
- # battery.c: /proc/acpi/battery
- collectd_plugin_kernel_linux battery ACPI_BATTERY warn
-
- # cgroups.c: /sys/fs/cgroup/
- collectd_plugin_kernel_linux cgroups CGROUPS warn
-
- # cpufreq.c: /sys/devices/system/cpu/cpu%d/cpufreq/
- collectd_plugin_kernel_linux cpufreq SYSFS warn
- collectd_plugin_kernel_linux cpufreq CPU_FREQ_STAT warn
-
- # drbd.c: /proc/drbd
- collectd_plugin_kernel_linux drbd BLK_DEV_DRBD warn
-
- # conntrack.c: /proc/sys/net/netfilter/*
- collectd_plugin_kernel_linux conntrack NETFILTER warn
-
- # fscache.c: /proc/fs/fscache/stats
- collectd_plugin_kernel_linux fscache FSCACHE warn
-
- # nfs.c: /proc/net/rpc/nfs
- # nfs.c: /proc/net/rpc/nfsd
- collectd_plugin_kernel_linux nfs NFS_COMMON warn
-
- # serial.c: /proc/tty/driver/serial
- # serial.c: /proc/tty/driver/ttyS
- collectd_plugin_kernel_linux serial SERIAL_CORE warn
-
- # swap.c: /proc/meminfo
- collectd_plugin_kernel_linux swap SWAP warn
-
- # thermal.c: /proc/acpi/thermal_zone
- # thermal.c: /sys/class/thermal
- collectd_plugin_kernel_linux thermal ACPI_THERMAL warn
-
- # turbostat.c: /dev/cpu/%d/msr
- collectd_plugin_kernel_linux turbostat X86_MSR warn
-
- # vmem.c: /proc/vmstat
- collectd_plugin_kernel_linux vmem VM_EVENT_COUNTERS warn
-
- # vserver.c: /proc/virtual
- collectd_plugin_kernel_linux vserver VSERVER warn
-
- # uuid.c: /sys/hypervisor/uuid
- collectd_plugin_kernel_linux uuid SYSFS info
-
- # wireless.c: /proc/net/wireless
- collectd_plugin_kernel_linux wireless "WIRELESS MAC80211 IEEE80211" warn
-
- # zfs_arc.c: /proc/spl/kstat/zfs/arcstats
- collectd_plugin_kernel_linux zfs_arc "SPL ZFS" warn
-}
-
-pkg_setup() {
- if use kernel_linux; then
- linux-info_pkg_setup
-
- if linux_config_exists; then
- einfo "Checking your linux kernel configuration:"
- collectd_linux_kernel_checks
- else
- elog "Cannot find a linux kernel configuration. Continuing anyway."
- fi
- fi
-
- if use collectd_plugins_java; then
- java-pkg-opt-2_pkg_setup
- fi
-
- use collectd_plugins_python && python-single-r1_pkg_setup
-
- enewgroup collectd
- enewuser collectd -1 -1 /var/lib/collectd collectd
-}
-
-src_prepare() {
- default
-
- # There's some strange prefix handling in the default config file, resulting in
- # paths like "/usr/var/..."
- sed -i -e "s:@prefix@/var:/var:g" src/collectd.conf.in || die
-
- # Adjust upstream's systemd unit
- # - Get rid of EnvironmentFile directive; These files don't exist on Gentoo!
- # - Add User=collectd to run collectd as user "collectd" per default
- sed -i \
- -e '/^EnvironmentFile=.*/d' \
- -e '/^\[Service\]/aUser=collectd' \
- contrib/systemd.${PN}.service || die
-
- eautoreconf
-}
-
-src_configure() {
- # Now come the lists of os-dependent plugins. Any plugin that is not listed anywhere here
- # should work independent of the operating system.
-
- local linux_plugins="barometer battery cpu cpufreq disk
- drbd entropy ethstat hugepages interface iptables
- ipvs irq ipc load memory md netlink nfs numa processes
- serial swap tcpconns thermal turbostat users vmem wireless
- zfc_arc"
-
- local need_libstatgrab=0
- local libstatgrab_plugins="cpu disk interface load memory swap users"
- local bsd_plugins="cpu tcpconns ${libstatgrab_plugins} zfc_arc"
-
- local darwin_plugins="apple_sensors battery cpu disk interface memory processes tcpconns"
-
- local osdependent_plugins="${linux_plugins} ${bsd_plugins} ${darwin_plugins}"
- local myos_plugins=""
- if use kernel_linux; then
- einfo "Enabling Linux plugins."
- myos_plugins=${linux_plugins}
- elif use kernel_FreeBSD; then
- einfo "Enabling FreeBSD plugins."
- myos_plugins=${bsd_plugins}
- elif use kernel_Darwin; then
- einfo "Enabling Darwin plugins."
- myos_plugins=${darwin_plugins}
- fi
-
- local myconf="--disable-werror"
-
- # Do we debug?
- myconf+=" $(use_enable debug)"
-
- # udev support?
- # Required for smart plugin via REQUIRED_USE; Optional for disk plugin
- if use udev; then
- myconf+=" --with-libudev"
- else
- myconf+=" --without-libudev"
- fi
-
- local plugin
-
- # Disable what needs to be disabled.
- for plugin in ${COLLECTD_DISABLED_PLUGINS}; do
- myconf+=" --disable-${plugin}"
- done
-
- # Set enable/disable for each single plugin.
- for plugin in ${COLLECTD_ALL_PLUGINS}; do
- if has ${plugin} ${osdependent_plugins}; then
- # plugin is os-dependent ...
- if has ${plugin} ${myos_plugins}; then
- # ... and available in this os
- myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
- # ... must we link against libstatgrab? Bug #541518
- if use kernel_FreeBSD && has ${plugin} ${libstatgrab_plugins}; then
- einfo "We must link against libstatgrab due to plugin \"${plugin}\" ..."
- need_libstatgrab=1
- fi
- else
- # ... and NOT available in this os
- if use collectd_plugins_${plugin}; then
- ewarn "You try to enable the ${plugin} plugin, but it is not available for this"
- ewarn "kernel. Disabling it automatically."
- fi
- myconf+=" --disable-${plugin}"
- fi
- elif [[ "${plugin}" = "collectd_plugins_perl" ]]; then
- if use collectd_plugins_perl && ! use perl; then
- ewarn "Perl plugin disabled as perl bindings disabled by -perl use flag"
- myconf+= --disable-perl
- else
- myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
- fi
- else
- myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
- fi
- done
-
- if [ "${need_libstatgrab}" -eq 1 ]; then
- myconf+=" --with-libstatgrab"
- else
- myconf+=" --without-libstatgrab"
- fi
-
- # JAVA_HOME is set by eclasses.
- if use collectd_plugins_java; then
- myconf+=" --with-java"
- fi
-
- # Need libiptc ONLY for iptables. If we try to use it otherwise bug 340109 happens.
- # lots of libs are only needed for plugins, if they are disabled, also disable the lib
- use collectd_plugins_iptables || myconf+=" --with-libiptc=no"
- use collectd_plugins_openldap || myconf+=" --with-libldap=no"
- use collectd_plugins_redis || use collectd_plugins_write_redis || myconf+=" --with-libhiredis=no"
- use collectd_plugins_smart || myconf+=" --with-libatasmart=no"
- use collectd_plugins_gps || myconf+=" --with-libgps=no"
-
- if use perl; then
- myconf+=" --with-perl-bindings=INSTALLDIRS=vendor"
- else
- myconf+=" --without-perl-bindings"
- fi
-
- # No need for v5upgrade
- myconf+=" --disable-target_v5upgrade"
-
- # Python
- if use collectd_plugins_python; then
- myconf+=" --with-libpython=yes"
- export PYTHON_CONFIG=$(python_get_PYTHON_CONFIG)
- else
- myconf+=" --with-libpython=no"
- fi
-
- # XFS support
- myconf+=" $(use_enable xfs)"
-
- # Finally, run econf.
- KERNEL_DIR="${KERNEL_DIR}" econf --config-cache \
- $(use_enable static-libs static) \
- --localstatedir=/var ${myconf}
-}
-
-src_install() {
- emake DESTDIR="${D%/}" install
-
- perl_delete_localpod
-
- find "${ED}"usr/ -name "*.la" -delete || die
-
- if use collectd_plugins_java; then
- java-pkg_regjar "${ED}"usr/share/${PN}/java/*.jar
- fi
-
- fowners root:collectd /etc/collectd.conf
- fperms u=rw,g=r,o= /etc/collectd.conf
-
- dodoc AUTHORS ChangeLog README
-
- if use contrib ; then
- insinto /usr/share/doc/${PF}
- doins -r contrib
- fi
-
- keepdir /var/lib/${PN}
- fowners collectd:collectd /var/lib/${PN}
-
- newinitd "${FILESDIR}/${PN}.initd-r2" ${PN}
- newconfd "${FILESDIR}/${PN}.confd-r2" ${PN}
- systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf
-
- sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":#PIDFile "/run/collectd.pid":' "${ED}"etc/collectd.conf || die
- sed -i -e 's:^# SocketFile "/var/run/collectd-unixsock":# SocketFile "/run/collectd/collectd.socket":' "${ED}"etc/collectd.conf || die
- sed -i -e 's:^.*LoadPlugin perl$:# The new, correct way to load the perl plugin -- \n# <LoadPlugin perl>\n# Globals true\n# </LoadPlugin>:' "${ED}"etc/collectd.conf || die
- sed -i -e 's:^.*LoadPlugin python$:# The new, correct way to load the python plugin -- \n# <LoadPlugin python>\n# Globals true\n# </LoadPlugin>:' "${ED}"etc/collectd.conf || die
-}
-
-pkg_postinst() {
- tmpfiles_process "${PN}.conf"
-
- if use filecaps; then
- local caps=()
- use collectd_plugins_ceph && caps+=('CAP_DAC_OVERRIDE')
- use collectd_plugins_exec && caps+=('CAP_SETUID' 'CAP_SETGID')
- use collectd_plugins_iptables && caps+=('CAP_NET_ADMIN')
- use collectd_plugins_filecount && caps+=('CAP_DAC_READ_SEARCH')
-
- if use collectd_plugins_dns || use collectd_plugins_ping; then
- caps+=('CAP_NET_RAW')
- fi
-
- if use collectd_plugins_turbostat || use collectd_plugins_smart; then
- caps+=('CAP_SYS_RAWIO')
- fi
-
- if [ ${#caps[@]} -gt 0 ]; then
- local caps_str=$(IFS=","; echo "${caps[*]}")
- fcaps ${caps_str} usr/sbin/collectd
- elog "Capabilities for ${EROOT}usr/sbin/collectd set to:"
- elog " ${caps_str}+EP"
- elog
-
- local systemd_unit="$(systemd_get_systemunitdir)/collectd.service"
- if [[ -e "${systemd_unit}" ]]; then
- caps_str="${caps[*]}"
- sed -i -e "s:^CapabilityBoundingSet=.*:CapabilityBoundingSet=${caps_str}:" "${systemd_unit}" || \
- die "Failed to set CapabilityBoundingSet in '${systemd_unit}'"
-
- elog "CapabilityBoundingSet in '${systemd_unit}'"
- elog "updated to match capabilities set above."
- elog
- else
- if has_version "sys-apps/systemd"; then
- # Bug 596852
- ewarn "Failed to update CapabilityBoundingSet in '${systemd_unit}'"
- ewarn "because unit was not found. Please file a bug about this."
- fi
- fi
- fi
- fi
-
- elog "Note: Collectd is only the collector."
- elog " You need to install 'data' sources (applications) locally or"
- elog " remotely on your own."
-
- elog
- elog "Collectd is configured to run as unprivileged user by default."
- elog "You may want to revisit the configuration."
- elog
-
- if use collectd_plugins_email; then
- ewarn "The email plug-in is deprecated. To submit statistics please use the unixsock plugin."
- fi
-
- if use collectd_plugins_smart; then
- elog ""
- elog "If you are using smart plugin and don't run collectd as root make sure"
- elog "that the collectd user is allowed to access the disk you want to monitor"
- elog "(can be done via udev rule for example) and that collectd has the required"
- elog "capabilities set (which is the default when package was emerged with"
- elog "'filecaps' USE flag set)."
- fi
-
- if use contrib; then
- elog "The scripts in /usr/share/doc/${PF}/collection3 for generating graphs need dev-perl/HTML-Parser,"
- elog "dev-perl/config-general, dev-perl/regexp-common, and net-analyzer/rrdtool[perl] to be installed."
- fi
-}
diff --git a/app-metrics/collectd/files/collectd-5.8.0-disk-plugin-udev-fix.patch b/app-metrics/collectd/files/collectd-5.8.0-disk-plugin-udev-fix.patch
deleted file mode 100644
index 1a96f06df0a..00000000000
--- a/app-metrics/collectd/files/collectd-5.8.0-disk-plugin-udev-fix.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From ed696c1b3adcb42d55759efe6f8034337f0fd243 Mon Sep 17 00:00:00 2001
-From: Dylan Stephano-Shachter <dylan@wopr.nasuni.net>
-Date: Thu, 15 Feb 2018 16:37:33 -0500
-Subject: [PATCH] change HAVE_UDEV_H to HAVE_LIBUDEV_H for bug 2651
-
----
- src/disk.c | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/src/disk.c b/src/disk.c
-index 004ce9e2d7..04f337415f 100644
---- a/src/disk.c
-+++ b/src/disk.c
-@@ -139,7 +139,7 @@ static int pnumdisk;
- #error "No applicable input method."
- #endif
-
--#if HAVE_UDEV_H
-+#if HAVE_LIBUDEV_H
- #include <libudev.h>
-
- static char *conf_udev_name_attr = NULL;
-@@ -173,7 +173,7 @@ static int disk_config(const char *key, const char *value) {
- "on Mach / Mac OS X and will be ignored.");
- #endif
- } else if (strcasecmp("UdevNameAttr", key) == 0) {
--#if HAVE_UDEV_H
-+#if HAVE_LIBUDEV_H
- if (conf_udev_name_attr != NULL) {
- free(conf_udev_name_attr);
- conf_udev_name_attr = NULL;
-@@ -209,7 +209,7 @@ static int disk_init(void) {
- /* #endif HAVE_IOKIT_IOKITLIB_H */
-
- #elif KERNEL_LINUX
--#if HAVE_UDEV_H
-+#if HAVE_LIBUDEV_H
- if (conf_udev_name_attr != NULL) {
- handle_udev = udev_new();
- if (handle_udev == NULL) {
-@@ -217,7 +217,7 @@ static int disk_init(void) {
- return -1;
- }
- }
--#endif /* HAVE_UDEV_H */
-+#endif /* HAVE_LIBUDEV_H */
- /* #endif KERNEL_LINUX */
-
- #elif KERNEL_FREEBSD
-@@ -260,10 +260,10 @@ static int disk_init(void) {
-
- static int disk_shutdown(void) {
- #if KERNEL_LINUX
--#if HAVE_UDEV_H
-+#if HAVE_LIBUDEV_H
- if (handle_udev != NULL)
- udev_unref(handle_udev);
--#endif /* HAVE_UDEV_H */
-+#endif /* HAVE_LIBUDEV_H */
- #endif /* KERNEL_LINUX */
- return 0;
- } /* int disk_shutdown */
-@@ -325,7 +325,7 @@ static counter_t disk_calc_time_incr(counter_t delta_time,
- }
- #endif
-
--#if HAVE_UDEV_H
-+#if HAVE_LIBUDEV_H
- /**
- * Attempt to provide an rename disk instance from an assigned udev attribute.
- *
-@@ -841,7 +841,7 @@ static int disk_read(void) {
-
- output_name = disk_name;
-
--#if HAVE_UDEV_H
-+#if HAVE_LIBUDEV_H
- char *alt_name = NULL;
- if (conf_udev_name_attr != NULL) {
- alt_name =
-@@ -852,7 +852,7 @@ static int disk_read(void) {
- #endif
-
- if (ignorelist_match(ignorelist, output_name) != 0) {
--#if HAVE_UDEV_H
-+#if HAVE_LIBUDEV_H
- /* release udev-based alternate name, if allocated */
- sfree(alt_name);
- #endif
-@@ -878,7 +878,7 @@ static int disk_read(void) {
- submit_io_time(output_name, io_time, weighted_time);
- } /* if (is_disk) */
-
--#if HAVE_UDEV_H
-+#if HAVE_LIBUDEV_H
- /* release udev-based alternate name, if allocated */
- sfree(alt_name);
- #endif
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/
@ 2019-08-21 22:53 Thomas Deutschmann
0 siblings, 0 replies; 10+ messages in thread
From: Thomas Deutschmann @ 2019-08-21 22:53 UTC (permalink / raw
To: gentoo-commits
commit: 7628e513e894f1fa4d23dd8b4b5a052a4a068dd9
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 21 22:52:35 2019 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Wed Aug 21 22:53:44 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7628e513
app-metrics/collectd: unbreack v5.9.1
Add some upstream patches to fix broken v5.9.1 release.
Package-Manager: Portage-2.3.72, Repoman-2.3.17
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
...lectd-5.9.1.ebuild => collectd-5.9.1-r1.ebuild} | 2 +-
.../collectd/files/collectd-5.9.1-fixup.patch | 81 ++++++++++++++++++++++
2 files changed, 82 insertions(+), 1 deletion(-)
diff --git a/app-metrics/collectd/collectd-5.9.1.ebuild b/app-metrics/collectd/collectd-5.9.1-r1.ebuild
similarity index 99%
rename from app-metrics/collectd/collectd-5.9.1.ebuild
rename to app-metrics/collectd/collectd-5.9.1-r1.ebuild
index e79b4d6e0e4..052e491c929 100644
--- a/app-metrics/collectd/collectd-5.9.1.ebuild
+++ b/app-metrics/collectd/collectd-5.9.1-r1.ebuild
@@ -160,7 +160,7 @@ REQUIRED_USE="
collectd_plugins_python? ( ${PYTHON_REQUIRED_USE} )
collectd_plugins_smart? ( udev )"
-PATCHES=()
+PATCHES=( "${FILESDIR}"/${P}-fixup.patch )
S="${WORKDIR}/${PN}-${PN}-${PV}"
diff --git a/app-metrics/collectd/files/collectd-5.9.1-fixup.patch b/app-metrics/collectd/files/collectd-5.9.1-fixup.patch
new file mode 100644
index 00000000000..93f97d95a9c
--- /dev/null
+++ b/app-metrics/collectd/files/collectd-5.9.1-fixup.patch
@@ -0,0 +1,81 @@
+--- a/src/daemon/plugin.c
++++ b/src/daemon/plugin.c
+@@ -647,7 +647,8 @@ static void start_read_threads(size_t num) /* {{{ */
+ }
+
+ char name[THREAD_NAME_MAX];
+- snprintf(name, sizeof(name), "reader#%" PRIu64, (uint64_t)read_threads_num);
++ ssnprintf(name, sizeof(name), "reader#%" PRIu64,
++ (uint64_t)read_threads_num);
+ set_thread_name(read_threads[read_threads_num], name);
+
+ read_threads_num++;
+@@ -836,8 +837,8 @@ static void start_write_threads(size_t num) /* {{{ */
+ }
+
+ char name[THREAD_NAME_MAX];
+- snprintf(name, sizeof(name), "writer#%" PRIu64,
+- (uint64_t)write_threads_num);
++ ssnprintf(name, sizeof(name), "writer#%" PRIu64,
++ (uint64_t)write_threads_num);
+ set_thread_name(write_threads[write_threads_num], name);
+
+ write_threads_num++;
+--- a/src/intel_rdt.c
++++ b/src/intel_rdt.c
+@@ -325,8 +325,12 @@ static int strlisttoarray(char *str_list, char ***names, size_t *names_num) {
+ continue;
+
+ if ((isdupstr((const char **)*names, *names_num, token))) {
+- ERROR(RDT_PLUGIN ": Duplicated process name \'%s\' in group \'%s\'",
+- token, str_list);
++ if (str_list != NULL)
++ ERROR(RDT_PLUGIN ": Duplicated process name \'%s\' in group \'%s\'",
++ token, str_list);
++ else
++ ERROR(RDT_PLUGIN ": Duplicated process name \'%s\'", token);
++
+ return -EINVAL;
+ } else {
+ if (0 != strarray_add(names, names_num, token)) {
+--- a/src/intel_rdt.c
++++ b/src/intel_rdt.c
+@@ -325,11 +325,7 @@ static int strlisttoarray(char *str_list, char ***names, size_t *names_num) {
+ continue;
+
+ if ((isdupstr((const char **)*names, *names_num, token))) {
+- if (str_list != NULL)
+- ERROR(RDT_PLUGIN ": Duplicated process name \'%s\' in group \'%s\'",
+- token, str_list);
+- else
+- ERROR(RDT_PLUGIN ": Duplicated process name \'%s\'", token);
++ ERROR(RDT_PLUGIN ": Duplicated process name \'%s\'", token);
+
+ return -EINVAL;
+ } else {
+--- a/src/syslog.c
++++ b/src/syslog.c
+@@ -51,8 +51,7 @@ static int sl_config(const char *key, const char *value) {
+ log_level = parse_log_severity(value);
+ if (log_level < 0) {
+ log_level = LOG_INFO;
+- ERROR("syslog: invalid loglevel [%s] defaulting to 'info'", value);
+- return 1;
++ WARNING("syslog: invalid loglevel [%s] defaulting to 'info'", value);
+ }
+ } else if (strcasecmp(key, "NotifyLevel") == 0) {
+ notif_severity = parse_notif_severity(value);
+--- a/src/utils/common/common.c
++++ b/src/utils/common/common.c
+@@ -99,10 +99,7 @@ int ssnprintf(char *str, size_t sz, const char *format, ...) {
+
+ va_end(ap);
+
+- if (ret < 0) {
+- return ret;
+- }
+- return (size_t)ret >= sz;
++ return ret;
+ } /* int ssnprintf */
+
+ char *ssnprintf_alloc(char const *format, ...) /* {{{ */
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/
@ 2020-08-05 15:35 Thomas Deutschmann
0 siblings, 0 replies; 10+ messages in thread
From: Thomas Deutschmann @ 2020-08-05 15:35 UTC (permalink / raw
To: gentoo-commits
commit: 8bcb791ad645e34183dc17e3c05aca6f28689128
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 5 15:34:15 2020 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Wed Aug 5 15:35:35 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8bcb791a
app-metrics/collectd: fix building with >=libsigrok-0.4
Closes: https://bugs.gentoo.org/730514
Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
...-5.11.0-r2.ebuild => collectd-5.11.0-r3.ebuild} | 4 +-
.../files/collectd-5.11.0-libsigrok-0.4+.patch | 157 +++++++++++++++++++++
2 files changed, 160 insertions(+), 1 deletion(-)
diff --git a/app-metrics/collectd/collectd-5.11.0-r2.ebuild b/app-metrics/collectd/collectd-5.11.0-r3.ebuild
similarity index 99%
rename from app-metrics/collectd/collectd-5.11.0-r2.ebuild
rename to app-metrics/collectd/collectd-5.11.0-r3.ebuild
index d8acd70eb21..e3d3fc157a4 100644
--- a/app-metrics/collectd/collectd-5.11.0-r2.ebuild
+++ b/app-metrics/collectd/collectd-5.11.0-r3.ebuild
@@ -129,7 +129,7 @@ COMMON_DEPEND="
collectd_plugins_rrdcached? ( net-analyzer/rrdtool:= )
collectd_plugins_rrdtool? ( net-analyzer/rrdtool:= )
collectd_plugins_sensors? ( sys-apps/lm-sensors:= )
- collectd_plugins_sigrok? ( <sci-libs/libsigrok-0.4:= dev-libs/glib:2 )
+ collectd_plugins_sigrok? ( >=sci-libs/libsigrok-0.4:= dev-libs/glib:2 )
collectd_plugins_slurm? ( sys-cluster/slurm )
collectd_plugins_smart? ( dev-libs/libatasmart:0= )
collectd_plugins_snmp? ( net-analyzer/net-snmp )
@@ -170,6 +170,8 @@ REQUIRED_USE="
collectd_plugins_smart? ( udev )
contrib? ( perl )"
+PATCHES=( "${FILESDIR}"/${PN}-5.11.0-libsigrok-0.4+.patch )
+
# @FUNCTION: collectd_plugin_kernel_linux
# @DESCRIPTION:
# USAGE: <plugin name> <kernel_options> <severity>
diff --git a/app-metrics/collectd/files/collectd-5.11.0-libsigrok-0.4+.patch b/app-metrics/collectd/files/collectd-5.11.0-libsigrok-0.4+.patch
new file mode 100644
index 00000000000..981864e81c3
--- /dev/null
+++ b/app-metrics/collectd/files/collectd-5.11.0-libsigrok-0.4+.patch
@@ -0,0 +1,157 @@
+Backport of https://github.com/u1f35c/collectd/commit/9e36cd85a2bbd6daa55f1f392f60f9c95573ae2c
+aka https://github.com/collectd/collectd/issues/1574
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -5367,7 +5367,7 @@ AC_SUBST([BUILD_WITH_LIBSENSORS_LIBS])
+ # libsigrok {{{
+ AC_SUBST([LIBSIGROK_CFLAGS])
+ AC_SUBST([LIBSIGROK_LIBS])
+-PKG_CHECK_MODULES([LIBSIGROK], [libsigrok < 0.4],
++PKG_CHECK_MODULES([LIBSIGROK], [libsigrok >= 0.4],
+ [with_libsigrok="yes"],
+ [with_libsigrok="no (pkg-config could not find libsigrok)"]
+ )
+--- a/src/sigrok.c
++++ b/src/sigrok.c
+@@ -127,22 +127,22 @@ static int sigrok_config(oconfig_item_t *ci) {
+ return 0;
+ }
+
+-static const char *sigrok_value_type(const struct sr_datafeed_analog *analog) {
++static const char *sigrok_value_type(const struct sr_analog_meaning *meaning) {
+ const char *s;
+
+- if (analog->mq == SR_MQ_VOLTAGE)
++ if (meaning->mq == SR_MQ_VOLTAGE)
+ s = "voltage";
+- else if (analog->mq == SR_MQ_CURRENT)
++ else if (meaning->mq == SR_MQ_CURRENT)
+ s = "current";
+- else if (analog->mq == SR_MQ_FREQUENCY)
++ else if (meaning->mq == SR_MQ_FREQUENCY)
+ s = "frequency";
+- else if (analog->mq == SR_MQ_POWER)
++ else if (meaning->mq == SR_MQ_POWER)
+ s = "power";
+- else if (analog->mq == SR_MQ_TEMPERATURE)
++ else if (meaning->mq == SR_MQ_TEMPERATURE)
+ s = "temperature";
+- else if (analog->mq == SR_MQ_RELATIVE_HUMIDITY)
++ else if (meaning->mq == SR_MQ_RELATIVE_HUMIDITY)
+ s = "humidity";
+- else if (analog->mq == SR_MQ_SOUND_PRESSURE_LEVEL)
++ else if (meaning->mq == SR_MQ_SOUND_PRESSURE_LEVEL)
+ s = "spl";
+ else
+ s = "gauge";
+@@ -172,7 +172,7 @@ static void sigrok_feed_callback(const struct sr_dev_inst *sdi,
+ ERROR("sigrok plugin: Received data from driver \"%s\" but "
+ "can't find a configuration / device matching "
+ "it.",
+- sdi->driver->name);
++ sr_dev_inst_driver_get(sdi)->name);
+ return;
+ }
+
+@@ -191,11 +191,11 @@ static void sigrok_feed_callback(const struct sr_dev_inst *sdi,
+
+ /* Ignore all but the first sample on the first probe. */
+ analog = packet->payload;
+- vl.values = &(value_t){.gauge = analog->data[0]};
++ vl.values = &(value_t){.gauge = ((float *) analog->data)[0]};
+ vl.values_len = 1;
+ sstrncpy(vl.plugin, "sigrok", sizeof(vl.plugin));
+ sstrncpy(vl.plugin_instance, cfdev->name, sizeof(vl.plugin_instance));
+- sstrncpy(vl.type, sigrok_value_type(analog), sizeof(vl.type));
++ sstrncpy(vl.type, sigrok_value_type(&analog->meaning[0]), sizeof(vl.type));
+
+ plugin_dispatch_values(&vl);
+ cfdev->last_dispatch = cdtime();
+@@ -207,6 +207,7 @@ static void sigrok_free_drvopts(struct sr_config *src) {
+ }
+
+ static int sigrok_init_driver(struct config_device *cfdev,
++ struct sr_session *session,
+ struct sr_dev_driver *drv) {
+ struct sr_config *src;
+ GSList *devlist, *drvopts;
+@@ -248,21 +249,22 @@ static int sigrok_init_driver(struct config_device *cfdev,
+ cfdev->sdi = devlist->data;
+ g_slist_free(devlist);
+ ssnprintf(hwident, sizeof(hwident), "%s %s %s",
+- cfdev->sdi->vendor ? cfdev->sdi->vendor : "",
+- cfdev->sdi->model ? cfdev->sdi->model : "",
+- cfdev->sdi->version ? cfdev->sdi->version : "");
++ sr_dev_inst_vendor_get(cfdev->sdi),
++ sr_dev_inst_model_get(cfdev->sdi),
++ sr_dev_inst_version_get(cfdev->sdi));
+ INFO("sigrok plugin: Device \"%s\" is a %s", cfdev->name, hwident);
+
+ if (sr_dev_open(cfdev->sdi) != SR_OK)
+ return -1;
+
+- if (sr_session_dev_add(cfdev->sdi) != SR_OK)
++ if (sr_session_dev_add(session, cfdev->sdi) != SR_OK)
+ return -1;
+
+ return 1;
+ }
+
+ static void *sigrok_read_thread(void *arg __attribute__((unused))) {
++ struct sr_session *session;
+ struct sr_dev_driver *drv, **drvlist;
+ GSList *l;
+ struct config_device *cfdev;
+@@ -277,11 +279,11 @@ static void *sigrok_read_thread(void *arg __attribute__((unused))) {
+ return NULL;
+ }
+
+- if (!sr_session_new())
++ if (!sr_session_new(sr_ctx, &session))
+ return NULL;
+
+ num_devices = 0;
+- drvlist = sr_driver_list();
++ drvlist = sr_driver_list(sr_ctx);
+ for (l = config_devices; l; l = l->next) {
+ cfdev = l->data;
+ drv = NULL;
+@@ -296,7 +298,7 @@ static void *sigrok_read_thread(void *arg __attribute__((unused))) {
+ return NULL;
+ }
+
+- if ((ret = sigrok_init_driver(cfdev, drv)) < 0)
++ if ((ret = sigrok_init_driver(cfdev, session, drv)) < 0)
+ /* Error was already logged. */
+ return NULL;
+
+@@ -305,21 +307,22 @@ static void *sigrok_read_thread(void *arg __attribute__((unused))) {
+
+ if (num_devices > 0) {
+ /* Do this only when we're sure there's hardware to talk to. */
+- if (sr_session_datafeed_callback_add(sigrok_feed_callback, NULL) != SR_OK)
++ if (sr_session_datafeed_callback_add(session, sigrok_feed_callback,
++ NULL) != SR_OK)
+ return NULL;
+
+ /* Start acquisition on all devices. */
+- if (sr_session_start() != SR_OK)
++ if (sr_session_start(session) != SR_OK)
+ return NULL;
+
+ /* Main loop, runs forever. */
+- sr_session_run();
++ sr_session_run(session);
+
+- sr_session_stop();
+- sr_session_dev_remove_all();
++ sr_session_stop(session);
++ sr_session_dev_remove_all(session);
+ }
+
+- sr_session_destroy();
++ sr_session_destroy(session);
+
+ sr_exit(sr_ctx);
+
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/
@ 2022-06-05 14:06 Conrad Kostecki
0 siblings, 0 replies; 10+ messages in thread
From: Conrad Kostecki @ 2022-06-05 14:06 UTC (permalink / raw
To: gentoo-commits
commit: c1983aebe66b95bd9da87d40db1f608ba90c7528
Author: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 5 19:18:08 2022 +0000
Commit: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Sun Jun 5 14:06:07 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1983aeb
app-metrics/collectd: fix missing group in init script
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/24922
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>
...-5.12.0-r6.ebuild => collectd-5.12.0-r7.ebuild} | 2 +-
app-metrics/collectd/files/collectd.initd-r3 | 71 ++++++++++++++++++++++
2 files changed, 72 insertions(+), 1 deletion(-)
diff --git a/app-metrics/collectd/collectd-5.12.0-r6.ebuild b/app-metrics/collectd/collectd-5.12.0-r7.ebuild
similarity index 99%
rename from app-metrics/collectd/collectd-5.12.0-r6.ebuild
rename to app-metrics/collectd/collectd-5.12.0-r7.ebuild
index 608f269fb2c6..1e9d0b18e23e 100644
--- a/app-metrics/collectd/collectd-5.12.0-r6.ebuild
+++ b/app-metrics/collectd/collectd-5.12.0-r7.ebuild
@@ -464,7 +464,7 @@ src_install() {
keepdir /var/lib/${PN}
fowners collectd:collectd /var/lib/${PN}
- newinitd "${FILESDIR}/${PN}.initd-r2" ${PN}
+ newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
newconfd "${FILESDIR}/${PN}.confd-r2" ${PN}
systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service
diff --git a/app-metrics/collectd/files/collectd.initd-r3 b/app-metrics/collectd/files/collectd.initd-r3
new file mode 100644
index 000000000000..aa3396d5a451
--- /dev/null
+++ b/app-metrics/collectd/files/collectd.initd-r3
@@ -0,0 +1,71 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 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.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}\" -f"
+command_background=true
+command_group="${COLLECTD_GROUP}"
+command_user="${COLLECTD_USER}"
+start_stop_daemon_args="${COLLECTD_SSDARGS} --nice ${COLLECTD_NICELEVEL}"
+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
+}
+
+stop_pre() {
+ if [ "${RC_CMD}" = "restart" ]; then
+ configtest || return 1
+ fi
+}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/
@ 2022-06-07 17:58 Conrad Kostecki
0 siblings, 0 replies; 10+ messages in thread
From: Conrad Kostecki @ 2022-06-07 17:58 UTC (permalink / raw
To: gentoo-commits
commit: 27e246bff6899e93be3c31e1368f08f02d404c2b
Author: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 7 17:58:03 2022 +0000
Commit: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Tue Jun 7 17:58:03 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27e246bf
app-metrics/collectd: drop 5.12.0-r5
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>
app-metrics/collectd/collectd-5.12.0-r5.ebuild | 552 -------------------------
app-metrics/collectd/files/collectd.initd-r2 | 70 ----
2 files changed, 622 deletions(-)
diff --git a/app-metrics/collectd/collectd-5.12.0-r5.ebuild b/app-metrics/collectd/collectd-5.12.0-r5.ebuild
deleted file mode 100644
index 31e9c7f7be72..000000000000
--- a/app-metrics/collectd/collectd-5.12.0-r5.ebuild
+++ /dev/null
@@ -1,552 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-JAVA_PKG_OPT_USE="collectd_plugins_java"
-LUA_COMPAT=( lua5-{1..3} )
-PYTHON_COMPAT=( python3_{7..9} )
-
-inherit autotools fcaps flag-o-matic java-pkg-opt-2 linux-info lua-single \
- multilib perl-functions python-single-r1 systemd tmpfiles udev
-
-DESCRIPTION="Collects system statistics and provides mechanisms to store the values"
-
-HOMEPAGE="https://collectd.org/"
-SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.bz2"
-
-LICENSE="MIT GPL-2 GPL-2+ GPL-3 GPL-3+"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm x86"
-IUSE="contrib debug java 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
-# amqp1: Requires libqpid-proton
-# aquaero: Requires aerotools-ng/libaquaero5
-# barometer: Requires libi2c (i2c_smbus_read_i2c_block_data)
-# dpdkevents: Requires dpdk
-# dpdkstat: Requires dpdk
-# dpdk_telemetry: Requires dpdk
-# grpc: Requires libgrpc
-# intel_pmu: Requires libjevents (pmu-tools)
-# intel_rdt: Requires libpqos from intel-cmt-cat project
-# lpar: Requires libperfstat (AIX only)
-# mic: Requires Intel Many Integrated Core Architecture API
-# (part of Intel's Xeon Phi software)
-# netapp: Requires libnetapp (http://communities.netapp.com/docs/DOC-1110)
-# onewire: Requires sys-fs/owfs which was removed from repository
-# pf: Requires BSD packet filter
-# pinba: Requires MySQL Pinba engine (http://pinba.org/)
-# redfish: Requires libredfish
-# tape: Requires libkstat (Solaris only)
-# tokyotyrant: Requires tokyotyrant
-# write_riemann: Requires riemann-c-client
-# xmms: Requires libxmms (v1)
-# zone: Solaris only...
-COLLECTD_IMPOSSIBLE_PLUGINS="apple_sensors amqp1 aquaero barometer
- dpdkevents dpdkstat dpdk_telemetry grpc intel_pmu intel_rdt lpar
- mic netapp onewire pf pinba redfish tape tokyotyrant 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
- buddyinfo capabilities ceph cgroups check_uptime chrony connectivity
- 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 gpu_nvidia hddtemp hugepages interface ipc
- ipmi iptables ipvs irq java lua load logfile logparser log_logstash
- madwifi match_empty_counter match_hashed match_regex match_timediff
- match_value mbmon mcelog md memcachec memcached memory modbus mqtt
- multimeter mysql netlink network network nfs nginx notify_desktop
- notify_email notify_nagios ntpd numa nut olsrd onewire openldap
- openvpn oracle ovs_events ovs_stats pcie_errors perl ping postgresql
- powerdns procevent processes protocols python redis routeros
- rrdcached rrdtool sensors serial sigrok slurm smart snmp snmp_agent
- statsd swap synproxy sysevent syslog table tail tail_csv
- target_notification target_replace target_scale target_set tcpconns
- teamspeak2 ted thermal threshold turbostat ubi unixsock uptime users
- uuid varnish virt vmem vserver wireless write_graphite write_http
- write_influxdb_udp write_kafka write_log write_mongodb write_prometheus
- write_redis write_sensu write_stackdriver write_syslog 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="
- acct-group/collectd
- acct-user/collectd
- dev-libs/libgcrypt:=
- dev-libs/libltdl:0=
- sys-libs/libcap
- 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_capabilities? ( dev-libs/jansson net-libs/libmicrohttpd:= )
- collectd_plugins_connectivity? ( dev-libs/yajl:= net-libs/libmnl )
- 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_gpu_nvidia? ( dev-util/nvidia-cuda-toolkit )
- 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? ( ${LUA_DEPS} )
- collectd_plugins_memcachec? ( dev-libs/libmemcached )
- collectd_plugins_modbus? ( dev-libs/libmodbus )
- collectd_plugins_mqtt? ( app-misc/mosquitto )
- collectd_plugins_mysql? ( dev-db/mysql-connector-c:= )
- 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_oracle? ( dev-db/oracle-instantclient[sdk] )
- collectd_plugins_ovs_events? ( dev-libs/yajl:= )
- collectd_plugins_ovs_stats? ( dev-libs/yajl:= )
- collectd_plugins_perl? ( dev-lang/perl:=[ithreads] )
- collectd_plugins_ping? ( net-libs/liboping )
- collectd_plugins_postgresql? ( dev-db/postgresql:= )
- collectd_plugins_procevent? ( dev-libs/yajl:= )
- 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? ( >=sci-libs/libsigrok-0.4:= dev-libs/glib:2 )
- collectd_plugins_slurm? ( sys-cluster/slurm )
- collectd_plugins_smart? ( dev-libs/libatasmart:0= )
- collectd_plugins_snmp? ( net-analyzer/net-snmp:= )
- collectd_plugins_snmp_agent? ( net-analyzer/net-snmp:= )
- collectd_plugins_sysevent? ( dev-libs/yajl:= )
- collectd_plugins_varnish? ( www-servers/varnish:= )
- collectd_plugins_virt? ( app-emulation/libvirt:= dev-libs/libxml2:2= )
- collectd_plugins_write_http? ( net-misc/curl:0= dev-libs/yajl:= )
- collectd_plugins_write_kafka? ( >=dev-libs/librdkafka-0.9.0.99:= dev-libs/yajl:= )
- collectd_plugins_write_mongodb? ( >=dev-libs/mongo-c-driver-1.8.2:= )
- collectd_plugins_write_prometheus? ( >=dev-libs/protobuf-c-1.2.1-r1:= net-libs/libmicrohttpd:= )
- collectd_plugins_write_redis? ( dev-libs/hiredis:= )
- collectd_plugins_write_stackdriver? ( net-misc/curl:0= dev-libs/yajl:= )
- collectd_plugins_xencpu? ( app-emulation/xen-tools:= )
-"
-
-# FIXME: should virtual/jdk be here as well?
-BDEPEND="virtual/pkgconfig"
-
-# 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 )"
-
-RDEPEND="${COMMON_DEPEND}
- collectd_plugins_java? ( >=virtual/jre-1.6 )
- collectd_plugins_syslog? ( virtual/logger )
- selinux? ( sec-policy/selinux-collectd )"
-
-REQUIRED_USE="
- collectd_plugins_lua? ( ${LUA_REQUIRED_USE} )
- collectd_plugins_python? ( ${PYTHON_REQUIRED_USE} )
- collectd_plugins_smart? ( udev )
- contrib? ( perl )"
-
-PATCHES=( "${FILESDIR}"/${PN}-5.11.0-libsigrok-0.4+.patch )
-
-# @FUNCTION: collectd_plugin_kernel_linux
-# @DESCRIPTION:
-# USAGE: <plugin name> <kernel_options> <severity>
-# 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_lua && lua-single_pkg_setup
- use collectd_plugins_python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- default
-
- # There's some strange prefix handling in the default config file, resulting in
- # paths like "/usr/var/..."
- sed -i -e "s:@prefix@/var:/var:g" src/collectd.conf.in || die
-
- # Adjust upstream's systemd unit
- # - Get rid of EnvironmentFile directive; These files don't exist on Gentoo!
- # - Add User=collectd to run collectd as user "collectd" per default
- sed -i \
- -e '/^EnvironmentFile=.*/d' \
- -e '/^\[Service\]/aUser=collectd' \
- contrib/systemd.${PN}.service || die
-
- eautoreconf
-}
-
-src_configure() {
- # Now come the lists of os-dependent plugins. Any plugin that is not listed anywhere here
- # should work independent of the operating system.
-
- local linux_plugins="barometer battery cpu cpufreq disk
- drbd entropy ethstat hugepages interface iptables
- ipvs irq ipc load memory md netlink nfs numa processes
- serial swap tcpconns thermal turbostat users vmem wireless
- zfc_arc"
-
- local need_libstatgrab=0
- local libstatgrab_plugins="cpu disk interface load memory swap users"
- local bsd_plugins="cpu tcpconns ${libstatgrab_plugins} zfc_arc"
-
- local darwin_plugins="apple_sensors battery cpu disk interface memory processes tcpconns"
-
- local osdependent_plugins="${linux_plugins} ${bsd_plugins} ${darwin_plugins}"
- local myos_plugins=""
- if use kernel_linux; then
- einfo "Enabling Linux plugins."
- myos_plugins=${linux_plugins}
- elif use kernel_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
- if [[ "${plugin}" == 'dpdkstat' ]]; then
- myconf+=" --without-libdpdk"
- else
- myconf+=" --disable-${plugin}"
- fi
- 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})"
- 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 collectd_plugins_gpu_nvidia; then
- myconf+=" --with-cuda=${EPREFIX}/opt/cuda"
- else
- myconf+=" --with-cuda=no"
- fi
-
- 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
-
- if use collectd_plugins_disk && use udev; then
- udev_newrules contrib/99-storage-collectd.rules 60-persistent-storage-collectd.rules
- fi
-
- fowners root:collectd /etc/collectd.conf
- fperms u=rw,g=r,o= /etc/collectd.conf
-
- einstalldocs
-
- if use contrib; then
- insinto /usr/share/${PN}
- doins -r contrib
- fi
-
- keepdir /var/lib/${PN}
- fowners collectd:collectd /var/lib/${PN}
-
- newinitd "${FILESDIR}/${PN}.initd-r2" ${PN}
- newconfd "${FILESDIR}/${PN}.confd-r2" ${PN}
- systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf
-
- sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":#PIDFile "/run/collectd.pid":' "${ED}"/etc/collectd.conf || die
- sed -i -e 's:^# SocketFile "/var/run/collectd-unixsock":# SocketFile "/run/collectd/collectd.socket":' "${ED}"/etc/collectd.conf || die
- sed -i -e 's:^.*LoadPlugin perl$:# The new, correct way to load the perl plugin -- \n# <LoadPlugin perl>\n# Globals true\n# </LoadPlugin>:' "${ED}"/etc/collectd.conf || die
- sed -i -e 's:^.*LoadPlugin python$:# The new, correct way to load the python plugin -- \n# <LoadPlugin python>\n# Globals true\n# </LoadPlugin>:' "${ED}"/etc/collectd.conf || die
-}
-
-pkg_postinst() {
- tmpfiles_process "${PN}.conf"
-
- if use filecaps; then
- local caps=()
- use collectd_plugins_ceph && caps+=('CAP_DAC_OVERRIDE')
- use collectd_plugins_exec && caps+=('CAP_SETUID' 'CAP_SETGID')
- use collectd_plugins_iptables && caps+=('CAP_NET_ADMIN')
- use collectd_plugins_filecount && caps+=('CAP_DAC_READ_SEARCH')
-
- if use collectd_plugins_dns || use collectd_plugins_ping; then
- caps+=('CAP_NET_RAW')
- fi
-
- if use collectd_plugins_turbostat || use collectd_plugins_smart; then
- caps+=('CAP_SYS_RAWIO')
- fi
-
- if [ ${#caps[@]} -gt 0 ]; then
- local caps_str=$(IFS=","; echo "${caps[*]}")
- fcaps ${caps_str} usr/sbin/collectd
- elog "Capabilities for ${EROOT}/usr/sbin/collectd set to:"
- elog " ${caps_str}+EP"
- elog
-
- local systemd_unit="$(systemd_get_systemunitdir)/collectd.service"
- if [[ -e "${systemd_unit}" ]]; then
- caps_str="${caps[*]}"
- sed -i -e "s:^CapabilityBoundingSet=.*:CapabilityBoundingSet=${caps_str}:" "${systemd_unit}" || \
- die "Failed to set CapabilityBoundingSet in '${systemd_unit}'"
-
- elog "CapabilityBoundingSet in '${systemd_unit}'"
- elog "updated to match capabilities set above."
- elog
- else
- if has_version "sys-apps/systemd"; then
- # Bug 596852
- ewarn "Failed to update CapabilityBoundingSet in '${systemd_unit}'"
- ewarn "because unit was not found. Please file a bug about this."
- fi
- fi
- fi
- fi
-
- elog "Note: Collectd is only the collector."
- elog " You need to install 'data' sources (applications) locally or"
- elog " remotely on your own."
-
- elog
- elog "Collectd is configured to run as unprivileged user by default."
- elog "You may want to revisit the configuration."
- elog
-
- if use collectd_plugins_email; then
- ewarn "The email plug-in is deprecated. To submit statistics please use the unixsock plugin."
- fi
-
- if use collectd_plugins_smart; then
- elog ""
- elog "If you are using smart plugin and don't run collectd as root make sure"
- elog "that the collectd user is allowed to access the disk you want to monitor"
- elog "(can be done via udev rule for example) and that collectd has the required"
- elog "capabilities set (which is the default when package was emerged with"
- elog "'filecaps' USE flag set)."
- fi
-
- if use contrib; then
- elog "The scripts in /usr/share/doc/${PF}/collection3 for generating graphs need dev-perl/HTML-Parser,"
- elog "dev-perl/CGI, dev-perl/Config-General and net-analyzer/rrdtool[perl] to be installed."
- fi
-}
diff --git a/app-metrics/collectd/files/collectd.initd-r2 b/app-metrics/collectd/files/collectd.initd-r2
deleted file mode 100644
index 0a4ca71494f6..000000000000
--- a/app-metrics/collectd/files/collectd.initd-r2
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2018 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.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}\" -f"
-command_background=true
-command_user="${COLLECTD_USER}"
-start_stop_daemon_args="${COLLECTD_SSDARGS} --nice ${COLLECTD_NICELEVEL}"
-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
-}
-
-stop_pre() {
- if [ "${RC_CMD}" = "restart" ]; then
- configtest || return 1
- fi
-}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/
@ 2022-11-10 23:04 Conrad Kostecki
0 siblings, 0 replies; 10+ messages in thread
From: Conrad Kostecki @ 2022-11-10 23:04 UTC (permalink / raw
To: gentoo-commits
commit: d5b4e4f0eaa2057de7dda8b3e2af437fca7016c9
Author: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 10 23:00:10 2022 +0000
Commit: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Thu Nov 10 23:03:42 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d5b4e4f0
app-metrics/collectd: fix compilation with python3_11
Closes: https://bugs.gentoo.org/880445
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>
app-metrics/collectd/collectd-5.12.0-r7.ebuild | 5 +++-
.../files/collectd-5.12.0-python3_11.patch | 33 ++++++++++++++++++++++
2 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/app-metrics/collectd/collectd-5.12.0-r7.ebuild b/app-metrics/collectd/collectd-5.12.0-r7.ebuild
index 1b25586eb8fc..26990d0f4680 100644
--- a/app-metrics/collectd/collectd-5.12.0-r7.ebuild
+++ b/app-metrics/collectd/collectd-5.12.0-r7.ebuild
@@ -170,7 +170,10 @@ REQUIRED_USE="
collectd_plugins_smart? ( udev )
contrib? ( perl )"
-PATCHES=( "${FILESDIR}"/${PN}-5.11.0-libsigrok-0.4+.patch )
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.11.0-libsigrok-0.4+.patch
+ "${FILESDIR}"/${PN}-5.12.0-python3_11.patch
+)
# @FUNCTION: collectd_plugin_kernel_linux
# @DESCRIPTION:
diff --git a/app-metrics/collectd/files/collectd-5.12.0-python3_11.patch b/app-metrics/collectd/files/collectd-5.12.0-python3_11.patch
new file mode 100644
index 000000000000..3c0572889559
--- /dev/null
+++ b/app-metrics/collectd/files/collectd-5.12.0-python3_11.patch
@@ -0,0 +1,33 @@
+From 623e95394e0e62e7f9ced2104b786d21e9c0bf53 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
+ <congdanhqx@gmail.com>
+Date: Wed, 21 Sep 2022 22:21:58 +0700
+Subject: [PATCH] cpython: fix build with Python 3.11
+
+Python 3.11 moves longintrepr.h into cpython sub-directory.
+However, in this version, longintrepr.h is always included.
+---
+ src/cpython.h | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/cpython.h b/src/cpython.h
+index 11e64fa62f..bcfa406feb 100644
+--- a/src/cpython.h
++++ b/src/cpython.h
+@@ -24,9 +24,15 @@
+ * Sven Trenkel <collectd at semidefinite.de>
+ **/
+
++#include <Python.h>
+ /* Some python versions don't include this by default. */
+-
++#if PY_VERSION_HEX < 0x030B0000
++/*
++ * Python 3.11 move longintrepr.h to cpython/longintrepr.h
++ * And it's always included
++ */
+ #include <longintrepr.h>
++#endif /* PY_VERSION_HEX < 0x030B0000 */
+
+ /* These two macros are basically Py_BEGIN_ALLOW_THREADS and
+ * Py_BEGIN_ALLOW_THREADS
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/
@ 2023-04-14 3:39 Sam James
0 siblings, 0 replies; 10+ messages in thread
From: Sam James @ 2023-04-14 3:39 UTC (permalink / raw
To: gentoo-commits
commit: eff1ccb300e56b56ceea1fa204946647366afff3
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 14 02:50:58 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Apr 14 03:23:02 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eff1ccb3
app-metrics/collectd: fix configure w/ clang 16
Closes: https://bugs.gentoo.org/879633
Closes: https://bugs.gentoo.org/900392
Signed-off-by: Sam James <sam <AT> gentoo.org>
...-5.12.0-r7.ebuild => collectd-5.12.0-r8.ebuild} | 1 +
.../files/collectd-5.12.0-clang16-configure.patch | 127 +++++++++++++++++++++
2 files changed, 128 insertions(+)
diff --git a/app-metrics/collectd/collectd-5.12.0-r7.ebuild b/app-metrics/collectd/collectd-5.12.0-r8.ebuild
similarity index 99%
rename from app-metrics/collectd/collectd-5.12.0-r7.ebuild
rename to app-metrics/collectd/collectd-5.12.0-r8.ebuild
index 9662889050c6..0c8c8c88baa4 100644
--- a/app-metrics/collectd/collectd-5.12.0-r7.ebuild
+++ b/app-metrics/collectd/collectd-5.12.0-r8.ebuild
@@ -173,6 +173,7 @@ REQUIRED_USE="
PATCHES=(
"${FILESDIR}"/${PN}-5.11.0-libsigrok-0.4+.patch
"${FILESDIR}"/${PN}-5.12.0-python3_11.patch
+ "${FILESDIR}"/${PN}-5.12.0-clang16-configure.patch
)
# @FUNCTION: collectd_plugin_kernel_linux
diff --git a/app-metrics/collectd/files/collectd-5.12.0-clang16-configure.patch b/app-metrics/collectd/files/collectd-5.12.0-clang16-configure.patch
new file mode 100644
index 000000000000..578099579c47
--- /dev/null
+++ b/app-metrics/collectd/files/collectd-5.12.0-clang16-configure.patch
@@ -0,0 +1,127 @@
+https://bugs.gentoo.org/879633
+https://bugs.gentoo.org/900392
+https://github.com/collectd/collectd/pull/4106
+
+From f23164e589502ff675b3b54fa598bd9efd1422ed Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Thu, 6 Apr 2023 19:00:08 +0200
+Subject: [PATCH] Fix glibc feature macro handling for timegm
+
+The way strptime is activated using feature macros, _DEFAULT_SOURCE
+(successor to _BSD_SOURCE) is disabled implicitly, so timegm is
+hidden. Defining _DEFAULT_SOURCE at the same time as the other
+feature macros solves this, and removes the need for the
+TIMEGM_NEEDS_BSD configure macro.
+
+This avoids an implicit declaration of timegm in src/bind.c, and build
+failures with future compilers.
+---
+ configure.ac | 53 ++++++++++++----------------------------------------
+ src/bind.c | 10 +++++-----
+ 2 files changed, 17 insertions(+), 46 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index bbe65a7e99..78bbff6624 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -974,6 +974,12 @@ if test "x$have_strptime" = "xyes" && test "x$c_cv_have_strptime_default" = "xno
+ #ifndef _XOPEN_SOURCE
+ # define _XOPEN_SOURCE 500
+ #endif
++ # ifndef _BSD_SOURCE
++ # define _BSD_SOURCE
++ # endif
++ # ifndef _DEFAULT_SOURCE
++ # define _DEFAULT_SOURCE
++ # endif
+ #include <time.h>
+ ]],
+ [[
+@@ -1024,6 +1030,12 @@ AC_CACHE_CHECK([for timegm],
+ # ifndef _XOPEN_SOURCE
+ # define _XOPEN_SOURCE 500
+ # endif
++# ifndef _BSD_SOURCE
++# define _BSD_SOURCE
++# endif
++# ifndef _DEFAULT_SOURCE
++# define _DEFAULT_SOURCE
++# endif
+ #endif
+ #include <time.h>
+ ]]],
+@@ -1039,50 +1051,9 @@ AC_CACHE_CHECK([for timegm],
+ )
+ )
+
+-if test "x$c_cv_have_timegm" != "xyes"
+-then
+- AC_CACHE_CHECK([for timegm with _BSD_SOURCE],
+- [c_cv_have_timegm_bsd],
+- AC_LINK_IFELSE(
+- [AC_LANG_PROGRAM(
+-[[[
+-#if STRPTIME_NEEDS_STANDARDS
+-# ifndef _ISOC99_SOURCE
+-# define _ISOC99_SOURCE 1
+-# endif
+-# ifndef _POSIX_C_SOURCE
+-# define _POSIX_C_SOURCE 200112L
+-# endif
+-# ifndef _XOPEN_SOURCE
+-# define _XOPEN_SOURCE 500
+-# endif
+-#endif
+-#ifndef _BSD_SOURCE
+-# define _BSD_SOURCE 1
+-#endif
+-#include <time.h>
+-]]],
+-[[[
+- time_t t = timegm(&(struct tm){0});
+- if (t == ((time_t) -1)) {
+- return 1;
+- }
+-]]]
+- )],
+- [c_cv_have_timegm_bsd="yes"
+- c_cv_have_timegm="yes"],
+- [c_cv_have_timegm_bsd="no"]
+- )
+- )
+-fi
+-
+ if test "x$c_cv_have_timegm" = "xyes"
+ then
+ AC_DEFINE(HAVE_TIMEGM, 1, [Define if the timegm(3) function is available.])
+- if test "x$c_cv_have_timegm_bsd" = "xyes"
+- then
+- AC_DEFINE(TIMEGM_NEEDS_BSD, 1, [Set to true if timegm is only exported in BSD mode.])
+- fi
+ fi
+
+ CFLAGS="$SAVE_CFLAGS"
+diff --git a/src/bind.c b/src/bind.c
+index a246f1aacf..4a7c024253 100644
+--- a/src/bind.c
++++ b/src/bind.c
+@@ -33,13 +33,13 @@
+ #ifndef _XOPEN_SOURCE
+ #define _XOPEN_SOURCE 500
+ #endif
+-#endif /* STRPTIME_NEEDS_STANDARDS */
+-
+-#if TIMEGM_NEEDS_BSD
+ #ifndef _BSD_SOURCE
+-#define _BSD_SOURCE 1
++#define _BSD_SOURCE
+ #endif
+-#endif /* TIMEGM_NEEDS_BSD */
++#ifndef _DEFAULT_SOURCE
++#define _DEFAULT_SOURCE
++#endif
++#endif /* STRPTIME_NEEDS_STANDARDS */
+
+ #include "collectd.h"
+
+
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/
@ 2023-12-04 7:32 Sam James
0 siblings, 0 replies; 10+ messages in thread
From: Sam James @ 2023-12-04 7:32 UTC (permalink / raw
To: gentoo-commits
commit: 70e9a9462d2ab905cc2daeba69bc3a502de0729c
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 4 07:32:00 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Dec 4 07:32:14 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70e9a946
app-metrics/collectd: fix another modern c issue in configure (for nut)
Bug: https://bugs.gentoo.org/879633
Signed-off-by: Sam James <sam <AT> gentoo.org>
app-metrics/collectd/collectd-5.12.0-r9.ebuild | 563 +++++++++++++++++++++
.../collectd/files/collectd-5.12.0-nut-c99.patch | 143 ++++++
2 files changed, 706 insertions(+)
diff --git a/app-metrics/collectd/collectd-5.12.0-r9.ebuild b/app-metrics/collectd/collectd-5.12.0-r9.ebuild
new file mode 100644
index 000000000000..04af4bc67d49
--- /dev/null
+++ b/app-metrics/collectd/collectd-5.12.0-r9.ebuild
@@ -0,0 +1,563 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+JAVA_PKG_OPT_USE="collectd_plugins_java"
+LUA_COMPAT=( lua5-{1..4} )
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit autotools fcaps java-pkg-opt-2 linux-info lua-single perl-functions python-single-r1 systemd tmpfiles udev
+
+DESCRIPTION="Collects system statistics and provides mechanisms to store the values"
+
+HOMEPAGE="https://collectd.org/"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.bz2"
+
+LICENSE="MIT GPL-2 GPL-2+ GPL-3 GPL-3+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~x86"
+IUSE="contrib debug java 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
+# amqp1: Requires libqpid-proton
+# aquaero: Requires aerotools-ng/libaquaero5
+# barometer: Requires libi2c (i2c_smbus_read_i2c_block_data)
+# dpdkevents: Requires dpdk
+# dpdkstat: Requires dpdk
+# dpdk_telemetry: Requires dpdk
+# grpc: Requires libgrpc
+# intel_pmu: Requires libjevents (pmu-tools)
+# intel_rdt: Requires libpqos from intel-cmt-cat project
+# lpar: Requires libperfstat (AIX only)
+# mic: Requires Intel Many Integrated Core Architecture API
+# (part of Intel's Xeon Phi software)
+# netapp: Requires libnetapp (http://communities.netapp.com/docs/DOC-1110)
+# onewire: Requires sys-fs/owfs which was removed from repository
+# pf: Requires BSD packet filter
+# pinba: Requires MySQL Pinba engine (http://pinba.org/)
+# redfish: Requires libredfish
+# tape: Requires libkstat (Solaris only)
+# tokyotyrant: Requires tokyotyrant
+# write_riemann: Requires riemann-c-client
+# xmms: Requires libxmms (v1)
+# zone: Solaris only...
+COLLECTD_IMPOSSIBLE_PLUGINS="apple_sensors amqp1 aquaero barometer
+ dpdkevents dpdkstat dpdk_telemetry grpc intel_pmu intel_rdt lpar
+ mic netapp onewire pf pinba redfish tape tokyotyrant 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
+ buddyinfo capabilities ceph cgroups check_uptime chrony connectivity
+ conntrack contextswitch cpu cpufreq cpusleep csv curl curl_json
+ curl_xml dbi df disk dns drbd email entropy ethstat exec fhcount
+ filecount fscache gps gpu_nvidia hddtemp hugepages interface ipc
+ ipmi iptables ipvs irq java lua load logfile logparser log_logstash
+ madwifi match_empty_counter match_hashed match_regex match_timediff
+ match_value mbmon mcelog md memcachec memcached memory modbus mqtt
+ multimeter mysql netlink network network nfs nginx notify_desktop
+ notify_email notify_nagios ntpd numa nut olsrd onewire openldap
+ openvpn oracle ovs_events ovs_stats pcie_errors perl ping postgresql
+ powerdns procevent processes protocols python redis routeros
+ rrdcached rrdtool sensors serial sigrok slurm smart snmp snmp_agent
+ statsd swap synproxy sysevent syslog table tail tail_csv
+ target_notification target_replace target_scale target_set tcpconns
+ teamspeak2 ted thermal threshold turbostat ubi unixsock uptime users
+ uuid varnish virt vmem vserver wireless write_graphite write_http
+ write_influxdb_udp write_kafka write_log write_mongodb write_prometheus
+ write_redis write_sensu write_stackdriver write_syslog 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="
+ acct-group/collectd
+ acct-user/collectd
+ dev-libs/libgcrypt:=
+ dev-libs/libltdl:0=
+ sys-libs/libcap
+ 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_capabilities? ( dev-libs/jansson net-libs/libmicrohttpd:= )
+ collectd_plugins_connectivity? ( dev-libs/yajl:= net-libs/libmnl )
+ 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_gps? ( sci-geosciences/gpsd:= )
+ collectd_plugins_gpu_nvidia? ( dev-util/nvidia-cuda-toolkit )
+ 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? ( ${LUA_DEPS} )
+ collectd_plugins_memcachec? ( dev-libs/libmemcached )
+ collectd_plugins_modbus? ( dev-libs/libmodbus )
+ collectd_plugins_mqtt? ( app-misc/mosquitto )
+ collectd_plugins_mysql? ( dev-db/mysql-connector-c:= )
+ 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_oracle? ( dev-db/oracle-instantclient[sdk] )
+ collectd_plugins_ovs_events? ( dev-libs/yajl:= )
+ collectd_plugins_ovs_stats? ( dev-libs/yajl:= )
+ collectd_plugins_perl? ( dev-lang/perl:=[ithreads] )
+ collectd_plugins_ping? ( net-libs/liboping )
+ collectd_plugins_postgresql? ( dev-db/postgresql:= )
+ collectd_plugins_procevent? ( dev-libs/yajl:= )
+ 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? ( >=sci-libs/libsigrok-0.4:= dev-libs/glib:2 )
+ collectd_plugins_slurm? ( sys-cluster/slurm )
+ collectd_plugins_smart? ( dev-libs/libatasmart:0= )
+ collectd_plugins_snmp? ( net-analyzer/net-snmp:= )
+ collectd_plugins_snmp_agent? ( net-analyzer/net-snmp:= )
+ collectd_plugins_sysevent? ( dev-libs/yajl:= )
+ collectd_plugins_varnish? ( www-servers/varnish:= )
+ collectd_plugins_virt? ( app-emulation/libvirt:= dev-libs/libxml2:2= )
+ collectd_plugins_write_http? ( net-misc/curl:0= dev-libs/yajl:= )
+ collectd_plugins_write_kafka? ( >=dev-libs/librdkafka-0.9.0.99:= dev-libs/yajl:= )
+ collectd_plugins_write_mongodb? ( >=dev-libs/mongo-c-driver-1.8.2:= )
+ collectd_plugins_write_prometheus? ( >=dev-libs/protobuf-c-1.2.1-r1:= net-libs/libmicrohttpd:= )
+ collectd_plugins_write_redis? ( dev-libs/hiredis:= )
+ collectd_plugins_write_stackdriver? ( net-misc/curl:0= dev-libs/yajl:= )
+ collectd_plugins_xencpu? ( app-emulation/xen-tools:= )
+"
+
+# FIXME: should virtual/jdk be here as well?
+BDEPEND="virtual/pkgconfig"
+
+# 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.8 )"
+
+RDEPEND="${COMMON_DEPEND}
+ collectd_plugins_java? ( >=virtual/jre-1.8 )
+ collectd_plugins_syslog? ( virtual/logger )
+ selinux? ( sec-policy/selinux-collectd )"
+
+REQUIRED_USE="
+ collectd_plugins_lua? ( ${LUA_REQUIRED_USE} )
+ collectd_plugins_python? ( ${PYTHON_REQUIRED_USE} )
+ collectd_plugins_smart? ( udev )
+ contrib? ( perl )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.11.0-libsigrok-0.4+.patch
+ "${FILESDIR}"/${PN}-5.12.0-python3_11.patch
+ "${FILESDIR}"/${PN}-5.12.0-clang16-configure.patch
+ "${FILESDIR}"/${PN}-5.12.0-nut-c99.patch
+)
+
+# @FUNCTION: collectd_plugin_kernel_linux
+# @DESCRIPTION:
+# USAGE: <plugin name> <kernel_options> <severity>
+# 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_lua && lua-single_pkg_setup
+ use collectd_plugins_python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # There's some strange prefix handling in the default config file, resulting in
+ # paths like "/usr/var/..."
+ sed -i -e "s:@prefix@/var:/var:g" src/collectd.conf.in || die
+
+ # Adjust upstream's systemd unit
+ # - Get rid of EnvironmentFile directive; These files don't exist on Gentoo!
+ # - Add User=collectd to run collectd as user "collectd" per default
+ sed -i \
+ -e '/^EnvironmentFile=.*/d' \
+ -e '/^\[Service\]/aUser=collectd' \
+ contrib/systemd.${PN}.service || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # Now come the lists of os-dependent plugins. Any plugin that is not listed anywhere here
+ # should work independent of the operating system.
+
+ local linux_plugins="barometer battery cpu cpufreq disk
+ drbd entropy ethstat hugepages interface iptables
+ ipvs irq ipc load memory md netlink nfs numa processes
+ serial swap tcpconns thermal turbostat users vmem wireless
+ zfc_arc"
+
+ local need_libstatgrab=0
+ local libstatgrab_plugins="cpu disk interface load memory swap users"
+ local bsd_plugins="cpu tcpconns ${libstatgrab_plugins} zfc_arc"
+
+ local darwin_plugins="apple_sensors battery cpu disk interface memory processes tcpconns"
+
+ local osdependent_plugins="${linux_plugins} ${bsd_plugins} ${darwin_plugins}"
+ local myos_plugins=""
+ if use kernel_linux; then
+ einfo "Enabling Linux plugins."
+ myos_plugins=${linux_plugins}
+ elif use kernel_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
+ if [[ "${plugin}" == 'dpdkstat' ]]; then
+ myconf+=" --without-libdpdk"
+ else
+ myconf+=" --disable-${plugin}"
+ fi
+ 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})"
+ 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 collectd_plugins_gpu_nvidia; then
+ myconf+=" --with-cuda=${EPREFIX}/opt/cuda"
+ else
+ myconf+=" --with-cuda=no"
+ fi
+
+ 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
+
+ if use collectd_plugins_disk && use udev; then
+ udev_newrules contrib/99-storage-collectd.rules 60-persistent-storage-collectd.rules
+ fi
+
+ fowners root:collectd /etc/collectd.conf
+ fperms u=rw,g=r,o= /etc/collectd.conf
+
+ einstalldocs
+
+ if use contrib; then
+ insinto /usr/share/${PN}
+ doins -r contrib
+ fi
+
+ keepdir /var/lib/${PN}
+ fowners collectd:collectd /var/lib/${PN}
+
+ newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
+ newconfd "${FILESDIR}/${PN}.confd-r2" ${PN}
+ systemd_newunit "contrib/systemd.${PN}.service" ${PN}.service
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/${PN}.logrotate" ${PN}
+
+ newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf
+
+ sed \
+ -e 's:^.*PIDFile "/var/run/collectd.pid":#PIDFile "/run/collectd.pid":' \
+ -i "${ED}"/etc/collectd.conf || die
+ sed \
+ -e 's:^# SocketFile "/var/run/collectd-unixsock":# SocketFile "/run/collectd/collectd.socket":' \
+ -i "${ED}"/etc/collectd.conf || die
+ sed \
+ -e 's:^.*LoadPlugin perl$:# The new, correct way to load the perl plugin -- \n# <LoadPlugin perl>\n# Globals true\n# </LoadPlugin>:' \
+ -i "${ED}"/etc/collectd.conf || die
+ sed \
+ -e 's:^.*LoadPlugin python$:# The new, correct way to load the python plugin -- \n# <LoadPlugin python>\n# Globals true\n# </LoadPlugin>:' \
+ -i "${ED}"/etc/collectd.conf || die
+}
+
+pkg_postinst() {
+ tmpfiles_process "${PN}.conf"
+
+ if use filecaps; then
+ local caps=()
+ use collectd_plugins_ceph && caps+=('CAP_DAC_OVERRIDE')
+ use collectd_plugins_exec && caps+=('CAP_SETUID' 'CAP_SETGID')
+ use collectd_plugins_iptables && caps+=('CAP_NET_ADMIN')
+ use collectd_plugins_filecount && caps+=('CAP_DAC_READ_SEARCH')
+
+ if use collectd_plugins_dns || use collectd_plugins_ping; then
+ caps+=('CAP_NET_RAW')
+ fi
+
+ if use collectd_plugins_turbostat || use collectd_plugins_smart; then
+ caps+=('CAP_SYS_RAWIO')
+ fi
+
+ if [ ${#caps[@]} -gt 0 ]; then
+ local caps_str=$(IFS=","; echo "${caps[*]}")
+ fcaps ${caps_str} usr/sbin/collectd
+ elog "Capabilities for ${EROOT}/usr/sbin/collectd set to:"
+ elog " ${caps_str}+EP"
+ elog
+
+ local systemd_unit="$(systemd_get_systemunitdir)/collectd.service"
+ if [[ -e "${systemd_unit}" ]]; then
+ caps_str="${caps[*]}"
+ sed -i -e "s:^CapabilityBoundingSet=.*:CapabilityBoundingSet=${caps_str}:" "${systemd_unit}" || \
+ die "Failed to set CapabilityBoundingSet in '${systemd_unit}'"
+
+ elog "CapabilityBoundingSet in '${systemd_unit}'"
+ elog "updated to match capabilities set above."
+ elog
+ else
+ if has_version "sys-apps/systemd"; then
+ # Bug 596852
+ ewarn "Failed to update CapabilityBoundingSet in '${systemd_unit}'"
+ ewarn "because unit was not found. Please file a bug about this."
+ fi
+ fi
+ fi
+ fi
+
+ elog "Note: Collectd is only the collector."
+ elog " You need to install 'data' sources (applications) locally or"
+ elog " remotely on your own."
+
+ elog
+ elog "Collectd is configured to run as unprivileged user by default."
+ elog "You may want to revisit the configuration."
+ elog
+
+ if use collectd_plugins_email; then
+ ewarn "The email plug-in is deprecated. To submit statistics please use the unixsock plugin."
+ fi
+
+ if use collectd_plugins_smart; then
+ elog ""
+ elog "If you are using smart plugin and don't run collectd as root make sure"
+ elog "that the collectd user is allowed to access the disk you want to monitor"
+ elog "(can be done via udev rule for example) and that collectd has the required"
+ elog "capabilities set (which is the default when package was emerged with"
+ elog "'filecaps' USE flag set)."
+ fi
+
+ if use contrib; then
+ elog "The scripts in /usr/share/doc/${PF}/collection3 for generating graphs need dev-perl/HTML-Parser,"
+ elog "dev-perl/CGI, dev-perl/Config-General and net-analyzer/rrdtool[perl] to be installed."
+ fi
+}
diff --git a/app-metrics/collectd/files/collectd-5.12.0-nut-c99.patch b/app-metrics/collectd/files/collectd-5.12.0-nut-c99.patch
new file mode 100644
index 000000000000..0935eed070e9
--- /dev/null
+++ b/app-metrics/collectd/files/collectd-5.12.0-nut-c99.patch
@@ -0,0 +1,143 @@
+https://github.com/collectd/collectd/commit/d409ffa2a64cac3fc2abe2bb86ec3a80cb34d0a6
+
+From d409ffa2a64cac3fc2abe2bb86ec3a80cb34d0a6 Mon Sep 17 00:00:00 2001
+From: Jim Klimov <jimklimov+nut@gmail.com>
+Date: Wed, 31 Aug 2022 11:40:01 +0200
+Subject: [PATCH] configure.ac, src/nut.c: detect int types required by NUT API
+ we build against
+
+Either use the stricter int types required by NUT headers since v2.8.0 release,
+or the relaxed (arch-dependent) types required by older NUT releases - depending
+on which NUT API version the collectd is building against at the moment.
+
+Inspired by discussion at https://github.com/networkupstools/nut/issues/1638
+--- a/configure.ac
++++ b/configure.ac
+@@ -5881,6 +5881,106 @@ if test "x$with_libupsclient" = "xyes"; then
+ CPPFLAGS="$SAVE_CPPFLAGS"
+ fi
+
++if test "x$with_libupsclient" = "xyes"; then
++ dnl The m4 script logic below is modelled after NUT_FUNC_GETNAMEINFO_ARGTYPES
++ dnl further originating in curl autoconf scripts or beyond. See there for an
++ dnl example of general-case logic to handle matching of numerous possible
++ dnl data types for each argument in supported API variants.
++ dnl Note: techically compiler complains here not about int types themselves,
++ dnl but about pointers to such data. We know "out of band" that e.g. NUT
++ dnl change to "size_t" happened at once for all arguments in the API, so
++ dnl simplify the handling here and now with that assumption.
++ AC_LANG_PUSH([C])
++ SAVE_CPPFLAGS="$CPPFLAGS"
++ SAVE_LDFLAGS="$LDFLAGS"
++ SAVE_CFLAGS="$CFLAGS"
++ CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
++ LDFLAGS="$LDFLAGS $with_libupsclient_libs"
++ CFLAGS="$CFLAGS $with_libupsclient_cflags"
++ if test "x$GCC" = "xyes"; then
++ CFLAGS="$CFLAGS -Wall -Werror"
++ fi
++
++ dnl upscli_splitname() *is* there forever (2007 or older)
++ dnl but int types e.g. "port" changed in NUT 2.8.0
++ dnl Also this is the UPSCONN_t::port field type:
++ AC_CACHE_CHECK([int type of port argument for NUT upscli_splitname],
++ [collectd_cv_func_upscli_splitname_args], [
++ collectd_cv_func_upscli_splitname_args="unknown"
++ for port_arg in 'uint16_t' 'int' ; do
++ AC_COMPILE_IFELSE([
++ AC_LANG_PROGRAM([
++#include <upsclient.h>
++/* int upscli_splitname(const char *buf, char **upsname, char **hostname, <port_arg> *port); */
++ ],[
++const char *origname = "ups@localhost:3493";
++$port_arg port=0;
++char *hostname;
++char *upsname;
++int res = upscli_splitname(origname, &upsname, &hostname, &port);
++return(res);
++ ])
++ ],[
++ collectd_cv_func_upscli_splitname_args="$port_arg"
++ break
++ ])
++ done
++ ])
++
++ AS_IF([test x"$collectd_cv_func_upscli_splitname_args" = xunknown],
++ [AC_MSG_WARN([Can not find proper port type for upscli_splitname()])
++ with_libupsclient="no (required data types for NUT API were not detected)"],
++ [AC_DEFINE_UNQUOTED(NUT_PORT_TYPE, $collectd_cv_func_upscli_splitname_args,
++ [Define to the integer type for TCP/IP ports used by NUT API we build against])
++ ])
++
++
++ AC_CACHE_CHECK([int type of length/numbering arguments for NUT upscli_list_next],
++ [collectd_cv_func_upscli_list_next_args], [
++ collectd_cv_func_upscli_list_next_args="unknown"
++ for size_arg in 'size_t' 'unsigned int' 'int' ; do
++ AC_COMPILE_IFELSE([
++ AC_LANG_PROGRAM([
++#include <upsclient.h>
++/* int upscli_list_next(UPSCONN_t *ups, <size_arg> numq, const char **query, <size_arg> *numa, char ***answer); */
++
++#if HAVE_UPSCONN_T
++typedef UPSCONN_t collectd_upsconn_t;
++#elif HAVE_UPSCONN
++typedef UPSCONN collectd_upsconn_t;
++#else
++#error "Unable to determine the UPS connection type."
++#endif
++ ],[
++$size_arg query_num=0;
++$size_arg answer_num=0;
++const char * query;
++char** answer;
++collectd_upsconn_t ups;
++int res = upscli_list_next(&ups, query_num, &query, &answer_num, &answer);
++return(res);
++ ])
++ ],[
++ collectd_cv_func_upscli_list_next_args="$size_arg"
++ break
++ ])
++ done
++ ])
++
++ AS_IF([test x"$collectd_cv_func_upscli_list_next_args" = xunknown],
++ [AC_MSG_WARN([Can not find proper type for array sizes and string lengths used by upscli_list_next()])
++ with_libupsclient="no (required data types for NUT API were not detected)"],
++ [AC_DEFINE_UNQUOTED(NUT_SIZE_TYPE, $collectd_cv_func_upscli_list_next_args,
++ [Define to the integer type for array sizes and string lengths used by NUT API we build against])
++ ])
++
++
++ CPPFLAGS="$SAVE_CPPFLAGS"
++ LDFLAGS="$SAVE_LDFLAGS"
++ CFLAGS="$SAVE_CFLAGS"
++ AC_LANG_POP([C])
++fi
++
+ if test "x$with_libupsclient" = "xyes"; then
+ BUILD_WITH_LIBUPSCLIENT_CFLAGS="$with_libupsclient_cflags"
+ BUILD_WITH_LIBUPSCLIENT_LIBS="$with_libupsclient_libs"
+--- a/src/nut.c
++++ b/src/nut.c
+@@ -46,7 +46,7 @@ struct nut_ups_s {
+ collectd_upsconn_t *conn;
+ char *upsname;
+ char *hostname;
+- int port;
++ NUT_PORT_TYPE port;
+ nut_ups_t *next;
+ };
+
+@@ -250,7 +250,7 @@ static int nut_read(user_data_t *user_data) {
+ const char *query[3] = {"VAR", ups->upsname, NULL};
+ unsigned int query_num = 2;
+ char **answer;
+- unsigned int answer_num;
++ NUT_SIZE_TYPE answer_num;
+ int status;
+
+ /* (Re-)Connect if we have no connection */
+
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-12-04 7:32 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-21 22:53 [gentoo-commits] repo/gentoo:master commit in: app-metrics/collectd/files/, app-metrics/collectd/ Thomas Deutschmann
-- strict thread matches above, loose matches on Subject: below --
2023-12-04 7:32 Sam James
2023-04-14 3:39 Sam James
2022-11-10 23:04 Conrad Kostecki
2022-06-07 17:58 Conrad Kostecki
2022-06-05 14:06 Conrad Kostecki
2020-08-05 15:35 Thomas Deutschmann
2019-07-20 0:13 Thomas Deutschmann
2018-11-30 19:50 Thomas Deutschmann
2018-08-02 18:40 Thomas Deutschmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox