From e7b9c9697e6a50c3b9e78941fa95ba11c716d238 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 1 Jun 2011 22:46:45 +0000 Subject: Wed Jun 1 22:46:45 UTC 2011 --- community-testing/collectd/PKGBUILD | 83 ++++++++++++++++++++++++++ community-testing/collectd/install | 8 +++ community-testing/collectd/libnotify-0.7.patch | 12 ++++ community-testing/collectd/rc.d | 39 ++++++++++++ community-testing/collectd/yajl-2.x.patch | 57 ++++++++++++++++++ 5 files changed, 199 insertions(+) create mode 100644 community-testing/collectd/PKGBUILD create mode 100644 community-testing/collectd/install create mode 100644 community-testing/collectd/libnotify-0.7.patch create mode 100644 community-testing/collectd/rc.d create mode 100644 community-testing/collectd/yajl-2.x.patch (limited to 'community-testing/collectd') diff --git a/community-testing/collectd/PKGBUILD b/community-testing/collectd/PKGBUILD new file mode 100644 index 000000000..ceae766f1 --- /dev/null +++ b/community-testing/collectd/PKGBUILD @@ -0,0 +1,83 @@ +# $Id: PKGBUILD 47414 2011-05-22 23:19:52Z bisson $ +# Maintainer: Gaetan Bisson +# Contributor: Gerhard Brauer + +pkgname=collectd +pkgver=5.0.0 +pkgrel=4 +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' + 'rc.d') +sha1sums=('026e5121348f0e525dedb3844fe61c7713994bb7' + 'f6fed097c16f6c9c90b9a32a5b8e48d54b35b337' + 'd3854c39c9596b4f6dcf67a9eb8decea4d17120d' + '0f441718d5519cb043b1130e5a1d0379078adbcc') + +install=install + +build() { + cd "$srcdir/$pkgname-$pkgver" + + unset LDFLAGS # or libperl not found + patch -p1 -i ../libnotify-0.7.patch + patch -p1 -i ../yajl-2.x.patch + sed -i 's/ipt_error_target/bozo_error_target/g' src/owniptc/libiptc.c + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-static=no \ + --with-python=/usr/bin/python2 + + # avoid -Werror with gcc 4.6 + sed -i '/^AM_CFLAGS/s/ -Werror//' src/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 < 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/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; -- cgit v1.2.3-54-g00ecf