diff options
author | Markos Chandras <hwoarang@gentoo.org> | 2012-12-03 20:57:02 +0000 |
---|---|---|
committer | Markos Chandras <hwoarang@gentoo.org> | 2012-12-03 20:57:02 +0000 |
commit | 8caca880518cf61e48d8f1fea4398365339e7cdd (patch) | |
tree | 5ca8eb6291c121bedf6786b847f4b341700f8198 /app-admin/collectd | |
parent | Stable for x86, wrt bug #445138 (diff) | |
download | gentoo-2-8caca880518cf61e48d8f1fea4398365339e7cdd.tar.gz gentoo-2-8caca880518cf61e48d8f1fea4398365339e7cdd.tar.bz2 gentoo-2-8caca880518cf61e48d8f1fea4398365339e7cdd.zip |
Version bump thanks to Johan Bergström <bugs@bergstroem.nu>. Bug #443954
(Portage version: 2.1.11.31/cvs/Linux x86_64, signed Manifest commit with key B4AFF2C2)
Diffstat (limited to 'app-admin/collectd')
-rw-r--r-- | app-admin/collectd/ChangeLog | 8 | ||||
-rw-r--r-- | app-admin/collectd/collectd-5.2.0.ebuild | 356 | ||||
-rw-r--r-- | app-admin/collectd/metadata.xml | 5 |
3 files changed, 367 insertions, 2 deletions
diff --git a/app-admin/collectd/ChangeLog b/app-admin/collectd/ChangeLog index 2f2df34db8ab..c1b4ea6f8cc8 100644 --- a/app-admin/collectd/ChangeLog +++ b/app-admin/collectd/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-admin/collectd # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/ChangeLog,v 1.46 2012/12/03 20:49:27 hwoarang Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/ChangeLog,v 1.47 2012/12/03 20:57:02 hwoarang Exp $ + +*collectd-5.2.0 (03 Dec 2012) + + 03 Dec 2012; Markos Chandras <hwoarang@gentoo.org> +collectd-5.2.0.ebuild, + metadata.xml: + Version bump thanks to Johan Bergström <bugs@bergstroem.nu>. Bug #443954 *collectd-5.1.1-r1 (03 Dec 2012) diff --git a/app-admin/collectd/collectd-5.2.0.ebuild b/app-admin/collectd/collectd-5.2.0.ebuild new file mode 100644 index 000000000000..6902a6b41782 --- /dev/null +++ b/app-admin/collectd/collectd-5.2.0.ebuild @@ -0,0 +1,356 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/collectd-5.2.0.ebuild,v 1.1 2012/12/03 20:57:02 hwoarang Exp $ + +EAPI="4" + +inherit eutils base linux-info perl-app autotools multilib user + +DESCRIPTION="A a daemon which collects system statistic 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 ~x86" +IUSE="contrib debug kernel_linux kernel_FreeBSD kernel_Darwin perl static-libs" + +# The plugin lists have to follow here since they extend IUSE + +# Plugins that to my knowledge cannot be supported (eg. dependencies not in gentoo) +COLLECTD_IMPOSSIBLE_PLUGINS="netapp pinba xmms" + +# Plugins that still need some work +COLLECTD_UNTESTED_PLUGINS="ipvs apple_sensors tape zfs_arc modbus amqp genericjmx + lpar redis write_redis v5upgrade" + +# Plugins that have been (compile) tested and can be enabled via COLLECTD_PLUGINS +COLLECTD_TESTED_PLUGINS="aggregation apache apcups ascent battery bind conntrack + contextswitch cpu cpufreq csv curl curl_json curl_xml dbi df disk dns email + entropy ethstat exec filecount fscache gmond hddtemp interface ipmi iptables + irq java libvirt load logfile madwifi match_empty_counter match_hashed + match_regex match_timediff match_value mbmon md memcachec memcached memory + multimeter mysql netlink network network nfs nginx notify_desktop notify_email + ntpd numa nut olsrd onewire openvpn oracle perl perl ping postgresql powerdns + processes protocols python python routeros rrdcached rrdcached rrdtool sensors + serial snmp swap syslog table tail target_notification target_replace + target_scale target_set tcpconns teamspeak2 ted thermal threshold tokyotyrant + unixsock uptime users uuid varnish vmem vserver wireless write_graphite + write_http write_mongodb" + +COLLECTD_DISABLED_PLUGINS="${COLLECTD_IMPOSSIBLE_PLUGINS} ${COLLECTD_UNTESTED_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 + sys-devel/libtool + perl? ( dev-lang/perl[ithreads] ( || ( sys-devel/libperl[ithreads] >=sys-devel/libperl-5.10 ) ) ) + collectd_plugins_apache? ( net-misc/curl ) + collectd_plugins_ascent? ( net-misc/curl dev-libs/libxml2 ) + collectd_plugins_bind? ( dev-libs/libxml2 ) + collectd_plugins_curl? ( net-misc/curl ) + collectd_plugins_curl_json? ( net-misc/curl dev-libs/yajl ) + collectd_plugins_curl_xml? ( net-misc/curl dev-libs/libxml2 ) + 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 ) + collectd_plugins_java? ( virtual/jre dev-java/java-config-wrapper ) + collectd_plugins_libvirt? ( app-emulation/libvirt dev-libs/libxml2 ) + collectd_plugins_memcachec? ( dev-libs/libmemcached ) + collectd_plugins_mysql? ( >=virtual/mysql-5.0 ) + collectd_plugins_netlink? ( >=sys-apps/iproute2-3.3.0 ) + collectd_plugins_nginx? ( net-misc/curl ) + collectd_plugins_notify_desktop? ( x11-libs/libnotify ) + collectd_plugins_notify_email? ( >=net-libs/libesmtp-1.0.4 dev-libs/openssl ) + collectd_plugins_nut? ( sys-power/nut ) + collectd_plugins_onewire? ( sys-fs/owfs ) + collectd_plugins_oracle? ( >=dev-db/oracle-instantclient-basic-11.2.0.1.0 ) + collectd_plugins_perl? ( dev-lang/perl[ithreads] ( || ( sys-devel/libperl[ithreads] >=sys-devel/libperl-5.10 ) ) ) + collectd_plugins_ping? ( net-libs/liboping ) + collectd_plugins_postgresql? ( >=dev-db/postgresql-base-8.2 ) + collectd_plugins_python? ( =dev-lang/python-2* ) + collectd_plugins_routeros? ( net-libs/librouteros ) + collectd_plugins_rrdcached? ( >=net-analyzer/rrdtool-1.4 ) + collectd_plugins_rrdtool? ( >=net-analyzer/rrdtool-1.2.27 ) + collectd_plugins_sensors? ( sys-apps/lm_sensors ) + collectd_plugins_snmp? ( net-analyzer/net-snmp ) + collectd_plugins_tokyotyrant? ( net-misc/tokyotyrant ) + collectd_plugins_varnish? ( www-servers/varnish ) + collectd_plugins_write_http? ( net-misc/curl ) + collectd_plugins_write_mongodb? ( dev-libs/mongo-c-driver ) + + kernel_FreeBSD? ( + collectd_plugins_disk? ( >=sys-libs/libstatgrab-0.16 ) + collectd_plugins_interface? ( >=sys-libs/libstatgrab-0.16 ) + collectd_plugins_load? ( >=sys-libs/libstatgrab-0.16 ) + collectd_plugins_memory? ( >=sys-libs/libstatgrab-0.16 ) + collectd_plugins_swap? ( >=sys-libs/libstatgrab-0.16 ) + collectd_plugins_users? ( >=sys-libs/libstatgrab-0.16 ) + )" + +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig + kernel_linux? ( + collectd_plugins_vserver? ( sys-kernel/vserver-sources ) + )" + +RDEPEND="${COMMON_DEPEND} + collectd_plugins_syslog? ( virtual/logger )" + +PATCHES=( + "${FILESDIR}/${PN}-4.10.2"-{libocci,nohal}.patch + "${FILESDIR}/${PN}-4.10.3"-werror.patch + "${FILESDIR}/${PN}-5.1.0"-libperl.patch + "${FILESDIR}/${PN}-5.1.1"-lt.patch + "${FILESDIR}/${PN}-5.1.1"-perl-prefix.patch +) + +# @FUNCTION: collectd_plugin_kernel_linux +# @DESCRIPTION: +# USAGE: <plug-in 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} plug-in can use kernel features that are disabled now; enable ${multi_opt} in your kernel" + ;; + (warn) + ewarn "The ${1} plug-in uses kernel features that are disabled now; enable ${multi_opt} in your kernel" + ;; + (error) + eerror "The ${1} plug-in 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() { + linux-info_pkg_setup + + # battery.c:/proc/pmu/battery_%i + # battery.c:/proc/acpi/battery + collectd_plugin_kernel_linux battery ACPI_BATTERY 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 + + # 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 "PROC_FS SYSFS" warn + collectd_plugin_kernel_linux thermal ACPI_THERMAL warn + + # vmem.c:/proc/vmstat + collectd_plugin_kernel_linux vmem VM_EVENT_COUNTERS warn + + # uuid.c:/sys/hypervisor/uuid + collectd_plugin_kernel_linux uuid SYSFS info + + # wireless.c:/proc/net/wireless + collectd_plugin_kernel_linux wireless "MAC80211 IEEE80211" warn +} + +pkg_setup() { + if use kernel_linux; then + 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 + + enewgroup collectd + enewuser collectd -1 -1 /var/lib/collectd collectd +} + +src_prepare() { + base_src_prepare + + # 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 + + rm -r libltdl || die + + eautoreconf +} + +src_configure() { + # Now come the lists of os-dependent plugins. Any plugin that is not listed anywhere here + # should work independent of the operating system. + + local linux_plugins="battery cpu cpufreq disk entropy ethstat interface iptables ipvs irq load + memory md netlink nfs numa processes serial swap tcpconns thermal users vmem vserver + wireless" + + local libstatgrab_plugins="cpu disk interface load memory swap users" + local bsd_plugins="cpu tcpconns ${libstatgrab_plugins}" + + 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)" + + 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})" + 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 + + # Need JAVA_HOME for java. + if use collectd_plugins_java; then + myconf+=" --with-java=$(java-config -g JAVA_HOME)" + fi + + # Need libiptc ONLY for iptables. If we try to use it otherwise bug 340109 happens. + if ! use collectd_plugins_iptables; then + myconf+=" --with-libiptc=no" + fi + + # The perl bindings + myconf+=" $(use_with perl perl-bindings)" + + # Finally, run econf. + KERNEL_DIR="${KERNEL_DIR}" econf --config-cache --without-included-ltdl $(use_enable static-libs static) --localstatedir=/var ${myconf} +} + +src_install() { + emake DESTDIR="${D}" install || die + + fixlocalpod + + find "${D}/usr/" -name "*.la" -exec rm -f {} + + rm "${D}/usr/$(get_libdir)"/collectd/*.a + + # use collectd_plugins_ping && setcap cap_net_raw+ep ${D}/usr/sbin/collectd + # we cannot do this yet + + 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" ${PN} + newconfd "${FILESDIR}/${PN}.confd" ${PN} + + insinto /etc/logrotate.d + newins "${FILESDIR}/logrotate" collectd + + sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":PIDFile "/var/run/collectd/collectd.pid":' "${D}"/etc/collectd.conf || die + sed -i -e 's:^# SocketFile "/var/run/collectd-unixsock":# SocketFile "/var/run/collectd/collectd-unixsock":' "${D}"/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>:' "${D}"/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>:' "${D}"/etc/collectd.conf || die +} + +collectd_rdeps() { + if (use collectd_plugins_${1} && ! has_version "${2}"); then + elog "The ${1} plug-in needs ${2} to be installed locally or remotely to work." + fi +} + +pkg_postinst() { + collectd_rdeps apcups sys-power/apcupsd + collectd_rdeps hddtemp app-admin/hddtemp + collectd_rdeps mbmon sys-apps/xmbmon + collectd_rdeps memcached ">=net-misc/memcached-1.2.2-r2" + collectd_rdeps ntpd net-misc/ntp + collectd_rdeps openvpn ">=net-misc/openvpn-2.0.9" + + echo + elog "collectd is now started as unprivileged user by default." + elog "You may want to recheck 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 +}
\ No newline at end of file diff --git a/app-admin/collectd/metadata.xml b/app-admin/collectd/metadata.xml index a4191040eaec..d113b154cc86 100644 --- a/app-admin/collectd/metadata.xml +++ b/app-admin/collectd/metadata.xml @@ -2,12 +2,14 @@ <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <herd>proxy-maintainers</herd> + <longdescription>Collectd gathers statistics about the system it is running on and stores this information. Those statistics can then be used to find current performance bottlenecks (i.e. performance analysis) and predict future system load (i.e. capacity planning). Or if you just want pretty graphs of your private server and are fed up with some homegrown solution you're at the right place.</longdescription> <maintainer> <email>bugs@bergstroem.nu</email> <name>Johan Bergström</name> <description>Proxied Maintainer</description> </maintainer> <use> + <flag name='collectd_plugins_aggregation'>Build the aggregation plugin (aggregate multiplte values into a single value)</flag> <flag name='collectd_plugins_apache'>Build the apache input plugin (transferred bytes, handled requests, detailed scoreboard statistics)</flag> <flag name='collectd_plugins_apcups'>Build the apcups input plugin (UPS charge, load, input/output/battery voltage, etc.)</flag> <flag name='collectd_plugins_ascent'>Build the ascent input plugin (statistics about a free server for World of Warcraft)</flag> @@ -92,6 +94,7 @@ <flag name='collectd_plugins_teamspeak2'>Build the teamspeak2 input plugin (collects traffic statistics from a teamspeak2 instance)</flag> <flag name='collectd_plugins_ted'>Build the ted input plugin (connects to The Energy Detective and reads the current power over connected power lines)</flag> <flag name='collectd_plugins_thermal'>Build the thermal input plugin (ACPI thermal zone information)</flag> + <flag name='collectd_plugins_threshold'>Build the threshold plugin (checks values against configured thresholds and creates notifications if values are out of bounds)</flag> <flag name='collectd_plugins_tokyotyrant'>Build the tokyotyrant input plugin (number of records and file size from a running Tokyo Tyrant server)</flag> <flag name='collectd_plugins_uptime'>Build the uptime input plugin (system uptime)</flag> <flag name='collectd_plugins_unixsock'>Build the unixsock output plugin (opens a UNIX domain socket and accepts connections)</flag> @@ -106,4 +109,4 @@ <flag name='collectd_plugins_write_mongodb'>Build the write_mongodb output plugin (sends the values collected by collectd to a MongoDB)</flag> <flag name='contrib'>Install user-contributed files in the doc directory</flag> </use> -</pkgmetadata> +</pkgmetadata>
\ No newline at end of file |