Code

Merge branch 'collectd-4.0'
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Fri, 3 Aug 2007 08:55:03 +0000 (10:55 +0200)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Fri, 3 Aug 2007 08:55:03 +0000 (10:55 +0200)
Conflicts:

ChangeLog

1  2 
ChangeLog
configure.in
src/collectd.conf.in
src/sensors.c

diff --combined ChangeLog
index e8881e6e71bc3ebeff5249634cde5920a55aa41d,d884654689d9b133812628bd640ef2680dd53ae0..fcccbf8ba34e7c6be157c9a9c79a4d17f41f46dc
+++ b/ChangeLog
@@@ -1,19 -1,13 +1,29 @@@
 +2007-07-21, Version 4.1.0
 +      * Build system: The build system has been changed to automatically
 +        disable all plugins, which are missing dependencies. The dependency
 +        checking has been removed from the plugins themselves to remove
 +        redundancy.
 +      * Flexible interval: The interval of collected data is not sent along
 +        with the data itself over the network, so that the interval-settings
 +        of server and clients no longer needs to match.
 +      * snmp plugin: The new `snmp' plugin can read values from SNMP enabled
 +        network devices, such as switches, routers, thermometers, rack
 +        monitoring servers, etc. The collectd-snmp(5) manpage documents this
 +        plugin.
 +      * unixsock plugin: Added the `LISTVAL' command.
 +      * xmms plugin: The new `xmms' plugin graphs the bitrate and frequency
 +        of music played with xmms.
 +
+ 2007-07-30, Version 4.0.6
+       * sensors plugin: Fix the ignorelist functionality: Only the `type
+         instance' was used to match against the list, but the documentation
+         told otherwise. This release fixes the code, so it complies with the
+         documentation.
+       * syslog plugin: Call `openlog' right when the plugin is loaded, so
+         configuration messages will end up in the logging facility.
+       * conrtib/fedora: The contributed specfile for Fedora has been
+         updated.
  2007-07-05, Version 4.0.5
        * Portability: More fixes for OpenBSD have been included.
  
diff --combined configure.in
index 5b3a54a6548bbe687efea5d0a4032eeb654db7b8,41bb7097b519be3c61862720be1071edb1880c66..59f3dce2c0d745417ccc85419abab4649bb1f555
@@@ -1,5 -1,5 +1,5 @@@
  dnl Process this file with autoconf to produce a configure script.
- AC_INIT(collectd, 4.0.5)
+ AC_INIT(collectd, 4.0.6)
  AC_CONFIG_SRCDIR(src/collectd.c)
  AC_CONFIG_HEADERS(src/config.h)
  AM_INIT_AUTOMAKE(dist-bzip2)
@@@ -36,8 -36,23 +36,8 @@@ AC_CONFIG_SUBDIRS(libltdl
  AC_HEADER_STDC
  AC_HEADER_SYS_WAIT
  AC_HEADER_DIRENT
 -AC_CHECK_HEADERS(stdint.h)
 -AC_CHECK_HEADERS(stdio.h)
 -AC_CHECK_HEADERS(errno.h)
 -AC_CHECK_HEADERS(math.h)
 -AC_CHECK_HEADERS(syslog.h)
 -AC_CHECK_HEADERS(fcntl.h)
 -AC_CHECK_HEADERS(signal.h)
 -AC_CHECK_HEADERS(assert.h)
 -AC_CHECK_HEADERS(sys/types.h)
 -AC_CHECK_HEADERS(sys/socket.h)
 -AC_CHECK_HEADERS(sys/select.h)
 -AC_CHECK_HEADERS(poll.h)
 -AC_CHECK_HEADERS(netdb.h)
 -AC_CHECK_HEADERS(arpa/inet.h)
 -AC_CHECK_HEADERS(sys/resource.h)
 -AC_CHECK_HEADERS(sys/param.h)
 -AC_CHECK_HEADERS(kstat.h)
 +
 +AC_CHECK_HEADERS(stdint.h stdio.h errno.h math.h stdarg.h syslog.h fcntl.h signal.h assert.h sys/types.h sys/socket.h sys/select.h poll.h netdb.h arpa/inet.h sys/resource.h sys/param.h kstat.h regex.h sys/ioctl.h)
  
  # For ping library
  AC_CHECK_HEADERS(netinet/in_systm.h, [], [],
@@@ -174,7 -189,6 +174,7 @@@ AC_CHECK_HEADERS(netinet/udp.h, [], []
  ])
  
  # For cpu modules
 +AC_CHECK_HEADERS(sys/dkstat.h mach/mach_init.h mach/host_priv.h mach/mach_error.h mach/mach_host.h mach/mach_port.h mach/mach_types.h mach/message.h mach/processor_set.h mach/processor.h mach/processor_info.h mach/task.h mach/thread_act.h mach/vm_region.h mach/vm_map.h mach/vm_prot.h mach/vm_statistics.h mach/kern_return.h)
  AC_CHECK_HEADERS(sys/sysctl.h, [], [],
  [
  #if HAVE_SYS_TYPES_H
  # include <sys/param.h>
  #endif
  ])
 -AC_CHECK_HEADERS(sys/dkstat.h)
 -AC_CHECK_HEADERS(mach/mach_init.h)
 -AC_CHECK_HEADERS(mach/host_priv.h)
 -AC_CHECK_HEADERS(mach/mach_error.h)
 -AC_CHECK_HEADERS(mach/mach_host.h)
 -AC_CHECK_HEADERS(mach/mach_port.h)
 -AC_CHECK_HEADERS(mach/mach_types.h)
 -AC_CHECK_HEADERS(mach/message.h)
 -AC_CHECK_HEADERS(mach/processor_set.h)
 -AC_CHECK_HEADERS(mach/processor.h)
 -AC_CHECK_HEADERS(mach/processor_info.h)
 -AC_CHECK_HEADERS(mach/task.h)
 -AC_CHECK_HEADERS(mach/thread_act.h)
 -AC_CHECK_HEADERS(mach/vm_region.h)
 -AC_CHECK_HEADERS(mach/vm_map.h)
 -AC_CHECK_HEADERS(mach/vm_prot.h)
 -AC_CHECK_HEADERS(mach/vm_statistics.h)
 -AC_CHECK_HEADERS(mach/kern_return.h)
  
  # For hddtemp module
 -AC_CHECK_HEADERS(linux/major.h)
 -AC_CHECK_HEADERS(libgen.h)
 +AC_CHECK_HEADERS(linux/major.h libgen.h)
  
  # For the apple_sensors module
 -AC_CHECK_HEADERS(CoreFoundation/CoreFoundation.h)
 -AC_CHECK_HEADERS(IOKit/IOKitLib.h)
 -AC_CHECK_HEADERS(IOKit/IOTypes.h)
 +AC_CHECK_HEADERS(CoreFoundation/CoreFoundation.h IOKit/IOKitLib.h IOKit/IOTypes.h IOKit/ps/IOPSKeys.h IOKit/IOBSD.h IOKit/storage/IOBlockStorageDriver.h)
  
  # For the battery plugin
  AC_CHECK_HEADERS(IOKit/ps/IOPowerSources.h, [], [],
  #  include <IOKit/IOTypes.h>
  #endif
  ])
 -AC_CHECK_HEADERS(IOKit/ps/IOPSKeys.h)
 -
 -# For the `disk' plugin
 -AC_CHECK_HEADERS(IOKit/IOBSD.h)
 -AC_CHECK_HEADERS(IOKit/storage/IOBlockStorageDriver.h)
 -
 -# For load module
 -AC_CHECK_HEADERS(sys/loadavg.h)
 -
 -# For the processes plugin
 -AC_CHECK_HEADERS(linux/config.h)
  
  # For the swap module
  AC_CHECK_HEADERS(sys/swap.h, [], [],
  #endif
  ])
  
 +# For load module
 +# For the processes plugin
  # For users module
 -AC_CHECK_HEADERS(utmp.h)
 -AC_CHECK_HEADERS(utmpx.h)
 +AC_CHECK_HEADERS(sys/loadavg.h linux/config.h utmp.h utmpx.h)
  
  # For interface plugin
  AC_CHECK_HEADERS(ifaddrs.h)
@@@ -251,7 -296,11 +251,7 @@@ AC_CHECK_HEADERS(linux/netdevice.h, []
  #endif
  ])
  
 -# For apache plugin
 -AC_CHECK_HEADERS(curl/curl.h)
 -
  # For quota module
 -AC_CHECK_HEADERS(pwd.h)
  AC_CHECK_HEADERS(sys/ucred.h, [], [],
  [
  #if HAVE_SYS_TYPES_H
  # include <sys/param.h>
  #endif
  ])
 -AC_CHECK_HEADERS(ctype.h)
 -AC_CHECK_HEADERS(limits.h)
 -AC_CHECK_HEADERS(sys/quota.h)
 -AC_CHECK_HEADERS(xfs/xqm.h)
  
  # For mount interface
 -AC_CHECK_HEADERS(fs_info.h)
 -AC_CHECK_HEADERS(fshelp.h)
 -AC_CHECK_HEADERS(paths.h)
 -AC_CHECK_HEADERS(mntent.h)
 -AC_CHECK_HEADERS(mnttab.h)
 -AC_CHECK_HEADERS(sys/fstyp.h)
 -AC_CHECK_HEADERS(sys/fs_types.h)
 -AC_CHECK_HEADERS(sys/mntent.h)
 -AC_CHECK_HEADERS(sys/mnttab.h)
  AC_CHECK_HEADERS(sys/mount.h, [], [],
  [
  #if HAVE_SYS_TYPES_H
  # include <sys/param.h>
  #endif
  ])
 -AC_CHECK_HEADERS(sys/statfs.h)
 -AC_CHECK_HEADERS(sys/statvfs.h)
 -AC_CHECK_HEADERS(sys/vfs.h)
 -AC_CHECK_HEADERS(sys/vfstab.h)
 -
 -# For the swap plugin, FreeBSD
 -AC_CHECK_HEADERS(kvm.h)
  
  # For the email plugin
  AC_CHECK_HEADERS(linux/un.h, [], [],
  #     include <sys/socket.h>
  #endif
  ])
 -AC_CHECK_HEADERS(sys/un.h)
 -AC_CHECK_HEADERS(grp.h)
 -
 -# For debugging interface (variable number of arguments)
 -AC_CHECK_HEADERS(stdarg.h)
  
 -# Regular expressions for the ignorelist.
 -AC_CHECK_HEADERS(regex.h)
 +AC_CHECK_HEADERS(curl/curl.h pwd.h grp.h sys/un.h ctype.h limits.h sys/quota.h xfs/xqm.h fs_info.h fshelp.h paths.h mntent.h mnttab.h sys/fstyp.h sys/fs_types.h sys/mntent.h sys/mnttab.h sys/statfs.h sys/statvfs.h sys/vfs.h sys/vfstab.h kvm.h)
  
  # For the dns plugin
  AC_CHECK_HEADERS(arpa/nameser.h)
@@@ -322,8 -397,8 +322,8 @@@ AC_CHECK_HEADERS(netinet/if_ether.h, []
  ])
  
  # For the multimeter plugin
 -AC_CHECK_HEADERS(termios.h)
 -AC_CHECK_HEADERS(sys/ioctl.h)
 +have_termios_h="no"
 +AC_CHECK_HEADERS(termios.h, [have_termios_h="yes"])
  
  #
  # Checking for libraries
@@@ -343,7 -418,11 +343,7 @@@ AC_HEADER_TIM
  # Checks for library functions.
  #
  AC_PROG_GCC_TRADITIONAL
 -AC_CHECK_FUNCS(gettimeofday select strdup strtol)
 -AC_CHECK_FUNCS(getaddrinfo getnameinfo)
 -AC_CHECK_FUNCS(strchr memcpy strstr strcmp strncmp strncpy strlen)
 -AC_CHECK_FUNCS(strncasecmp strcasecmp)
 -AC_CHECK_FUNCS(openlog syslog closelog)
 +AC_CHECK_FUNCS(gettimeofday select strdup strtol getaddrinfo getnameinfo strchr memcpy strstr strcmp strncmp strncpy strlen strncasecmp strcasecmp openlog closelog)
  
  AC_CHECK_FUNCS(getpwnam_r)
  AC_CHECK_FUNCS(getgrnam_r)
@@@ -356,22 -435,27 +356,22 @@@ nanosleep_needs_rt="no
  AC_CHECK_FUNCS(nanosleep, [], AC_CHECK_LIB(rt, nanosleep, [nanosleep_needs_rt="yes"], AC_MSG_ERROR(cannot find nanosleep)))
  AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$nanosleep_needs_rt" = "xyes")
  
 -# Regular expressions for the ignorelist.
  AC_CHECK_FUNCS(regcomp regerror regexec regfree)
  
 -# For cpu module
  AC_CHECK_FUNCS(sysctlbyname, [have_sysctlbyname="yes"], [have_sysctlbyname="no"])
 -
 -# For df module
 -AC_CHECK_FUNCS(statfs statvfs)
 +AC_CHECK_FUNCS(host_statistics, [have_host_statistics="yes"], [have_host_statistics="no"])
 +AC_CHECK_FUNCS(processor_info, [have_processor_info="yes"], [have_processor_info="no"])
 +AC_CHECK_FUNCS(thread_info, [have_thread_info="yes"], [have_thread_info="no"])
 +AC_CHECK_FUNCS(statfs, [have_statfs="yes"], [have_statfs="no"])
 +AC_CHECK_FUNCS(statvfs, [have_statvfs="yes"], [have_statvfs="no"])
 +AC_CHECK_FUNCS(getifaddrs, [have_getifaddrs="yes"], [have_getifaddrs="no"])
 +AC_CHECK_FUNCS(syslog, [have_syslog="yes"], [have_syslog="no"])
 +AC_CHECK_FUNCS(getutent, [have_getutent="yes"], [have_getutent="no"])
 +AC_CHECK_FUNCS(getutxent, [have_getutxent="yes"], [have_getutxent="no"])
  
  # For load module
  AC_CHECK_FUNCS(getloadavg, [have_getloadavg="yes"], [have_getloadavg="no"])
  
 -# For the `processes' plugin
 -AC_CHECK_FUNCS(thread_info)
 -
 -# For users module
 -AC_CHECK_FUNCS(getutent getutxent)
 -
 -# For interface module
 -AC_CHECK_FUNCS(getifaddrs)
 -
  # Check for NAN
  AC_ARG_WITH(nan-emulation, [AS_HELP_STRING([--with-nan-emulation], [use emulated NAN. For crosscompiling only.])],
  [
@@@ -1056,6 -1140,10 +1056,6 @@@ the
  fi
  AM_CONDITIONAL(BUILD_WITH_LIBOPING, test "x$with_liboping" = "xyes")
  AM_CONDITIONAL(BUILD_WITH_OWN_LIBOPING, test "x$with_own_liboping" = "xyes")
 -if test "x$with_liboping" = "xyes" -a "x$with_own_liboping" = "xyes"
 -then
 -      with_liboping="yes (shipped version)"
 -fi
  
  AC_ARG_WITH(libpcap, [AS_HELP_STRING([--with-libpcap@<:@=PREFIX@:>@], [Path to libpcap.])],
  [
  fi
  AM_CONDITIONAL(BUILD_WITH_LIBIPTC, test "x$with_libiptc" = "xyes")
  
 -AC_ARG_WITH(libupsclient, [AS_HELP_STRING([--with-libupsclient@<:@=PREFIX@:>@], [Path to libupsclient.])],
 +AC_ARG_WITH(libnetsnmp, [AS_HELP_STRING([--with-libnetsnmp@<:@=PREFIX@:>@], [Path to the Net-SNMPD library.])],
  [
        if test "x$withval" != "xno" && test "x$withval" != "xyes"
        then
                LDFLAGS="$LDFLAGS -L$withval/lib"
                CPPFLAGS="$CPPFLAGS -I$withval/include"
 +              with_libnetsnmp="yes"
 +      fi
 +],
 +[with_libnetsnmp="yes"])
 +if test "x$with_libnetsnmp" = "xyes"
 +then
 +      AC_CHECK_LIB(netsnmp, init_snmp,
 +      [
 +              AC_DEFINE(HAVE_LIBSNMP, 1, [Define to 1 if you have the Net-SNMP library (-lnetsnmp).])
 +      ], [with_libnetsnmp="no (libnetsnmp not found)"])
 +fi
 +if test "x$with_libnetsnmp" = "xyes"
 +then
 +      AC_CHECK_HEADERS(net-snmp/net-snmp-config.h,
 +      [
 +              AC_DEFINE(HAVE_NET_SNMP_NET_SNMP_CONFIG_H, 1, [Define to 1 if you have the <net-snmp/net-snmp-config.h> header file.])
 +      ], [with_libnetsnmp="no (net-snmp/net-snmp-config.h not found)"])
 +fi
 +AM_CONDITIONAL(BUILD_WITH_LIBNETSNMP, test "x$with_libnetsnmp" = "xyes")
 +
 +with_upsclient_config="libupsclient-config"
 +with_upsclient_cflags=""
 +with_upsclient_libs=""
 +AC_ARG_WITH(libupsclient, [AS_HELP_STRING([--with-libupsclient@<:@=PREFIX@:>@], [Path to libupsclient.])],
 +[
 +      if test "x$withval" = "xno"
 +      then
 +              with_libupsclient="no"
 +      else
                with_libupsclient="yes"
 +              if "x$withval" != "xyes"
 +              then
 +                      with_upsclient_config="$withval/bin/libupsclient-config"
 +              fi
        fi
  ],
  [
  ])
  if test "x$with_libupsclient" = "xyes"
  then
 +      with_upsclient_cflags=`$with_upsclient_config --cflags 2>/dev/null`
 +      upsclient_config_status=$?
 +
 +      if test $upsclient_config_status -ne 0
 +      then
 +              with_libupsclient="no"
 +      fi
 +fi
 +if test "x$with_libupsclient" = "xyes"
 +then
 +      with_upsclient_libs=`$with_upsclient_config --libs 2>/dev/null`
 +      upsclient_config_status=$?
 +
 +      if test $upsclient_config_status -ne 0
 +      then
 +              with_libupsclient="no"
 +      fi
 +fi
 +if test "x$with_libupsclient" = "xyes"
 +then
 +      CFLAGS_ORIG=$CFLAGS
 +      CFLAGS="$CFLAGS $with_upsclient_cflags"
 +      LDFLAGS_ORIG=$LDFLAGS
 +      LDFLAGS="$LDFLAGS $with_upsclient_libs"
        AC_CHECK_LIB(upsclient, upscli_connect,
        [
 -              AC_DEFINE(HAVE_LIBUPSCLIENT, 1, [Define to 1 if you have the upsclient library (-lupsclient).])
 -      ], [with_libupsclient="no (libupsclient not found)"])
 +              BUILD_WITH_LIBUPSCLIENT_CFLAGS="$with_upsclient_cflags"
 +              BUILD_WITH_LIBUPSCLIENT_LIBS="$with_upsclient_libs"
 +              AC_SUBST(BUILD_WITH_LIBUPSCLIENT_CFLAGS)
 +              AC_SUBST(BUILD_WITH_LIBUPSCLIENT_LIBS)
 +      ],
 +      [
 +              with_libupsclient="no"
 +      ])
 +      CFLAGS=$CFLAGS_ORIG
 +      LDFLAGS=$LDFLAGS_ORIG
  fi
  if test "x$with_libupsclient" = "xyes"
  then
 -      AC_CHECK_HEADERS(upsclient.h,
 -      [
 -              AC_DEFINE(HAVE_UPSCLIENT_H, 1, [Define to 1 if you have the <upsclient.h> header file.])
 -      ], [with_libupsclient="no (upsclient.h not found)"])
 +      AC_DEFINE(HAVE_LIBUPSCLIENT, 1, [Define to 1 if you have the upsclient library (-lupsclient).])
  fi
  AM_CONDITIONAL(BUILD_WITH_LIBUPSCLIENT, test "x$with_libupsclient" = "xyes")
  
 +### BEGIN of check for libxmms ###
 +with_xmms_config="xmms-config"
 +with_xmms_cflags=""
 +with_xmms_libs=""
 +AC_ARG_WITH(libxmms, [AS_HELP_STRING([--with-libxmms@<:@=PREFIX@:>@], [Path to libxmms.])],
 +[
 +      if test "x$withval" != "xno" -a "x$withval" != "xyes"
 +      then
 +              if test -x "$withval/bin/xmms-config"
 +              then
 +                      with_xmms_config="$withval/bin/xmms-config"
 +              fi
 +      fi
 +      if test "x$withval" = "xno"
 +      then
 +              with_libxmms="no"
 +      else
 +              with_libxmms="yes"
 +      fi
 +],
 +[
 +      with_libxmms="yes"
 +])
 +if test "x$with_libxmms" = "xyes"
 +then
 +      with_xmms_cflags=`$with_xmms_config --cflags 2>/dev/null`
 +      xmms_config_status=$?
 +
 +      if test $xmms_config_status -ne 0
 +      then
 +              with_libxmms="no"
 +      fi
 +fi
 +if test "x$with_libxmms" = "xyes"
 +then
 +      with_xmms_libs=`$with_xmms_config --libs 2>/dev/null`
 +      xmms_config_status=$?
 +
 +      if test $xmms_config_status -ne 0
 +      then
 +              with_libxmms="no"
 +      fi
 +fi
 +if test "x$with_libxmms" = "xyes"
 +then
 +      AC_CHECK_LIB(xmms, xmms_remote_get_info,
 +      [
 +              BUILD_WITH_LIBXMMS_CFLAGS="$with_xmms_cflags"
 +              BUILD_WITH_LIBXMMS_LIBS="$with_xmms_libs"
 +              AC_SUBST(BUILD_WITH_LIBXMMS_CFLAGS)
 +              AC_SUBST(BUILD_WITH_LIBXMMS_LIBS)
 +      ],
 +      [
 +              with_libxmms="no"
 +      ],
 +      [$with_xmms_libs])
 +fi
 +with_libxmms_numeric=0
 +if test "x$with_libxmms" = "xyes"
 +then
 +      with_libxmms_numeric=1
 +fi
 +AC_DEFINE_UNQUOTED(HAVE_LIBXMMS, [$with_libxmms_numeric], [Define to 1 if you have the 'xmms' library (-lxmms).])
 +AM_CONDITIONAL(BUILD_WITH_LIBXMMS, test "x$with_libxmms" = "xyes")
 +### END of check for libxmms ###
 +
  # Check for enabled/disabled features
  #
  
        ]dnl
  )# AC_COLLECTD(name, enable/disable, info-text, feature/module)
  
 +# AC_PLUGIN(name, default, info)
 +# ------------------------------------------------------------
 +dnl
 +AC_DEFUN(
 +  [AC_PLUGIN],
 +  [
 +    enable_plugin="no"
 +    AC_ARG_ENABLE([$1], AC_HELP_STRING([--enable-$1], [$3]),
 +    [
 +     if test "x$enableval" = "xyes"
 +     then
 +           enable_plugin="yes"
 +     else
 +           enable_plugin="no"
 +     fi
 +    ],
 +    [
 +     if test "x$2" = "xyes"
 +     then
 +           enable_plugin="yes"
 +     else
 +           enable_plugin="no"
 +     fi
 +    ])
 +    if test "x$enable_plugin" = "xyes"
 +    then
 +          AC_DEFINE([HAVE_PLUGIN_]my_toupper([$1]), 1, [Define to 1 if the $1 plugin is enabled.])
 +    fi
 +    AM_CONDITIONAL([BUILD_PLUGIN_]my_toupper([$1]), test "x$enable_plugin" = "xyes")
 +    enable_$1="$enable_plugin"
 +  ]
 +)# AC_PLUGIN(name, default, info)
 +
  m4_divert_once([HELP_ENABLE], [
  collectd features:])
 +# FIXME: Remove these calls to `AC_COLLECTD' and then remove that macro.
  AC_COLLECTD([debug],     [enable],  [feature], [debugging])
  AC_COLLECTD([daemon],    [disable], [feature], [daemon mode])
  AC_COLLECTD([getifaddrs],[enable],  [feature], [getifaddrs under Linux])
  
 +plugin_battery="no"
 +plugin_cpu="no"
 +plugin_cpufreq="no"
 +plugin_df="no"
 +plugin_disk="no"
 +plugin_entropy="no"
 +plugin_interface="no"
 +plugin_irq="no"
 +plugin_load="no"
 +plugin_memory="no"
 +plugin_multimeter="no"
 +plugin_nfs="no"
 +plugin_processes="no"
 +plugin_serial="no"
 +plugin_swap="no"
 +plugin_tape="no"
 +plugin_users="no"
 +plugin_vserver="no"
 +plugin_wireless="no"
 +
 +# Linux
 +if test "x$ac_system" = "xLinux"
 +then
 +      plugin_battery="yes"
 +      plugin_cpu="yes"
 +      plugin_cpufreq="yes"
 +      plugin_disk="yes"
 +      plugin_entropy="yes"
 +      plugin_interface="yes"
 +      plugin_irq="yes"
 +      plugin_load="yes"
 +      plugin_memory="yes"
 +      plugin_nfs="yes"
 +      plugin_processes="yes"
 +      plugin_serial="yes"
 +      plugin_swap="yes"
 +      plugin_vserver="yes"
 +      plugin_wireless="yes"
 +fi
 +
 +# Mac OS X devices
 +if test "x$with_libiokit" = "xyes"
 +then
 +      plugin_battery="yes"
 +      plugin_disk="yes"
 +fi
 +
 +# Solaris
 +if test "x$with_devinfo$with_kstat" = "xyesyes"
 +then
 +      plugin_cpu="yes"
 +      plugin_disk="yes"
 +      plugin_interface="yes"
 +      plugin_memory="yes"
 +      plugin_swap="yes"
 +      plugin_tape="yes"
 +fi
 +
 +# libstatgrab
 +if test "x$with_libstatgrab" = "xyes"
 +then
 +      plugin_interface="yes"
 +      plugin_load="yes"
 +      plugin_memory="yes"
 +      plugin_swap="yes"
 +fi
 +
 +if test "x$have_processor_info" = "xyes"
 +then
 +      plugin_cpu="yes"
 +fi
 +if test "x$have_sysctlbyname" = "xyes"
 +then
 +      plugin_cpu="yes"
 +      plugin_memory="yes"
 +fi
 +
 +if test "x$have_statfs" = "xyes"
 +then
 +      plugin_df="yes"
 +fi
 +if test "x$have_statvfs" = "xyes"
 +then
 +      plugin_df="yes"
 +fi
 +
 +if test "x$have_getifaddrs" = "xyes"
 +then
 +      plugin_interface="yes"
 +fi
 +
 +if test "x$have_getloadavg" = "xyes"
 +then
 +      plugin_load="yes"
 +fi
 +
 +# Mac OS X memory interface
 +if test "x$have_host_statistics" = "xyes"
 +then
 +      plugin_memory="yes"
 +fi
 +
 +if test "x$have_termios_h" = "xyes"
 +then
 +      plugin_multimeter="yes"
 +fi
 +
 +if test "x$have_thread_info" = "xyes"
 +then
 +      plugin_processes="yes"
 +fi
 +
 +if test "x$with_libkvm" = "xyes"
 +then
 +      plugin_swap="yes"
 +fi
 +
 +if test "x$have_getutent" = "xyes"
 +then
 +      plugin_users="yes"
 +fi
 +if test "x$have_getutxent" = "xyes"
 +then
 +      plugin_users="yes"
 +fi
 +
 +# FIXME: sysctl for swap plugin
 +
  m4_divert_once([HELP_ENABLE], [
 -collectd modules:])
 -AC_COLLECTD([apache],    [disable], [module], [Apache httpd statistics])
 -AC_COLLECTD([apcups],    [disable], [module], [Statistics of UPSes by APC])
 -AC_COLLECTD([apple_sensors], [disable], [module], [Apple's hardware sensors])
 -AC_COLLECTD([battery],   [disable], [module], [battery statistics])
 -AC_COLLECTD([cpu],       [disable], [module], [cpu usage statistics])
 -AC_COLLECTD([cpufreq],   [disable], [module], [system cpu frequency statistics])
 -AC_COLLECTD([disk],      [disable], [module], [disk/partition statistics])
 -AC_COLLECTD([csv],       [disable], [module], [csv output plugin])
 -AC_COLLECTD([df],        [disable], [module], [df statistics])
 -AC_COLLECTD([dns],       [disable], [module], [dns statistics])
 -AC_COLLECTD([email],     [disable], [module], [email statistics])
 -AC_COLLECTD([entropy],   [disable], [module], [entropy statistics])
 -AC_COLLECTD([exec],      [disable], [module], [exec of external programs])
 -AC_COLLECTD([hddtemp],   [disable], [module], [hdd temperature statistics])
 -AC_COLLECTD([interface], [disable], [module], [interface statistics])
 -AC_COLLECTD([iptables],  [disable], [module], [IPtables statistics])
 -AC_COLLECTD([irq],       [disable], [module], [irq statistics])
 -AC_COLLECTD([load],      [disable], [module], [system load statistics])
 -AC_COLLECTD([mbmon],     [disable], [module], [motherboard monitor statistics])
 -AC_COLLECTD([memory],    [disable], [module], [memory statistics])
 -AC_COLLECTD([multimeter],[disable], [module], [multimeter statistics])
 -AC_COLLECTD([mysql],     [disable], [module], [mysql statistics])
 -AC_COLLECTD([network],   [disable], [module], [network functionality])
 -AC_COLLECTD([nfs],       [disable], [module], [nfs statistics])
 -AC_COLLECTD([ntpd],      [disable], [module], [ntpd statistics])
 -AC_COLLECTD([nut],       [disable], [module], [network UPS tools statistics])
 -AC_COLLECTD([perl],      [disable], [module], [embedded perl interpreter])
 -AC_COLLECTD([ping],      [disable], [module], [ping statistics])
 -AC_COLLECTD([processes], [disable], [module], [processes statistics])
 -AC_COLLECTD([sensors],   [disable], [module], [lm_sensors statistics])
 -AC_COLLECTD([serial],    [disable], [module], [serial statistics])
 -AC_COLLECTD([logfile],   [disable], [module], [logfile log facility])
 -AC_COLLECTD([swap],      [disable], [module], [swap statistics])
 -AC_COLLECTD([syslog],    [disable], [module], [syslog log facility])
 -AC_COLLECTD([tape],      [disable], [module], [tape statistics])
 -AC_COLLECTD([unixsock],  [disable], [module], [UNIX socket plugin])
 -AC_COLLECTD([users],     [disable], [module], [user count statistics])
 -AC_COLLECTD([vserver],   [disable], [module], [vserver statistics])
 -AC_COLLECTD([wireless],  [disable], [module], [wireless link statistics])
 +collectd plugins:])
 +
 +AC_PLUGIN([apache],      [$with_libcurl],      [Apache httpd statistics])
 +AC_PLUGIN([apcups],      [yes],                [Statistics of UPSes by APC])
 +AC_PLUGIN([apple_sensors], [$with_libiokit],   [Apple's hardware sensors])
 +AC_PLUGIN([battery],     [$plugin_battery],    [Battery statistics])
 +AC_PLUGIN([cpu],         [$plugin_cpu],        [CPU usage statistics])
 +AC_PLUGIN([cpufreq],     [$plugin_cpufreq],    [CPU frequency statistics])
 +AC_PLUGIN([csv],         [yes],                [CSV output plugin])
 +AC_PLUGIN([df],          [$plugin_df],         [Filesystem usage statistics])
 +AC_PLUGIN([disk],        [$plugin_disk],       [Disk usage statistics])
 +AC_PLUGIN([dns],         [$with_libpcap],      [DNS traffic analysis])
 +AC_PLUGIN([email],       [yes],                [EMail statistics])
 +AC_PLUGIN([entropy],     [$plugin_entropy],    [Entropy statistics])
 +AC_PLUGIN([exec],        [yes],                [Execution of external programs])
 +AC_PLUGIN([hddtemp],     [yes],                [Query hddtempd])
 +AC_PLUGIN([interface],   [$plugin_interface],  [Interface traffic statistics])
 +AC_PLUGIN([iptables],    [$with_libiptc],      [IPTables rule counters])
 +AC_PLUGIN([irq],         [$plugin_irq],        [IRQ statistics])
 +AC_PLUGIN([load],        [$plugin_load],       [System load])
 +AC_PLUGIN([logfile],     [yes],                [File logging plugin])
 +AC_PLUGIN([mbmon],       [yes],                [Query mbmond])
 +AC_PLUGIN([memory],      [$plugin_memory],     [Memory usage])
 +AC_PLUGIN([multimeter],  [$plugin_multimeter], [Read multimeter values])
 +AC_PLUGIN([mysql],       [$with_libmysql],     [MySQL statistics])
 +AC_PLUGIN([network],     [yes],                [Network communication plugin])
 +AC_PLUGIN([nfs],         [$plugin_nfs],        [NFS statistics])
 +AC_PLUGIN([ntpd],        [yes],                [NTPd statistics])
 +AC_PLUGIN([nut],         [$with_libupsclient], [Network UPS tools statistics])
 +AC_PLUGIN([perl],        [$with_libperl],      [Embed a Perl interpreter])
 +AC_PLUGIN([ping],        [$with_liboping],     [Network latency statistics])
 +AC_PLUGIN([processes],   [$plugin_processes],  [Process statistics])
 +AC_PLUGIN([rrdtool],     [$with_rrdtool],      [RRDTool output plugin])
 +AC_PLUGIN([sensors],     [$with_lm_sensors],   [lm_sensors statistics])
 +AC_PLUGIN([serial],      [$plugin_serial],     [serial port traffic])
 +AC_PLUGIN([snmp],        [$with_libnetsnmp],   [SNMP querying plugin])
 +AC_PLUGIN([swap],        [$plugin_swap],       [Swap usage statistics])
 +AC_PLUGIN([syslog],      [$have_syslog],       [Syslog logging plugin])
 +AC_PLUGIN([tape],        [$plugin_tape],       [Tape drive statistics])
 +AC_PLUGIN([unixsock],    [yes],                [Unixsock communication plugin])
 +AC_PLUGIN([users],       [$plugin_users],      [User statistics])
 +AC_PLUGIN([vserver],     [$plugin_vserver],    [Linux VServer statistics])
 +AC_PLUGIN([wireless],    [$plugin_wireless],   [Wireless statistics])
 +AC_PLUGIN([xmms],        [$with_libxmms],      [XMMS statistics])
  
  AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/liboconfig/Makefile src/liboping/Makefile)
  
 +if test "x$with_liboping" = "xyes" -a "x$with_own_liboping" = "xyes"
 +then
 +      with_liboping="yes (shipped version)"
 +fi
 +
  if test "x$with_libperl" = "xyes"
  then
        with_libperl="yes (version `perl -MConfig -e 'print $Config{version};'`)"
@@@ -1644,9 -1433,7 +1644,9 @@@ Configuration
      libiokit  . . . . . $with_libiokit
      libiptc . . . . . . $with_libiptc
      libkstat  . . . . . $with_kstat
 +    libkvm  . . . . . . $with_libkvm
      libmysql  . . . . . $with_libmysql
 +    libnetsnmp  . . . . $with_libnetsnmp
      liboconfig  . . . . $with_liboconfig
      liboping  . . . . . $with_liboping
      libpcap . . . . . . $with_libpcap
      libsensors  . . . . $with_lm_sensors
      libstatgrab . . . . $with_libstatgrab
      libupsclient  . . . $with_libupsclient
 +    libxmms . . . . . . $with_libxmms
  
    Features:
      daemon mode . . . . $enable_daemon
      processes . . . . . $enable_processes
      sensors . . . . . . $enable_sensors
      serial  . . . . . . $enable_serial
 +    snmp  . . . . . . . $enable_snmp
      swap  . . . . . . . $enable_swap
      syslog  . . . . . . $enable_syslog
      tape  . . . . . . . $enable_tape
      users . . . . . . . $enable_users
      vserver . . . . . . $enable_vserver
      wireless  . . . . . $enable_wireless
 +    xmms  . . . . . . . $enable_xmms
  
  EOF
diff --combined src/collectd.conf.in
index 780d04d8fc748dd72092ecda9da50651ba8ae558,b7f3298dec3be50ff3e19b4afc6380065a4d3ec2..d7b4ff4648f3ce2e2917de2f57ff07fe43f03f7f
  #Interval     10
  #ReadThreads  5
  
 -@BUILD_MODULE_APACHE_TRUE@LoadPlugin apache
 -@BUILD_MODULE_APCUPS_TRUE@LoadPlugin apcups
 -@BUILD_MODULE_APPLE_SENSORS_TRUE@LoadPlugin apple_sensors
 -@BUILD_MODULE_BATTERY_TRUE@LoadPlugin battery
 -@BUILD_MODULE_CPU_TRUE@LoadPlugin cpu
 -@BUILD_MODULE_CPUFREQ_TRUE@LoadPlugin cpufreq
 -@BUILD_MODULE_CSV_TRUE@LoadPlugin csv
 -@BUILD_MODULE_DF_TRUE@LoadPlugin df
 -@BUILD_MODULE_DISK_TRUE@LoadPlugin disk
 -@BUILD_MODULE_DNS_TRUE@LoadPlugin dns
 -@BUILD_MODULE_EMAIL_TRUE@LoadPlugin email
 -@BUILD_MODULE_ENTROPY_TRUE@LoadPlugin entropy
 -@BUILD_MODULE_EXEC_TRUE@LoadPlugin exec
 -@BUILD_MODULE_HDDTEMP_TRUE@LoadPlugin hddtemp
 -@BUILD_MODULE_INTERFACE_TRUE@LoadPlugin interface
 -@BUILD_MODULE_IPTABLES_TRUE@LoadPlugin iptables
 -@BUILD_MODULE_IRQ_TRUE@LoadPlugin irq
 -@BUILD_MODULE_LOAD_TRUE@LoadPlugin load
 -@BUILD_MODULE_LOGFILE_TRUE@LoadPlugin logfile
 -@BUILD_MODULE_MBMON_TRUE@LoadPlugin mbmon
 -@BUILD_MODULE_MEMORY_TRUE@LoadPlugin memory
 -@BUILD_MODULE_MULTIMETER_TRUE@LoadPlugin multimeter
 -@BUILD_MODULE_MYSQL_TRUE@LoadPlugin mysql
 -@BUILD_MODULE_NETWORK_TRUE@LoadPlugin network
 -@BUILD_MODULE_NFS_TRUE@LoadPlugin nfs
 -@BUILD_MODULE_NTPD_TRUE@LoadPlugin ntpd
 -@BUILD_MODULE_NUT_TRUE@LoadPlugin nut
 -@BUILD_MODULE_PERL_TRUE@LoadPlugin perl
 -@BUILD_MODULE_PING_TRUE@LoadPlugin ping
 -@BUILD_MODULE_PROCESSES_TRUE@LoadPlugin processes
 -@BUILD_WITH_RRDTOOL_TRUE@LoadPlugin rrdtool
 -@BUILD_MODULE_SENSORS_TRUE@LoadPlugin sensors
 -@BUILD_MODULE_SERIAL_TRUE@LoadPlugin serial
 -@BUILD_MODULE_SWAP_TRUE@LoadPlugin swap
 -@BUILD_MODULE_SYSLOG_TRUE@LoadPlugin syslog
 -@BUILD_MODULE_TAPE_TRUE@LoadPlugin tape
 -@BUILD_MODULE_UNIXSOCK_TRUE@LoadPlugin unixsock
 -@BUILD_MODULE_USERS_TRUE@LoadPlugin users
 -@BUILD_MODULE_VSERVER_TRUE@LoadPlugin vserver
 -@BUILD_MODULE_WIRELESS_TRUE@LoadPlugin wireless
 +@BUILD_PLUGIN_APACHE_TRUE@LoadPlugin apache
 +@BUILD_PLUGIN_APCUPS_TRUE@LoadPlugin apcups
 +@BUILD_PLUGIN_APPLE_SENSORS_TRUE@LoadPlugin apple_sensors
 +@BUILD_PLUGIN_BATTERY_TRUE@LoadPlugin battery
 +@BUILD_PLUGIN_CPU_TRUE@LoadPlugin cpu
 +@BUILD_PLUGIN_CPUFREQ_TRUE@LoadPlugin cpufreq
 +@BUILD_PLUGIN_CSV_TRUE@LoadPlugin csv
 +@BUILD_PLUGIN_DF_TRUE@LoadPlugin df
 +@BUILD_PLUGIN_DISK_TRUE@LoadPlugin disk
 +@BUILD_PLUGIN_DNS_TRUE@LoadPlugin dns
 +@BUILD_PLUGIN_EMAIL_TRUE@LoadPlugin email
 +@BUILD_PLUGIN_ENTROPY_TRUE@LoadPlugin entropy
 +@BUILD_PLUGIN_EXEC_TRUE@LoadPlugin exec
 +@BUILD_PLUGIN_HDDTEMP_TRUE@LoadPlugin hddtemp
 +@BUILD_PLUGIN_INTERFACE_TRUE@LoadPlugin interface
 +@BUILD_PLUGIN_IPTABLES_TRUE@LoadPlugin iptables
 +@BUILD_PLUGIN_IRQ_TRUE@LoadPlugin irq
 +@BUILD_PLUGIN_LOAD_TRUE@LoadPlugin load
 +@BUILD_PLUGIN_LOGFILE_TRUE@LoadPlugin logfile
 +@BUILD_PLUGIN_MBMON_TRUE@LoadPlugin mbmon
 +@BUILD_PLUGIN_MEMORY_TRUE@LoadPlugin memory
 +@BUILD_PLUGIN_MULTIMETER_TRUE@LoadPlugin multimeter
 +@BUILD_PLUGIN_MYSQL_TRUE@LoadPlugin mysql
 +@BUILD_PLUGIN_NETWORK_TRUE@LoadPlugin network
 +@BUILD_PLUGIN_NFS_TRUE@LoadPlugin nfs
 +@BUILD_PLUGIN_NTPD_TRUE@LoadPlugin ntpd
 +@BUILD_PLUGIN_NUT_TRUE@LoadPlugin nut
 +@BUILD_PLUGIN_PERL_TRUE@LoadPlugin perl
 +@BUILD_PLUGIN_PING_TRUE@LoadPlugin ping
 +@BUILD_PLUGIN_PROCESSES_TRUE@LoadPlugin processes
 +@BUILD_PLUGIN_RRDTOOL_TRUE@LoadPlugin rrdtool
 +@BUILD_PLUGIN_SENSORS_TRUE@LoadPlugin sensors
 +@BUILD_PLUGIN_SERIAL_TRUE@LoadPlugin serial
 +@BUILD_PLUGIN_SWAP_TRUE@LoadPlugin swap
 +@BUILD_PLUGIN_SYSLOG_TRUE@LoadPlugin syslog
 +@BUILD_PLUGIN_TAPE_TRUE@LoadPlugin tape
 +@BUILD_PLUGIN_UNIXSOCK_TRUE@LoadPlugin unixsock
 +@BUILD_PLUGIN_USERS_TRUE@LoadPlugin users
 +@BUILD_PLUGIN_VSERVER_TRUE@LoadPlugin vserver
 +@BUILD_PLUGIN_WIRELESS_TRUE@LoadPlugin wireless
  
  #<Plugin apache>
  #     URL "http://localhost/status?auto"
@@@ -83,6 -83,7 +83,7 @@@
  #</Plugin>
  
  #<Plugin email>
+ #     SocketFile "@prefix@/var/run/@PACKAGE_NAME@-email"
  #     SocketGroup "collectd"
  #     SocketPerms "0770"
  #     MaxConns 5
diff --combined src/sensors.c
index 3e1d4f9aa6ba9d78997c4574b679670de2b5b9e3,fde8dcd7ec00e2a93e6d4826a92d0d67775c9cc5..a30549fea5ebf1b8dcbde4447632b9c8261aa3f1
  
  #if defined(HAVE_SENSORS_SENSORS_H)
  # include <sensors/sensors.h>
 -#else
 -# undef HAVE_LIBSENSORS
  #endif
  
 -#if defined(HAVE_LIBSENSORS)
 -# define SENSORS_HAVE_READ 1
 -#else
 -# define SENSORS_HAVE_READ 0
 -#endif
 -
 -#if SENSORS_HAVE_READ
  #define SENSOR_TYPE_VOLTAGE     0
  #define SENSOR_TYPE_FANSPEED    1
  #define SENSOR_TYPE_TEMPERATURE 2
@@@ -338,12 -347,24 +338,24 @@@ static void sensors_submit (const char 
                const char *type, const char *type_instance,
                double val)
  {
+       char match_key[1024];
+       int status;
        value_t values[1];
        value_list_t vl = VALUE_LIST_INIT;
  
-       if ((sensor_list != NULL)
-                       && (ignorelist_match (sensor_list, type_instance)))
+       status = snprintf (match_key, sizeof (match_key), "%s/%s-%s",
+                       plugin_instance, type, type_instance);
+       if ((status < 1) || (status >= sizeof (match_key)))
                return;
+       match_key[sizeof (match_key) - 1] = '\0';
+       if (sensor_list != NULL)
+       {
+               DEBUG ("sensors plugin: Checking ignorelist for `%s'", match_key);
+               if (ignorelist_match (sensor_list, match_key))
+                       return;
+       }
  
        values[0].gauge = val;
  
@@@ -412,11 -433,14 +424,11 @@@ static int sensors_read (void
  
        return (0);
  } /* int sensors_read */
 -#endif /* SENSORS_HAVE_READ */
  
  void module_register (void)
  {
 -#if SENSORS_HAVE_READ
        plugin_register_config ("sensors", sensors_config,
                        config_keys, config_keys_num);
        plugin_register_read ("sensors", sensors_read);
        plugin_register_shutdown ("sensors", sensors_shutdown);
 -#endif
  } /* void module_register */