commit:     26b428cbf35e52dde7e530fc81ae3652e3fe8d48
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 21 23:55:38 2016 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Wed Sep 21 23:58:29 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=26b428cb

app-admin/collectd: Bump to v5.6.0

New plugins:
 - chrony
 - cpusleep
 - gps
 - lua
 - mqtt
 - notify_nagios
 - xencpu

Package-Manager: portage-2.3.1

 app-admin/collectd/Manifest                        |   1 +
 app-admin/collectd/collectd-5.6.0.ebuild           | 495 +++++++++++++++++++++
 .../files/collectd-5.6.0-fix-apache-plugin.patch   |  26 ++
 .../collectd/files/collectd-5.6.0-gentoo.patch     | 153 +++++++
 .../collectd/files/collectd-5.6.0-issue-1896.patch |  76 ++++
 app-admin/collectd/metadata.xml                    |   7 +
 profiles/arch/amd64/package.use.mask               |   4 +
 profiles/arch/x86/package.use.mask                 |   4 +
 profiles/base/package.use.mask                     |   4 +
 9 files changed, 770 insertions(+)

diff --git a/app-admin/collectd/Manifest b/app-admin/collectd/Manifest
index c5865d3..31a5a53 100644
--- a/app-admin/collectd/Manifest
+++ b/app-admin/collectd/Manifest
@@ -1 +1,2 @@
 DIST collectd-5.5.2.tar.bz2 1800476 SHA256 
017f3a4062187e594d8ab6af685655fb82a8a942dc574668e68242bdb8ba820f SHA512 
9d311db4f3677b95e3a47c03af01bdf1127957f6fccb6c601455632d0ea3b39e3f4cd9a6f8f510083e208714bbb0da2e04aaa574a90b0ad6fe984506675475b3
 WHIRLPOOL 
98ed4fb29eec0ae660d3e1651380a3f17f7bf7f22e687633c4a44974bc84e49cf8de11fd6fea349bfe24809ac3c29a407459a1203b72bcf741e1587c6c0b1773
+DIST collectd-5.6.0.tar.bz2 1818470 SHA256 
f0ffbbd91fac3682bd324a74b9b4c9eabe781394b303b5cfd457c4cfbe748623 SHA512 
5eecd7fe1619850b29e7853e0ab8f9eb7688d0fdf5687cf04930c75a94181c53d7dc0601a1dfa02417bdeb63cccf09b87acd7129e7f155b8d11147ec46982ed8
 WHIRLPOOL 
690e50f16318e9df39eac62010f8b0a57059356deeedd72505cc4a980876261a198edac095317f97b03913167dcfc49bf9f3b46986bbc3653628856e3a005111

diff --git a/app-admin/collectd/collectd-5.6.0.ebuild 
b/app-admin/collectd/collectd-5.6.0.ebuild
new file mode 100644
index 00000000..e64baa9
--- /dev/null
+++ b/app-admin/collectd/collectd-5.6.0.ebuild
@@ -0,0 +1,495 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+JAVA_PKG_OPT_USE="collectd_plugins_java"
+
+inherit autotools fcaps flag-o-matic java-pkg-opt-2 linux-info multilib 
perl-functions python-single-r1 systemd user
+
+DESCRIPTION="Collects system statistics and provides mechanisms to store the 
values"
+
+HOMEPAGE="https://collectd.org/";
+SRC_URI="${HOMEPAGE}/files/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="contrib debug java kernel_Darwin kernel_FreeBSD kernel_linux perl 
selinux static-libs udev xfs"
+
+# The plugin lists have to follow here since they extend IUSE
+
+# Plugins that don't build (e.g. dependencies not in Gentoo)
+# apple_sensors: Requires libIOKit
+# aquaero:       Requires aerotools-ng/libaquaero5
+# barometer:     Requires libi2c (i2c_smbus_read_i2c_block_data)
+# grpc:          Requires libgrpc
+# lpar:          Requires libperfstat (AIX only)
+# mic:           Requires Intel Many Integrated Core Architecture API
+#                (part of Intel's  Xeon Phi software)
+# netapp:        Requires libnetapp 
(http://communities.netapp.com/docs/DOC-1110)
+# pf:            Requires BSD packet filter
+# pinba:         Requires MySQL Pinba engine (http://pinba.org/)
+# tape:          Requires libkstat (Solaris only)
+# write_mongodb: https://github.com/collectd/collectd/issues/492
+# write_riemann: Requires riemann-c-client
+# xmms:          Requires libxmms (v1)
+# zone:          Solaris only...
+COLLECTD_IMPOSSIBLE_PLUGINS="apple_sensors aquaero barometer grpc lpar mic
+       netapp pf pinba tape write_kafka write_mongodb write_riemann xmms
+       zone"
+
+# Plugins that have been (compile) tested and can be enabled via 
COLLECTD_PLUGINS
+COLLECTD_TESTED_PLUGINS="aggregation amqp apache apcups ascent battery bind
+       ceph cgroups chrony conntrack contextswitch cpu cpufreq cpusleep
+       csv curl curl_json curl_xml dbi df disk dns drbd email entropy
+       ethstat exec fhcount filecount fscache gmond gps hddtemp interface
+       ipc ipmi iptables ipvs irq java lua load logfile log_logstash lvm
+       madwifi match_empty_counter match_hashed match_regex match_timediff
+       match_value mbmon md memcachec memcached memory modbus mqtt
+       multimeter mysql netlink network network nfs nginx notify_desktop
+       notify_email notify_nagios ntpd numa nut olsrd onewire openldap
+       openvpn oracle perl ping postgresql powerdns processes protocols
+       python python redis routeros rrdcached rrdtool sensors serial
+       sigrok smart snmp statsd swap syslog table tail tail_csv
+       target_notification target_replace target_scale target_set tcpconns
+       teamspeak2 ted thermal threshold tokyotyrant turbostat unixsock
+       uptime users uuid varnish virt vmem vserver wireless write_graphite
+       write_http write_kafka write_log write_redis write_sensu write_tsdb
+       xencpu zfs_arc zookeeper"
+
+COLLECTD_DISABLED_PLUGINS="${COLLECTD_IMPOSSIBLE_PLUGINS}"
+
+COLLECTD_ALL_PLUGINS=${COLLECTD_TESTED_PLUGINS}
+
+for plugin in ${COLLECTD_ALL_PLUGINS}; do
+       IUSE="${IUSE} collectd_plugins_${plugin}"
+done
+unset plugin
+
+# Now come the dependencies.
+
+COMMON_DEPEND="
+       dev-libs/libgcrypt:=
+       dev-libs/libltdl:0=
+       perl?                                   ( dev-lang/perl:=[ithreads] )
+       udev?                                   ( virtual/udev )
+       xfs?                                    ( sys-fs/xfsprogs )
+       collectd_plugins_amqp?                  ( net-libs/rabbitmq-c )
+       collectd_plugins_apache?                ( net-misc/curl:0= )
+       collectd_plugins_ascent?                ( net-misc/curl:0= 
dev-libs/libxml2:2= )
+       collectd_plugins_bind?                  ( dev-libs/libxml2:2= )
+       collectd_plugins_ceph?                  ( dev-libs/yajl:= )
+       collectd_plugins_curl?                  ( net-misc/curl:0= )
+       collectd_plugins_curl_json?             ( net-misc/curl:0= 
dev-libs/yajl:= )
+       collectd_plugins_curl_xml?              ( net-misc/curl:0= 
dev-libs/libxml2:2= )
+       collectd_plugins_dbi?                   ( dev-db/libdbi )
+       collectd_plugins_dns?                   ( net-libs/libpcap )
+       collectd_plugins_gmond?                 ( sys-cluster/ganglia )
+       collectd_plugins_gps?                   ( sci-geosciences/gpsd )
+       collectd_plugins_ipmi?                  ( >=sys-libs/openipmi-2.0.16-r1 
)
+       collectd_plugins_iptables?              ( 
>=net-firewall/iptables-1.4.13:0= )
+       collectd_plugins_log_logstash?          ( dev-libs/yajl:= )
+       collectd_plugins_lua?                   ( dev-lang/lua:0= )
+       collectd_plugins_lvm?                   ( sys-fs/lvm2 )
+       collectd_plugins_memcachec?             ( dev-libs/libmemcached )
+       collectd_plugins_modbus?                ( dev-libs/libmodbus )
+       collectd_plugins_mqtt?                  ( app-misc/mosquitto )
+       collectd_plugins_mysql?                 ( >=virtual/mysql-5.0 )
+       collectd_plugins_netlink?               ( net-libs/libmnl )
+       collectd_plugins_nginx?                 ( net-misc/curl:0= )
+       collectd_plugins_notify_desktop?        ( x11-libs/libnotify )
+       collectd_plugins_notify_email?          ( net-libs/libesmtp )
+       collectd_plugins_nut?                   ( >=sys-power/nut-2.7.2-r2 )
+       collectd_plugins_openldap?              ( net-nds/openldap )
+       collectd_plugins_onewire?               ( >=sys-fs/owfs-3.1:= )
+       collectd_plugins_oracle?                ( 
dev-db/oracle-instantclient-basic )
+       collectd_plugins_perl?                  ( dev-lang/perl:=[ithreads] )
+       collectd_plugins_ping?                  ( net-libs/liboping )
+       collectd_plugins_postgresql?            ( dev-db/postgresql:= )
+       collectd_plugins_python?                ( ${PYTHON_DEPS} )
+       collectd_plugins_redis?                 ( dev-libs/hiredis:= )
+       collectd_plugins_routeros?              ( net-libs/librouteros )
+       collectd_plugins_rrdcached?             ( net-analyzer/rrdtool:= )
+       collectd_plugins_rrdtool?               ( net-analyzer/rrdtool:= )
+       collectd_plugins_sensors?               ( sys-apps/lm_sensors )
+       collectd_plugins_sigrok?                ( <sci-libs/libsigrok-0.4 )
+       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= )
+       collectd_plugins_write_kafka?           ( 
>=dev-libs/librdkafka-0.9.0.99:= )
+       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.4 due to #577846
+DEPEND="${COMMON_DEPEND}
+       collectd_plugins_iptables?              ( 
<=sys-kernel/linux-headers-4.4 )
+       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 )"
+
+REQUIRED_USE="
+       collectd_plugins_python?                ( ${PYTHON_REQUIRED_USE} )
+       collectd_plugins_smart?                 ( udev )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-5.6.0-gentoo.patch
+       "${FILESDIR}"/${PN}-5.6.0-issue-1896.patch
+       "${FILESDIR}"/${PN}-5.6.0-fix-apache-plugin.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
+
+       #sed -i -e "s:/etc/collectd/collectd.conf:/etc/collectd.conf:g" 
contrib/collectd.service || die
+
+       # fix installdirs for perl, bug 444360
+       #sed -i -e 's/INSTALL_BASE=$(DESTDIR)$(prefix) //' bindings/Makefile.am 
|| die
+
+       if use collectd_plugins_java; then
+               # Set javac -source and -target flags according to (R)DEPEND.
+               sed -i -e "s/\$(JAVAC)/\0 $(java-pkg_javac-args)/g" 
bindings/java/Makefile.am || die
+       fi
+
+       ebegin "Removing bundled libltdl"
+       rm -rf libltdl || die
+       eend 0
+
+       eautoreconf
+}
+
+src_configure() {
+       # Now come the lists of os-dependent plugins. Any plugin that is not 
listed anywhere here
+       # should work independent of the operating system.
+
+       local linux_plugins="barometer battery cpu cpufreq disk drbd entropy
+               ethstat interface iptables ipvs irq ipc load memory md netlink 
nfs
+               numa processes serial swap tcpconns thermal turbostat users vmem
+               wireless zfc_arc"
+
+       local need_libstatgrab=0
+       local libstatgrab_plugins="cpu disk interface load memory swap users"
+       local bsd_plugins="cpu tcpconns ${libstatgrab_plugins} zfc_arc"
+
+       local darwin_plugins="apple_sensors battery cpu disk interface memory 
processes tcpconns"
+
+       local osdependent_plugins="${linux_plugins} ${bsd_plugins} 
${darwin_plugins}"
+       local myos_plugins=""
+       if use kernel_linux; then
+               einfo "Enabling Linux plugins."
+               myos_plugins=${linux_plugins}
+       elif use kernel_FreeBSD; then
+               einfo "Enabling FreeBSD plugins."
+               myos_plugins=${bsd_plugins}
+       elif use kernel_Darwin; then
+               einfo "Enabling Darwin plugins."
+               myos_plugins=${darwin_plugins}
+       fi
+
+       local myconf="--disable-werror"
+
+       # Do we debug?
+       myconf+=" $(use_enable debug)"
+
+       # udev support?
+       # Required for smart plugin via REQUIRED_USE; Optional for disk plugin
+       if use udev; then
+               myconf+=" --with-libudev"
+       else
+               myconf+=" --without-libudev"
+       fi
+
+       local plugin
+
+       # Disable what needs to be disabled.
+       for plugin in ${COLLECTD_DISABLED_PLUGINS}; do
+               myconf+=" --disable-${plugin}"
+       done
+
+       # Set enable/disable for each single plugin.
+       for plugin in ${COLLECTD_ALL_PLUGINS}; do
+               if has ${plugin} ${osdependent_plugins}; then
+                       # plugin is os-dependent ...
+                       if has ${plugin} ${myos_plugins}; then
+                               # ... and available in this os
+                               myconf+=" $(use_enable 
collectd_plugins_${plugin} ${plugin})"
+                               # ... must we link against libstatgrab? Bug 
#541518
+                               if use kernel_FreeBSD && has ${plugin} 
${libstatgrab_plugins}; then
+                                       einfo "We must link against libstatgrab 
due to plugin \"${plugin}\" ..."
+                                       need_libstatgrab=1
+                               fi
+                       else
+                               # ... and NOT available in this os
+                               if use collectd_plugins_${plugin}; then
+                                       ewarn "You try to enable the ${plugin} 
plugin, but it is not available for this"
+                                       ewarn "kernel. Disabling it 
automatically."
+                               fi
+                               myconf+=" --disable-${plugin}"
+                       fi
+               elif [[ "${plugin}" = "collectd_plugins_perl" ]]; then
+                       if use collectd_plugins_perl && ! use perl; then
+                               ewarn "Perl plugin disabled as perl bindings 
disabled by -perl use flag"
+                               myconf+= --disable-perl
+                       else
+                               myconf+=" $(use_enable 
collectd_plugins_${plugin} ${plugin})"
+                       fi
+               else
+                       myconf+=" $(use_enable collectd_plugins_${plugin} 
${plugin})"
+               fi
+       done
+
+       if [ "${need_libstatgrab}" -eq 1 ]; then
+               myconf+=" --with-libstatgrab"
+       else
+               myconf+=" --without-libstatgrab"
+       fi
+
+       # JAVA_HOME is set by eclasses.
+       if use collectd_plugins_java; then
+               myconf+=" --with-java"
+       fi
+
+       # Need libiptc ONLY for iptables. If we try to use it otherwise bug 
340109 happens.
+       # lots of libs are only needed for plugins, if they are disabled, also 
disable the lib
+       use collectd_plugins_iptables || myconf+=" --with-libiptc=no"
+       use collectd_plugins_openldap || myconf+=" --with-libldap=no"
+       use collectd_plugins_redis    || use collectd_plugins_write_redis || 
myconf+=" --with-libhiredis=no"
+       use collectd_plugins_smart    || myconf+=" --with-libatasmart=no"
+       use collectd_plugins_gps      || myconf+=" --with-libgps=no"
+
+       if use perl; then
+               myconf+=" --with-perl-bindings=INSTALLDIRS=vendor"
+       else
+               myconf+=" --without-perl-bindings"
+       fi
+
+       # No need for v5upgrade
+       myconf+=" --disable-target_v5upgrade"
+
+       # Python
+       if use collectd_plugins_python; then
+               myconf+=" --with-libpython=yes"
+               export PYTHON_CONFIG=$(python_get_PYTHON_CONFIG)
+       else
+               myconf+=" --with-libpython=no"
+       fi
+
+       # XFS support
+       myconf+=" $(use_enable xfs)"
+
+       # Finally, run econf.
+       KERNEL_DIR="${KERNEL_DIR}" econf --config-cache \
+               $(use_enable static-libs static) \
+               --localstatedir=/var ${myconf}
+}
+
+src_install() {
+       emake DESTDIR="${D%/}" install
+
+       perl_delete_localpod
+
+       find "${ED}"usr/ -name "*.la" -delete || die
+
+       if use collectd_plugins_java; then
+               java-pkg_regjar "${ED}"usr/share/${PN}/java/*.jar
+       fi
+
+       fowners root:collectd /etc/collectd.conf
+       fperms u=rw,g=r,o= /etc/collectd.conf
+
+       dodoc AUTHORS ChangeLog NEWS README TODO
+
+       if use contrib ; then
+               insinto /usr/share/doc/${PF}
+               doins -r contrib
+       fi
+
+       keepdir /var/lib/${PN}
+       fowners collectd:collectd /var/lib/${PN}
+
+       newinitd "${FILESDIR}/${PN}.initd-r1" ${PN}
+       newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+       systemd_dounit "contrib/systemd.${PN}.service"
+
+       insinto /etc/logrotate.d
+       newins "${FILESDIR}/${PN}.logrotate" ${PN}
+
+       sed -i -e 's:^.*PIDFile     "/var/run/collectd.pid":PIDFile     
"/run/collectd/collectd.pid":' "${ED}"etc/collectd.conf || die
+       sed -i -e 's:^# SocketFile "/var/run/collectd-unixsock":#       
SocketFile "/run/collectd/collectd.socket":' "${ED}"etc/collectd.conf || die
+       sed -i -e 's:^.*LoadPlugin perl$:# The new, correct way to load the 
perl plugin -- \n# <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() {
+       local caps=()
+       use collectd_plugins_ping      && caps+=('cap_net_raw')
+       use collectd_plugins_iptables  && caps+=('cap_net_admin')
+       use collectd_plugins_filecount && caps+=('cap_dac_read_search')
+
+       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
+       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 contrib; then
+               elog "The scripts in /usr/share/doc/${PF}/collection3 for 
generating graphs need dev-perl/HTML-Parser,"
+               elog "dev-perl/config-general, dev-perl/regexp-common, and 
net-analyzer/rrdtool[perl] to be installed."
+       fi
+}

diff --git a/app-admin/collectd/files/collectd-5.6.0-fix-apache-plugin.patch 
b/app-admin/collectd/files/collectd-5.6.0-fix-apache-plugin.patch
new file mode 100644
index 00000000..e3afaeb
--- /dev/null
+++ b/app-admin/collectd/files/collectd-5.6.0-fix-apache-plugin.patch
@@ -0,0 +1,26 @@
+From 60ec28dd104bdeef4c5ed6882fb2b663ca9da2eb Mon Sep 17 00:00:00 2001
+From: Florian Forster <o...@collectd.org>
+Date: Sun, 11 Sep 2016 20:31:31 +0200
+Subject: [PATCH] apache plugin: End statements with semi-colons.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If only I knew why this wasn't considered a syntax error …
+---
+ src/apache.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/apache.c b/src/apache.c
+index c515e3c..5b6914c 100644
+--- a/src/apache.c
++++ b/src/apache.c
+@@ -250,7 +250,7 @@ static int config_add (oconfig_item_t *ci)
+               ssnprintf (callback_name, sizeof (callback_name),
+                               "apache/%s/%s",
+                               (st->host != NULL) ? st->host : hostname_g,
+-                              (st->name != NULL) ? st->name : "default"),
++                              (st->name != NULL) ? st->name : "default");
+ 
+               status = plugin_register_complex_read (/* group = */ NULL,
+                               /* name      = */ callback_name,

diff --git a/app-admin/collectd/files/collectd-5.6.0-gentoo.patch 
b/app-admin/collectd/files/collectd-5.6.0-gentoo.patch
new file mode 100644
index 00000000..dd8c157
--- /dev/null
+++ b/app-admin/collectd/files/collectd-5.6.0-gentoo.patch
@@ -0,0 +1,153 @@
+From 8fe20883e248572690798e4dd1423511aa2f4e5d Mon Sep 17 00:00:00 2001
+From: Thomas Deutschmann <whi...@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 <whi...@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 <whi...@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-admin/collectd/files/collectd-5.6.0-issue-1896.patch 
b/app-admin/collectd/files/collectd-5.6.0-issue-1896.patch
new file mode 100644
index 00000000..afcd8d0
--- /dev/null
+++ b/app-admin/collectd/files/collectd-5.6.0-issue-1896.patch
@@ -0,0 +1,76 @@
+From ba52f94929822b1968f05cfbb37985af2e0b83a4 Mon Sep 17 00:00:00 2001
+From: Florian Forster <o...@collectd.org>
+Date: Tue, 13 Sep 2016 10:44:46 +0200
+Subject: [PATCH] curl_json plugin: Skip unexpected non-map values.
+
+Assume, for example, the config `Key "*/foo"`. This config expects JSON
+in the form:
+
+    {
+      "bar": {
+        "foo": 1337
+      }
+    }
+
+If the available JSON is instead:
+
+    {
+      "error_code": 0,
+      "bar": {
+        "foo": 1337
+      }
+    }
+
+the code will take a look at the zero associated with "error_code" and
+determine that a map (with key "foo") is expected instead. Previously
+the code would continue, eventually calling `cj_get_type()` which
+expects that `key->type` is a valid pointer, resulting in a segmentation
+fault.
+
+This patch does three things to ensure that this segmentation fault does
+not happen again:
+
+1.  `cj_get_type()` checks its argument to make sure it is valid before
+    dereferencing any pointers.
+2.  In case a non-map is found when a map is expected, the code will
+    return instead of limping on.
+3.  After calling `cj_cb_inc_array_index()`, which may update the key,
+    make sure that it actually did and that key is valid now.
+
+Fixes: #1896
+---
+ src/curl_json.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/curl_json.c b/src/curl_json.c
+index 4188f37..a547ddc 100644
+--- a/src/curl_json.c
++++ b/src/curl_json.c
+@@ -143,6 +143,9 @@ static int cj_get_type (cj_key_t *key)
+ {
+   const data_set_t *ds;
+ 
++  if ((key == NULL) || !CJ_IS_KEY (key))
++    return -EINVAL;
++
+   ds = plugin_get_ds (key->type);
+   if (ds == NULL)
+   {
+@@ -226,12 +229,15 @@ static int cj_cb_number (void *ctx,
+   buffer[sizeof (buffer) - 1] = 0;
+ 
+   if ((key == NULL) || !CJ_IS_KEY (key)) {
+-    if (key != NULL && !db->state[db->depth].in_array/*can be inhomogeneous*/)
++    if (key != NULL && !db->state[db->depth].in_array/*can be 
inhomogeneous*/) {
+       NOTICE ("curl_json plugin: Found \"%s\", but the configuration expects"
+               " a map.", buffer);
++      return (CJ_CB_CONTINUE);
++    }
++
+     cj_cb_inc_array_index (ctx, /* update_key = */ 1);
+     key = db->state[db->depth].key;
+-    if (key == NULL) {
++    if ((key == NULL) || !CJ_IS_KEY (key)) {
+       return (CJ_CB_CONTINUE);
+     }
+   }

diff --git a/app-admin/collectd/metadata.xml b/app-admin/collectd/metadata.xml
index 29a819a..250736f 100644
--- a/app-admin/collectd/metadata.xml
+++ b/app-admin/collectd/metadata.xml
@@ -33,10 +33,12 @@
                <flag name="collectd_plugins_bind">Build the bind input plugin 
(collects statistics from bind instances)</flag>
                <flag name="collectd_plugins_ceph">Build the Ceph input plugin 
(collects statistics from the Ceph distributed storage system)</flag>
                <flag name="collectd_plugins_cgroups">Build the cgroups input 
plugin (collects CPU accounting information for processes in a cgroup)</flag>
+               <flag name="collectd_plugins_chrony">Build the chrony input 
plugin (collects statistics from a chrony NTP server)</flag>
                <flag name="collectd_plugins_conntrack">Build the conntrack 
input plugin (tracks the number of entries in Linux's connection tracking 
table)</flag>
                <flag name="collectd_plugins_contextswitch">Build the 
contextswitch input plugin (collects the number of context switches done by the 
operating system)</flag>
                <flag name="collectd_plugins_cpu">Build the cpu input plugin 
(collects the amount of time spent by the CPU in various states)</flag>
                <flag name="collectd_plugins_cpufreq">Build the cpufreq input 
plugin (collects the current CPU's frequency)</flag>
+               <flag name="collectd_plugins_cpusleep">Build the cpusleep input 
plugin (measures time spent by CPU in deep sleep mode)</flag>
                <flag name="collectd_plugins_csv">Build the csv output plugin 
(writes to comma separated values (CSV) files)</flag>
                <flag name="collectd_plugins_curl">Build the curl input plugin 
(reads streams using <pkg>net-misc/curl</pkg> and then parses them according to 
the configuration)</flag>
                <flag name="collectd_plugins_curl_json">Build the curl_json 
input plugin (queries JavaScript Object Notation (JSON) data using 
<pkg>net-misc/curl</pkg> and parses it according to the user's configuration 
using <pkg>dev-libs/yajl</pkg>)</flag>
@@ -55,6 +57,7 @@
                <flag name="collectd_plugins_fscache">Build the fscache input 
plugin (collects information about the file-system based caching infrastructure 
for network file-systems and other slow media)</flag>
                <flag name="collectd_plugins_genericjmx">Build the GenericJMX 
input plugin (reads Managed Beans (MBeans) from an MBeanServer using JMX input 
plugin; Requires JAVA)</flag>
                <flag name="collectd_plugins_gmond">Build the gmond input 
plugin (receives data from gmond, the client daemon of the Ganglia 
project)</flag>
+               <flag name="collectd_plugins_gps">Build the gps input plugin 
(collects number of satellites seen by a GPS receiver using 
<pkg>sci-geosciences/gpsd</pkg>)</flag>
                <flag name="collectd_plugins_hddtemp">Build the hddtemp input 
plugin (collects the temperature of disks from hddtemp daemon)</flag>
                <flag name="collectd_plugins_interface">Build the interface 
input plugin (collects information about the traffic, packets per second and 
errors of interfaces)</flag>
                <flag name="collectd_plugins_ipc">Build the IPC input plugin 
(collects information related to shared memory)</flag>
@@ -66,6 +69,7 @@
                <flag name="collectd_plugins_load">Build the load input plugin 
(collects the system load)</flag>
                <flag name="collectd_plugins_logfile">Build the logfile output 
plugin (receives log messages from collectd and writes them to a text 
file)</flag>
                <flag name="collectd_plugins_log_logstash">Build the Logstash 
output plugin (writes collectd logs and events as Logstash JSON formatted 
events)</flag>
+               <flag name="collectd_plugins_lua">Build the LUA language 
binding plugin (uses <pkg>dev-lang/lua</pkg>) for writing plugins</flag>
                <flag name="collectd_plugins_lvm">Build the LVM input plugin 
(collects the size of logical volumes (LV) and free space inside a volume group 
(VG) from Linux' Logical Volume Manager (LVM))</flag>
                <flag name="collectd_plugins_madwifi">Build the madwifi input 
plugin (collects information about Atheros wireless LAN chipsets from the 
MadWifi driver)</flag>
                <flag name="collectd_plugins_match_empty_counter">Build the 
match_empty_counter filter plugin</flag>
@@ -79,6 +83,7 @@
                <flag name="collectd_plugins_memcached">Build the memcached 
input plugin (collects statistics from memcached daemon)</flag>
                <flag name="collectd_plugins_memory">Build the memory input 
plugin (collects physical memory utilization)</flag>
                <flag name="collectd_plugins_modbus">Build the Modbus input 
plugin (reads register values from a Modbus "slave" via Modbus/TCP)</flag>
+               <flag name="collectd_plugins_mqtt">Build the MQTT plugin (sends 
metrics to and/or receives metrics from an MQTT broker using 
<pkg>app-misc/mosquitto</pkg>)</flag>
                <flag name="collectd_plugins_multimeter">Build the multimeter 
input plugin (reads a voltage or current from a multimeter connected to a 
serial bus)</flag>
                <flag name="collectd_plugins_mysql">Build the mysql input 
plugin (collects values from 'SHOW STATUS' command of a MySQL server)</flag>
                <flag name="collectd_plugins_netlink">Build the netlink input 
plugin (collects statistics for interfaces, qdiscs, classes and filters using 
netlink socket)</flag>
@@ -87,6 +92,7 @@
                <flag name="collectd_plugins_nginx">Build the nginx input 
plugin (collects number of requests handled and the number of current 
connections by connection state by the nginx daemon)</flag>
                <flag name="collectd_plugins_notify_desktop">Build the 
notify_desktop output plugin (uses <pkg>x11-libs/libnotify</pkg> to display 
notifications to the user)</flag>
                <flag name="collectd_plugins_notify_email">Build the 
notify_email output plugin (uses <pkg>net-libs/libesmtp</pkg> to send 
notifications to a configured email address)</flag>
+               <flag name="collectd_plugins_notify_nagios">Build the 
notify_nagios output plugin (sends notifications to Nagios as a passive check 
result)</flag>
                <flag name="collectd_plugins_ntpd">Build the ntpd input plugin 
(collects statistics from a NTP server)</flag>
                <flag name="collectd_plugins_numa">Build the numa input plugin 
(collects statistics of the Linux Non-Uniform Memory Access (NUMA) 
subsystem)</flag>
                <flag name="collectd_plugins_nut">Build the nut input plugin 
(collects UPS statistics using the Network UPS Tools)</flag>
@@ -145,6 +151,7 @@
                <flag name="collectd_plugins_write_riemann">Build the Riemann 
output plugin (stores values in Riemann, a stream processing and monitoring 
system)</flag>
                <flag name="collectd_plugins_write_sensu">Build the Sensu 
output plugin (sends metrics to Sensu Core, an open-source monitoring 
project)</flag>
                <flag name="collectd_plugins_write_tsdb">Build the TSDB output 
plugin (writes metrics to OpenTSDB, an open-source distributed time-series 
database based on Apache HBase)</flag>
+               <flag name="collectd_plugins_xencpu">Build the XEN CPU input 
plugin (collects XEN Hypervisor CPU stats using 
<pkg>app-emulation/xen-tools</pkg>)</flag>
                <flag name="collectd_plugins_zfs_arc">Build the ZFS ARC input 
plugin (reports information such as the cache size, the various hits and misses 
(also as a ratio) and the transferred data)</flag>
                <flag name="collectd_plugins_zookeeper">Build the zookeeper 
input plugin (reads data from Apache Zookeeper MNTR command)</flag>
                <flag name="contrib">Install user-contributed files in the doc 
directory</flag>

diff --git a/profiles/arch/amd64/package.use.mask 
b/profiles/arch/amd64/package.use.mask
index aa560c7..7df2430 100644
--- a/profiles/arch/amd64/package.use.mask
+++ b/profiles/arch/amd64/package.use.mask
@@ -18,6 +18,10 @@
 
 #--- END OF EXAMPLES ---
 
+# Thomas Deutschmann <whi...@gentoo.org> (22 Sep 2016)
+# Enable MQTT support on supported architectures
+app-admin/collectd -collectd_plugins_mqtt
+
 # Thomas Deutschmann <whi...@gentoo.org> (26 Aug 2016)
 # Enable numa support on supported architectures
 dev-db/percona-server -numa

diff --git a/profiles/arch/x86/package.use.mask 
b/profiles/arch/x86/package.use.mask
index 368d17b..fde9a05 100644
--- a/profiles/arch/x86/package.use.mask
+++ b/profiles/arch/x86/package.use.mask
@@ -4,6 +4,10 @@
 
 # This file requires >=portage-2.1.1
 
+# Thomas Deutschmann <whi...@gentoo.org> (22 Sep 2016)
+# Enable MQTT support on supported architectures
+app-admin/collectd -collectd_plugins_mqtt
+
 # Thomas Deutschmann <whi...@gentoo.org> (26 Aug 2016)
 # Enable numa support on supported architectures
 dev-db/percona-server -numa

diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask
index 2e73a25..3fb00f6 100644
--- a/profiles/base/package.use.mask
+++ b/profiles/base/package.use.mask
@@ -5,6 +5,10 @@
 # This file requires >=portage-2.1.1
 # New entries go on top.
 
+# Thomas Deutschmann <whi...@gentoo.org> (22 Sep 2016)
+# Dependency is only keyworded on amd64 and x86
+app-admin/collectd collectd_plugins_mqtt
+
 # Michael Palimaka <kensing...@gentoo.org> (15 Sep 2016)
 # Requires unreleased dependency dev-qt/qtspeech.
 kde-apps/kpimtextedit speech

Reply via email to