Hello community,

here is the log from the commit of package collectd for openSUSE:Factory 
checked in at 2017-10-30 21:19:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/collectd (Old)
 and      /work/SRC/openSUSE:Factory/.collectd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "collectd"

Mon Oct 30 21:19:00 2017 rev:27 rq:537437 version:5.7.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/collectd/collectd.changes        2017-08-24 
18:43:54.909094495 +0200
+++ /work/SRC/openSUSE:Factory/.collectd.new/collectd.changes   2017-10-30 
21:19:06.913821935 +0100
@@ -1,0 +2,10 @@
+Fri Sep  8 15:28:48 UTC 2017 - [email protected]
+
+- Sort list of plugins bundled in main package, add line breaks
+- Add BuildRequires for libsigrok and create a sigrok plugin
+  subpackage
+- Add 9e36cd85a2bb_sigrok_Update_to_support_libsigrok_0_4.patch
+  Apply patch conditionally for libsigrok >= 0.4.0, the API
+  is different from the libsigrok 0.3.0 API.
+
+-------------------------------------------------------------------

New:
----
  9e36cd85a2bb_sigrok_Update_to_support_libsigrok_0_4.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ collectd.spec ++++++
--- /var/tmp/diff_new_pack.yFoynm/_old  2017-10-30 21:19:07.969783542 +0100
+++ /var/tmp/diff_new_pack.yFoynm/_new  2017-10-30 21:19:07.973783397 +0100
@@ -17,7 +17,23 @@
 #
 
 
-%define plugins apache apcups battery bind cgroups chrony curl curl_json 
curl_xml conntrack contextswitch cpu cpufreq cpusleep csv df disk dns email 
entropy exec filecount fscache hddtemp hugepages interface ipvs irq load 
logfile match_empty_counter match_hashed match_regex match_timediff match_value 
mbmon memcached memory multimeter netlink network nfs nginx notify_nagios ntpd 
olsrd openvpn perl ping protocols powerdns processes rrdtool 
%{expand:%{sensors_plugin}} serial statsd swap syslog table tail 
target_notification target_replace target_scale target_set target_v5upgrade 
tcpconns teamspeak2 ted thermal threshold unixsock uptime users uuid vmem 
vserver wireless write_http ascent iptables madwifi rrdcached aggregation 
ethstat md numa tail_csv write_graphite ceph drbd fhcount ipc log_logstash 
write_log write_sensu write_tsdb write_prometheus zfs_arc zookeeper
+%define plugins apache apcups aggregation ascent battery bind \\\
+  ceph cgroups chrony curl curl_json curl_xml conntrack contextswitch cpu 
cpufreq cpusleep csv \\\
+  df disk dns drbd \\\
+  email entropy ethstat exec fhcount filecount fscache hddtemp hugepages \\\
+  interface ipc iptables ipvs irq \\\
+  load logfile log_logstash \\\
+  madwifi match_empty_counter match_hashed match_regex match_timediff 
match_value \\\
+  mbmon md memcached memory multimeter \\\
+  netlink network nfs nginx notify_nagios ntpd numa olsrd openvpn \\\
+  perl ping protocols powerdns processes \\\
+  rrdcached rrdtool %{expand:%{sensors_plugin}} serial statsd swap syslog \\\
+  table tail tail_csv target_notification target_replace target_scale 
target_set target_v5upgrade \\\
+  tcpconns teamspeak2 ted thermal threshold \\\
+  unixsock uptime users uuid vmem vserver \\\
+  wireless write_graphite write_http write_log write_sensu write_tsdb 
write_prometheus \\\
+  zfs_arc zookeeper
+
 %ifnarch s390 s390x
 %define sensors    1
 %define sensors_plugin sensors
@@ -47,6 +63,7 @@
 Patch20:        collectd-split_README.patch
 Patch21:        collectd-fix_collectd_config_path_in_snmp_probe.patch
 Patch23:        collectd-javac_target.patch
+Patch24:        9e36cd85a2bb_sigrok_Update_to_support_libsigrok_0_4.patch
 # for /etc/apache2/... ownership (rpmlint):
 BuildRequires:  apache2
 BuildRequires:  autoconf
@@ -99,6 +116,7 @@
 BuildRequires:  pkgconfig(libnotify)
 BuildRequires:  pkgconfig(liboping)
 BuildRequires:  pkgconfig(librrd)
+BuildRequires:  pkgconfig(libsigrok)
 BuildRequires:  pkgconfig(libstatgrab)
 BuildRequires:  pkgconfig(libudev)
 BuildRequires:  pkgconfig(libupsclient)
@@ -289,6 +307,15 @@
 Optional %{name} plugin to receive and dispatch timing values from Pinba, a
 profiling extension for PHP.
 
+%package plugin-sigrok
+Summary:        Sigrok Monitoring Plugin for %{name}
+Group:          System/Monitoring
+Requires:       %{name} = %{version}-%{release}
+
+%description plugin-sigrok
+Optional %{name} plugin to collect measurements from
+various devices supported by libsigrok.
+
 %package plugin-smart
 Summary:        SMART Monitoring Plugin for %{name}
 Group:          System/Monitoring
@@ -332,6 +359,7 @@
 Requires:       %{name}-plugin-pinba = %{version}-%{release}
 Requires:       %{name}-plugin-postgresql = %{version}-%{release}
 Requires:       %{name}-plugin-python3 = %{version}-%{release}
+Requires:       %{name}-plugin-sigrok = %{version}-%{release}
 Requires:       %{name}-plugin-smart = %{version}-%{release}
 Requires:       %{name}-plugin-snmp = %{version}-%{release}
 Requires:       %{name}-plugin-virt = %{version}-%{release}
@@ -386,6 +414,9 @@
 %patch20
 %patch21
 %patch23 -p1
+%if 0%{?suse_version} > 1320
+%patch24 -p1
+%endif
 
 sed -i 's|@@VERSION@@|%{version}|g' configure.ac
 
@@ -643,6 +674,10 @@
 %{_libdir}/collectd/memcachec.so
 %{_libdir}/collectd/memcachec.la
 
+%files plugin-sigrok
+%{_libdir}/collectd/sigrok.so
+%{_libdir}/collectd/sigrok.la
+
 %files plugin-smart
 %{_libdir}/collectd/smart.so
 %{_libdir}/collectd/smart.la

++++++ 9e36cd85a2bb_sigrok_Update_to_support_libsigrok_0_4.patch ++++++
>From 9e36cd85a2bbd6daa55f1f392f60f9c95573ae2c Mon Sep 17 00:00:00 2001
From: Jonathan McDowell <[email protected]>
Date: Wed, 30 Aug 2017 18:48:55 +0100
Subject: [PATCH] sigrok: Update to support libsigrok 0.4

libsigrok 0.4 changes API in an incompatible manner to previous
versions. Fix up the plugin to work with this version.

Note: Compile tested only; my sigrok device has no analog channels

Closes: collectd/collectd#1574
[sbruens: adapted to 5.7 branch (ssnprintf vs snprintf)]
---
 configure.ac |  2 +-
 src/sigrok.c | 51 +++++++++++++++++++++++++++------------------------
 2 files changed, 28 insertions(+), 25 deletions(-)

diff --git a/configure.ac b/configure.ac
index f50df28a6d..6b7aad43ae 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5084,7 +5084,7 @@ AC_SUBST([BUILD_WITH_LIBSENSORS_LIBS])
 # libsigrok {{{
 AC_SUBST([LIBSIGROK_CFLAGS])
 AC_SUBST([LIBSIGROK_LIBS])
-PKG_CHECK_MODULES([LIBSIGROK], [libsigrok < 0.4],
+PKG_CHECK_MODULES([LIBSIGROK], [libsigrok >= 0.4],
   [with_libsigrok="yes"],
   [with_libsigrok="no (pkg-config could not find libsigrok)"]
 )
diff --git a/src/sigrok.c b/src/sigrok.c
index 8a325fe9f0..a44c95e4b8 100644
--- a/src/sigrok.c
+++ b/src/sigrok.c
@@ -127,22 +127,22 @@ static int sigrok_config(oconfig_item_t *ci) {
   return 0;
 }
 
-static const char *sigrok_value_type(const struct sr_datafeed_analog *analog) {
+static const char *sigrok_value_type(const struct sr_analog_meaning *meaning) {
   const char *s;
 
-  if (analog->mq == SR_MQ_VOLTAGE)
+  if (meaning->mq == SR_MQ_VOLTAGE)
     s = "voltage";
-  else if (analog->mq == SR_MQ_CURRENT)
+  else if (meaning->mq == SR_MQ_CURRENT)
     s = "current";
-  else if (analog->mq == SR_MQ_FREQUENCY)
+  else if (meaning->mq == SR_MQ_FREQUENCY)
     s = "frequency";
-  else if (analog->mq == SR_MQ_POWER)
+  else if (meaning->mq == SR_MQ_POWER)
     s = "power";
-  else if (analog->mq == SR_MQ_TEMPERATURE)
+  else if (meaning->mq == SR_MQ_TEMPERATURE)
     s = "temperature";
-  else if (analog->mq == SR_MQ_RELATIVE_HUMIDITY)
+  else if (meaning->mq == SR_MQ_RELATIVE_HUMIDITY)
     s = "humidity";
-  else if (analog->mq == SR_MQ_SOUND_PRESSURE_LEVEL)
+  else if (meaning->mq == SR_MQ_SOUND_PRESSURE_LEVEL)
     s = "spl";
   else
     s = "gauge";
@@ -172,7 +172,7 @@ static void sigrok_feed_callback(const struct sr_dev_inst 
*sdi,
     ERROR("sigrok plugin: Received data from driver \"%s\" but "
           "can't find a configuration / device matching "
           "it.",
-          sdi->driver->name);
+          sr_dev_inst_driver_get(sdi)->name);
     return;
   }
 
@@ -191,11 +191,11 @@ static void sigrok_feed_callback(const struct sr_dev_inst 
*sdi,
 
   /* Ignore all but the first sample on the first probe. */
   analog = packet->payload;
-  vl.values = &(value_t){.gauge = analog->data[0]};
+  vl.values = &(value_t){.gauge = ((float *) analog->data)[0]};
   vl.values_len = 1;
   sstrncpy(vl.plugin, "sigrok", sizeof(vl.plugin));
   sstrncpy(vl.plugin_instance, cfdev->name, sizeof(vl.plugin_instance));
-  sstrncpy(vl.type, sigrok_value_type(analog), sizeof(vl.type));
+  sstrncpy(vl.type, sigrok_value_type(&analog->meaning[0]), sizeof(vl.type));
 
   plugin_dispatch_values(&vl);
   cfdev->last_dispatch = cdtime();
@@ -207,6 +207,7 @@ static void sigrok_free_drvopts(struct sr_config *src) {
 }
 
 static int sigrok_init_driver(struct config_device *cfdev,
+                              struct sr_session *session,
                               struct sr_dev_driver *drv) {
   struct sr_config *src;
   GSList *devlist, *drvopts;
@@ -248,21 +249,22 @@ static int sigrok_init_driver(struct config_device *cfdev,
   cfdev->sdi = devlist->data;
   g_slist_free(devlist);
   ssnprintf(hwident, sizeof(hwident), "%s %s %s",
-            cfdev->sdi->vendor ? cfdev->sdi->vendor : "",
-            cfdev->sdi->model ? cfdev->sdi->model : "",
-            cfdev->sdi->version ? cfdev->sdi->version : "");
+            sr_dev_inst_vendor_get(cfdev->sdi),
+            sr_dev_inst_model_get(cfdev->sdi),
+            sr_dev_inst_version_get(cfdev->sdi));
   INFO("sigrok plugin: Device \"%s\" is a %s", cfdev->name, hwident);
 
   if (sr_dev_open(cfdev->sdi) != SR_OK)
     return -1;
 
-  if (sr_session_dev_add(cfdev->sdi) != SR_OK)
+  if (sr_session_dev_add(session, cfdev->sdi) != SR_OK)
     return -1;
 
   return 1;
 }
 
 static void *sigrok_read_thread(void *arg __attribute__((unused))) {
+  struct sr_session *session;
   struct sr_dev_driver *drv, **drvlist;
   GSList *l;
   struct config_device *cfdev;
@@ -277,11 +279,11 @@ static void *sigrok_read_thread(void *arg 
__attribute__((unused))) {
     return NULL;
   }
 
-  if (!sr_session_new())
+  if (!sr_session_new(sr_ctx, &session))
     return NULL;
 
   num_devices = 0;
-  drvlist = sr_driver_list();
+  drvlist = sr_driver_list(sr_ctx);
   for (l = config_devices; l; l = l->next) {
     cfdev = l->data;
     drv = NULL;
@@ -296,7 +298,7 @@ static void *sigrok_read_thread(void *arg 
__attribute__((unused))) {
       return NULL;
     }
 
-    if ((ret = sigrok_init_driver(cfdev, drv)) < 0)
+    if ((ret = sigrok_init_driver(cfdev, session, drv)) < 0)
       /* Error was already logged. */
       return NULL;
 
@@ -305,21 +307,22 @@ static void *sigrok_read_thread(void *arg 
__attribute__((unused))) {
 
   if (num_devices > 0) {
     /* Do this only when we're sure there's hardware to talk to. */
-    if (sr_session_datafeed_callback_add(sigrok_feed_callback, NULL) != SR_OK)
+    if (sr_session_datafeed_callback_add(session, sigrok_feed_callback,
+                                         NULL) != SR_OK)
       return NULL;
 
     /* Start acquisition on all devices. */
-    if (sr_session_start() != SR_OK)
+    if (sr_session_start(session) != SR_OK)
       return NULL;
 
     /* Main loop, runs forever. */
-    sr_session_run();
+    sr_session_run(session);
 
-    sr_session_stop();
-    sr_session_dev_remove_all();
+    sr_session_stop(session);
+    sr_session_dev_remove_all(session);
   }
 
-  sr_session_destroy();
+  sr_session_destroy(session);
 
   sr_exit(sr_ctx);
 

Reply via email to