rpms/ksensors/devel ksensors-0.7.3-fix-min-max.patch, NONE, 1.1 ksensors-0.7.3-lm_sensors-3.x.patch, NONE, 1.1 ksensors.spec, 1.19, 1.20

Hans de Goede (jwrdegoede) fedora-extras-commits at redhat.com
Mon Nov 12 20:53:07 UTC 2007


Author: jwrdegoede

Update of /cvs/extras/rpms/ksensors/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17719

Modified Files:
	ksensors.spec 
Added Files:
	ksensors-0.7.3-fix-min-max.patch 
	ksensors-0.7.3-lm_sensors-3.x.patch 
Log Message:
* Sun Nov 11 2007 Hans de Goede <j.w.r.degoede at hhs.nl> 0.7.3-14
- Patch for and Rebuild against lm_sensors-3.0.0


ksensors-0.7.3-fix-min-max.patch:

--- NEW FILE ksensors-0.7.3-fix-min-max.patch ---
diff -up ksensors-0.7.3/src/lmsensor.cpp.minmax ksensors-0.7.3/src/lmsensor.cpp
--- ksensors-0.7.3/src/lmsensor.cpp.minmax	2007-11-11 15:12:24.000000000 +0100
+++ ksensors-0.7.3/src/lmsensor.cpp	2007-11-11 15:26:30.000000000 +0100
@@ -40,17 +40,30 @@ bool LMSensor::init(const sensors_featur
  char *label;
  QString str;
 
- bool min_max=false;
+ bool min_found=false;
+ bool max_found=false;
  while( (*data= sensors_get_all_features(*chip_name, nr1, nr2)) && (*data)->mapping!=SENSORS_NO_MAPPING) {
-   str= (*data)->name;
-   if(str.find("_min")>=0 || str.find("_low")>=0) {
-     sensors_get_feature(*chip_name, (*data)->number, &valMin);
-     min_max=true;
-   } 
-   else if(str.find("_max")>=0 || str.find("_over")>=0  || str.find("_high")>=0) {
-     sensors_get_feature(*chip_name, (*data)->number, &valMax);
-     min_max=true;
+   int len = strlen((*data)->name);
+   const char *postfix = (*data)->name + len - 4;
+
+   if (len < 5)
+     continue;
+
+   if((!strcmp(postfix, "_min") || !strcmp(postfix, "_low")) &&
+      !sensors_get_feature(*chip_name, (*data)->number, &valMin))
+     min_found=true;
+   
+   if(!strcmp(postfix, "_max") &&
+      !sensors_get_feature(*chip_name, (*data)->number, &valMax)) {
+     max_found=true;
+     continue;
    }
+
+   postfix--;
+
+   if((!strcmp(postfix, "_over") || !strcmp(postfix, "_high")) &&
+      !sensors_get_feature(*chip_name, (*data)->number, &valMax))
+     max_found=true;
  }
 
  double newVal;
@@ -87,22 +100,21 @@ bool LMSensor::init(const sensors_featur
  sensors_get_label(*chip_name,feature,&label);
  setDescription(QString(label));
 
- if(min_max){
-   if(min>max) {
-     double pivot= valMin;
-     min= max;
-     max= pivot;
-   }
-   setValueMax(max,dgCelsius);
-   setValueMin(min,dgCelsius);
-   setValue((max+min)/2,dgCelsius);
- }
- else {
-   setValueMax(70,dgCelsius);
-   setValueMin(0,dgCelsius);
-   setValue(newVal,dgCelsius);
+ if(min_found)
+   min = valMin;
+   
+ if(max_found)
+   max = valMax;
+   
+ if(min>max) {
+   double pivot= min;
+   min= max;
+   max= pivot;
  }
 
+ setValueMax(max,dgCelsius);
+ setValueMin(min,dgCelsius);
+
  readConfig();
  updateValue();
  setValueIdeal(getValue());

ksensors-0.7.3-lm_sensors-3.x.patch:

--- NEW FILE ksensors-0.7.3-lm_sensors-3.x.patch ---
diff -up ksensors-0.7.3/src/lmsensor.cpp.lm_sensors3x ksensors-0.7.3/src/lmsensor.cpp
--- ksensors-0.7.3/src/lmsensor.cpp.lm_sensors3x	2007-11-11 16:34:15.000000000 +0100
+++ ksensors-0.7.3/src/lmsensor.cpp	2007-11-11 16:37:58.000000000 +0100
@@ -30,8 +30,11 @@ LMSensor::LMSensor(SensorsList *parent):
 LMSensor::~LMSensor(){
 }
 
-
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
 bool LMSensor::init(const sensors_feature_data **data, int *nr1,int *nr2)
+#else
+bool LMSensor::init(const sensors_feature **data, int *nr1, int *nr2)
+#endif
 {
  double min,max;
  const sensors_chip_name *chip_name= getChipName();
@@ -40,6 +43,7 @@ bool LMSensor::init(const sensors_featur
  char *label;
  QString str;
 
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
  bool min_found=false;
  bool max_found=false;
  while( (*data= sensors_get_all_features(*chip_name, nr1, nr2)) && (*data)->mapping!=SENSORS_NO_MAPPING) {
@@ -105,7 +109,97 @@ bool LMSensor::init(const sensors_featur
    
  if(max_found)
    max = valMax;
-   
+
+#else /* libsensors4 code */
+
+  const sensors_subfeature *sub_feature;
+  const sensors_feature *feature_data = *data;
+  
+  /* Move to next feature for the loop in LMSensorsChip::createSensors() */
+  *data = sensors_get_features(chip_name, nr1);
+ 
+  switch(feature_data->type)
+  {
+    case SENSORS_FEATURE_IN:
+      sub_feature = sensors_get_subfeature(chip_name, feature_data,
+        SENSORS_SUBFEATURE_IN_INPUT);
+
+      if (!sub_feature)
+        return false;
+
+      feature = sub_feature->number;
+
+      if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+            SENSORS_SUBFEATURE_IN_MIN)) ||
+          sensors_get_value(chip_name, sub_feature->number, &min))
+        min = -16;
+
+      if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+            SENSORS_SUBFEATURE_IN_MAX)) ||
+          sensors_get_value(chip_name, sub_feature->number, &max))
+        max = 16;
+ 
+      setType(lmVoltage);
+      break;
+
+    case SENSORS_FEATURE_FAN:
+      sub_feature = sensors_get_subfeature(chip_name, feature_data,
+        SENSORS_SUBFEATURE_FAN_INPUT);
+
+      if (!sub_feature)
+        return false;
+
+      feature = sub_feature->number;
+
+      if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+            SENSORS_SUBFEATURE_FAN_MIN)) ||
+          sensors_get_value(chip_name, sub_feature->number, &min))
+        min = 3000;
+
+      max = 10000;
+
+      setType(lmFan);
+      break;
+
+    case SENSORS_FEATURE_TEMP:
+      sub_feature = sensors_get_subfeature(chip_name, feature_data,
+        SENSORS_SUBFEATURE_TEMP_INPUT);
+
+      if (!sub_feature)
+        return false;
+
+      feature = sub_feature->number;
+
+      if (!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+            SENSORS_SUBFEATURE_TEMP_MIN)) ||
+          sensors_get_value(chip_name, sub_feature->number, &min))
+        min = 0;
+
+      if ((!(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+              SENSORS_SUBFEATURE_TEMP_MAX)) &&
+           !(sub_feature = sensors_get_subfeature(chip_name, feature_data,
+              SENSORS_SUBFEATURE_TEMP_CRIT))) ||
+          sensors_get_value(chip_name, sub_feature->number, &max))
+        max = 65;
+
+      setType(lmTemp);
+      break;
+    
+    default:
+      return false;
+  }
+
+  str.sprintf("%s.%s", chip_name->prefix, main_name);
+  setName( str.latin1() );
+
+  label = sensors_get_label(chip_name, feature_data);
+  if (label)
+    setDescription(QString(label));
+  else
+    setDescription( str.latin1() );
+
+#endif /* libsensors3 / libsensors4 code */
+
  if(min>max) {
    double pivot= min;
    min= max;
@@ -131,7 +225,11 @@ double LMSensor::readSensorValue()
 {
  double newVal;
  const sensors_chip_name *chip_name= getChipName();
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
  sensors_get_feature(*chip_name, feature, &newVal);
+#else
+ sensors_get_value(chip_name, feature, &newVal);
+#endif
  return newVal;
 }
 
diff -up ksensors-0.7.3/src/lmsensorschip.cpp.lm_sensors3x ksensors-0.7.3/src/lmsensorschip.cpp
--- ksensors-0.7.3/src/lmsensorschip.cpp.lm_sensors3x	2003-12-27 22:52:12.000000000 +0100
+++ ksensors-0.7.3/src/lmsensorschip.cpp	2007-11-11 16:34:15.000000000 +0100
@@ -50,10 +50,15 @@ const sensors_chip_name *LMSensorsChip::
 void LMSensorsChip::createSensors()
 {
  if(!chip_name) return;
- const sensors_feature_data *data;
  int nr1= 0;
  int nr2= 0;
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
+ const sensors_feature_data *data;
  data= sensors_get_all_features(*chip_name, &nr1, &nr2);
+#else
+ const sensors_feature *data;
+ data= sensors_get_features(chip_name, &nr1);
+#endif
  while(data) {
    LMSensor *sensor= new LMSensor(this);
    if( !sensor->init(&data,&nr1,&nr2) )
diff -up ksensors-0.7.3/src/lmsensor.h.lm_sensors3x ksensors-0.7.3/src/lmsensor.h
--- ksensors-0.7.3/src/lmsensor.h.lm_sensors3x	2003-12-27 22:52:12.000000000 +0100
+++ ksensors-0.7.3/src/lmsensor.h	2007-11-11 16:34:15.000000000 +0100
@@ -51,7 +51,11 @@ protected:
 
   double calculateIdealValue();
 
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
   bool init(const sensors_feature_data **data, int *nr1,int *nr2);
+#else
+  bool init(const sensors_feature **data, int *nr1,int *nr2);
+#endif
   const sensors_chip_name *getChipName();
 
 private:
diff -up ksensors-0.7.3/src/lmsensors.cpp.lm_sensors3x ksensors-0.7.3/src/lmsensors.cpp
--- ksensors-0.7.3/src/lmsensors.cpp.lm_sensors3x	2007-11-11 16:34:15.000000000 +0100
+++ ksensors-0.7.3/src/lmsensors.cpp	2007-11-11 16:34:15.000000000 +0100
@@ -45,17 +45,23 @@ LMSensors::~LMSensors()
 
 bool LMSensors::initSensors()
 {
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
  FILE *fp=fopen("/etc/sensors.conf","r");
  if(!fp) {
    qWarning("KSensors error: /etc/sensors.conf not found !");
    return false;
  }
+#else
+ FILE *fp=NULL;
+#endif
  int err= sensors_init(fp);
  if(err) {
    qWarning("KSensors error: sensors_init fail, error code %d",err);
    return false;
  }
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
  fclose(fp);
+#endif
  return true;
 }
 
@@ -63,6 +69,7 @@ void LMSensors::createLMSensors()
 {
  const sensors_chip_name *chip_name;
  int err= 0;
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
  while( (chip_name= sensors_get_detected_chips(&err)) )
  {
    if( existSensor(chip_name,"temp")  ||
@@ -71,6 +78,10 @@ void LMSensors::createLMSensors()
           (void)new LMSensorsChip(chip_name,this);
        }
  }
+#else
+ while( (chip_name= sensors_get_detected_chips(NULL, &err)) )
+          (void)new LMSensorsChip(chip_name,this);
+#endif
 }
 
 void LMSensors::createHDSensors()
@@ -86,6 +97,7 @@ void LMSensors::createI8KSensors()
 }
 
 
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
 int LMSensors::existSensor(const sensors_chip_name *chip_name,const char *sensor_name)
 {
 int nr1,nr2;
@@ -99,6 +111,7 @@ const sensors_feature_data *sensor_data;
  }
  return 0;
 }
+#endif
 
 void LMSensors::setMonitorized(bool enable)
 {
diff -up ksensors-0.7.3/src/lmsensors.h.lm_sensors3x ksensors-0.7.3/src/lmsensors.h
--- ksensors-0.7.3/src/lmsensors.h.lm_sensors3x	2003-12-27 22:52:12.000000000 +0100
+++ ksensors-0.7.3/src/lmsensors.h	2007-11-11 16:34:15.000000000 +0100
@@ -65,7 +65,9 @@ private:
   void createI8KSensors();
   void childEvent ( QChildEvent *e );
 
+#if SENSORS_API_VERSION < 0x400 /* libsensor 3 code */
   static int existSensor(const sensors_chip_name *chip_name,const char *sensor_name);
+#endif
 };
 
 #endif


Index: ksensors.spec
===================================================================
RCS file: /cvs/extras/rpms/ksensors/devel/ksensors.spec,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- ksensors.spec	13 Aug 2007 15:17:33 -0000	1.19
+++ ksensors.spec	12 Nov 2007 20:52:34 -0000	1.20
@@ -1,6 +1,6 @@
 Name:           ksensors
 Version:        0.7.3
-Release:        12%{?dist}
+Release:        14%{?dist}
 Summary:        KDE frontend to lm_sensors
 Group:          Applications/System
 License:        GPLv2+
@@ -9,6 +9,8 @@
 Patch1:         %{name}-desktop.patch
 Patch2:         http://ftp.debian.org/debian/pool/main/k/ksensors/ksensors_0.7.3-14.diff.gz
 Patch3:         %{name}-0.7.3-po.patch
+Patch4:         %{name}-0.7.3-fix-min-max.patch
+Patch5:         %{name}-0.7.3-lm_sensors-3.x.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:  kdelibs-devel lm_sensors-devel gettext desktop-file-utils
 Requires:       hicolor-icon-theme
@@ -26,6 +28,8 @@
 %patch1 -p1 -z .desktop
 %patch2 -p1
 %patch3 -p1 -z .po
+%patch4 -p1 -z .minmax
+%patch5 -p1 -z .lm_sensors3x
 sed -i -e 's|$(kde_datadir)/sounds|$(kde_sounddir)|' src/sounds/Makefile.*
 for f in ChangeLog LIESMICH LISEZMOI ; do
     iconv -f iso-8859-1 -t utf-8 $f > $f.utf8 ; mv $f.utf8 $f
@@ -84,6 +88,12 @@
 
 
 %changelog
+* Sun Nov 11 2007 Hans de Goede <j.w.r.degoede at hhs.nl> 0.7.3-14
+- Patch for and Rebuild against lm_sensors-3.0.0
+
+* Sun Nov 11 2007 Hans de Goede <j.w.r.degoede at hhs.nl> 0.7.3-13
+- Fix reading of min and max tresholds from libsensors
+
 * Mon Aug 13 2007 Hans de Goede <j.w.r.degoede at hhs.nl> 0.7.3-12
 - Update License tag for new Licensing Guidelines compliance
 




More information about the fedora-extras-commits mailing list