# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit autotools eutils flag-o-matic linux-info DESCRIPTION="A small daemon which collects system performance statistics" HOMEPAGE="http://collectd.org/" SRC_URI="${HOMEPAGE}/files/${P}.tar.bz2" LICENSE="GPL-2" SLOT="0" KEYWORDS="~x86 ~amd64" IUSE=" apache2 apcups dns email hal hddtemp ithreads lighttpd lm_sensors memcache mysql network nfs nginx ntp nut perl qemu rrdtool snmp syslog vserver xen " DEPEND=" apache2? ( >=net-misc/curl-7.17.0 ) lighttpd? ( >=net-misc/curl-7.17.0 ) nginx? ( >=net-misc/curl-7.17.0 ) dns? ( >=net-libs/libpcap-0.9.8 ) qemu? ( >=app-emulation/libvirt-0.3.3 ) xen? ( >=app-emulation/libvirt-0.3.3 ) mysql? ( >=virtual/mysql-5.0 ) perl? ( >=dev-lang/perl-5.8.8-r4 ) nut? ( >=sys-power/nut-2.2.0 ) rrdtool? ( >=net-analyzer/rrdtool-1.2.27 ) lm_sensors? ( >=sys-apps/lm_sensors-2.10.4 ) snmp? ( >=net-analyzer/net-snmp-5.4.1-r3 ) hal? ( >=sys-apps/hal-0.5.9.1-r3 ) >=dev-libs/libxml2-2.6.31 " RDEPEND=" ${DEPEND} apcups? ( >=sys-power/apcupsd-3.14.2 ) hddtemp? ( >=app-admin/hddtemp-0.3_beta15-r3 ) memcache? ( >=net-misc/memcached-1.2.2-r2 ) ntp? ( >=net-misc/ntp-4.2.4_p4 ) syslog? ( virtual/logger ) !hal? ( >=sys-apps/dmidecode-2.9 ) " pkg_setup() { linux-info_pkg_setup if ( !(linux_chkconfig_present ACPI_BATTERY) ); then einfo ewarn "ACPI_BATTERY needs to be enabled in your kernel for the battery plug-in to work correctly"; fi if ( !(linux_chkconfig_present CPU_FREQ) ); then einfo ewarn "CPU_FREQ needs to be enabled in your kernel for the cpufreq plug-in to work correctly"; fi if ( !(linux_chkconfig_present SERIAL_CORE) ); then einfo ewarn "SERIAL_CORE needs to be enabled in your kernel for the serial plug-in to work correctly"; fi if ( !(linux_chkconfig_present SWAP) ); then einfo ewarn "SWAP needs to be enabled in your kernel for the swap plug-in to work correctly"; fi if ( (use vserver) && !(linux_chkconfig_present IP_VS) ); then einfo ewarn "IP_VS should to be enabled in your kernel when the USE flag vserver is enabled"; fi if (use qemu && !(built_with_use libvirt qemu) ); then die "USE flag qemu requires that libvirt was compiled with the USE flag qemu"; fi if (use xen && !(built_with_use libvirt xen) ); then die "USE flag xen requires that libvirt was compiled with the USE flag xen"; fi if (use perl); then if (use ithreads); then (built_with_use perl ithreads) \ || die "The perl plug-in requires that libperl was compiled with the USE flag ithreads" else einfo ewarn "The perl plug-in requires the ithreads USE flag." fi fi einfo if ( !(linux_chkconfig_present PROC_FS) ); then ## if ( use network ); then ## die "${P} requires that PROC_FS is enabled in the kernel for the USE flag network"; fi die "${P} requires that PROC_FS is enabled in your kernel" ## UPDATE LATER fi if ( !(use network) ); then if ( use dns ); then die "The USE flag dns requires that the USE flag network is enabled"; fi if ( use email ); then die "The USE flag email requires that the USE flag network is enabled"; fi if ( use nfs ); then die "The USE flag nfs requires that the USE flag network is enabled"; fi if ( use ntp ); then die "The USE flag ntp requires that the USE flag network is enabled"; fi if ( use snmp ); then die "The USE flag snmp requires that the USE flag network is enabled"; fi if ( use vserver ); then die "The USE flag vserver requires that the USE flag network is enabled"; fi fi } src_unpack() { if [ "${A}" != "" ]; then unpack ${A} fi cd ${S} sed -i -e '/^AC_PLUGIN/ s/\ [[].*[]],/[no],/' \ configure.in \ || die "sed no-automagic-patch failed" eautoreconf \ || die "eautoreconf failed" } src_compile() { local myconf local disabled_plugins ### NEEDS TO BE FIXED PROBABLY append-flags -I/usr/src/linux/include if ( use apache2 || use lighttpd ); then myconf="${myconf} --enable-apache"; fi myconf="${myconf} $(use_enable apcups)" myconf="${myconf} --disable-apple_sensors" ## DISABLED disabled_plugins="${disabled_plugins} apple_sensors" myconf="${myconf} --enable-battery" ## Kernel check PROCFS myconf="${myconf} --enable-cpu" ## PROCFS myconf="${myconf} --enable-cpufreq" ## Kernel check SYSFS myconf="${myconf} --enable-csv" ## no checks myconf="${myconf} --enable-df" ## no checks myconf="${myconf} --enable-disk" ## PROCFS myconf="${myconf} $(use network && use_enable dns)" myconf="${myconf} $(use network && use_enable email)" myconf="${myconf} --enable-entropy" ## PROCFS myconf="${myconf} --disable-exec" ## NEEDS USERS disabled_plugins="${disabled_plugins} exec" myconf="${myconf} $(use_enable hddtemp)" ## PROCFS myconf="${myconf} $(use_enable network interface)" ## PROCFS myconf="${myconf} --disable-iptables" ## BREAKS disabled_plugins="${disabled_plugins} iptables" myconf="${myconf} $(use network && use_enable vserver ipvs)" ## Kernel check NEEDS CFLAGS -I -- FIX LATER myconf="${myconf} --enable-irq" ## PROCFS if ( use qemu || use xen ); then ## NEEDS KERNEL CHECK myconf="${myconf} --enable-libvirt"; fi myconf="${myconf} --enable-load" ## PROCFS myconf="${myconf} --enable-logfile" ## no checks myconf="${myconf} --disable-mbmon" ## COULD NOT FIND DAEMON disabled_plugins="${disabled_plugins} mbmon" myconf="${myconf} $(use_enable memcache memcached)" myconf="${myconf} --enable-memory" ## PROCFS myconf="${myconf} --enable-multimeter" myconf="${myconf} $(use_enable mysql)" myconf="${myconf} --disable-netlink" ## BREAKS disabled_plugins="${disabled_plugins} netlink" myconf="${myconf} $(use_enable network)" ## NO PROCFS myconf="${myconf} $(use network && use_enable nfs)" ## PROCFS myconf="${myconf} $(use_enable nginx)" myconf="${myconf} $(use network && use_enable ntp ntpd)" myconf="${myconf} $(use_enable nut)" myconf="${myconf} $(use ithreads && use_enable perl)" myconf="${myconf} $(use_with perl perl-bindings)" myconf="${myconf} $(use_enable network ping)" myconf="${myconf} --enable-processes" ## PROCFS myconf="${myconf} $(use_enable rrdtool)" myconf="${myconf} $(use_enable lm_sensors sensors)" myconf="${myconf} --enable-serial" ## Kernel check PROCFS myconf="${myconf} $(use network && use_enable snmp)" myconf="${myconf} --enable-swap" ## Kernel check PROCFS myconf="${myconf} $(use_enable syslog)" myconf="${myconf} --disable-tape" ## SOLARIS ??? disabled_plugins="${disabled_plugins} tape" myconf="${myconf} $(use_enable network tcpconns)" ## PROCFS myconf="${myconf} $(use_enable network unixsock)" myconf="${myconf} --enable-users" myconf="${myconf} --enable-uuid" ## Depends on hal or dmidecode PROCFS myconf="${myconf} $(use network && use_enable vserver)" ## PROCFS myconf="${myconf} $(use_enable network wireless)" ## NEEDS KERNEL CHECK ## PROCFS myconf="${myconf} --disable-xmms" ## NOT IN GENTOO disabled_plugins="${disabled_plugins} xmms" einfo elog "The following plug-ins have been disabled in the ebuild" elog ${disabled_plugins} einfo ### Configure econf \ ${myconf} \ --localstatedir=/var \ || die "econf failed" ### Build emake \ || die "emake failed" } src_install() { emake \ DESTDIR="${D}" \ install || die "emake install failed" ### Documentation dodoc AUTHORS ChangeLog NEWS README TODO \ || die "dodoc failed" docinto contrib/SpamAssassin dodoc contrib/SpamAssassin/* \ || die "dodoc contrib failed" docinto contrib/examples dodoc contrib/examples/* \ || die "dodoc contrib failed" docinto contrib/iptables dodoc contrib/iptables/* \ || die "dodoc contrib failed" docinto contrib docinto contrib dodoc contrib/README contrib/*\.[a-z]* \ || die "dodoc contrib failed" keepdir /var/lib/collectd \ || die "keepdir failed" newinitd "${FILESDIR}/${PN}-4.3.2.initd" ${PN} \ || die "newinitd failed" newconfd "${FILESDIR}/${PN}-4.3.2.confd" ${PN} \ || die "newconfd failed" } pkg_postinst() { einfo einfo "collectd introduced some changes in the new 4.x series." einfo "For further information, read http://collectd.org/migrate-v3-v4.shtml" einfo "The migration script can be found at:" einfo "/usr/share/doc/${P}/contrib/migrate-3-4.px.bz2" einfo }