diff options
author | Andreas K. Hüttel <dilfridge@gentoo.org> | 2011-04-24 17:10:05 +0000 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2011-04-24 17:10:05 +0000 |
commit | dff889908560f005ca1a7bbe6401636fb3e4b376 (patch) | |
tree | 5fab5367fade8f6649789af0e29d7d19a19605fa /app-admin/collectd | |
parent | Move libunique:3 from the gnome overlay to tree, ~hppa dropped w.r.t. KEYWORD... (diff) | |
download | gentoo-2-dff889908560f005ca1a7bbe6401636fb3e4b376.tar.gz gentoo-2-dff889908560f005ca1a7bbe6401636fb3e4b376.tar.bz2 gentoo-2-dff889908560f005ca1a7bbe6401636fb3e4b376.zip |
Add useflag for perl bindings and static libs, run as unprivileged user; bug 361723. Thanks to Bruno 'bonbons' on #collectd.
(Portage version: 2.1.9.46/cvs/Linux x86_64)
Diffstat (limited to 'app-admin/collectd')
-rw-r--r-- | app-admin/collectd/ChangeLog | 12 | ||||
-rw-r--r-- | app-admin/collectd/collectd-4.10.2-r3.ebuild | 315 | ||||
-rw-r--r-- | app-admin/collectd/collectd-4.10.3-r1.ebuild (renamed from app-admin/collectd/collectd-4.10.3.ebuild) | 33 | ||||
-rw-r--r-- | app-admin/collectd/collectd-5.0.0-r1.ebuild (renamed from app-admin/collectd/collectd-5.0.0.ebuild) | 33 | ||||
-rw-r--r-- | app-admin/collectd/files/collectd.confd | 12 | ||||
-rw-r--r-- | app-admin/collectd/files/collectd.initd | 10 |
6 files changed, 86 insertions, 329 deletions
diff --git a/app-admin/collectd/ChangeLog b/app-admin/collectd/ChangeLog index b3f60f1b7461..52eff544153b 100644 --- a/app-admin/collectd/ChangeLog +++ b/app-admin/collectd/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for app-admin/collectd # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/ChangeLog,v 1.19 2011/04/24 16:01:24 dilfridge Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/ChangeLog,v 1.20 2011/04/24 17:10:05 dilfridge Exp $ + +*collectd-5.0.0-r1 (24 Apr 2011) +*collectd-4.10.3-r1 (24 Apr 2011) + + 24 Apr 2011; Andreas K. Huettel <dilfridge@gentoo.org> + -collectd-4.10.2-r3.ebuild, -collectd-4.10.3.ebuild, + +collectd-4.10.3-r1.ebuild, -collectd-5.0.0.ebuild, + +collectd-5.0.0-r1.ebuild, files/collectd.confd, files/collectd.initd: + Add useflag for perl bindings and static libs, run as unprivileged user; + bug 361723. Thanks to Bruno 'bonbons' on #collectd. 24 Apr 2011; Andreas K. Huettel <dilfridge@gentoo.org> collectd-4.10.3.ebuild, +files/collectd-4.10.3-lt.patch, diff --git a/app-admin/collectd/collectd-4.10.2-r3.ebuild b/app-admin/collectd/collectd-4.10.2-r3.ebuild deleted file mode 100644 index 0a92c7d68739..000000000000 --- a/app-admin/collectd/collectd-4.10.2-r3.ebuild +++ /dev/null @@ -1,315 +0,0 @@ -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/collectd-4.10.2-r3.ebuild,v 1.1 2011/02/07 21:21:52 dilfridge Exp $ - -EAPI="2" - -inherit eutils base linux-info perl-app autotools - -DESCRIPTION="A small daemon which collects system performance statistics - with a near-infinite number of plugins" -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" - -# 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 routeros tape zfs_arc nut modbus" - -# Plugins that have been (compile) tested and can be enabled via COLLECTD_PLUGINS -COLLECTD_TESTED_PLUGINS="apache apcups ascent battery bind conntrack contextswitch - cpu cpufreq curl curl_json curl_xml dbi df disk dns email entropy exec filecount fscache gmond - hddtemp interface ipmi iptables irq java libvirt load madwifi mbmon memcachec - memcached memory multimeter mysql netlink network nfs nginx ntpd olsrd - onewire openvpn perl ping postgresql powerdns processes protocols python - rrdcached sensors serial snmp swap table tail tcpconns teamspeak2 ted thermal - tokyotyrant uptime users vmem vserver wireless csv exec logfile network - notify_desktop notify_email oracle perl python rrdcached rrdtool syslog unixsock write_http - match_empty_counter match_hashed match_regex match_timediff match_value - target_notification target_replace target_scale target_set uuid" - -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=" - 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.9.1-r2 ) - 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-2.6.34 ) - collectd_plugins_network? ( dev-libs/libgcrypt ) - 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_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_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_write_http? ( net-misc/curl ) - - 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} - dev-util/pkgconfig - kernel_linux? ( - collectd_plugins_vserver? ( sys-kernel/vserver-sources ) - )" - -RDEPEND="${COMMON_DEPEND} - collectd_plugins_syslog? ( virtual/logger )" - -PATCHES=( - "${FILESDIR}/${PN}-4.10.1"-{libperl,libiptc,noowniptc}.patch - "${FILESDIR}/${P}"-{libocci,libnotify-0.7,nohal}.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 -} - -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 - - 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 interface iptables ipvs irq load - memory netlink nfs 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 - 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 - - # Finally, run econf. - KERNEL_DIR="${KERNEL_DIR}" econf --config-cache --without-included-ltdl --disable-static --localstatedir=/var ${myconf} -} - -src_install() { - emake DESTDIR="${D}" install || die - - fixlocalpod - - find "${D}/usr/" -name "*.la" -exec rm -f {} + - - dodoc AUTHORS ChangeLog NEWS README TODO || die - - if use contrib ; then - insinto /usr/share/doc/${PF} - doins -r contrib || die - fi - - keepdir /var/lib/${PN} || die - - newinitd "${FILESDIR}/${PN}.initd" ${PN} || die - newconfd "${FILESDIR}/${PN}.confd" ${PN} || die - - insinto /etc/logrotate.d - newins "${FILESDIR}/logrotate" collectd || 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" - - 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/collectd-4.10.3.ebuild b/app-admin/collectd/collectd-4.10.3-r1.ebuild index 28f76037532f..58e73fd8ac05 100644 --- a/app-admin/collectd/collectd-4.10.3.ebuild +++ b/app-admin/collectd/collectd-4.10.3-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/collectd-4.10.3.ebuild,v 1.3 2011/04/24 16:01:24 dilfridge Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/collectd-4.10.3-r1.ebuild,v 1.1 2011/04/24 17:10:05 dilfridge Exp $ EAPI=3 @@ -13,7 +13,7 @@ SRC_URI="${HOMEPAGE}/files/${P}.tar.bz2" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" -IUSE="contrib debug kernel_linux kernel_FreeBSD kernel_Darwin" +IUSE="contrib debug kernel_linux kernel_FreeBSD kernel_Darwin perl static-libs" # The plugin lists have to follow here since they extend IUSE @@ -47,6 +47,7 @@ unset plugin # Now come the dependencies. COMMON_DEPEND=" + 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 ) @@ -185,6 +186,7 @@ pkg_setup() { fi enewgroup collectd + enewuser collectd -1 -1 /var/lib/collectd collectd } src_prepare() { @@ -250,6 +252,13 @@ src_configure() { 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 @@ -265,8 +274,11 @@ src_configure() { 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 --disable-static --localstatedir=/var ${myconf} + KERNEL_DIR="${KERNEL_DIR}" econf --config-cache --without-included-ltdl $(use_enable static-libs static) --localstatedir=/var ${myconf} } src_install() { @@ -275,6 +287,13 @@ src_install() { 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 + + chown root:collectd "${D}/etc/collectd.conf" || die + chmod u=rw,g=r,o= "${D}/etc/collectd.conf" || die dodoc AUTHORS ChangeLog NEWS README TODO || die @@ -284,6 +303,7 @@ src_install() { fi keepdir /var/lib/${PN} || die + chown collectd:collectd "${D}/var/lib/${PN}" || die newinitd "${FILESDIR}/${PN}.initd" ${PN} || die newconfd "${FILESDIR}/${PN}.confd" ${PN} || die @@ -291,6 +311,8 @@ src_install() { insinto /etc/logrotate.d newins "${FILESDIR}/logrotate" collectd || die + 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 } @@ -309,6 +331,11 @@ pkg_postinst() { 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 diff --git a/app-admin/collectd/collectd-5.0.0.ebuild b/app-admin/collectd/collectd-5.0.0-r1.ebuild index bd5f421eaa2d..bd2cd36217c9 100644 --- a/app-admin/collectd/collectd-5.0.0.ebuild +++ b/app-admin/collectd/collectd-5.0.0-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/collectd-5.0.0.ebuild,v 1.2 2011/04/24 16:01:24 dilfridge Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/collectd-5.0.0-r1.ebuild,v 1.1 2011/04/24 17:10:05 dilfridge Exp $ EAPI=4 @@ -13,7 +13,7 @@ SRC_URI="${HOMEPAGE}/files/${P}.tar.bz2" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" -IUSE="contrib debug kernel_linux kernel_FreeBSD kernel_Darwin" +IUSE="contrib debug kernel_linux kernel_FreeBSD kernel_Darwin perl static-libs" # The plugin lists have to follow here since they extend IUSE @@ -47,6 +47,7 @@ unset plugin # Now come the dependencies. COMMON_DEPEND=" + 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 ) @@ -185,6 +186,7 @@ pkg_setup() { fi enewgroup collectd + enewuser collectd -1 -1 /var/lib/collectd collectd } src_prepare() { @@ -250,6 +252,13 @@ src_configure() { 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 @@ -265,8 +274,11 @@ src_configure() { 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 --disable-static --localstatedir=/var ${myconf} + KERNEL_DIR="${KERNEL_DIR}" econf --config-cache --without-included-ltdl $(use_enable static-libs static) --localstatedir=/var ${myconf} } src_install() { @@ -275,6 +287,13 @@ src_install() { 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 + + chown root:collectd "${D}/etc/collectd.conf" || die + chmod u=rw,g=r,o= "${D}/etc/collectd.conf" || die dodoc AUTHORS ChangeLog NEWS README TODO @@ -284,6 +303,7 @@ src_install() { fi keepdir /var/lib/${PN} + chown collectd:collectd "${D}/var/lib/${PN}" || die newinitd "${FILESDIR}/${PN}.initd" ${PN} newconfd "${FILESDIR}/${PN}.confd" ${PN} @@ -291,6 +311,8 @@ src_install() { 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 } @@ -309,6 +331,11 @@ pkg_postinst() { 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 diff --git a/app-admin/collectd/files/collectd.confd b/app-admin/collectd/files/collectd.confd index a08b9175fca5..ebb18efa8dc1 100644 --- a/app-admin/collectd/files/collectd.confd +++ b/app-admin/collectd/files/collectd.confd @@ -1,6 +1,6 @@ -# Copyright 1999-2010 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/files/collectd.confd,v 1.1 2010/09/28 15:17:05 dilfridge Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/files/collectd.confd,v 1.2 2011/04/24 17:10:05 dilfridge Exp $ # Nice value used to launch collectd, to change priority of the process. As # you usually will want to run it in background, a default of 5 is used. @@ -13,4 +13,10 @@ # File used to store the PID file. Usually you won't need to touch it. # -#COLLECTD_PIDFILE='/var/run/collectd.pid' +#COLLECTD_PIDFILE='/var/run/collectd/collectd.pid' + +# User to run collectd as (default is collectd, change to root or give +# collectd user appropriate privileges if you use one of the plugins that +# require it, as e.g. ping or iptables plugins) +# +#COLLECTD_USER='collectd' diff --git a/app-admin/collectd/files/collectd.initd b/app-admin/collectd/files/collectd.initd index 3240bfb0732f..6028c93f5efd 100644 --- a/app-admin/collectd/files/collectd.initd +++ b/app-admin/collectd/files/collectd.initd @@ -1,11 +1,12 @@ #!/sbin/runscript -# Copyright 1999-2010 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/files/collectd.initd,v 1.3 2010/12/16 17:33:45 dilfridge Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/files/collectd.initd,v 1.4 2011/04/24 17:10:05 dilfridge Exp $ -: ${COLLECTD_PIDFILE:='/var/run/collectd.pid'} +: ${COLLECTD_PIDFILE:='/var/run/collectd/collectd.pid'} : ${COLLECTD_CFGFILE:='/etc/collectd.conf'} : ${COLLECTD_NICELVL:='5'} +: ${COLLECTD_USER:='collectd'} opts="${opts} configtest" @@ -42,9 +43,10 @@ checkconfig() { start() { checkconfig || return 1 + [ -d /var/run/collectd ] || mkdir /var/run/collectd && chown collectd:collectd /var/run/collectd ebegin "Starting collectd" - start-stop-daemon --start \ + start-stop-daemon --start -c "${COLLECTD_USER}:collectd" \ --nicelevel "${COLLECTD_NICELVL}" --exec /usr/sbin/collectd -- \ -P "${COLLECTD_PIDFILE}" -C "${COLLECTD_CFGFILE}" eend $? "Failed to start collectd" |