Hello community,

here is the log from the commit of package sensors for openSUSE:Factory checked 
in at 2012-03-19 10:04:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sensors (Old)
 and      /work/SRC/openSUSE:Factory/.sensors.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sensors", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/sensors/sensors.changes  2012-02-15 
16:18:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.sensors.new/sensors.changes     2012-03-19 
10:04:19.000000000 +0100
@@ -1,0 +2,14 @@
+Thu Mar  8 10:35:17 CET 2012 - [email protected]
+
+- lm_sensors-r5993-fix-loading-of-cpuid-module.patch: Fix loading
+  of the cpuid module.
+- lm_sensors-r6016-handle-superio-wo-logdev.patch: Properly handle
+  Super-I/O chips without logical device.
+- lm_sensors-r6017-fix-sysfs-detection.patch: libsensors: Change
+  sysfs detection to survive upcoming kernel changes (bnc#751180).
+- lm_sensors-r6025-sensord-fix-memory-leaks.patch: sensord: Fix
+  memory leaks revealed by valgrind (bnc#751177).
+- lm_sensors-r6030-fix-power-interval-output.patch: Fix power
+  interval output.
+
+-------------------------------------------------------------------

New:
----
  lm_sensors-r5993-fix-loading-of-cpuid-module.patch
  lm_sensors-r6016-handle-superio-wo-logdev.patch
  lm_sensors-r6017-fix-sysfs-detection.patch
  lm_sensors-r6025-sensord-fix-memory-leaks.patch
  lm_sensors-r6030-fix-power-interval-output.patch

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

Other differences:
------------------
++++++ sensors.spec ++++++
--- /var/tmp/diff_new_pack.NpD2pt/_old  2012-03-19 10:04:23.000000000 +0100
+++ /var/tmp/diff_new_pack.NpD2pt/_new  2012-03-19 10:04:23.000000000 +0100
@@ -37,6 +37,11 @@
 Patch4:         lm_sensors-3.0.3-hint-at-kernel-extra-package.patch
 Patch5:         lm_sensors-r5991-improve-filtering-of-fake-DMI-data.patch
 Patch6:         lm_sensors-r5992-print-DMI-product-version.patch
+Patch7:         lm_sensors-r5993-fix-loading-of-cpuid-module.patch
+Patch8:         lm_sensors-r6016-handle-superio-wo-logdev.patch
+Patch9:         lm_sensors-r6017-fix-sysfs-detection.patch
+Patch10:        lm_sensors-r6025-sensord-fix-memory-leaks.patch
+Patch11:        lm_sensors-r6030-fix-power-interval-output.patch
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 ExcludeArch:    s390 s390x
@@ -141,6 +146,11 @@
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
 
 %build
 RPM_OPT_FLAGS="$RPM_OPT_FLAGS"

++++++ lm_sensors-r5993-fix-loading-of-cpuid-module.patch ++++++
Fix loading of the cpuid module. On non-udev systems, or even on udev
systems where /dev/cpu/0/cpuid is part of the static device node tree,
the previous test would succeed even when the cpuid module isn't
loaded, resulting in missing detections (of coretemp-supported CPU
models in particuler.) Check if the module is loaded by looking in
sysfs instead, this is much more reliable.

---
 prog/detect/sensors-detect |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- lm_sensors-3.3.1.orig/prog/detect/sensors-detect
+++ lm_sensors-3.3.1/prog/detect/sensors-detect
@@ -6636,7 +6636,7 @@ sub main
              "Do you want to scan for them? This is totally safe. (YES/no): ";
        unless (<STDIN> =~ /^\s*n/i) {
                # Load the cpuid driver if needed
-               unless (-e "/dev/cpu/$cpu[0]->{nr}/cpuid") {
+               unless (-e "$sysfs_root/class/cpuid") {
                        load_module("cpuid");
                        udev_settle();
                }
++++++ lm_sensors-r6016-handle-superio-wo-logdev.patch ++++++
Properly handle Super-I/O chips without logical device. Just report
that we can't support the chip yet, instead of spitting I/O errors.

---
 prog/detect/sensors-detect |    4 ++++
 1 file changed, 4 insertions(+)

--- lm_sensors-3.3.1.orig/prog/detect/sensors-detect
+++ lm_sensors-3.3.1/prog/detect/sensors-detect
@@ -3747,6 +3747,10 @@ sub probe_superio
                print "\n    (hardware monitoring capabilities accessible via 
SMBus only)\n";
                return FEAT_SMBUS;
        }
+       if (!exists $chip->{logdev}) {
+               print "\n    (no support yet)\n";
+               return 0;
+       }
 
        # Switch to the sensor logical device
        outb($addrreg, $superio{logdevreg});
++++++ lm_sensors-r6017-fix-sysfs-detection.patch ++++++
References: bnc#751180

Upcoming change in sysfs will break the way libsensors detects if
sysfs is mounted. Adjust the implementation so that it still works after
said change.

---
 lib/sysfs.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

--- lm_sensors-3.3.1.orig/lib/sysfs.c
+++ lm_sensors-3.3.1/lib/sysfs.c
@@ -24,6 +24,7 @@
 
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <sys/vfs.h>
 #include <unistd.h>
 #include <string.h>
 #include <stdlib.h>
@@ -40,6 +41,7 @@
 /****************************************************************************/
 
 #define ATTR_MAX       128
+#define SYSFS_MAGIC    0x62656572
 
 /*
  * Read an attribute from sysfs
@@ -585,11 +587,11 @@ exit_free:
 /* returns !0 if sysfs filesystem was found, 0 otherwise */
 int sensors_init_sysfs(void)
 {
-       struct stat statbuf;
+       struct statfs statfsbuf;
 
        snprintf(sensors_sysfs_mount, NAME_MAX, "%s", "/sys");
-       if (stat(sensors_sysfs_mount, &statbuf) < 0
-        || statbuf.st_nlink <= 2)      /* Empty directory */
+       if (statfs(sensors_sysfs_mount, &statfsbuf) < 0
+        || statfsbuf.f_type != SYSFS_MAGIC)
                return 0;
 
        return 1;
++++++ lm_sensors-r6025-sensord-fix-memory-leaks.patch ++++++
References: bnc#751177

Fix memory leaks in sensord revealed by valgrind.

The leak in daemonize() is harmless, we're about to exit anyway. Fix
it still to make valgrind happy.

The leak in do_features() is real, as the function is called
periodically by the daemon, for all actions. If the intervals at set
low and the system has many sensors, the leak could be significant,
maybe 150 kB/day.

---
 prog/sensord/sense.c   |   22 +++++++++++++---------
 prog/sensord/sensord.c |    6 +++++-
 2 files changed, 18 insertions(+), 10 deletions(-)

--- lm_sensors-3.3.1.orig/prog/sensord/sense.c
+++ lm_sensors-3.3.1/prog/sensord/sense.c
@@ -132,14 +132,7 @@ static int do_features(const sensors_chi
                       const FeatureDescriptor *feature, int action)
 {
        char *label;
-       int alrm, beep;
-
-       label = sensors_get_label(chip, feature->feature);
-       if (!label) {
-               sensorLog(LOG_ERR, "Error getting sensor label: %s/%s",
-                         chip->prefix, feature->feature->name);
-               return -1;
-       }
+       int alrm, beep, ret;
 
        alrm = get_flag(chip, feature->alarmNumber);
        if (alrm == -1)
@@ -151,7 +144,18 @@ static int do_features(const sensors_chi
        if (beep == -1)
                return -1;
 
-       return get_features(chip, feature, action, label, alrm, beep);
+       label = sensors_get_label(chip, feature->feature);
+       if (!label) {
+               sensorLog(LOG_ERR, "Error getting sensor label: %s/%s",
+                         chip->prefix, feature->feature->name);
+               return -1;
+       }
+
+       ret = get_features(chip, feature, action, label, alrm, beep);
+
+       free(label);
+
+       return ret;
 }
 
 static int doKnownChip(const sensors_chip_name *chip,
--- lm_sensors-3.3.1.orig/prog/sensord/sensord.c
+++ lm_sensors-3.3.1/prog/sensord/sensord.c
@@ -204,7 +204,11 @@ static void daemonize(void)
        } else if (pid != 0) {
                fprintf(file, "%d\n", pid);
                fclose(file);
-               unloadLib();
+
+               freeChips();
+               if (unloadLib())
+                       exit(EXIT_FAILURE);
+
                exit(EXIT_SUCCESS);
        }
 
++++++ lm_sensors-r6030-fix-power-interval-output.patch ++++++
Fix power interval output

Power interval is measured in seconds, not Watt.

---
 prog/sensors/chips.c |   20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

--- lm_sensors-3.3.1.orig/prog/sensors/chips.c
+++ lm_sensors-3.3.1/prog/sensors/chips.c
@@ -564,11 +564,25 @@ static void print_chip_power(const senso
        } else
                printf("     N/A  ");
 
-       for (i = 0; i < sensor_count; i++)
-               scale_value(&sensors[i].value, &sensors[i].unit);
+       for (i = 0; i < sensor_count; i++) {
+               /*
+                * Unit is W and needs to be scaled for all attributes except
+                * interval, which does not need to be scaled and is reported in
+                * seconds.
+                */
+               if (strcmp(sensors[i].name, "interval")) {
+                       char *tmpstr;
 
+                       tmpstr = alloca(4);
+                       scale_value(&sensors[i].value, &unit);
+                       snprintf(tmpstr, 4, "%sW", unit);
+                       sensors[i].unit = tmpstr;
+               } else {
+                       sensors[i].unit = "s";
+               }
+       }
        print_limits(sensors, sensor_count, alarms, alarm_count,
-                    label_size, "%s = %6.2f %sW");
+                    label_size, "%s = %6.2f %s");
 
        printf("\n");
 }
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to