diff options
Diffstat (limited to 'community-testing/collectd')
-rw-r--r-- | community-testing/collectd/PKGBUILD | 86 | ||||
-rw-r--r-- | community-testing/collectd/install | 8 | ||||
-rw-r--r-- | community-testing/collectd/libnotify-0.7.patch | 12 | ||||
-rw-r--r-- | community-testing/collectd/libperl.patch | 30 | ||||
-rw-r--r-- | community-testing/collectd/rc.d | 39 | ||||
-rw-r--r-- | community-testing/collectd/yajl-2.x.patch | 57 |
6 files changed, 232 insertions, 0 deletions
diff --git a/community-testing/collectd/PKGBUILD b/community-testing/collectd/PKGBUILD new file mode 100644 index 000000000..54138c3db --- /dev/null +++ b/community-testing/collectd/PKGBUILD @@ -0,0 +1,86 @@ +# $Id: PKGBUILD 56069 2011-09-30 09:15:09Z ebelanger $ +# Maintainer: Gaetan Bisson <bisson@archlinux.org> +# Contributor: Gerhard Brauer <gerhard.brauer@web.de> + +pkgname=collectd +pkgver=5.0.0 +pkgrel=7 +pkgdesc='Daemon which collects system performance statistics periodically' +arch=('i686' 'x86_64') +url='http://collectd.org/' +license=('GPL') +options=('!libtool') +backup=('etc/collectd.conf') + +optdepends=('curl: apache, ascent, curl, nginx, and write_http plugins' + 'libdbi: dbi plugin' + 'libesmtp: notify_email plugin' + 'libgcrypt: encryption and authentication for network plugin' + 'iptables: iptables plugin' + 'libmemcached: memcachec plugin' + 'libmysqlclient: mysql plugin' + 'iproute2: netlink plugin' + 'net-snmp: snmp plugin' + 'libnotify: notify_desktop plugin' + 'liboping: ping plugin' + 'libpcap: dns plugin' + 'perl: perl plugin' + 'postgresql-libs: postgresql plugin' + 'python2: python plugin' + 'rrdtool: rrdtool and rrdcached plugins' + 'lm_sensors: lm_sensors and sensors plugins' + 'libvirt: libvirt plugin' + 'libxml2: ascent and libvirt plugins' + 'xmms: xmms plugin' + 'yajl: curl_json plugin') + +makedepends=('curl' 'libdbi' 'libesmtp' 'libgcrypt' 'iptables' 'libmemcached' + 'libmysqlclient' 'iproute2' 'net-snmp' 'libnotify' 'liboping' + 'libpcap' 'postgresql-libs' 'python2' 'rrdtool' 'lm_sensors' + 'libvirt' 'libxml2' 'xmms' 'yajl') + +depends=('libtool') + +source=("${url}files/${pkgname}-${pkgver}.tar.gz" + 'libnotify-0.7.patch' + 'yajl-2.x.patch' + 'libperl.patch' + 'rc.d') +sha1sums=('026e5121348f0e525dedb3844fe61c7713994bb7' + 'f6fed097c16f6c9c90b9a32a5b8e48d54b35b337' + 'd3854c39c9596b4f6dcf67a9eb8decea4d17120d' + 'b221352447b2d42cade4a65ced322bcff8a40366' + '0f441718d5519cb043b1130e5a1d0379078adbcc') + +install=install + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + patch -p1 -i ../libperl.patch + autoconf + + sed -i 's/ipt_error_target/bozo_error_target/g' src/owniptc/libiptc.c + patch -p1 -i ../libnotify-0.7.patch + patch -p1 -i ../yajl-2.x.patch + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-static=no \ + --with-python=/usr/bin/python2 + + sed -i 's/ -Werror//g' */Makefile* */*/Makefile* + + make all +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install + + install -D -m 755 ../rc.d "${pkgdir}/etc/rc.d/${pkgname}" + install -D -m 644 contrib/collectd2html.pl "${pkgdir}"/usr/share/collectd/collectd2html.pl +} diff --git a/community-testing/collectd/install b/community-testing/collectd/install new file mode 100644 index 000000000..54cc0e1b3 --- /dev/null +++ b/community-testing/collectd/install @@ -0,0 +1,8 @@ +post_install() { + cat <<EOF +==> Customize your /etc/collectd.conf (you really want to). +==> Then start and stop the daemon using: /etc/rc.d/collectd +==> To see some result of collected data, use the Perl script: +==> /usr/share/collectd/collectd2html.pl +EOF +} diff --git a/community-testing/collectd/libnotify-0.7.patch b/community-testing/collectd/libnotify-0.7.patch new file mode 100644 index 000000000..5ea67047a --- /dev/null +++ b/community-testing/collectd/libnotify-0.7.patch @@ -0,0 +1,12 @@ +diff -aur old/src/notify_desktop.c new/src/notify_desktop.c +--- old/src/notify_desktop.c 2011-03-07 23:50:24.096691200 +0100 ++++ new/src/notify_desktop.c 2011-03-07 23:52:35.486691201 +0100 +@@ -95,7 +95,7 @@ + : (NOTIF_WARNING == n->severity) ? "WARNING" + : (NOTIF_OKAY == n->severity) ? "OKAY" : "UNKNOWN"); + +- notification = notify_notification_new (summary, n->message, NULL, NULL); ++ notification = notify_notification_new (summary, n->message, NULL); + if (NULL == notification) { + log_err ("Failed to create a new notification."); + return -1; diff --git a/community-testing/collectd/libperl.patch b/community-testing/collectd/libperl.patch new file mode 100644 index 000000000..d6184f29d --- /dev/null +++ b/community-testing/collectd/libperl.patch @@ -0,0 +1,30 @@ +diff -aur old/configure.in new/configure.in +--- old/configure.in 2011-09-29 20:38:56.725672831 +1000 ++++ new/configure.in 2011-09-29 20:39:07.975658829 +1000 +@@ -2810,11 +2810,13 @@ + then + SAVE_CFLAGS="$CFLAGS" + SAVE_LDFLAGS="$LDFLAGS" ++ SAVE_LIBS="$LIBS" + dnl ARCHFLAGS="" -> disable multi -arch on OSX (see Config_heavy.pl:fetch_string) + PERL_CFLAGS=`ARCHFLAGS="" $perl_interpreter -MExtUtils::Embed -e ccopts` + PERL_LDFLAGS=`ARCHFLAGS="" $perl_interpreter -MExtUtils::Embed -e ldopts` + CFLAGS="$CFLAGS $PERL_CFLAGS" + LDFLAGS="$LDFLAGS $PERL_LDFLAGS" ++ LIBS="$LIBS -L/usr/lib/perl5/core_perl/CORE -lperl" + + AC_CACHE_CHECK([for libperl], + [c_cv_have_libperl], +@@ -2833,7 +2835,10 @@ + Nullsv); + ]]), + [c_cv_have_libperl="yes"], +- [c_cv_have_libperl="no"] ++ [ ++ c_cv_have_libperl="no" ++ LIBS="$SAVE_LIBS" ++ ] + ) + ) + +Only in new: configure.in.orig diff --git a/community-testing/collectd/rc.d b/community-testing/collectd/rc.d new file mode 100644 index 000000000..442f2324a --- /dev/null +++ b/community-testing/collectd/rc.d @@ -0,0 +1,39 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +name=collectd +prog="/usr/sbin/collectdmon" + +PID=$(pidof -o %PPID $prog) + +case "$1" in +start) + stat_busy "Starting $name daemon" + [[ -z "$PID" ]] && $prog \ + && { add_daemon $name; stat_done; } \ + || { stat_fail; exit 1; } + ;; +stop) + stat_busy "Stopping $name daemon" + [[ -n "$PID" ]] && kill $PID &>/dev/null \ + && { rm_daemon $name; stat_done; } \ + || { stat_fail; exit 1; } + ;; +restart) + $0 stop + sleep 2 + $0 start + ;; +reload) + stat_busy "Sending SIGHUP to $name daemon" + [[ -n "$PID" ]] && kill -HUP $PID &>/dev/null \ + && { stat_done; } \ + || { stat_fail; exit 1; } + ;; +*) + echo "usage: $0 {start|stop|restart|reload}" + exit 1 + ;; +esac diff --git a/community-testing/collectd/yajl-2.x.patch b/community-testing/collectd/yajl-2.x.patch new file mode 100644 index 000000000..b90543dfe --- /dev/null +++ b/community-testing/collectd/yajl-2.x.patch @@ -0,0 +1,57 @@ +--- old/src/curl_json.c 2011-04-25 20:43:00.972938855 -0400 ++++ new/src/curl_json.c 2011-04-25 20:46:03.859938860 -0400 +@@ -98,8 +98,7 @@ + return (0); + + status = yajl_parse(db->yajl, (unsigned char *)buf, len); +- if ((status != yajl_status_ok) +- && (status != yajl_status_insufficient_data)) ++ if ((status != yajl_status_ok)) + { + unsigned char *msg = + yajl_get_error(db->yajl, /* verbose = */ 1, +@@ -130,7 +129,7 @@ + /* "number" may not be null terminated, so copy it into a buffer before + * parsing. */ + static int cj_cb_number (void *ctx, +- const char *number, unsigned int number_len) ++ const char *number, size_t number_len) + { + char buffer[number_len + 1]; + +@@ -159,7 +158,7 @@ + } /* int cj_cb_number */ + + static int cj_cb_map_key (void *ctx, const unsigned char *val, +- unsigned int len) ++ size_t len) + { + cj_t *db = (cj_t *)ctx; + c_avl_tree_t *tree; +@@ -187,7 +186,7 @@ + } + + static int cj_cb_string (void *ctx, const unsigned char *val, +- unsigned int len) ++ size_t len) + { + cj_t *db = (cj_t *)ctx; + char str[len + 1]; +@@ -697,7 +696,7 @@ + char *url; + yajl_handle yprev = db->yajl; + +- db->yajl = yajl_alloc (&ycallbacks, NULL, NULL, (void *)db); ++ db->yajl = yajl_alloc (&ycallbacks, NULL, (void *)db); + if (db->yajl == NULL) + { + ERROR ("curl_json plugin: yajl_alloc failed."); +@@ -730,7 +729,7 @@ + return (-1); + } + +- status = yajl_parse_complete (db->yajl); ++ status = yajl_complete_parse (db->yajl); + if (status != yajl_status_ok) + { + unsigned char *errmsg; |