summaryrefslogtreecommitdiff
path: root/community-testing/collectd
diff options
context:
space:
mode:
Diffstat (limited to 'community-testing/collectd')
-rw-r--r--community-testing/collectd/PKGBUILD86
-rw-r--r--community-testing/collectd/install8
-rw-r--r--community-testing/collectd/libnotify-0.7.patch12
-rw-r--r--community-testing/collectd/libperl.patch30
-rw-r--r--community-testing/collectd/rc.d39
-rw-r--r--community-testing/collectd/yajl-2.x.patch57
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;