From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 41FEB13832E for ; Thu, 11 Aug 2016 16:33:38 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 32C5D21C1FE; Thu, 11 Aug 2016 16:33:07 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 3D5CB21C1FE for ; Thu, 11 Aug 2016 16:33:06 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id DD36A340B29 for ; Thu, 11 Aug 2016 16:33:04 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 0D4E98DE for ; Thu, 11 Aug 2016 16:33:03 +0000 (UTC) From: "Thomas Deutschmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Thomas Deutschmann" Message-ID: <1470933164.9d5c0697e68fde681d07d283a2a8a3c67d5a7823.whissi@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: app-admin/collectd/files/, app-admin/collectd/ X-VCS-Repository: repo/gentoo X-VCS-Files: app-admin/collectd/Manifest app-admin/collectd/collectd-5.5.2.ebuild app-admin/collectd/files/collectd-5.5.2-issue-1870.patch app-admin/collectd/files/collectd-5.5.2-issue-1877.patch app-admin/collectd/metadata.xml X-VCS-Directories: app-admin/collectd/files/ app-admin/collectd/ X-VCS-Committer: whissi X-VCS-Committer-Name: Thomas Deutschmann X-VCS-Revision: 9d5c0697e68fde681d07d283a2a8a3c67d5a7823 X-VCS-Branch: master Date: Thu, 11 Aug 2016 16:33:03 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 4cfc4406-f78f-44e9-a422-470ea4d2759f X-Archives-Hash: 7c083065d0634835a120c47bf2cc0a83 commit: 9d5c0697e68fde681d07d283a2a8a3c67d5a7823 Author: Thomas Deutschmann gentoo org> AuthorDate: Thu Aug 11 16:26:01 2016 +0000 Commit: Thomas Deutschmann gentoo 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? ( =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: +# 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# \n# Globals true\n# :' "${ED}"etc/collectd.conf || die + sed -i -e 's:^.*LoadPlugin python$:# The new, correct way to load the python plugin -- \n# \n# Globals true\n# :' "${ED}"etc/collectd.conf || die +} + +pkg_postinst() { + 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 +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 +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 + #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 @@ When set collectd daemon will have set required capabilities to run most plugins even if run as unprivileged user Must be set (workaround for java-pkg-opt-2 eclass limitation) when you want java or genericjmx plugin Enable optional udev usage in disk plugin; Required for smart plugin + Enable optional capability to filter on XFS file system in df plugin; Requires XFS headers from sys-fs/xfsprogs