public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [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