commit:     9d5c0697e68fde681d07d283a2a8a3c67d5a7823
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 11 16:26:01 2016 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Thu Aug 11 16:32:44 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9d5c0697

app-admin/collectd: Bump to v5.5.2

  - New upstream release (Fixes CVE-2016-6254)

  - Dependency on sys-fs/xfsprogs atom can now be controlled using the
    new "xfs" USE flag.
    If you don't enable "xfs" USE flag the df plugin will be unable to
    filter on XFS partitions.

  - Fixes build issues with sys-fs/xfsprogs-4.7.0 (#590998)

  - Cherry-picked patches for upstream issue "network plugin causes core
    dumps" (#1870)

Gentoo-Bug: https://bugs.gentoo.org/590998

Package-Manager: portage-2.3.0

 app-admin/collectd/Manifest                        |   1 +
 app-admin/collectd/collectd-5.5.2.ebuild           | 479 +++++++++++++++++++++
 .../collectd/files/collectd-5.5.2-issue-1870.patch | 127 ++++++
 .../collectd/files/collectd-5.5.2-issue-1877.patch |  37 ++
 app-admin/collectd/metadata.xml                    |   1 +
 5 files changed, 645 insertions(+)

diff --git a/app-admin/collectd/Manifest b/app-admin/collectd/Manifest
index fd5ba08..bd7c879 100644
--- a/app-admin/collectd/Manifest
+++ b/app-admin/collectd/Manifest
@@ -1 +1,2 @@
 DIST collectd-5.5.1.tar.bz2 1797852 SHA256 
f9c5d526e1f0429a7db1ccd90bdf9e23923a2fd43b7285cfda8f0341e5c0bc3f SHA512 
1935809571b8f0e0870399385312a5687f441d11e08a0c7d1337384b3790c3436ba84f89226aad979584045cc13bdf88f1350a0f49c94bcd0dbcf12ae4704dae
 WHIRLPOOL 
3efeeb9262344a8a1c0aa068e64f5d45ff536d1fc1399b4599143a6e47740d5a33aedf482dbf9110cc5f0345d624fbe71ff00fc6f7afeee891326617f7979e41
+DIST collectd-5.5.2.tar.bz2 1800476 SHA256 
017f3a4062187e594d8ab6af685655fb82a8a942dc574668e68242bdb8ba820f SHA512 
9d311db4f3677b95e3a47c03af01bdf1127957f6fccb6c601455632d0ea3b39e3f4cd9a6f8f510083e208714bbb0da2e04aaa574a90b0ad6fe984506675475b3
 WHIRLPOOL 
98ed4fb29eec0ae660d3e1651380a3f17f7bf7f22e687633c4a44974bc84e49cf8de11fd6fea349bfe24809ac3c29a407459a1203b72bcf741e1587c6c0b1773

diff --git a/app-admin/collectd/collectd-5.5.2.ebuild 
b/app-admin/collectd/collectd-5.5.2.ebuild
new file mode 100644
index 0000000..cfb74e9
--- /dev/null
+++ b/app-admin/collectd/collectd-5.5.2.ebuild
@@ -0,0 +1,479 @@
+# 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} )
+
+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="http://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)
+# 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
+# xmms:          Requires libxmms (v1)
+COLLECTD_IMPOSSIBLE_PLUGINS="apple_sensors aquaero mic netapp pf pinba tape 
write_kafka write_mongodb xmms"
+
+# Plugins that have been (compile) tested and can be enabled via 
COLLECTD_PLUGINS
+COLLECTD_TESTED_PLUGINS="amqp aggregation apache apcups ascent battery bind 
ceph
+       cgroups conntrack contextswitch cpu cpufreq csv curl curl_json curl_xml 
dbi df
+       disk dns drbd email entropy ethstat exec fhcount filecount fscache 
genericjmx
+       gmond hddtemp interface ipc ipmi iptables ipvs irq java load logfile 
log_logstash
+       lvm madwifi match_empty_counter match_hashed match_regex match_timediff 
match_value
+       mbmon md memcachec memcached memory modbus multimeter mysql netlink 
network network
+       nfs nginx notify_desktop notify_email 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_riemann write_sensu write_tsdb 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_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_lvm?                   ( sys-fs/lvm2 )
+       collectd_plugins_memcachec?             ( dev-libs/libmemcached )
+       collectd_plugins_modbus?                ( dev-libs/libmodbus )
+       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_write_riemann?         ( dev-libs/protobuf-c:= )
+
+       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_genericjmx?            ( >=virtual/jdk-1.6 )
+       collectd_plugins_iptables?              ( 
<=sys-kernel/linux-headers-4.4 )
+       collectd_plugins_java?                  ( >=virtual/jdk-1.6 )
+       virtual/pkgconfig"
+
+RDEPEND="${COMMON_DEPEND}
+       collectd_plugins_genericjmx?            ( >=virtual/jre-1.6 )
+       collectd_plugins_java?                  ( >=virtual/jre-1.6 )
+       collectd_plugins_syslog?                ( virtual/logger )
+       selinux?                                ( sec-policy/selinux-collectd )"
+
+REQUIRED_USE="
+       collectd_plugins_genericjmx?            ( java )
+       collectd_plugins_java?                  ( java )
+       collectd_plugins_python?                ( ${PYTHON_REQUIRED_USE} )
+       collectd_plugins_smart?                 ( udev )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-4.10.3-werror.patch
+       "${FILESDIR}"/${PN}-5.5.1-{libocci,lt,nohal}.patch
+       "${FILESDIR}"/${PN}-5.5.2-issue-{1870,1877}.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 || use collectd_plugins_genericjmx; 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 || use collectd_plugins_genericjmx; 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 -r 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
+
+       # Do we debug?
+       local 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 || use collectd_plugins_genericjmx; 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_virt     || myconf+=" --with-libvirt=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"
+
+       # Finally, run econf.
+       KERNEL_DIR="${KERNEL_DIR}" econf --config-cache --disable-ltdl-install \
+               --without-included-ltdl $(use_enable static-libs static) \
+               --localstatedir=/var ${myconf}
+
+       if ! use xfs; then
+               # Workaround for 
https://github.com/collectd/collectd/issues/1878
+               einfo "Disabling XFS support ..."
+               sed -i -e "s/HAVE_XFS_XQM_H 1/HAVE_XFS_XQM_H 0/" src/config.h 
|| die
+       fi
+}
+
+src_install() {
+       emake DESTDIR="${D%/}" install
+
+       perl_delete_localpod
+
+       find "${ED}"usr/ -name "*.la" -delete || die
+
+       if use collectd_plugins_java || use collectd_plugins_genericjmx; 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/${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.5.2-issue-1870.patch 
b/app-admin/collectd/files/collectd-5.5.2-issue-1870.patch
new file mode 100644
index 0000000..6497271
--- /dev/null
+++ b/app-admin/collectd/files/collectd-5.5.2-issue-1870.patch
@@ -0,0 +1,127 @@
+From 262915c450f3a45579069212560ca9715aa5bd4b Mon Sep 17 00:00:00 2001
+From: Florian Forster <[email protected]>
+Date: Tue, 26 Jul 2016 08:54:42 +0200
+Subject: [PATCH] network plugin: Fix error message for GCRYCTL_INIT_SECMEM
+ failure.
+
+---
+ src/network.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/network.c b/src/network.c
+index b347f4a..45f2436 100644
+--- a/src/network.c
++++ b/src/network.c
+@@ -527,7 +527,7 @@ static void network_init_gcrypt (void) /* {{{ */
+   err = gcry_control (GCRYCTL_INIT_SECMEM, 32768);
+   if (err)
+   {
+-    ERROR ("network plugin: gcry_control (GCRYCTL_SET_THREAD_CBS) failed: 
%s", gcry_strerror (err));
++    ERROR ("network plugin: gcry_control (GCRYCTL_INIT_SECMEM) failed: %s", 
gcry_strerror (err));
+     abort ();
+   }
+ 
+--
+2.9.2
+
+
+From a3000cbe3a12163148a28c818269bbdabda1cf5c Mon Sep 17 00:00:00 2001
+From: Sebastian Harl <[email protected]>
+Date: Wed, 27 Jul 2016 09:45:48 +0200
+Subject: [PATCH] network plugin: Don't abort() if gcrypt initialization
+ failed.
+
+Instead, report an error and let plugin initialization fail.
+---
+ src/network.c | 31 +++++++++++++++++++++++--------
+ 1 file changed, 23 insertions(+), 8 deletions(-)
+
+diff --git a/src/network.c b/src/network.c
+index 45f2436..71eb1f2 100644
+--- a/src/network.c
++++ b/src/network.c
+@@ -496,7 +496,7 @@ static int network_dispatch_notification (notification_t 
*n) /* {{{ */
+ } /* }}} int network_dispatch_notification */
+ 
+ #if HAVE_LIBGCRYPT
+-static void network_init_gcrypt (void) /* {{{ */
++static int network_init_gcrypt (void) /* {{{ */
+ {
+   gcry_error_t err;
+ 
+@@ -504,7 +504,7 @@ static void network_init_gcrypt (void) /* {{{ */
+    * Because you can't know in a library whether another library has
+    * already initialized the library */
+   if (gcry_control (GCRYCTL_ANY_INITIALIZATION_P))
+-    return;
++    return (0);
+ 
+  /* http://www.gnupg.org/documentation/manuals/gcrypt/Multi_002dThreading.html
+   * To ensure thread-safety, it's important to set GCRYCTL_SET_THREAD_CBS
+@@ -518,7 +518,7 @@ static void network_init_gcrypt (void) /* {{{ */
+   if (err)
+   {
+     ERROR ("network plugin: gcry_control (GCRYCTL_SET_THREAD_CBS) failed: 
%s", gcry_strerror (err));
+-    abort ();
++    return (-1);
+   }
+ # endif
+ 
+@@ -528,11 +528,12 @@ static void network_init_gcrypt (void) /* {{{ */
+   if (err)
+   {
+     ERROR ("network plugin: gcry_control (GCRYCTL_INIT_SECMEM) failed: %s", 
gcry_strerror (err));
+-    abort ();
++    return (-1);
+   }
+ 
+   gcry_control (GCRYCTL_INITIALIZATION_FINISHED);
+-} /* }}} void network_init_gcrypt */
++  return (0);
++} /* }}} int network_init_gcrypt */
+ 
+ static gcry_cipher_hd_t network_get_aes256_cypher (sockent_t *se, /* {{{ */
+     const void *iv, size_t iv_size, const char *username)
+@@ -2066,7 +2067,12 @@ static int sockent_init_crypto (sockent_t *se) /* {{{ */
+       {
+               if (se->data.client.security_level > SECURITY_LEVEL_NONE)
+               {
+-                      network_init_gcrypt ();
++                      if (network_init_gcrypt () < 0)
++                      {
++                              ERROR ("network plugin: Cannot configure client 
socket with "
++                                              "security: Failed to initialize 
crypto library.");
++                              return (-1);
++                      }
+ 
+                       if ((se->data.client.username == NULL)
+                                       || (se->data.client.password == NULL))
+@@ -2086,7 +2092,12 @@ static int sockent_init_crypto (sockent_t *se) /* {{{ */
+       {
+               if (se->data.server.security_level > SECURITY_LEVEL_NONE)
+               {
+-                      network_init_gcrypt ();
++                      if (network_init_gcrypt () < 0)
++                      {
++                              ERROR ("network plugin: Cannot configure server 
socket with "
++                                              "security: Failed to initialize 
crypto library.");
++                              return (-1);
++                      }
+ 
+                       if (se->data.server.auth_file == NULL)
+                       {
+@@ -3519,7 +3530,11 @@ static int network_init (void)
+       have_init = 1;
+ 
+ #if HAVE_LIBGCRYPT
+-      network_init_gcrypt ();
++      if (network_init_gcrypt () < 0)
++      {
++              ERROR ("network plugin: Failed to initialize crypto library.");
++              return (-1);
++      }
+ #endif
+ 
+       if (network_config_stats != 0)
+--
+2.9.2

diff --git a/app-admin/collectd/files/collectd-5.5.2-issue-1877.patch 
b/app-admin/collectd/files/collectd-5.5.2-issue-1877.patch
new file mode 100644
index 0000000..658dc1e
--- /dev/null
+++ b/app-admin/collectd/files/collectd-5.5.2-issue-1877.patch
@@ -0,0 +1,37 @@
+[PATCH 5/5] Fix compilation against >=xfsprogs-4.7.0
+
+Gentoo-Bug: https://bugs.gentoo.org/590998
+Bug: https://github.com/collectd/collectd/issues/1877
+---
+ src/utils_mount.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/utils_mount.c b/src/utils_mount.c
+index da53b98..37b52d6 100644
+--- a/src/utils_mount.c
++++ b/src/utils_mount.c
+@@ -24,16 +24,17 @@
+ # include "config.h"
+ #endif
+ 
++#define _GNU_SOURCE
++
++#include "collectd.h"
++#include "utils_mount.h"
++
+ #if HAVE_XFS_XQM_H
+-# define _GNU_SOURCE
+ # include <xfs/xqm.h>
+ #define XFS_SUPER_MAGIC_STR "XFSB"
+ #define XFS_SUPER_MAGIC2_STR "BSFX"
+ #endif
+ 
+-#include "collectd.h"
+-#include "utils_mount.h"
+-
+ #include "common.h" /* sstrncpy() et alii */
+ #include "plugin.h" /* ERROR() macro */
+ 
+-- 
+2.9.2
+

diff --git a/app-admin/collectd/metadata.xml b/app-admin/collectd/metadata.xml
index 95f0467..29a819a 100644
--- a/app-admin/collectd/metadata.xml
+++ b/app-admin/collectd/metadata.xml
@@ -151,5 +151,6 @@
                <flag name="filecaps">When set collectd daemon will have set 
required capabilities to run most plugins even if run as unprivileged 
user</flag>
                <flag name="java">Must be set (workaround for java-pkg-opt-2 
eclass limitation) when you want java or genericjmx plugin</flag>
                <flag name="udev">Enable optional udev usage in disk plugin; 
Required for smart plugin</flag>
+               <flag name="xfs">Enable optional capability to filter on XFS 
file system in df plugin; Requires XFS headers from 
<pkg>sys-fs/xfsprogs</pkg></flag>
        </use>
 </pkgmetadata>

Reply via email to