Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 May 2014 15:46:32 +0200 (CEST)
From:      Krzysztof Stryjek <ports@bsdserwis.com>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/189769: Update collectd to pass staging
Message-ID:  <20140513134632.3CD442CA2779@mx1.bsdserwis.com>
Resent-Message-ID: <201405131350.s4DDo00i015697@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         189769
>Category:       ports
>Synopsis:       Update collectd to pass staging
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Tue May 13 13:50:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     Krzysztof Stryjek
>Release:        FreeBSD 9.2-STABLE amd64
>Organization:
private
>Environment:
System: FreeBSD cmd.bsdserwis.com 9.2-STABLE FreeBSD 9.2-STABLE #0: Mon May 20 11:38:42 CEST 2013 toor@fw.wtp3.local:/usr/obj/usr/src/sys/WTP3 amd64
>Description:
	Update to pass staging

>How-To-Repeat:
	
>Fix:
There is patch. It was tested with DEVELOPER=1. Also tested with poudriere. 

------------------------------------ cut ------------------------------------
diff -ruN collectd/Makefile collectd.new/Makefile
--- collectd/Makefile	2014-05-13 00:07:39.000000000 +0200
+++ collectd.new/Makefile	2014-05-13 12:31:05.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
 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 <bsd.port.options.mk>
 
 # 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 <sys/sysctl.h>
++#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-10 23:53:05.000000000 +0200
@@ -3,7 +3,7 @@
 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
@@ -116,10 +116,21 @@
 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
------------------------------------ cut ------------------------------------

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140513134632.3CD442CA2779>