commit:     7dbfccac96626dd3bcc4b54577427924e40410f8
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 30 19:49:25 2018 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Fri Nov 30 19:49:57 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7dbfccac

app-metrics/collectd: allow lm_sensors-4.5.0 usage

Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 app-metrics/collectd/collectd-5.8.1.ebuild         |  2 +
 ...ectd-5.8.1-lm_sensors-4.5.0-compatibility.patch | 70 ++++++++++++++++++++++
 2 files changed, 72 insertions(+)

diff --git a/app-metrics/collectd/collectd-5.8.1.ebuild 
b/app-metrics/collectd/collectd-5.8.1.ebuild
index 9ce52b83d6c..d58a3a63c4d 100644
--- a/app-metrics/collectd/collectd-5.8.1.ebuild
+++ b/app-metrics/collectd/collectd-5.8.1.ebuild
@@ -159,6 +159,8 @@ REQUIRED_USE="
        collectd_plugins_python?                ( ${PYTHON_REQUIRED_USE} )
        collectd_plugins_smart?                 ( udev )"
 
+PATCHES=( "${FILESDIR}"/${PN}-5.8.1-lm_sensors-4.5.0-compatibility.patch )
+
 # @FUNCTION: collectd_plugin_kernel_linux
 # @DESCRIPTION:
 # USAGE: <plugin name> <kernel_options> <severity>

diff --git 
a/app-metrics/collectd/files/collectd-5.8.1-lm_sensors-4.5.0-compatibility.patch
 
b/app-metrics/collectd/files/collectd-5.8.1-lm_sensors-4.5.0-compatibility.patch
new file mode 100644
index 00000000000..3476d50664a
--- /dev/null
+++ 
b/app-metrics/collectd/files/collectd-5.8.1-lm_sensors-4.5.0-compatibility.patch
@@ -0,0 +1,70 @@
+https://github.com/collectd/collectd/issues/3006
+
+--- old/src/sensors.c
++++ new/src/sensors.c
+@@ -149,7 +149,7 @@
+ static char *conffile = SENSORS_CONF_PATH;
+ /* #endif SENSORS_API_VERSION < 0x400 */
+ 
+-#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500)
++#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600)
+ typedef struct featurelist {
+   const sensors_chip_name *chip;
+   const sensors_feature *feature;
+@@ -159,9 +159,9 @@
+ 
+ static char *conffile = NULL;
+ static _Bool use_labels = 0;
+-/* #endif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) */
++/* #endif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600) */
+ 
+-#else /* if SENSORS_API_VERSION >= 0x500 */
++#else /* if SENSORS_API_VERSION >= 0x600 */
+ #error "This version of libsensors is not supported yet. Please report this " 
\
+       "as bug."
+ #endif
+@@ -223,7 +223,7 @@
+     if (IS_TRUE(value))
+       ignorelist_set_invert(sensor_list, 0);
+   }
+-#if (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500)
++#if (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600)
+   else if (strcasecmp(key, "UseLabels") == 0) {
+     use_labels = IS_TRUE(value) ? 1 : 0;
+   }
+@@ -353,7 +353,7 @@
+   }   /* while sensors_get_detected_chips */
+ /* #endif SENSORS_API_VERSION < 0x400 */
+ 
+-#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500)
++#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600)
+   chip_num = 0;
+   while ((chip = sensors_get_detected_chips(NULL, &chip_num)) != NULL) {
+     const sensors_feature *feature;
+@@ -410,7 +410,7 @@
+       } /* while (subfeature) */
+     }   /* while (feature) */
+   }     /* while (chip) */
+-#endif /* (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) */
++#endif /* (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600) */
+ 
+   if (first_feature == NULL) {
+     sensors_cleanup();
+@@ -485,7 +485,7 @@
+   } /* for fl = first_feature .. NULL */
+ /* #endif SENSORS_API_VERSION < 0x400 */
+ 
+-#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500)
++#elif (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600)
+   for (featurelist_t *fl = first_feature; fl != NULL; fl = fl->next) {
+     double value;
+     int status;
+@@ -528,7 +528,7 @@
+ 
+     sensors_submit(plugin_instance, type, type_instance, value);
+   } /* for fl = first_feature .. NULL */
+-#endif /* (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x500) */
++#endif /* (SENSORS_API_VERSION >= 0x400) && (SENSORS_API_VERSION < 0x600) */
+ 
+   return 0;
+ } /* int sensors_read */

Reply via email to