Merge branch 'GPSd'
authorNicolas JOURDEN <nicolas.jourden@laposte.net>
Tue, 17 Nov 2015 14:12:47 +0000 (15:12 +0100)
committerNicolas JOURDEN <nicolas.jourden@laposte.net>
Tue, 17 Nov 2015 14:12:47 +0000 (15:12 +0100)
1  2 
configure.ac
src/Makefile.am
src/types.db

diff --combined configure.ac
@@@ -2082,6 -2082,59 +2082,59 @@@ AC_SUBST(GCRYPT_LIBS
  AM_CONDITIONAL(BUILD_WITH_LIBGCRYPT, test "x$with_libgcrypt" = "xyes")
  # }}}
  
+ ###
+ # --with-libgps {{{
+ with_libgps_cflags=""
+ with_libgps_ldflags=""
+ AC_ARG_WITH(libgps, [AS_HELP_STRING([--with-libgps@<:@=PREFIX@:>@], [Path to libgps.])],
+ [
+       if test "x$withval" != "xno" && test "x$withval" != "xyes"
+       then
+               with_libgps_cflags="-I$withval/include"
+               with_libgps_ldflags="-L$withval/lib"
+               with_libgps="yes"
+       else
+               with_libgps="$withval"
+       fi
+ ],
+ [
+       with_libgps="yes"
+ ])
+ if test "x$with_libgps" = "xyes"
+ then
+       SAVE_CFLAGS="$CFLAGS"
+       CFLAGS="$CFLAGS $with_libgps_cflags"
+       AC_CHECK_HEADERS(gps.h, [with_libgps="yes"], [with_libgps="no (gps.h not found)"])
+       CFLAGS="$SAVE_CFLAGS"
+ fi
+ if test "x$with_libgps" = "xyes"
+ then
+       SAVE_CFLAGS="$CFLAGS"
+       SAVE_LDFLAGS="$LDFLAGS"
+       CFLAGS="$CFLAGS $with_libgps_cflags"
+       LDFLAGS="$LDFLAGS $with_libgps_ldflags"
+       AC_CHECK_LIB(gps, gps_open, [with_libgps="yes"], [with_libgps="no (symbol gps_open not found)"])
+       CFLAGS="$SAVE_CFLAGS"
+       LDFLAGS="$SAVE_LDFLAGS"
+ fi
+ if test "x$with_libgps" = "xyes"
+ then
+       BUILD_WITH_LIBGPS_CFLAGS="$with_libgps_cflags"
+       BUILD_WITH_LIBGPS_LDFLAGS="$with_libgps_ldflags"
+       BUILD_WITH_LIBGPS_LIBS="-lgps"
+       AC_SUBST(BUILD_WITH_LIBGPS_CFLAGS)
+       AC_SUBST(BUILD_WITH_LIBGPS_LDFLAGS)
+       AC_SUBST(BUILD_WITH_LIBGPS_LIBS)
+ fi
+ AM_CONDITIONAL(BUILD_WITH_LIBGPS, test "x$with_libgps" = "xyes")
+ # }}}
  # --with-libiptc {{{
  AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])],
  [
  AM_CONDITIONAL(BUILD_WITH_LIBMONGOC, test "x$with_libmongoc" = "xyes")
  # }}}
  
 +# --with-libmosquitto {{{
 +with_libmosquitto_cppflags=""
 +with_libmosquitto_libs="-lmosquitto"
 +AC_ARG_WITH(libmosquitto, [AS_HELP_STRING([--with-libmosquitto@<:@=PREFIX@:>@], [Path to libmosquitto.])],
 +[
 +      if test "x$withval" != "xno" && test "x$withval" != "xyes"
 +      then
 +              with_libmosquitto_cppflags="-I$withval/include"
 +              with_libmosquitto_libs="-L$withval/lib -lmosquitto"
 +              with_libmosquitto="yes"
 +      else
 +              with_libmosquitto="$withval"
 +      fi
 +],
 +[
 +      with_libmosquitto="yes"
 +])
 +if test "x$with_libmosquitto" = "xyes"
 +then
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      CPPFLAGS="$with_libmosquitto_cppflags"
 +
 +      AC_CHECK_HEADERS(mosquitto.h, [with_libmosquitto="yes"], [with_libmosquitto="no (mosquitto.h not found)"])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +fi
 +if test "x$with_libmosquitto" = "xyes"
 +then
 +      SAVE_LDFLAGS="$LDFLAGS"
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      LDFLAGS="$with_libmosquitto_libs"
 +      CPPFLAGS="$with_libmosquitto_cppflags"
 +
 +      AC_CHECK_LIB(mosquitto, mosquitto_connect, [with_libmosquitto="yes"], [with_libmosquitto="no (libmosquitto not found)"])
 +
 +      LDFLAGS="$SAVE_LDFLAGS"
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +fi
 +if test "x$with_libmosquitto" = "xyes"
 +then
 +      BUILD_WITH_LIBMOSQUITTO_CPPFLAGS="$with_libmosquitto_cppflags"
 +      BUILD_WITH_LIBMOSQUITTO_LIBS="$with_libmosquitto_libs"
 +      AC_SUBST(BUILD_WITH_LIBMOSQUITTO_CPPFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBMOSQUITTO_LIBS)
 +fi
 +# }}}
 +
  # --with-libmysql {{{
  with_mysql_config="mysql_config"
  with_mysql_cflags=""
@@@ -5251,7 -5257,6 +5304,7 @@@ collectd features:]
  AC_COLLECTD([debug],     [enable],  [feature], [debugging])
  AC_COLLECTD([daemon],    [disable], [feature], [daemon mode])
  AC_COLLECTD([getifaddrs],[enable],  [feature], [getifaddrs under Linux])
 +AC_COLLECTD([werror],    [disable], [feature], [building with -Werror])
  
  dependency_warning="no"
  dependency_error="no"
@@@ -5275,6 -5280,7 +5328,7 @@@ plugin_entropy="no
  plugin_ethstat="no"
  plugin_fhcount="no"
  plugin_fscache="no"
+ plugin_gps="no"
  plugin_interface="no"
  plugin_ipmi="no"
  plugin_ipvs="no"
@@@ -5302,7 -5308,6 +5356,7 @@@ plugin_vmem="no
  plugin_vserver="no"
  plugin_wireless="no"
  plugin_zfs_arc="no"
 +plugin_zone="no"
  plugin_zookeeper="no"
  
  # Linux
  
  if test "x$ac_system" = "xFreeBSD"
  then
 +      plugin_disk="yes"
        plugin_zfs_arc="yes"
  fi
  
@@@ -5402,7 -5406,6 +5456,7 @@@ the
        plugin_processes="yes"
        plugin_uptime="yes"
        plugin_zfs_arc="yes"
 +      plugin_zone="yes"
  fi
  
  if test "x$with_devinfo$with_kstat" = "xyesyes"
        plugin_interface="yes"
  fi
  
+ if test "x$with_libgps" = "xyes" && test "x$with_libpthread" = "xyes"
+ then
+       plugin_gps="yes"
+ fi
  if test "x$have_getloadavg" = "xyes"
  then
        plugin_load="yes"
@@@ -5667,6 -5675,7 +5726,7 @@@ AC_PLUGIN([fhcount],     [$plugin_fhcou
  AC_PLUGIN([filecount],   [yes],                [Count files in directories])
  AC_PLUGIN([fscache],     [$plugin_fscache],    [fscache statistics])
  AC_PLUGIN([gmond],       [$with_libganglia],   [Ganglia plugin])
+ AC_PLUGIN([gps],         [$plugin_gps],        [GPS plugin])
  AC_PLUGIN([hddtemp],     [yes],                [Query hddtempd])
  AC_PLUGIN([interface],   [$plugin_interface],  [Interface traffic statistics])
  AC_PLUGIN([ipc],         [$plugin_ipc],        [IPC statistics])
@@@ -5693,7 -5702,6 +5753,7 @@@ AC_PLUGIN([memcached],   [yes]
  AC_PLUGIN([memory],      [$plugin_memory],     [Memory usage])
  AC_PLUGIN([mic],         [$with_mic],          [Intel Many Integrated Core stats])
  AC_PLUGIN([modbus],      [$with_libmodbus],    [Modbus plugin])
 +AC_PLUGIN([mqtt],        [$with_libmosquitto], [MQTT output plugin])
  AC_PLUGIN([multimeter],  [$plugin_multimeter], [Read multimeter values])
  AC_PLUGIN([mysql],       [$with_libmysql],     [MySQL statistics])
  AC_PLUGIN([netapp],      [$with_libnetapp],    [NetApp plugin])
@@@ -5769,7 -5777,6 +5829,7 @@@ AC_PLUGIN([write_sensu], [yes]
  AC_PLUGIN([write_tsdb],  [yes],                [TSDB output plugin])
  AC_PLUGIN([xmms],        [$with_libxmms],      [XMMS statistics])
  AC_PLUGIN([zfs_arc],     [$plugin_zfs_arc],    [ZFS ARC statistics])
 +AC_PLUGIN([zone],        [$plugin_zone],       [Solaris container statistics])
  AC_PLUGIN([zookeeper],   [yes],              [Zookeeper statistics])
  
  dnl Default configuration file
@@@ -5921,13 -5928,6 +5981,13 @@@ AC_SUBST(LCC_VERSION_STRING
  
  AC_CONFIG_FILES(src/libcollectdclient/collectd/lcc_features.h)
  
 +AM_CFLAGS="-Wall"
 +if test "x$enable_werror" != "xno"
 +then
 +        AM_CFLAGS="$AM_CFLAGS -Werror"
 +fi
 +AC_SUBST([AM_CFLAGS])
 +
  AC_CONFIG_FILES([Makefile src/Makefile src/daemon/Makefile src/collectd.conf src/libcollectdclient/Makefile src/libcollectdclient/libcollectdclient.pc src/liboconfig/Makefile bindings/Makefile bindings/java/Makefile])
  AC_OUTPUT
  
  cat <<EOF;
  
  Configuration:
 +  Build:
 +    Platform  . . . . . . $ac_system
 +    CC  . . . . . . . . . $CC
 +    CFLAGS  . . . . . . . $AM_CFLAGS $CFLAGS
 +    CPP . . . . . . . . . $CPP
 +    CPPFLAGS  . . . . . . $CPPFLAGS
 +    LD  . . . . . . . . . $LD
 +    LDFLAGS . . . . . . . $LDFLAGS
 +    YACC  . . . . . . . . $YACC
 +    YFLAGS  . . . . . . . $YFLAGS
 +
    Libraries:
      intel mic . . . . . . $with_mic
      libaquaero5 . . . . . $with_libaquaero5
      libesmtp  . . . . . . $with_libesmtp
      libganglia  . . . . . $with_libganglia
      libgcrypt . . . . . . $with_libgcrypt
+     libgps  . . . . . . . $with_libgps
      libhal  . . . . . . . $with_libhal
      libhiredis  . . . . . $with_libhiredis
      libi2c-dev  . . . . . $with_libi2c
      libmnl  . . . . . . . $with_libmnl
      libmodbus . . . . . . $with_libmodbus
      libmongoc . . . . . . $with_libmongoc
 +    libmosquitto  . . . . $with_libmosquitto
      libmysql  . . . . . . $with_libmysql
      libnetapp . . . . . . $with_libnetapp
      libnetsnmp  . . . . . $with_libnetsnmp
      filecount . . . . . . $enable_filecount
      fscache . . . . . . . $enable_fscache
      gmond . . . . . . . . $enable_gmond
+     gps . . . . . . . . . $enable_gps
      hddtemp . . . . . . . $enable_hddtemp
      interface . . . . . . $enable_interface
      ipc . . . . . . . . . $enable_ipc
      memory  . . . . . . . $enable_memory
      mic . . . . . . . . . $enable_mic
      modbus  . . . . . . . $enable_modbus
 +    mqtt  . . . . . . . . $enable_mqtt
      multimeter  . . . . . $enable_multimeter
      mysql . . . . . . . . $enable_mysql
      netapp  . . . . . . . $enable_netapp
      write_tsdb  . . . . . $enable_write_tsdb
      xmms  . . . . . . . . $enable_xmms
      zfs_arc . . . . . . . $enable_zfs_arc
 +    zone  . . . . . . . . $enable_zone
      zookeeper . . . . . . $enable_zookeeper
  
  EOF
diff --combined src/Makefile.am
@@@ -6,6 -6,10 +6,6 @@@ SUBDIRS += daemo
  
  PLUGIN_LDFLAGS = -module -avoid-version -export-symbols-regex '\<module_register\>'
  
 -if COMPILER_IS_GCC
 -AM_CFLAGS = -Wall -Werror
 -endif
 -
  AM_CPPFLAGS = -I$(srcdir)/daemon
  AM_CPPFLAGS += -DPREFIX='"${prefix}"'
  AM_CPPFLAGS += -DCONFIGFILE='"${sysconfdir}/${PACKAGE_NAME}.conf"'
@@@ -19,37 -23,13 +19,37 @@@ AM_CPPFLAGS += -DPKGDATADIR='"${pkgdata
  
  AUTOMAKE_OPTIONS = subdir-objects
  
 -noinst_LTLIBRARIES = libmount.la liblookup.la
 +noinst_LTLIBRARIES =
 +check_PROGRAMS =
 +TESTS =
  
 -libmount_la_SOURCES = utils_mount.c utils_mount.h
 -libmount_la_LIBADD = daemon/libcommon.la
 +noinst_LTLIBRARIES += liblatency.la
 +liblatency_la_SOURCES = utils_latency.c utils_latency.h
 +check_PROGRAMS += test_utils_latency
 +TESTS += test_utils_latency
 +test_utils_latency_SOURCES = utils_latency_test.c testing.h
 +test_utils_latency_LDADD = liblatency.la daemon/libcommon.la daemon/libplugin_mock.la -lm
  
 +noinst_LTLIBRARIES += liblookup.la
  liblookup_la_SOURCES = utils_vl_lookup.c utils_vl_lookup.h
 -liblookup_la_LIBADD = daemon/libavltree.la daemon/libcommon.la
 +liblookup_la_LIBADD = daemon/libavltree.la
 +check_PROGRAMS += test_utils_vl_lookup
 +TESTS += test_utils_vl_lookup
 +test_utils_vl_lookup_SOURCES = utils_vl_lookup_test.c testing.h
 +test_utils_vl_lookup_LDADD = liblookup.la daemon/libcommon.la daemon/libplugin_mock.la
 +if BUILD_WITH_LIBKSTAT
 +test_utils_vl_lookup_LDADD += -lkstat
 +endif
 +
 +noinst_LTLIBRARIES += libmount.la
 +libmount_la_SOURCES = utils_mount.c utils_mount.h
 +check_PROGRAMS += test_utils_mount
 +TESTS += test_utils_mount
 +test_utils_mount_SOURCES = utils_mount_test.c testing.h
 +test_utils_mount_LDADD = libmount.la daemon/libcommon.la daemon/libplugin_mock.la
 +if BUILD_WITH_LIBKSTAT
 +test_utils_mount_LDADD += -lkstat
 +endif
  
  sbin_PROGRAMS = collectdmon
  bin_PROGRAMS = collectd-nagios collectdctl collectd-tg
@@@ -84,8 -64,7 +84,8 @@@ collectdctl_LDADD += libcollectdclient/
  collectdctl_DEPENDENCIES = libcollectdclient/libcollectdclient.la
  
  collectd_tg_SOURCES = collectd-tg.c
 -collectd_tg_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/src/libcollectdclient/collectd -I$(top_builddir)/src/libcollectdclient/collectd
 +collectd_tg_CPPFLAGS = $(AM_CPPFLAGS) \
 +                     -I$(top_srcdir)/src/libcollectdclient/collectd -I$(top_builddir)/src/libcollectdclient/collectd
  collectd_tg_LDADD = daemon/libheap.la
  if BUILD_WITH_LIBSOCKET
  collectd_tg_LDADD += -lsocket
@@@ -211,7 -190,8 +211,7 @@@ endi
  
  if BUILD_PLUGIN_CGROUPS
  pkglib_LTLIBRARIES += cgroups.la
 -cgroups_la_SOURCES = cgroups.c \
 -                   utils_ignorelist.c utils_ignorelist.h
 +cgroups_la_SOURCES = cgroups.c
  cgroups_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  cgroups_la_LIBADD = libmount.la
  endif
@@@ -310,14 -290,16 +310,14 @@@ endi
  
  if BUILD_PLUGIN_DF
  pkglib_LTLIBRARIES += df.la
 -df_la_SOURCES = df.c \
 -              utils_ignorelist.c utils_ignorelist.h
 +df_la_SOURCES = df.c
  df_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  df_la_LIBADD = libmount.la
  endif
  
  if BUILD_PLUGIN_DISK
  pkglib_LTLIBRARIES += disk.la
 -disk_la_SOURCES = disk.c \
 -                utils_ignorelist.c utils_ignorelist.h
 +disk_la_SOURCES = disk.c
  disk_la_CFLAGS = $(AM_CFLAGS)
  disk_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  disk_la_LIBADD =
@@@ -337,9 -319,6 +337,9 @@@ endi
  if BUILD_WITH_LIBUDEV
  disk_la_LIBADD += -ludev
  endif
 +if BUILD_FREEBSD
 +disk_la_LIBADD += -ldevstat -lgeom
 +endif
  if BUILD_WITH_PERFSTAT
  disk_la_LIBADD += -lperfstat
  endif
@@@ -408,6 -387,14 +408,14 @@@ gmond_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(
  gmond_la_LIBADD = $(GANGLIA_LIBS)
  endif
  
+ if BUILD_PLUGIN_GPS
+ pkglib_LTLIBRARIES += gps.la
+ gps_la_SOURCES = gps.c
+ gps_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_LIBGPS_CFLAGS)
+ gps_la_LDFLAGS = -module -avoid-version $(BUILD_WITH_LIBGPS_LDFLAGS)
+ gps_la_LIBADD = -lpthread $(BUILD_WITH_LIBGPS_LIBS)
+ endif
  if BUILD_PLUGIN_HDDTEMP
  pkglib_LTLIBRARIES += hddtemp.la
  hddtemp_la_SOURCES = hddtemp.c
@@@ -420,7 -407,8 +428,7 @@@ endi
  
  if BUILD_PLUGIN_INTERFACE
  pkglib_LTLIBRARIES += interface.la
 -interface_la_SOURCES = interface.c \
 -                     utils_ignorelist.c utils_ignorelist.h
 +interface_la_SOURCES = interface.c
  interface_la_CFLAGS = $(AM_CFLAGS)
  interface_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  interface_la_LIBADD =
@@@ -457,7 -445,8 +465,7 @@@ endi
  
  if BUILD_PLUGIN_IPMI
  pkglib_LTLIBRARIES += ipmi.la
 -ipmi_la_SOURCES = ipmi.c \
 -                utils_ignorelist.c utils_ignorelist.h
 +ipmi_la_SOURCES = ipmi.c
  ipmi_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_OPENIPMI_CFLAGS)
  ipmi_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  ipmi_la_LIBADD = $(BUILD_WITH_OPENIPMI_LIBS)
@@@ -468,15 -457,14 +476,15 @@@ pkglib_LTLIBRARIES += ipvs.l
  ipvs_la_SOURCES = ipvs.c
  if IP_VS_H_NEEDS_KERNEL_CFLAGS
  ipvs_la_CFLAGS = $(AM_CFLAGS) $(KERNEL_CFLAGS)
 +else
 +ipvs_la_CFLAGS = $(AM_CFLAGS)
  endif
  ipvs_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  endif
  
  if BUILD_PLUGIN_IRQ
  pkglib_LTLIBRARIES += irq.la
 -irq_la_SOURCES = irq.c \
 -               utils_ignorelist.c utils_ignorelist.h
 +irq_la_SOURCES = irq.c
  irq_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  endif
  
@@@ -535,7 -523,8 +543,7 @@@ endi
  
  if BUILD_PLUGIN_MADWIFI
  pkglib_LTLIBRARIES += madwifi.la
 -madwifi_la_SOURCES = madwifi.c madwifi.h \
 -                   utils_ignorelist.c utils_ignorelist.h
 +madwifi_la_SOURCES = madwifi.c madwifi.h
  madwifi_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  endif
  
@@@ -581,7 -570,8 +589,7 @@@ endi
  
  if BUILD_PLUGIN_MD
  pkglib_LTLIBRARIES += md.la
 -md_la_SOURCES = md.c \
 -              utils_ignorelist.c utils_ignorelist.h
 +md_la_SOURCES = md.c
  md_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  endif
  
@@@ -626,7 -616,8 +634,7 @@@ endi
  
  if BUILD_PLUGIN_MIC
  pkglib_LTLIBRARIES += mic.la
 -mic_la_SOURCES = mic.c \
 -               utils_ignorelist.c utils_ignorelist.h
 +mic_la_SOURCES = mic.c
  mic_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(BUILD_WITH_MIC_LIBPATH)
  mic_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_MIC_CPPFLAGS)
  mic_la_LIBADD = $(BUILD_WITH_MIC_LDADD)
@@@ -640,14 -631,6 +648,14 @@@ modbus_la_CFLAGS = $(AM_CFLAGS) $(BUILD
  modbus_la_LIBADD = $(BUILD_WITH_LIBMODBUS_LIBS)
  endif
  
 +if BUILD_PLUGIN_MQTT
 +pkglib_LTLIBRARIES += mqtt.la
 +mqtt_la_SOURCES = mqtt.c
 +mqtt_la_LDFLAGS = $(PLUGIN_LDFLAGS)
 +mqtt_la_CPPFLAGS = $(AM_CPPFLAGS) $(BUILD_WITH_LIBMOSQUITTO_CPPFLAGS)
 +mqtt_la_LIBADD = $(BUILD_WITH_LIBMOSQUITTO_LIBS)
 +endif
 +
  if BUILD_PLUGIN_MULTIMETER
  pkglib_LTLIBRARIES += multimeter.la
  multimeter_la_SOURCES = multimeter.c
@@@ -668,7 -651,8 +676,7 @@@ endi
  
  if BUILD_PLUGIN_NETAPP
  pkglib_LTLIBRARIES += netapp.la
 -netapp_la_SOURCES = netapp.c \
 -                  utils_ignorelist.c utils_ignorelist.h
 +netapp_la_SOURCES = netapp.c
  netapp_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBNETAPP_CPPFLAGS)
  netapp_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(LIBNETAPP_LDFLAGS)
  netapp_la_LIBADD = $(LIBNETAPP_LIBS)
@@@ -774,7 -758,8 +782,7 @@@ endi
  
  if BUILD_PLUGIN_ONEWIRE
  pkglib_LTLIBRARIES += onewire.la
 -onewire_la_SOURCES = onewire.c \
 -                   utils_ignorelist.c utils_ignorelist.h
 +onewire_la_SOURCES = onewire.c
  onewire_la_CFLAGS = $(AM_CFLAGS)
  onewire_la_CPPFLAGS = $(AM_CPPFLAGS) $(BUILD_WITH_LIBOWCAPI_CPPFLAGS)
  onewire_la_LIBADD = $(BUILD_WITH_LIBOWCAPI_LIBS)
@@@ -887,7 -872,8 +895,7 @@@ endi
  
  if BUILD_PLUGIN_PROTOCOLS
  pkglib_LTLIBRARIES += protocols.la
 -protocols_la_SOURCES = protocols.c \
 -                     utils_ignorelist.c utils_ignorelist.h
 +protocols_la_SOURCES = protocols.c
  protocols_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  endif
  
@@@ -925,7 -911,8 +933,7 @@@ endi
  
  if BUILD_PLUGIN_SENSORS
  pkglib_LTLIBRARIES += sensors.la
 -sensors_la_SOURCES = sensors.c \
 -                   utils_ignorelist.c utils_ignorelist.h
 +sensors_la_SOURCES = sensors.c
  sensors_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_LIBSENSORS_CFLAGS)
  sensors_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(BUILD_WITH_LIBSENSORS_LDFLAGS)
  sensors_la_LIBADD = -lsensors
@@@ -948,7 -935,8 +956,7 @@@ endi
  if BUILD_PLUGIN_SMART
  if BUILD_WITH_LIBUDEV
  pkglib_LTLIBRARIES += smart.la
 -smart_la_SOURCES = smart.c \
 -                 utils_ignorelist.c utils_ignorelist.h
 +smart_la_SOURCES = smart.c
  smart_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_LIBATASMART_CPPFLAGS)
  smart_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(BUILD_WITH_LIBATASMART_LDFLAGS)
  smart_la_LIBADD = $(BUILD_WITH_LIBATASMART_LIBS) -ludev
@@@ -972,9 -960,10 +980,9 @@@ endi
  
  if BUILD_PLUGIN_STATSD
  pkglib_LTLIBRARIES += statsd.la
 -statsd_la_SOURCES = statsd.c \
 -                    utils_latency.h utils_latency.c
 +statsd_la_SOURCES = statsd.c
  statsd_la_LDFLAGS = $(PLUGIN_LDFLAGS)
 -statsd_la_LIBADD = -lpthread -lm
 +statsd_la_LIBADD = liblatency.la -lpthread -lm
  endif
  
  if BUILD_PLUGIN_SWAP
@@@ -1087,7 -1076,8 +1095,7 @@@ endi
  
  if BUILD_PLUGIN_THERMAL
  pkglib_LTLIBRARIES += thermal.la
 -thermal_la_SOURCES = thermal.c \
 -                   utils_ignorelist.c utils_ignorelist.h
 +thermal_la_SOURCES = thermal.c
  thermal_la_LDFLAGS = $(PLUGIN_LDFLAGS)
  endif
  
@@@ -1172,7 -1162,8 +1180,7 @@@ endi
  
  if BUILD_PLUGIN_VIRT
  pkglib_LTLIBRARIES += virt.la
 -virt_la_SOURCES = virt.c \
 -                utils_ignorelist.c utils_ignorelist.h
 +virt_la_SOURCES = virt.c
  virt_la_CFLAGS = $(AM_CFLAGS) \
                $(BUILD_WITH_LIBVIRT_CFLAGS) $(BUILD_WITH_LIBXML2_CFLAGS)
  virt_la_LIBADD = $(BUILD_WITH_LIBVIRT_LIBS) $(BUILD_WITH_LIBXML2_LIBS)
@@@ -1306,13 -1297,6 +1314,13 @@@ endi
  
  BUILT_SOURCES += $(dist_man_MANS)
  
 +if BUILD_PLUGIN_ZONE
 +pkglib_LTLIBRARIES += zone.la
 +zone_la_SOURCES = zone.c
 +zone_la_CFLAGS = $(AM_CFLAGS)
 +zone_la_LDFLAGS = $(PLUGIN_LDFLAGS)
 +endif
 +
  dist_man_MANS = collectd.1 \
                collectd.conf.5 \
                collectd-email.5 \
@@@ -1348,6 -1332,7 +1356,7 @@@ EXTRA_DIST +=   collectd.conf.pod 
                collectd-threshold.pod \
                collectd-unixsock.pod \
                postgresql_default.conf \
+               gps.pod \
                types.db.pod
  
  .pod.1:
@@@ -1405,4 -1390,12 +1414,4 @@@ uninstall-hook
        rm -f $(DESTDIR)$(sysconfdir)/collectd.conf
        rm -f $(DESTDIR)$(pkgdatadir)/postgresql_default.conf;
  
 -check_PROGRAMS = test_utils_mount test_utils_vl_lookup
 -
 -test_utils_mount_SOURCES = utils_mount_test.c testing.h
 -test_utils_mount_LDADD = libmount.la daemon/libplugin_mock.la
 -
 -test_utils_vl_lookup_SOURCES = utils_vl_lookup_test.c testing.h
 -test_utils_vl_lookup_LDADD = liblookup.la daemon/libplugin_mock.la
  
 -TESTS = test_utils_mount test_utils_vl_lookup
diff --combined src/types.db
@@@ -14,8 -14,7 +14,8 @@@ cache_eviction                value:DERIVE:0:
  cache_operation               value:DERIVE:0:U
  cache_ratio           value:GAUGE:0:100
  cache_result          value:DERIVE:0:U
 -cache_size            value:GAUGE:0:U
 +cache_size            value:GAUGE:0:1125899906842623
 +capacity      value:GAUGE:0:U
  ceph_bytes            value:GAUGE:U:U
  ceph_latency  value:GAUGE:U:U
  ceph_rate                     value:DERIVE:0:U
@@@ -78,6 -77,9 +78,9 @@@ frequency_offset      value:GAUGE:-1000000:1
  frequency             value:GAUGE:0:U
  fscache_stat          value:DERIVE:0:U
  gauge                 value:GAUGE:U:U
+ gps_sat                       value:GAUGE:0:25
+ gps_hdop              value:GAUGE:0:100
+ gps_vdop              value:GAUGE:0:100
  hash_collisions               value:DERIVE:0:U
  http_request_methods  value:DERIVE:0:U
  http_requests         value:DERIVE:0:U