On 6/13/2012 5:45 PM, [email protected] wrote:
Collectd developers--

Good day.

I am currently trying to backport the changes for "ParseTime" into
collectd-4.9.3
(the version that is running on my production environment). Comparing
src/bind.c
and src/collectd.conf.pod against the published patches at
http://goo.gl/ebHUU, I
then came up with these diffs for collectd-4.9.3:

mr.a@a:/usr/ports/net-mgmt/collectd# less files/patch-src-bind.c.diff
--- ./src/bind.c.orig   2010-07-09 18:01:59.000000000 +0800
+++ ./src/bind.c        2012-06-13 09:35:57.000000000 +0800
@@ -98,6 +98,10 @@ struct list_info_ptr_s
};
typedef struct list_info_ptr_s list_info_ptr_t;

+/* FIXME: Enabled by default for backwards compatibility. */
+/* TODO: Remove time parsing code. */
+static _Bool config_parse_time = 1;
+
static char *url                   = NULL;
static int global_opcodes          = 1;
static int global_qtypes           = 1;
@@ -249,7 +253,8 @@ static void submit (time_t ts, const char
*plugin_instance, /* {{{ */

  vl.values = values;
  vl.values_len = 1;
-  vl.time = TIME_T_TO_CDTIME_T (ts);
+  if (config_parse_time)
+    vl.time = TIME_T_TO_CDTIME_T (ts);
  sstrncpy(vl.host, hostname_g, sizeof(vl.host));
  sstrncpy(vl.plugin, "bind", sizeof(vl.plugin));
  if (plugin_instance) {
@@ -1363,6 +1368,8 @@ static int bind_config (oconfig_item_t *ci) /*
{{{ */
bind_config_set_bool ("MemoryStats", &global_memory_stats,
child);
    else if (strcasecmp ("View", child->key) == 0)
      bind_config_add_view (child);
+    else if (strcasecmp ("ParseTime", child->key) == 0)
+      cf_util_get_boolean (child, &config_parse_time);
    else
    {
      WARNING ("bind plugin: Unknown configuration option "
(END)

--- src/collectd.conf.pod.orig  2010-07-09 18:03:25.000000000 +0800
+++ src/collectd.conf.pod       2012-06-13 12:33:51.000000000 +0800
@@ -288,6 +288,7 @@

 <Plugin "bind">
   URL "http://localhost:8053/";
+   ParseTime       false
   OpCodes         true
   QTypes          true

@@ -314,35 +315,44 @@
URL from which to retrieve the XML data. If not specified,
C<http://localhost:8053/> will be used.

-=item B<OpCodes> I<true>|I<false>
+=item B<ParseTime> B<true>|B<false>
+
+When set to B<true>, the time provided by BIND will be parsed and
used to
+dispatch the values. When set to B<false>, the local time source is
queried.
+
+This setting is set to B<true> by default for backwards
compatibility; setting
+this to B<false> is I<recommended> to avoid problems with timezones
and
+localization.
+
+=item B<OpCodes> B<true>|B<false>

 When enabled, statistics about the I<"OpCodes">, for example the
number of
C<QUERY> packets, are collected.

Default: Enabled.

-=item B<QTypes> I<true>|I<false>
+=item B<QTypes> B<true>|B<false>

 When enabled, the number of I<incoming> queries by query types (for
example
C<A>, C<MX>, C<AAAA>) is collected.

Default: Enabled.

-=item B<ServerStats> I<true>|I<false>
+=item B<ServerStats> B<true>|B<false>

Collect global server statistics, such as requests received over
IPv4
and IPv6,
successful queries, and failed updates.

Default: Enabled.

-=item B<ZoneMaintStats> I<true>|I<false>
+=item B<ZoneMaintStats> B<true>|B<false>

 Collect zone maintenance statistics, mostly information about
notifications
(zone updates) and zone transfers.

Default: Enabled.

-=item B<ResolverStats> I<true>|I<false>
+=item B<ResolverStats> B<true>|B<false>

 Collect resolver statistics, i.E<nbsp>e. statistics about outgoing
requests
(e.E<nbsp>g. queries over IPv4, lame servers). Since the global
resolver
@@ -371,21 +381,21 @@

=over 4

-=item B<QTypes> I<true>|I<false>
+=item B<QTypes> B<true>|B<false>

 If enabled, the number of I<outgoing> queries by query type
(e.E<nbsp>g. C<A>,
C<MX>) is collected.

Default: Enabled.

-=item B<ResolverStats> I<true>|I<false>
+=item B<ResolverStats> B<true>|B<false>

 Collect resolver statistics, i.E<nbsp>e. statistics about outgoing
requests
(e.E<nbsp>g. queries over IPv4, lame servers).

Default: Enabled.

-=item B<CacheRRSets> I<true>|I<false>
+=item B<CacheRRSets> B<true>|B<false>

 If enabled, the number of entries (I<"RR sets">) in the view's cache
by query
 type is collected. Negative entries (queries which resulted in an
error, for

Applying the patches worked just fine.

mr.a@a:/usr/ports/net-mgmt/collectd# make clean patch
===>  Cleaning for collectd-4.9.3_3
===>  License check disabled, port has not defined LICENSE
===>  Found saved configuration for collectd-4.9.3_2
===>  Extracting for collectd-4.9.3_3
===>  Patching for collectd-4.9.3_3
===>  Applying FreeBSD patches for collectd-4.9.3_3
mr.a@a:/usr/ports/net-mgmt/collectd#

Here is the problem during installation:
# uname -s
FreeBSD
# uname -p
amd64
# uname -r
8.2-RELEASE

#head Makefile
PORTNAME=       collectd
PORTVERSION=    4.9.3
PORTREVISION=   3

/usr/ports/net-mgmt/collectd# make clean patch install package
...
libtool: link: ar cru .libs/apache.a  apache_la-apache.o
libtool: link: ranlib .libs/apache.a
libtool: link: ( cd ".libs" && rm -f "apache.la" && ln -s
"../apache.la" "apache.la" )
/bin/sh ../libtool  --tag=CC   --mode=compile cc -DHAVE_CONFIG_H -I.
-DPREFIX='"/usr/local"' -DCONFIGFILE='"/usr/local/etc/collectd.conf"'
-DLOCALSTATEDIR='"/var"' -DPKGLOCALSTATEDIR='"/var/lib/collectd"'
-DPIDFILE='"/var/run/collectd.pid"'
-DPLUGINDIR='"/usr/local/lib/collectd"'
-DPKGDATADIR='"/usr/local/share/collectd"' -I/usr/local/include -Wall
-Werror -I/usr/local/include -I/usr/local/include/libxml2
-I/usr/local/include -O2 -pipe -fstack-protector
-fno-strict-aliasing
-MT bind_la-bind.lo -MD -MP -MF .deps/bind_la-bind.Tpo -c -o
bind_la-bind.lo `test -f 'bind.c' || echo './'`bind.c
libtool: compile:  cc -DHAVE_CONFIG_H -I. -DPREFIX=\"/usr/local\"
-DCONFIGFILE=\"/usr/local/etc/collectd.conf\" -DLOCALSTATEDIR=\"/var\"
-DPKGLOCALSTATEDIR=\"/var/lib/collectd\"
-DPIDFILE=\"/var/run/collectd.pid\"
-DPLUGINDIR=\"/usr/local/lib/collectd\"
-DPKGDATADIR=\"/usr/local/share/collectd\" -I/usr/local/include -Wall
-Werror -I/usr/local/include -I/usr/local/include/libxml2
-I/usr/local/include -O2 -pipe -fstack-protector -fno-strict-aliasing
-MT bind_la-bind.lo -MD -MP -MF .deps/bind_la-bind.Tpo -c bind.c -fPIC
-DPIC -o .libs/bind_la-bind.o
cc1: warnings being treated as errors
bind.c: In function 'submit':
bind.c:257: warning: implicit declaration of function
'TIME_T_TO_CDTIME_T'
gmake[3]: *** [bind_la-bind.lo] Error 1
gmake[3]: Leaving directory
`/home/tmp_ports/usr/xports/net-mgmt/collectd/work/collectd-4.9.3/src'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory
`/home/tmp_ports/usr/xports/net-mgmt/collectd/work/collectd-4.9.3/src'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory
`/home/tmp_ports/usr/xports/net-mgmt/collectd/work/collectd-4.9.3/src'
gmake: *** [all-recursive] Error 1
*** Error code 1

Any ideas on what went wrong here?


Here is one solution.

Picking up on the hint that says "cc1: warnings being treated as errors, " I
then added "+ CFLAGS+=-w" at /usr/ports/net-mgmt/collectd/Makefile.

mr.a@a:/usr/ports/net-mgmt/collectd# make deinstall clean package
==>  License check disabled, port has not defined LICENSE
===>  Found saved configuration for collectd-4.9.3_2
===>  Extracting for collectd-4.9.3_3
===>  Patching for collectd-4.9.3_3
===>  Applying FreeBSD patches for collectd-4.9.3_3
...
/bin/mkdir -p /var/db/collectd
if [ ! -f /usr/local/etc/collectd.conf ]; then /bin/cp -p /usr/local/etc/collectd.conf.sample
/usr/local/etc/collectd.conf ;  fi
===> Installing rc.d startup script(s)
===>   Running ldconfig
/sbin/ldconfig -m /usr/local/lib
===>   Registering installation for collectd-4.9.3_3
===> SECURITY REPORT:
This port has installed the following files which may act as network servers and may therefore pose a remote security risk to the system.
/usr/local/lib/collectd/unixsock.so
/usr/local/lib/collectd/email.so

This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/collectdmon
/usr/local/etc/rc.d/collectd

If there are vulnerabilities in these programs there may be a security risk to the system. FreeBSD makes no guarantee about the security of ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage:
http://www.collectd.org/
mr.a@a:/usr/ports/net-mgmt/collectd#

If anyone is interested, go and grab the working patches adopted for collectd-4.9.3_3 athttp://paste.kde.org/498614/raw/ and athttp://paste.kde.org/498620/raw/ .


Thanks in advance,

mr.a








_______________________________________________
collectd mailing list
[email protected]
http://mailman.verplant.org/listinfo/collectd

Reply via email to