diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2016-09-22 01:55:38 +0200 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2016-09-22 01:58:29 +0200 |
commit | 26b428cbf35e52dde7e530fc81ae3652e3fe8d48 (patch) | |
tree | d5d780536039d8e9297626e313c12689d79b32ba /app-admin/collectd | |
parent | net-nntp/sabnzbd: bump 1.1.0 (diff) | |
download | gentoo-26b428cbf35e52dde7e530fc81ae3652e3fe8d48.tar.gz gentoo-26b428cbf35e52dde7e530fc81ae3652e3fe8d48.tar.bz2 gentoo-26b428cbf35e52dde7e530fc81ae3652e3fe8d48.zip |
app-admin/collectd: Bump to v5.6.0
New plugins:
- chrony
- cpusleep
- gps
- lua
- mqtt
- notify_nagios
- xencpu
Package-Manager: portage-2.3.1
Diffstat (limited to 'app-admin/collectd')
-rw-r--r-- | app-admin/collectd/Manifest | 1 | ||||
-rw-r--r-- | app-admin/collectd/collectd-5.6.0.ebuild | 495 | ||||
-rw-r--r-- | app-admin/collectd/files/collectd-5.6.0-fix-apache-plugin.patch | 26 | ||||
-rw-r--r-- | app-admin/collectd/files/collectd-5.6.0-gentoo.patch | 153 | ||||
-rw-r--r-- | app-admin/collectd/files/collectd-5.6.0-issue-1896.patch | 76 | ||||
-rw-r--r-- | app-admin/collectd/metadata.xml | 7 |
6 files changed, 758 insertions, 0 deletions
diff --git a/app-admin/collectd/Manifest b/app-admin/collectd/Manifest index c5865d36d809..31a5a5319670 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 000000000000..e64baa96dbb0 --- /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 000000000000..e3afaeb5d607 --- /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 <octo@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 000000000000..dd8c1576354c --- /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 <whissi@gentoo.org> +Date: Thu, 22 Sep 2016 00:53:58 +0200 +Subject: [PATCH 1/3] Remove bundled libltdl + +--- + Makefile.am | 6 ------ + configure.ac | 8 ++++---- + 2 files changed, 4 insertions(+), 10 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 03bdd39..ad04a3c 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,11 +1,5 @@ +-ACLOCAL_AMFLAGS = -I libltdl/m4 +- + SUBDIRS = + +-if BUILD_INCLUDED_LTDL +-SUBDIRS += libltdl +-endif +- + SUBDIRS += proto src bindings . + + AM_CPPFLAGS = $(LTDLINCL) +diff --git a/configure.ac b/configure.ac +index 9a6da11..68e15e0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,7 +3,6 @@ AC_PREREQ([2.60]) + AC_INIT([collectd],[m4_esyscmd(./version-gen.sh)]) + AC_CONFIG_SRCDIR(src/target_set.c) + AC_CONFIG_HEADERS(src/config.h) +-AC_CONFIG_AUX_DIR([libltdl/config]) + + dnl older automake's default of ARFLAGS=cru is noisy on newer binutils; + dnl we don't really need the 'u' even in older toolchains. Then there is +@@ -13,7 +12,6 @@ m4_divert_text([DEFAULTS], [: "${ARFLAGS=cr} ${AR_FLAGS=cr}"]) + m4_ifdef([LT_PACKAGE_VERSION], + # libtool >= 2.2 + [ +- LT_CONFIG_LTDL_DIR([libltdl]) + LT_INIT([dlopen]) + LTDL_INIT([convenience]) + AC_DEFINE(LIBTOOL_VERSION, 2, [Define to used libtool version.]) +@@ -25,12 +23,14 @@ m4_ifdef([LT_PACKAGE_VERSION], + AC_SUBST(LTDLINCL) + AC_SUBST(LIBLTDL) + AC_LIBTOOL_DLOPEN +- AC_CONFIG_SUBDIRS(libltdl) + AC_DEFINE(LIBTOOL_VERSION, 1, [Define to used libtool version.]) + ] + ) + +-AM_CONDITIONAL([BUILD_INCLUDED_LTDL], [test "x$LTDLDEPS" != "x"]) ++if test "x$LTDLDEPS" != "x" ++then ++ AC_MSG_ERROR(["system's libltdl is too old! Should never happen. Please file a bug at https://bugs.gentoo.org"]) ++fi + + AM_INIT_AUTOMAKE([subdir-objects tar-pax dist-bzip2 no-dist-gzip foreign]) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +-- +2.10.0 + + +From 0b00f519ce183b8ceaab5cf8e56f574ecd2cb7c4 Mon Sep 17 00:00:00 2001 +From: Thomas Deutschmann <whissi@gentoo.org> +Date: Thu, 22 Sep 2016 00:54:08 +0200 +Subject: [PATCH 2/3] Remove libhal dependency + +X-Gentoo-Bug: 353839 +X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=353839 +--- + configure.ac | 24 ------------------------ + 1 file changed, 24 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 68e15e0..1700c44 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1663,30 +1663,6 @@ AM_CONDITIONAL(BUILD_WITH_LIBRESOLV, test "x$with_libresolv" = "xyes") + + dnl Check for HAL (hardware abstraction library) + with_libhal="no" +-PKG_CHECK_MODULES([HAL], [hal], +- [ +- SAVE_LIBS="$LIBS" +- LIBS="$HAL_LIBS $LIBS" +- AC_CHECK_LIB([hal], [libhal_device_property_exists], +- [ +- SAVE_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$HAL_CFLAGS $CPPFLAGS" +- AC_CHECK_HEADERS([libhal.h], +- [ +- with_libhal="yes" +- BUILD_WITH_LIBHAL_CFLAGS="$HAL_CFLAGS" +- BUILD_WITH_LIBHAL_LIBS="$HAL_LIBS" +- ]) +- CPPFLAGS="$SAVE_CPPFLAGS" +- ], +- [ : ] +- ) +- LIBS="$SAVE_LIBS" +- ], +- [ : ] +-) +-AC_SUBST(BUILD_WITH_LIBHAL_CFLAGS) +-AC_SUBST(BUILD_WITH_LIBHAL_LIBS) + + + SAVE_LIBS="$LIBS" +-- +2.10.0 + + +From 380c61888bed5856319fa32816d8f2f4c88ee7bc Mon Sep 17 00:00:00 2001 +From: Thomas Deutschmann <whissi@gentoo.org> +Date: Thu, 22 Sep 2016 00:54:19 +0200 +Subject: [PATCH 3/3] Link Oracle plug-in against libocci + +Author: Aurelien Minet +X-Gentoo-Bug: 347607 +X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=347607 +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 1700c44..83909a0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3587,14 +3587,14 @@ AC_ARG_WITH(oracle, [AS_HELP_STRING([--with-oracle@<:@=ORACLE_HOME@:>@], [Path t + ]) + if test "x$ORACLE_HOME" != "x" + then +- with_oracle_cppflags="-I$ORACLE_HOME/rdbms/public" ++ with_oracle_cppflags="-I$ORACLE_HOME/rdbms/public -locci" + + if test -e "$ORACLE_HOME/lib/ldflags" + then + with_oracle_libs=`cat "$ORACLE_HOME/lib/ldflags"` + fi + #with_oracle_libs="-L$ORACLE_HOME/lib $with_oracle_libs -lclntsh" +- with_oracle_libs="-L$ORACLE_HOME/lib -lclntsh" ++ with_oracle_libs="-L$ORACLE_HOME/lib -lclntsh -locci" + fi + if test "x$with_oracle" = "xyes" + then +-- +2.10.0 + diff --git a/app-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 000000000000..afcd8d0a1bbb --- /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 <octo@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 29a819a96d01..250736f04588 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> |