From owner-freebsd-ports-bugs@FreeBSD.ORG Wed May 21 07:40:01 2014 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B201C630 for ; Wed, 21 May 2014 07:40:01 +0000 (UTC) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9E7F12712 for ; Wed, 21 May 2014 07:40:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.8/8.14.8) with ESMTP id s4L7e0ZG020731 for ; Wed, 21 May 2014 07:40:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.8/8.14.8/Submit) id s4L7e0LE020730; Wed, 21 May 2014 07:40:00 GMT (envelope-from gnats) Date: Wed, 21 May 2014 07:40:00 GMT Message-Id: <201405210740.s4L7e0LE020730@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: Krzysztof Stryjek Subject: Re: ports/189769: Update collectd to pass staging Reply-To: Krzysztof Stryjek X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2014 07:40:01 -0000 The following reply was made to PR ports/189769; it has been noted by GNATS. From: Krzysztof Stryjek To: bug-followup@FreeBSD.org Cc: Subject: Re: ports/189769: Update collectd to pass staging Date: Wed, 21 May 2014 09:35:23 +0200 --10jrOL3x2xqLmOsH Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline Hello, On Tue, May 13, 2014 at 01:50:00PM +0000, FreeBSD-gnats-submit@FreeBSD.org wrote: > Thank you very much for your problem report. > It has the internal identification `ports/189769'. > The individual assigned to look at your > report is: freebsd-ports-bugs. > > You can access the state of your problem report at any time > via this link: > > http://www.freebsd.org/cgi/query-pr.cgi?pr=189769 > > >Category: ports > >Responsible: freebsd-ports-bugs > >Synopsis: Update collectd to pass staging > >Arrival-Date: Tue May 13 13:50:00 UTC 2014 I've made a small change to pass staging, so this patch is better. Greetings, -- Krzysztof Stryjek UNIX administrator/Juniper Networks Specialist email: wtp (at) bsdserwis (dot) com http://www.linkedin.com/in/KrzysztofStryjek GPG fingerprint: 8BD7 40CE 8994 0BBE CE6C 91CD 1292 8959 DC61 0E76 In theory, there is no difference between theory and practice. In practice, there is. --10jrOL3x2xqLmOsH Content-Type: text/x-diff; charset=iso-8859-2 Content-Description: patch.txt Content-Disposition: attachment; filename="collectd-staging.patch" diff -ruN collectd/Makefile collectd.new/Makefile --- collectd/Makefile 2014-05-13 00:07:39.000000000 +0200 +++ collectd.new/Makefile 2014-05-19 15:37:01.000000000 +0200 @@ -3,7 +3,7 @@ PORTNAME= collectd PORTVERSION= 4.10.9 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= net-mgmt MASTER_SITES= http://collectd.org/files/ @@ -12,11 +12,13 @@ LICENSE= GPLv2 -USE_GMAKE= yes +USES= gmake libtool GNU_CONFIGURE= yes USE_AUTOTOOLS= autoconf autoheader automake libltdl WANT_GNOME= yes +COLLECTD_DBDIR= /var/db/${PORTNAME} + OPTIONS_DEFINE= CGI BIND DEBUG GCRYPT LIBVIRT OPTIONS_GROUP= INPUT OUTPUT OPTIONS_GROUP_OUTPUT= RRDTOOL RRDCACHED WRITE_HTTP NOTIFYEMAIL NOTIFYDESKTOP @@ -54,10 +56,6 @@ RRDCACHED_DESC= RRDTool Cached (require RRDTOOL) WRITE_HTTP_DESC= write_http -MAN1= collectd.1 collectd-nagios.1 collectdmon.1 -MAN5= collectd.conf.5 collectd-email.5 collectd-exec.5 \ - collectd-snmp.5 collectd-unixsock.5 collectd-perl.5 \ - collectd-java.5 collectd-python.5 types.db.5 USE_RC_SUBR= collectd collectdmon USE_LDCONFIG= yes @@ -67,7 +65,6 @@ CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib -NO_STAGE= yes .include # NOTE: Feel free to submit patches adding support for any of these @@ -153,8 +150,8 @@ .if ${PORT_OPTIONS:MBIND} CONFIGURE_ARGS+=--enable-bind -LIB_DEPENDS+= curl:${PORTSDIR}/ftp/curl -LIB_DEPENDS+= xml2:${PORTSDIR}/textproc/libxml2 +BIND_LIB_DEPENDS+= curl:${PORTSDIR}/ftp/curl +BIND_LIB_DEPENDS+= xml2:${PORTSDIR}/textproc/libxml2 PLIST_SUB+= BIND="" . if empty(PORT_OPTIONS:MCURL) IGNORE= BIND requires CURL. Either select CURL or deselect BIND @@ -166,7 +163,7 @@ .if ${PORT_OPTIONS:MAPACHE} CONFIGURE_ARGS+=--enable-apache -LIB_DEPENDS+= curl:${PORTSDIR}/ftp/curl +APACHE_LIB_DEPENDS+= curl:${PORTSDIR}/ftp/curl PLIST_SUB+= APACHE="" . if empty(PORT_OPTIONS:MCURL) IGNORE= APACHE requires CURL. Either select CURL or deselect APACHE @@ -187,7 +184,7 @@ .if ${PORT_OPTIONS:MCURL} CONFIGURE_ARGS+=--enable-curl --with-libcurl=${LOCALBASE} -LIB_DEPENDS+= curl:${PORTSDIR}/ftp/curl +CURL_LIB_DEPENDS+= curl:${PORTSDIR}/ftp/curl PLIST_SUB+= CURL="" .else CONFIGURE_ARGS+=--disable-curl @@ -199,7 +196,7 @@ IGNORE= using CURL_JSON requires CURL support .endif CONFIGURE_ARGS+=--enable-curl_json -LIB_DEPENDS+= yajl:${PORTSDIR}/devel/yajl +CURL_JSON_LIB_DEPENDS+= yajl:${PORTSDIR}/devel/yajl PLIST_SUB+= CURL_JSON="" .else CONFIGURE_ARGS+=--disable-curl_json --without-libyajl @@ -211,7 +208,7 @@ IGNORE= using CURL_XML requires CURL support .endif CONFIGURE_ARGS+=--enable-curl_xml -LIB_DEPENDS+= xml2:${PORTSDIR}/textproc/libxml2 +CURL_XML_LIB_DEPENDS+= xml2:${PORTSDIR}/textproc/libxml2 PLIST_SUB+= CURL_XML="" .else CONFIGURE_ARGS+=--disable-curl_xml @@ -220,7 +217,7 @@ .if ${PORT_OPTIONS:MDBI} CONFIGURE_ARGS+=--enable-dbi --with-libdbi=${LOCALBASE} -LIB_DEPENDS+= dbi:${PORTSDIR}/databases/libdbi +DBI_LIB_DEPENDS+= dbi:${PORTSDIR}/databases/libdbi PLIST_SUB+= DBI="" .else CONFIGURE_ARGS+=--disable-dbi @@ -237,12 +234,12 @@ .if ${PORT_OPTIONS:MGCRYPT} CONFIGURE_ARGS+=--with-libgcrypt-prefix=${LOCALBASE} -LIB_DEPENDS+= gcrypt:${PORTSDIR}/security/libgcrypt +GCRYPT_LIB_DEPENDS+= gcrypt:${PORTSDIR}/security/libgcrypt .endif .if ${PORT_OPTIONS:MNUTUPS} CONFIGURE_ARGS+=--enable-nut --with-upsclient -LIB_DEPENDS+= upsclient:${PORTSDIR}/sysutils/nut +NUTUPS_LIB_DEPENDS+= upsclient:${PORTSDIR}/sysutils/nut PLIST_SUB+= NUTUPS="" .else CONFIGURE_ARGS+=--disable-nut --without-libupsclient @@ -252,7 +249,7 @@ .if ${PORT_OPTIONS:MINTERFACE} USES+= pkgconfig CONFIGURE_ARGS+=--enable-interface -LIB_DEPENDS+= libstatgrab.so:${PORTSDIR}/devel/libstatgrab +INTERFACE_LIB_DEPENDS+= libstatgrab.so:${PORTSDIR}/devel/libstatgrab PLIST_SUB+= INTERFACE="" CONFIGURE_ENV+= LIBS="`pkg-config --libs libstatgrab`" .else @@ -270,7 +267,7 @@ .endif .if ${PORT_OPTIONS:MMEMCACHED} -LIB_DEPENDS+= memcached:${PORTSDIR}/databases/libmemcached +MEMCACHED_LIB_DEPENDS+= memcached:${PORTSDIR}/databases/libmemcached CONFIGURE_ARGS+=--enable-memcached CONFIGURE_ARGS+=--with-libmemcached=${LOCALBASE} PLIST_SUB+= MEMCACHED="" @@ -289,7 +286,7 @@ .endif .if ${PORT_OPTIONS:MNGINX} -LIB_DEPENDS+= curl:${PORTSDIR}/ftp/curl +NGINX_LIB_DEPENDS+= curl:${PORTSDIR}/ftp/curl CONFIGURE_ARGS+=--enable-nginx PLIST_SUB+= NGINX="" . if empty(PORT_OPTIONS:MCURL) @@ -301,15 +298,16 @@ .endif .if ${PORT_OPTIONS:MNOTIFYDESKTOP} -LIB_DEPENDS+= notify:${PORTSDIR}/devel/libnotify +NOTIFYDESKTOP_LIB_DEPENDS+= notify:${PORTSDIR}/devel/libnotify CONFIGURE_ARGS+=--enable-notify_desktop \ PLIST_SUB+= NOTIFYDESKTOP="" .else CONFIGURE_ARGS+=--disable-notify_desktop PLIST_SUB+= NOTIFYDESKTOP="@comment " .endif + .if ${PORT_OPTIONS:MNOTIFYEMAIL} -LIB_DEPENDS+= esmtp:${PORTSDIR}/mail/libesmtp +NOTIFYEMAIL_LIB_DEPENDS+= esmtp:${PORTSDIR}/mail/libesmtp CONFIGURE_ARGS+=--enable-notify_email CONFIGURE_ARGS+=--with-libesmtp=${PREFIX} PLIST_SUB+= NOTIFYEMAIL="" @@ -346,7 +344,7 @@ .endif .if ${PORT_OPTIONS:MPING} -LIB_DEPENDS+= oping:${PORTSDIR}/net/liboping +PING_LIB_DEPENDS+= oping:${PORTSDIR}/net/liboping CONFIGURE_ARGS+=--enable-ping PLIST_SUB+= PING="" .else @@ -364,7 +362,7 @@ .endif .if ${PORT_OPTIONS:MROUTEROS} -LIB_DEPENDS+= routeros:${PORTSDIR}/net/librouteros +ROUTEROS_LIB_DEPENDS+= routeros:${PORTSDIR}/net/librouteros CONFIGURE_ARGS+=--enable-routeros --with-librouteros=${LOCALBASE} PLIST_SUB+= ROUTEROS="" .else @@ -373,7 +371,7 @@ .endif .if ${PORT_OPTIONS:MRRDTOOL} -LIB_DEPENDS+= rrd:${PORTSDIR}/databases/rrdtool +RRDTOOL_LIB_DEPENDS+= rrd:${PORTSDIR}/databases/rrdtool CONFIGURE_ARGS+=--enable-rrdtool PLIST_SUB+= RRD="" .else @@ -390,7 +388,7 @@ .endif .if ${PORT_OPTIONS:MSNMP} -LIB_DEPENDS+= netsnmp:${PORTSDIR}/net-mgmt/net-snmp +SNMP_LIB_DEPENDS+= netsnmp:${PORTSDIR}/net-mgmt/net-snmp CONFIGURE_ARGS+=--enable-snmp PLIST_SUB+= SNMP="" .else @@ -399,7 +397,7 @@ .endif .if ${PORT_OPTIONS:MTOKYOTYRANT} -LIB_DEPENDS+= tokyotyrant:${PORTSDIR}/databases/tokyotyrant +TOKYOTYRANT_LIB_DEPENDS+= tokyotyrant:${PORTSDIR}/databases/tokyotyrant CONFIGURE_ARGS+=--enable-tokyotyrant CONFIGURE_ARGS+=--with-libtokyotyrant=${LOCALBASE} PLIST_SUB+= TOKYOTYRANT="" @@ -410,7 +408,7 @@ .if ${PORT_OPTIONS:MLIBVIRT} CONFIGURE_ARGS+=--enable-libvirt -LIB_DEPENDS+= libvirt.so:${PORTSDIR}/devel/libvirt +LIBVIRT_LIB_DEPENDS+= libvirt.so:${PORTSDIR}/devel/libvirt PLIST_SUB+= VIRT="" .else CONFIGURE_ARGS+=--disable-libvirt @@ -426,7 +424,7 @@ .endif .if ${PORT_OPTIONS:MXMMS} -LIB_DEPENDS+= xmms:${PORTSDIR}/multimedia/xmms +XMMS_LIB_DEPENDS+= xmms:${PORTSDIR}/multimedia/xmms CONFIGURE_ARGS+=--enable-xmms CFLAGS+= `xmms-config --cflags` PLIST_SUB+= XMMS="" @@ -458,19 +456,16 @@ ${WRKSRC}/configure.in post-install: - ${MKDIR} /var/db/collectd - if [ ! -f ${PREFIX}/etc/collectd.conf ]; then \ - ${CP} -p ${PREFIX}/etc/collectd.conf.sample \ - ${PREFIX}/etc/collectd.conf ; \ - fi + ${MKDIR} ${STAGEDIR}${COLLECTD_DBDIR} + .if ${PORT_OPTIONS:MCGI} - ${MKDIR} ${WWWDIR} - ${INSTALL_SCRIPT} ${WRKSRC}/contrib/collection.cgi ${WWWDIR}/ + ${MKDIR} ${STAGEDIR}${WWWDIR} + ${INSTALL_SCRIPT} ${WRKSRC}/contrib/collection.cgi ${STAGEDIR}${WWWDIR}/ ${INSTALL_DATA} ${WRKSRC}/contrib/collection.conf \ - ${WWWDIR}/collection.conf.sample - if [ ! -f ${WWWDIR}/collection.conf ]; then \ - ${CP} -p ${WWWDIR}/collection.conf.sample \ - ${WWWDIR}/collection.conf ; \ + ${STAGEDIR}${WWWDIR}/collection.conf.sample + if [ ! -f ${STAGEDIR}${WWWDIR}/collection.conf ]; then \ + ${CP} -p ${STAGEDIR}${WWWDIR}/collection.conf.sample \ + ${STAGEDIR}${WWWDIR}/collection.conf ; \ fi .endif diff -ruN collectd/files/files.new/collectd.in collectd.new/files/files.new/collectd.in --- collectd/files/files.new/collectd.in 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/collectd.in 2014-01-24 01:14:07.000000000 +0100 @@ -0,0 +1,26 @@ +#!/bin/sh + +# PROVIDE: collectd +# REQUIRE: LOGIN +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# collectd_enable (bool): Set to NO by default. +# Set it to YES to enable collectd. +# collectd_flags (string): Set to "" by default. +# Additional flags to collectd, see manual page. +# + +. /etc/rc.subr + +name="collectd" +rcvar=collectd_enable + +command=%%PREFIX%%/sbin/${name} + +load_rc_config $name + +: ${collectd_enable="NO"} + +run_rc_command "$1" diff -ruN collectd/files/files.new/collectdmon.in collectd.new/files/files.new/collectdmon.in --- collectd/files/files.new/collectdmon.in 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/collectdmon.in 2014-01-24 01:14:07.000000000 +0100 @@ -0,0 +1,27 @@ +#!/bin/sh + +# PROVIDE: collectdmon +# REQUIRE: LOGIN +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# collectdmon_enable (bool): Set to NO by default. +# Set it to YES to enable collectd. +# collectdmon_flags (string): Set to "-c %%PREFIX%%/sbin/collectd" by default. +# Additional flags to collectdmon, see manual page. +# + +. /etc/rc.subr + +name="collectdmon" +rcvar=collectdmon_enable + +command=%%PREFIX%%/sbin/${name} + +load_rc_config $name + +: ${collectdmon_enable="NO"} +: ${collectdmon_flags="-c %%PREFIX%%/sbin/collectd"} + +run_rc_command "$1" diff -ruN collectd/files/files.new/patch-Makefile.am collectd.new/files/files.new/patch-Makefile.am --- collectd/files/files.new/patch-Makefile.am 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/patch-Makefile.am 2014-05-11 01:42:32.000000000 +0200 @@ -0,0 +1,11 @@ +--- Makefile.am.orig 2013-04-08 08:26:17.000000000 +0200 ++++ Makefile.am 2014-05-11 01:41:55.450743331 +0200 +@@ -8,7 +8,7 @@ + + install-exec-hook: + $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run +- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/lib/$(PACKAGE_NAME) ++ $(mkinstalldirs) $(DESTDIR)$(localstatedir)/db/$(PACKAGE_NAME) + $(mkinstalldirs) $(DESTDIR)$(localstatedir)/log + + maintainer-clean-local: diff -ruN collectd/files/files.new/patch-configure.in collectd.new/files/files.new/patch-configure.in --- collectd/files/files.new/patch-configure.in 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/patch-configure.in 2014-01-22 18:40:44.000000000 +0100 @@ -0,0 +1,71 @@ +--- configure.in.orig 2012-11-11 11:43:05.000000000 +0100 ++++ configure.in 2012-12-30 23:49:30.000000000 +0100 +@@ -67,6 +67,9 @@ + *openbsd*) + ac_system="OpenBSD" + ;; ++ *freebsd*) ++ ac_system="FreeBSD" ++ ;; + *aix*) + AC_DEFINE([KERNEL_AIX], 1, [True if program is to be compiled for a AIX kernel]) + ac_system="AIX" +@@ -98,7 +101,7 @@ + fi + + # Where to install .pc files. +-pkgconfigdir="${libdir}/pkgconfig" ++pkgconfigdir="${prefix}/libdata/pkgconfig" + AC_SUBST(pkgconfigdir) + + # Check for standards compliance mode +@@ -1200,6 +1203,8 @@ + then + AC_DEFINE(HAVE_LIBKSTAT, 1, + [Define to 1 if you have the 'kstat' library (-lkstat)]) ++ BUILD_WITH_LIBKSTAT_LIBS="-lkstat" ++ AC_SUBST(BUILD_WITH_LIBKSTAT_LIBS) + fi + AM_CONDITIONAL(BUILD_WITH_LIBKSTAT, test "x$with_kstat" = "xyes") + AM_CONDITIONAL(BUILD_WITH_LIBDEVINFO, test "x$with_devinfo" = "xyes") +@@ -1562,9 +1567,6 @@ + [with_libgcrypt="yes"], + [with_libgcrypt="no (symbol gcry_md_hash_buffer not found)"]) + +- if test "$with_libgcrypt" != "no"; then +- AM_PATH_LIBGCRYPT(1:1.2.0,,with_libgcrypt="no (version 1.2.0+ required)") +- fi + fi + + CPPFLAGS="$SAVE_CPPFLAGS" +@@ -3059,7 +3061,7 @@ + if test "x$with_python" = "xyes" + then + AC_MSG_CHECKING([for Python LIBS]) +- python_library_flags=`echo "import distutils.sysconfig;import sys;sys.stdout.write(distutils.sysconfig.get_config_vars(\"BLDLIBRARY\").__getitem__(0))" | "$with_python_prog" 2>&1` ++ python_library_flags=`echo "import distutils.sysconfig;import sys;sys.stdout.write(distutils.sysconfig.get_config_var(\"LINKFORSHARED\")+\" -L\"+distutils.sysconfig.get_config_vars(\"LIBDIR\").__getitem__(0)+\" -l\"+distutils.sysconfig.get_config_vars(\"BLDLIBRARY\").__getitem__(0).replace(\"lib\", \"\").replace(\".a\", \"\"))" | "$with_python_prog" 2>&1` + python_config_status=$? + + if test "$python_config_status" -ne 0 || test "x$python_library_flags" = "x" +@@ -3074,7 +3076,7 @@ + if test "x$with_python" = "xyes" + then + LDFLAGS="-L$python_library_path $LDFLAGS" +- LIBS="$python_library_flags $LIBS" ++ LIBS="$python_library_flags $LIBS -lm -lpthread -lutil" + + AC_CHECK_FUNC(PyObject_CallFunction, + [with_python="yes"], +@@ -4171,6 +4173,12 @@ + plugin_zfs_arc="yes" + fi + ++# FreeBSD ++if test "x$ac_system" = "xFreeBSD" ++then ++ plugin_zfs_arc="yes" ++fi ++ + if test "x$with_devinfo$with_kstat" = "xyesyes" + then + plugin_cpu="yes" diff -ruN collectd/files/files.new/patch-src__Makefile.am collectd.new/files/files.new/patch-src__Makefile.am --- collectd/files/files.new/patch-src__Makefile.am 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/patch-src__Makefile.am 2014-05-10 23:36:37.000000000 +0200 @@ -0,0 +1,50 @@ +--- src/Makefile.am.orig 2013-04-08 08:26:17.000000000 +0200 ++++ src/Makefile.am 2014-05-10 23:35:22.688748454 +0200 +@@ -7,13 +7,13 @@ + endif + + if COMPILER_IS_GCC +-AM_CFLAGS = -Wall -Werror ++AM_CFLAGS = -Wall + endif + + AM_CPPFLAGS = -DPREFIX='"${prefix}"' + AM_CPPFLAGS += -DCONFIGFILE='"${sysconfdir}/${PACKAGE_NAME}.conf"' + AM_CPPFLAGS += -DLOCALSTATEDIR='"${localstatedir}"' +-AM_CPPFLAGS += -DPKGLOCALSTATEDIR='"${localstatedir}/lib/${PACKAGE_NAME}"' ++AM_CPPFLAGS += -DPKGLOCALSTATEDIR='"${localstatedir}/db/${PACKAGE_NAME}"' + if BUILD_FEATURE_DAEMON + AM_CPPFLAGS += -DPIDFILE='"${localstatedir}/run/${PACKAGE_NAME}.pid"' + endif +@@ -720,7 +720,7 @@ + pkglib_LTLIBRARIES += notify_email.la + notify_email_la_SOURCES = notify_email.c + notify_email_la_LDFLAGS = -module -avoid-version +-notify_email_la_LIBADD = -lesmtp -lssl -lcrypto -lpthread -ldl ++notify_email_la_LIBADD = -lesmtp -lssl -lcrypto -lpthread + collectd_LDADD += "-dlopen" notify_email.la + collectd_DEPENDENCIES += notify_email.la + endif +@@ -1198,7 +1198,7 @@ + zfs_arc_la_SOURCES = zfs_arc.c + zfs_arc_la_CFLAGS = $(AM_CFLAGS) + zfs_arc_la_LDFLAGS = -module -avoid-version +-zfs_arc_la_LIBADD = -lkstat ++zfs_arc_la_LIBADD = $(BUILD_WITH_LIBKSTAT_LIBS) + collectd_LDADD += "-dlopen" zfs_arc.la + collectd_DEPENDENCIES += zfs_arc.la + endif +@@ -1257,12 +1257,7 @@ + + install-exec-hook: + $(mkinstalldirs) $(DESTDIR)$(sysconfdir) +- if test -e $(DESTDIR)$(sysconfdir)/collectd.conf; \ +- then \ +- $(INSTALL) -m 0640 collectd.conf $(DESTDIR)$(sysconfdir)/collectd.conf.pkg-orig; \ +- else \ +- $(INSTALL) -m 0640 collectd.conf $(DESTDIR)$(sysconfdir)/collectd.conf; \ +- fi; \ ++ $(INSTALL) -m 0640 collectd.conf $(DESTDIR)$(sysconfdir)/collectd.conf.sample + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) + $(INSTALL) -m 0644 $(srcdir)/types.db $(DESTDIR)$(pkgdatadir)/types.db; + $(INSTALL) -m 0644 $(srcdir)/postgresql_default.conf \ diff -ruN collectd/files/files.new/patch-src__collectd.c collectd.new/files/files.new/patch-src__collectd.c --- collectd/files/files.new/patch-src__collectd.c 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/patch-src__collectd.c 2014-05-13 00:07:39.000000000 +0200 @@ -0,0 +1,11 @@ +--- ./src/collectd.c.orig 2013-11-23 22:04:05.130103822 +0000 ++++ ./src/collectd.c 2013-11-23 22:04:25.627104708 +0000 +@@ -294,7 +294,7 @@ + #endif + + #if HAVE_LIBSTATGRAB +- if (sg_init ()) ++ if (sg_init (0)) + { + ERROR ("sg_init: %s", sg_str_error (sg_get_error ())); + return (-1); diff -ruN collectd/files/files.new/patch-src__collectd.h collectd.new/files/files.new/patch-src__collectd.h --- collectd/files/files.new/patch-src__collectd.h 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/patch-src__collectd.h 2014-05-10 21:22:03.000000000 +0200 @@ -0,0 +1,21 @@ +--- src/collectd.h.orig 2013-04-08 08:26:17.000000000 +0200 ++++ src/collectd.h 2014-05-10 21:21:30.087755249 +0200 +@@ -244,15 +244,15 @@ + #endif + + #ifndef LOCALSTATEDIR +-#define LOCALSTATEDIR PREFIX "/var" ++#define LOCALSTATEDIR "/var" + #endif + + #ifndef PKGLOCALSTATEDIR +-#define PKGLOCALSTATEDIR PREFIX "/var/lib/" PACKAGE_NAME ++#define PKGLOCALSTATEDIR "/var/db/" PACKAGE_NAME + #endif + + #ifndef PIDFILE +-#define PIDFILE PREFIX "/var/run/" PACKAGE_NAME ".pid" ++#define PIDFILE "/var/run/" PACKAGE_NAME ".pid" + #endif + + #ifndef PLUGINDIR diff -ruN collectd/files/files.new/patch-src__disk.c collectd.new/files/files.new/patch-src__disk.c --- collectd/files/files.new/patch-src__disk.c 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/patch-src__disk.c 2014-05-13 00:07:39.000000000 +0200 @@ -0,0 +1,12 @@ +--- ./src/disk.c.orig 2013-11-23 22:36:13.757103756 +0000 ++++ ./src/disk.c 2013-11-23 22:36:15.058103844 +0000 +@@ -691,7 +691,8 @@ + + #elif defined(HAVE_LIBSTATGRAB) + sg_disk_io_stats *ds; +- int disks, counter; ++ size_t disks; ++ int counter; + char name[DATA_MAX_NAME_LEN]; + + if ((ds = sg_get_disk_io_stats(&disks)) == NULL) diff -ruN collectd/files/files.new/patch-src__dns.c collectd.new/files/files.new/patch-src__dns.c --- collectd/files/files.new/patch-src__dns.c 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/patch-src__dns.c 2014-01-22 18:40:44.000000000 +0100 @@ -0,0 +1,18 @@ +--- src/dns.c.orig 2008-09-05 15:26:02.000000000 +0000 ++++ src/dns.c 2008-09-05 15:25:55.000000000 +0000 +@@ -210,6 +210,15 @@ + pthread_sigmask (SIG_SETMASK, &sigmask, NULL); + } + ++ /* Check for pcap_device, if needed */ ++#ifdef __sparc64__ ++ if (pcap_device == NULL) ++ { ++ ERROR ("dns plugin: Interface required"); ++ return (NULL); ++ } ++#endif ++ + /* Passing `pcap_device == NULL' is okay and the same as passign "any" */ + DEBUG ("Creating PCAP object.."); + pcap_obj = pcap_open_live (pcap_device, diff -ruN collectd/files/files.new/patch-src__zfs_arc.c collectd.new/files/files.new/patch-src__zfs_arc.c --- collectd/files/files.new/patch-src__zfs_arc.c 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/patch-src__zfs_arc.c 2013-02-28 16:33:25.000000000 +0100 @@ -0,0 +1,270 @@ +--- src/zfs_arc.c.orig 2012-11-11 11:43:05.000000000 +0100 ++++ src/zfs_arc.c 2013-02-26 15:29:15.297851681 +0100 +@@ -23,11 +23,58 @@ + #include "common.h" + #include "plugin.h" + ++#if !defined(HAVE_LIBKSTAT) && defined(HAVE_SYSCTLBYNAME) ++#include ++#endif ++ + /* + * Global variables + */ + +-extern kstat_ctl_t *kc; ++#if defined(HAVE_LIBKSTAT) ++ extern kstat_ctl_t *kc; ++#endif ++ ++/* ++ * Context ++ */ ++struct za_context { ++#if defined(HAVE_LIBKSTAT) ++ kstat_t *ksp; ++#endif ++}; ++ ++static int za_init_context(struct za_context *ctx) ++{ ++#if defined(HAVE_LIBKSTAT) ++ get_kstat (&ctx->ksp, "zfs", 0, "arcstats"); ++ if (ctx->ksp == NULL) ++ { ++ ERROR ("zfs_arc plugin: Cannot find zfs:0:arcstats kstat."); ++ return (-1); ++ } ++#endif ++ return 0; ++} ++ ++static long long za_get_value(struct za_context *ctx, const char* name) ++{ ++#if defined(HAVE_LIBKSTAT) ++ return get_kstat_value(ctx->ksp, name); ++#elif defined(HAVE_SYSCTLBYNAME) ++ // kstat values are available on FreeBSD through sysctl ++ char fullname[512]; ++ long long result = 0; ++ size_t size = sizeof(result); ++ ssnprintf(fullname, sizeof(fullname), "kstat.zfs.misc.arcstats.%s", name); ++ if (sysctlbyname(fullname, &result, &size, NULL, 0) != 0 || size != sizeof(result)) ++ { ++ ERROR ("zfs_arc plugin: Cannot find stats using sysctl"); ++ result = 0; ++ } ++ return result; ++#endif ++} + + static void za_submit (const char* type, const char* type_instance, value_t* values, int values_len) + { +@@ -46,112 +93,136 @@ + + static void za_submit_gauge (const char* type, const char* type_instance, gauge_t value) + { +- value_t values[1]; ++ value_t vv; + +- values[0].gauge = value; ++ vv.gauge = value; + +- za_submit (type, type_instance, values, STATIC_ARRAY_SIZE(values)); ++ za_submit (type, type_instance, &vv, 1); + } + +-static void za_submit_size (gauge_t size, gauge_t size_target, gauge_t limit_min, gauge_t limit_max) ++static int za_read_derive (struct za_context *ctx, const char *kstat_value, ++ const char *type, const char *type_instance) + { +- value_t values[4]; ++ long long tmp; ++ value_t v; + +- values[0].gauge = size; +- values[1].gauge = size_target; +- values[2].gauge = limit_min; +- values[3].gauge = limit_max; ++ tmp = za_get_value (ctx, (char *)kstat_value); ++ if (tmp == -1LL) ++ { ++ ERROR ("zfs_arc plugin: Reading kstat value \"%s\" failed.", kstat_value); ++ return (-1); ++ } + +- za_submit ("arc_size", "", values, STATIC_ARRAY_SIZE(values)); ++ v.derive = (derive_t) tmp; ++ za_submit (type, type_instance, /* values = */ &v, /* values_num = */ 1); ++ return (0); + } + +-static void za_submit_bytes (counter_t read, counter_t write) ++static int za_read_gauge (struct za_context *ctx, const char *kstat_value, ++ const char *type, const char *type_instance) + { +- value_t values[2]; ++ long long tmp; ++ value_t v; + +- values[0].counter = read; +- values[1].counter = write; ++ tmp = za_get_value (ctx, (char *)kstat_value); ++ if (tmp == -1LL) ++ { ++ ERROR ("zfs_arc plugin: Reading kstat value \"%s\" failed.", kstat_value); ++ return (-1); ++ } + +- za_submit ("arc_l2_bytes", "", values, STATIC_ARRAY_SIZE(values)); ++ v.gauge = (gauge_t) tmp; ++ za_submit (type, type_instance, /* values = */ &v, /* values_num = */ 1); ++ return (0); + } + +-static void za_submit_counts (char *type_instance, counter_t demand_data, counter_t demand_metadata, +- counter_t prefetch_data, counter_t prefetch_metadata) ++static void za_submit_ratio (const char* type_instance, long long hits, long long misses) + { +- value_t values[4]; ++ gauge_t ratio = NAN; + +- values[0].counter = demand_data; +- values[1].counter = demand_metadata; +- values[2].counter = prefetch_data; +- values[3].counter = prefetch_metadata; ++ if ((hits > 0) || (misses > 0)) ++ ratio = hits / (hits + misses); + +- za_submit ("arc_counts", type_instance, values, STATIC_ARRAY_SIZE(values)); ++ za_submit_gauge ("cache_ratio", type_instance, ratio); + } + + static int za_read (void) + { +- gauge_t arcsize, targetsize, minlimit, maxlimit, hits, misses, l2_size, l2_hits, l2_misses; +- counter_t demand_data_hits, demand_metadata_hits, prefetch_data_hits, prefetch_metadata_hits; +- counter_t demand_data_misses, demand_metadata_misses, prefetch_data_misses, prefetch_metadata_misses; +- counter_t l2_read_bytes, l2_write_bytes; +- kstat_t *ksp = NULL; ++ long long l2_read_bytes, l2_write_bytes; ++ long long arc_hits, arc_misses, l2_hits, l2_misses; ++ value_t l2_io[2]; ++ struct za_context ctx; + +- get_kstat (&ksp, "zfs", 0, "arcstats"); +- if (ksp == NULL) ++ if (za_init_context (&ctx) < 0) + { +- ERROR ("zfs_arc plugin: Cannot find zfs:0:arcstats kstat."); + return (-1); + } + +- arcsize = get_kstat_value(ksp, "size"); +- targetsize = get_kstat_value(ksp, "c"); +- minlimit = get_kstat_value(ksp, "c_min"); +- maxlimit = get_kstat_value(ksp, "c_max"); +- +- demand_data_hits = get_kstat_value(ksp, "demand_data_hits"); +- demand_metadata_hits = get_kstat_value(ksp, "demand_metadata_hits"); +- prefetch_data_hits = get_kstat_value(ksp, "prefetch_data_hits"); +- prefetch_metadata_hits = get_kstat_value(ksp, "prefetch_metadata_hits"); +- +- demand_data_misses = get_kstat_value(ksp, "demand_data_misses"); +- demand_metadata_misses = get_kstat_value(ksp, "demand_metadata_misses"); +- prefetch_data_misses = get_kstat_value(ksp, "prefetch_data_misses"); +- prefetch_metadata_misses = get_kstat_value(ksp, "prefetch_metadata_misses"); +- +- hits = get_kstat_value(ksp, "hits"); +- misses = get_kstat_value(ksp, "misses"); +- +- l2_size = get_kstat_value(ksp, "l2_size"); +- l2_read_bytes = get_kstat_value(ksp, "l2_read_bytes"); +- l2_write_bytes = get_kstat_value(ksp, "l2_write_bytes"); +- l2_hits = get_kstat_value(ksp, "l2_hits"); +- l2_misses = get_kstat_value(ksp, "l2_misses"); +- +- +- za_submit_size (arcsize, targetsize, minlimit, maxlimit); +- za_submit_gauge ("arc_l2_size", "", l2_size); +- +- za_submit_counts ("hits", demand_data_hits, demand_metadata_hits, +- prefetch_data_hits, prefetch_metadata_hits); +- za_submit_counts ("misses", demand_data_misses, demand_metadata_misses, +- prefetch_data_misses, prefetch_metadata_misses); ++ /* Sizes */ ++ za_read_gauge (&ctx, "size", "cache_size", "arc"); ++ za_read_gauge (&ctx, "l2_size", "cache_size", "L2"); ++ ++ /* Operations */ ++ za_read_derive (&ctx, "allocated","cache_operation", "allocated"); ++ za_read_derive (&ctx, "deleted", "cache_operation", "deleted"); ++ za_read_derive (&ctx, "stolen", "cache_operation", "stolen"); ++ ++ /* Issue indicators */ ++ za_read_derive (&ctx, "mutex_miss", "mutex_operation", "miss"); ++ za_read_derive (&ctx, "hash_collisions", "hash_collisions", ""); ++ ++ /* Evictions */ ++ za_read_derive (&ctx, "evict_l2_cached", "cache_eviction", "cached"); ++ za_read_derive (&ctx, "evict_l2_eligible", "cache_eviction", "eligible"); ++ za_read_derive (&ctx, "evict_l2_ineligible", "cache_eviction", "ineligible"); ++ ++ /* Hits / misses */ ++ za_read_derive (&ctx, "demand_data_hits", "cache_result", "demand_data-hit"); ++ za_read_derive (&ctx, "demand_metadata_hits", "cache_result", "demand_metadata-hit"); ++ za_read_derive (&ctx, "prefetch_data_hits", "cache_result", "prefetch_data-hit"); ++ za_read_derive (&ctx, "prefetch_metadata_hits", "cache_result", "prefetch_metadata-hit"); ++ za_read_derive (&ctx, "demand_data_misses", "cache_result", "demand_data-miss"); ++ za_read_derive (&ctx, "demand_metadata_misses", "cache_result", "demand_metadata-miss"); ++ za_read_derive (&ctx, "prefetch_data_misses", "cache_result", "prefetch_data-miss"); ++ za_read_derive (&ctx, "prefetch_metadata_misses", "cache_result", "prefetch_metadata-miss"); ++ ++ /* Ratios */ ++ arc_hits = za_get_value (&ctx, "hits"); ++ arc_misses = za_get_value (&ctx, "misses"); ++ l2_hits = za_get_value (&ctx, "l2_hits"); ++ l2_misses = za_get_value (&ctx, "l2_misses"); ++ ++ za_submit_ratio ("arc", arc_hits, arc_misses); ++ za_submit_ratio ("L2", l2_hits, l2_misses); ++ ++ /* I/O */ ++ l2_io[0].derive = za_get_value (&ctx, "l2_read_bytes"); ++ l2_io[1].derive = za_get_value (&ctx, "l2_write_bytes"); + +- za_submit_gauge ("arc_ratio", "L1", hits / (hits + misses)); +- za_submit_gauge ("arc_ratio", "L2", l2_hits / (l2_hits + l2_misses)); +- +- za_submit_bytes (l2_read_bytes, l2_write_bytes); ++ za_submit ("io_octets", "L2", l2_io, /* num values = */ 2); + + return (0); +-} ++} /* int za_read */ + + static int za_init (void) /* {{{ */ + { +- /* kstats chain already opened by update_kstat (using *kc), verify everything went fine. */ +- if (kc == NULL) ++#if defined(HAVE_LIBKSTAT) ++ /* kstats chain already opened by update_kstat (using *kc), verify everything went fine. */ ++ if (kc == NULL) ++ { ++ ERROR ("zfs_arc plugin: kstat chain control structure not available."); ++ return (-1); ++ } ++#elif defined(HAVE_SYSCTLBYNAME) ++ /* make sure ARC is available (arc_size is not null) */ ++ unsigned long long arc_size; ++ size_t size = sizeof(arc_size); ++ if (sysctlbyname("kstat.zfs.misc.arcstats.size", &arc_size, &size, NULL, 0) != 0 || arc_size == 0) + { +- ERROR ("zfs_arc plugin: kstat chain control structure not available."); ++ ERROR ("zfs_arc plugin: could not get ARC size using sysctl, is ARC enabled?"); + return (-1); + } ++#endif + + return (0); + } /* }}} int za_init */ diff -ruN collectd/files/files.new/patch-version-gen.sh collectd.new/files/files.new/patch-version-gen.sh --- collectd/files/files.new/patch-version-gen.sh 1970-01-01 01:00:00.000000000 +0100 +++ collectd.new/files/files.new/patch-version-gen.sh 2012-12-11 00:42:37.000000000 +0100 @@ -0,0 +1,7 @@ +--- version-gen.sh.orig 2012-11-11 11:43:05.000000000 +0100 ++++ version-gen.sh 2012-12-06 14:49:39.204586447 +0100 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env bash ++#!/usr/bin/env sh + + DEFAULT_VERSION="4.10.8.git" diff -ruN collectd/pkg-plist collectd.new/pkg-plist --- collectd/pkg-plist 2013-08-10 19:00:46.000000000 +0200 +++ collectd.new/pkg-plist 2014-05-19 15:37:18.000000000 +0200 @@ -3,123 +3,83 @@ sbin/collectdmon @unexec if cmp -s %D/etc/collectd.conf.sample %D/etc/collectd.conf; then rm -f %D/etc/collectd.conf; fi etc/collectd.conf.sample -@exec if [ ! -f %B/collectd.conf ] ; then cp -p %B/%f %B/collectd.conf; fi +@exec if [ ! -f %D/collectd.conf ] ; then cp -p %D/%F %B/collectd.conf; fi %%CGI%%%%WWWDIR%%/collection.cgi %%CGI%%@unexec if cmp -s %B/collection.conf.sample %B/collection.conf; then rm -f %B/collection.conf; fi %%CGI%%%%WWWDIR%%/collection.conf.sample %%CGI%%@exec if [ ! -f %B/collection.conf ] ; then cp -p %B/%f %B/collection.conf; fi %%CGI%%@dirrmtry %%WWWDIR%% bin/collectd-nagios -lib/libcollectdclient.la lib/libcollectdclient.so lib/libcollectdclient.so.0 -%%APACHE%%lib/collectd/apache.la %%APACHE%%lib/collectd/apache.so -%%APCUPS%%lib/collectd/apcups.la %%APCUPS%%lib/collectd/apcups.so -%%BIND%%lib/collectd/bind.la %%BIND%%lib/collectd/bind.so -lib/collectd/cpu.la lib/collectd/cpu.so -lib/collectd/csv.la lib/collectd/csv.so -%%CURL%%lib/collectd/curl.la %%CURL%%lib/collectd/curl.so -%%CURL_JSON%%lib/collectd/curl_json.la %%CURL_JSON%%lib/collectd/curl_json.so -%%CURL_XML%%lib/collectd/curl_xml.la %%CURL_XML%%lib/collectd/curl_xml.so -%%DBI%%lib/collectd/dbi.la %%DBI%%lib/collectd/dbi.so -%%DISK%%lib/collectd/disk.la %%DISK%%lib/collectd/disk.so -lib/collectd/df.la lib/collectd/df.so -lib/collectd/dns.la lib/collectd/dns.so -lib/collectd/email.la lib/collectd/email.so -lib/collectd/exec.la lib/collectd/exec.so lib/collectd/filecount.so -lib/collectd/filecount.la -%%INTERFACE%%lib/collectd/interface.la %%INTERFACE%%lib/collectd/interface.so -lib/collectd/load.la lib/collectd/load.so -lib/collectd/logfile.la lib/collectd/logfile.so -%%MBMON%%lib/collectd/mbmon.la %%MBMON%%lib/collectd/mbmon.so -%%MEMCACHED%%lib/collectd/memcached.la %%MEMCACHED%%lib/collectd/memcached.so -lib/collectd/memory.la lib/collectd/memory.so -%%MYSQL%%lib/collectd/mysql.la %%MYSQL%%lib/collectd/mysql.so -%%NGINX%%lib/collectd/nginx.la %%NGINX%%lib/collectd/nginx.so -lib/collectd/network.la lib/collectd/network.so -%%NOTIFYDESKTOP%%/notify_desktop.la %%NOTIFYDESKTOP%%/notify_desktop.so -%%NOTIFYEMAIL%%/notify_email.la %%NOTIFYEMAIL%%/notify_email.so -%%NUTUPS%%lib/collectd/nut.la %%NUTUPS%%lib/collectd/nut.so -lib/collectd/ntpd.la lib/collectd/ntpd.so -%%OPENVPN%%lib/collectd/openvpn.la %%OPENVPN%%lib/collectd/openvpn.so -%%PGSQL%%lib/collectd/postgresql.la %%PGSQL%%lib/collectd/postgresql.so -%%PING%%lib/collectd/ping.la %%PING%%lib/collectd/ping.so %%PDNS%%lib/collectd/powerdns.so -%%PDNS%%lib/collectd/powerdns.la -%%PYTHON%%lib/collectd/python.la %%PYTHON%%lib/collectd/python.so lib/collectd/processes.so -lib/collectd/processes.la -%%ROUTEROS%%lib/collectd/routeros.la %%ROUTEROS%%lib/collectd/routeros.so -%%RRD%%lib/collectd/rrdtool.la %%RRD%%lib/collectd/rrdtool.so -%%RRDCACHED%%lib/collectd/rrdcached.la %%RRDCACHED%%lib/collectd/rrdcached.so -%%SNMP%%lib/collectd/snmp.la %%SNMP%%lib/collectd/snmp.so -lib/collectd/swap.la lib/collectd/swap.so -lib/collectd/syslog.la lib/collectd/syslog.so lib/collectd/tail.so -lib/collectd/tail.la lib/collectd/tcpconns.so -lib/collectd/tcpconns.la -%%TOKYOTYRANT%%lib/collectd/tokyotyrant.la %%TOKYOTYRANT%%lib/collectd/tokyotyrant.so -lib/collectd/unixsock.la lib/collectd/unixsock.so lib/collectd/uptime.so -lib/collectd/uptime.la lib/collectd/uuid.so -lib/collectd/uuid.la -%%VIRT%%lib/collectd/libvirt.la %%VIRT%%lib/collectd/libvirt.so -%%WRITE_HTTP%%lib/collectd/write_http.la %%WRITE_HTTP%%lib/collectd/write_http.so -%%XMMS%%lib/collectd/xmms.la %%XMMS%%lib/collectd/xmms.so -lib/collectd/zfs_arc.la lib/collectd/zfs_arc.so include/collectd/client.h include/collectd/lcc_features.h libdata/pkgconfig/libcollectdclient.pc +man/man1/collectd-nagios.1.gz +man/man1/collectd.1.gz +man/man1/collectdmon.1.gz +man/man5/collectd-email.5.gz +man/man5/collectd-exec.5.gz +man/man5/collectd-java.5.gz +man/man5/collectd-perl.5.gz +man/man5/collectd-python.5.gz +man/man5/collectd-snmp.5.gz +man/man5/collectd-unixsock.5.gz +man/man5/collectd.conf.5.gz +man/man5/types.db.5.gz %%DATADIR%%/postgresql_default.conf %%DATADIR%%/types.db @dirrm lib/collectd @dirrm include/collectd @dirrm %%DATADIR%% -@exec mkdir -p /var/db/collectd -@unexec rmdir /var/db/collectd 2>/dev/null || true +@dirrmtry /var/db/collectd --10jrOL3x2xqLmOsH--