[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#458989: kdebase: lm-sensors transition



Package: kdebase
Version: 4:3.5.8.dfsg.1-4
Severity: wishlist
Tags: patch

Hi,

A new upstream version of lm-sensors has been released upstream. The API
has changed, so the softwares using libsensors3 have to be modified so
that they can use libsensors4. It is planned to keep both versions for a
while, but the goal is to get rid of libsensors3 in Lenny.

You will find attached a patch for kdebase that changes both upstream 
code and debian/ directory. Could you please apply this patch in your 
next upload?

Thanks,
Aurelien

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.23-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages kdebase depends on:
ii  hal                  0.5.10-5            Hardware Abstraction Layer
ii  kappfinder           4:3.5.8.dfsg.1-4    non-KDE application finder for KDE
ii  kate                 4:3.5.8.dfsg.1-4    advanced text editor for KDE
ii  kcontrol             4:3.5.8.dfsg.1-4    control center for KDE
ii  kdebase-bin          4:3.5.8.dfsg.1-4    core binaries for the KDE base mod
ii  kdebase-data         4:3.5.8.dfsg.1-4    shared data files for the KDE base
ii  kdebase-kio-plugins  4:3.5.8.dfsg.1-4    core I/O slaves for KDE
ii  kdepasswd            4:3.5.8.dfsg.1-4    password changer for KDE
ii  kdeprint             4:3.5.8.dfsg.1-4    print system for KDE
ii  kdesktop             4:3.5.8.dfsg.1-4    miscellaneous binaries and files f
ii  kfind                4:3.5.8.dfsg.1-4    file-find utility for KDE
ii  khelpcenter          4:3.5.8.dfsg.1-4    help center for KDE
ii  kicker               4:3.5.8.dfsg.1-4    desktop panel for KDE
ii  klipper              4:3.5.8.dfsg.1-4    clipboard utility for KDE
ii  kmenuedit            4:3.5.8.dfsg.1-4    menu editor for KDE
ii  konqueror            4:3.5.8.dfsg.1-4    KDE's advanced file manager, web b
ii  konqueror-nsplugins  4:3.5.8.dfsg.1-4    Netscape plugin support for Konque
ii  konsole              4:3.5.8.dfsg.1-4    X terminal emulator for KDE
ii  kpager               4:3.5.8.dfsg.1-4    desktop pager for KDE
ii  kpersonalizer        4:3.5.8.dfsg.1-4    installation personalizer for KDE
ii  ksmserver            4:3.5.8.dfsg.1-4    session manager for KDE
ii  ksplash              4:3.5.8.dfsg.1-4    the KDE splash screen
ii  ksysguard            4:3.5.8.dfsg.1-4    system guard for KDE
ii  ktip                 4:3.5.8.dfsg.1-4    useful tips for KDE
ii  kwin                 4:3.5.8.dfsg.1-4    the KDE window manager
ii  libkonq4             4:3.5.8.dfsg.1-4    core libraries for Konqueror
ii  pmount               0.9.17-1            mount removable devices as normal 

Versions of packages kdebase recommends:
ii  kdm                     4:3.5.8.dfsg.1-4 X display manager for KDE

-- no debconf information
diff -u kdebase-3.5.8.dfsg.1/debian/control kdebase-3.5.8.dfsg.1/debian/control
--- kdebase-3.5.8.dfsg.1/debian/control
+++ kdebase-3.5.8.dfsg.1/debian/control
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
 Uploaders: Ana Beatriz Guerrero Lopez <ana@debian.org>, Armin Berres <trigger+debian@space-based.de>, Fathi Boudra <fboudra@free.fr>, Modestas Vainius <geromanas@mailas.com>, Sune Vuorela <debian@pusling.com>
-Build-Depends: cdbs (>= 0.4.39-0.1), debhelper (>= 5.0.31), autotools-dev, gawk, gettext, kdelibs4-dev (>= 4:3.5.8), libdbus-qt-1-dev (>= 0.60), libldap2-dev, libhal-dev (>= 0.5.5.1-2) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libhal-storage-dev (>= 0.5.5.1-2) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libncurses5-dev, libpam0g-dev, libpopt-dev, libraw1394-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libsensors-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libsmbclient-dev, libusb-dev, libxtst-dev, libfontenc-dev, libxss-dev, libxxf86misc-dev, libxcomposite-dev, libxdamage-dev, libxkbfile-dev, xutils, sharutils, texinfo, libavahi-compat-libdnssd-dev (>= 0.4)
+Build-Depends: cdbs (>= 0.4.39-0.1), debhelper (>= 5.0.31), autotools-dev, gawk, gettext, kdelibs4-dev (>= 4:3.5.8), libdbus-qt-1-dev (>= 0.60), libldap2-dev, libhal-dev (>= 0.5.5.1-2) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libhal-storage-dev (>= 0.5.5.1-2) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libncurses5-dev, libpam0g-dev, libpopt-dev, libraw1394-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libsensors4-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libsmbclient-dev, libusb-dev, libxtst-dev, libfontenc-dev, libxss-dev, libxxf86misc-dev, libxcomposite-dev, libxdamage-dev, libxkbfile-dev, xutils, sharutils, texinfo, libavahi-compat-libdnssd-dev (>= 0.4)
 Build-Depends-Indep: doxygen, qt3-doc, graphviz, gsfonts-x11, kdelibs4-doc
 Build-Conflicts: nvidia-glx (<< 1.0.8774-6)
 Standards-Version: 3.7.2
diff -u kdebase-3.5.8.dfsg.1/debian/control.in kdebase-3.5.8.dfsg.1/debian/control.in
--- kdebase-3.5.8.dfsg.1/debian/control.in
+++ kdebase-3.5.8.dfsg.1/debian/control.in
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: @@@MAINTAINER@@@
 Uploaders: @@@UPLOADERS@@@
-Build-Depends: cdbs (>= 0.4.39-0.1), debhelper (>= 5.0.31), autotools-dev, gawk, gettext, kdelibs4-dev (>= 4:3.5.8), libdbus-qt-1-dev (>= 0.60), libldap2-dev, libhal-dev (>= 0.5.5.1-2) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libhal-storage-dev (>= 0.5.5.1-2) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libncurses5-dev, libpam0g-dev, libpopt-dev, libraw1394-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libsensors-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libsmbclient-dev, libusb-dev, libxtst-dev, libfontenc-dev, libxss-dev, libxxf86misc-dev, libxcomposite-dev, libxdamage-dev, libxkbfile-dev, xutils, sharutils, texinfo, libavahi-compat-libdnssd-dev (>= 0.4)
+Build-Depends: cdbs (>= 0.4.39-0.1), debhelper (>= 5.0.31), autotools-dev, gawk, gettext, kdelibs4-dev (>= 4:3.5.8), libdbus-qt-1-dev (>= 0.60), libldap2-dev, libhal-dev (>= 0.5.5.1-2) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libhal-storage-dev (>= 0.5.5.1-2) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libncurses5-dev, libpam0g-dev, libpopt-dev, libraw1394-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libsensors4-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libsmbclient-dev, libusb-dev, libxtst-dev, libfontenc-dev, libxss-dev, libxxf86misc-dev, libxcomposite-dev, libxdamage-dev, libxkbfile-dev, xutils, sharutils, texinfo, libavahi-compat-libdnssd-dev (>= 0.4)
 Build-Depends-Indep: doxygen, qt3-doc, graphviz, gsfonts-x11, kdelibs4-doc
 Build-Conflicts: nvidia-glx (<< 1.0.8774-6)
 Standards-Version: 3.7.2
only in patch2:
unchanged:
--- kdebase-3.5.8.dfsg.1.orig/debian/patches/80_lm-sensors-3.diff
+++ kdebase-3.5.8.dfsg.1/debian/patches/80_lm-sensors-3.diff
@@ -0,0 +1,126 @@
+diff -up kdebase-3.5.8/ksysguard/ksysguardd/Linux/lmsensors.c.lmsens3x kdebase-3.5.8/ksysguard/ksysguardd/Linux/lmsensors.c
+--- kdebase-3.5.8/ksysguard/ksysguardd/Linux/lmsensors.c.lmsens3x	2005-10-10 17:04:31.000000000 +0200
++++ kdebase-3.5.8/ksysguard/ksysguardd/Linux/lmsensors.c	2008-01-01 22:05:09.000000000 +0100
+@@ -36,7 +36,12 @@ typedef struct
+ {
+   char* fullName;
+   const sensors_chip_name* scn;
++#if SENSORS_API_VERSION & 0x400
++  const sensors_feature *sf;
++  const sensors_subfeature *sfd;
++#else
+   const sensors_feature_data* sfd;
++#endif
+ } LMSENSOR;
+ 
+ static CONTAINER LmSensors;
+@@ -65,6 +70,82 @@ static LMSENSOR* findMatchingSensor( con
+   return s;
+ }
+ 
++#if SENSORS_API_VERSION & 0x400
++void initLmSensors( struct SensorModul* sm )
++{
++  const sensors_chip_name* scn;
++  int nr = 0;
++
++  if ( sensors_init( NULL ) ) {
++    LmSensorsOk = -1;
++    return;
++  }
++
++  LmSensors = new_ctnr();
++  while ( ( scn = sensors_get_detected_chips( NULL, &nr ) ) != NULL ) {
++    int nr1 = 0;
++    const sensors_feature* sf;
++
++    while ( ( sf = sensors_get_features( scn, &nr1 ) ) != 0 ) {
++      const sensors_subfeature *ssubf;
++      LMSENSOR *p;
++      char *s, *label;
++      
++      switch( sf->type )
++      {
++        case SENSORS_FEATURE_IN:
++          ssubf = sensors_get_subfeature( scn, sf,
++                                          SENSORS_SUBFEATURE_IN_INPUT );
++          break;
++    
++        case SENSORS_FEATURE_FAN:
++          ssubf = sensors_get_subfeature( scn, sf,
++                                          SENSORS_SUBFEATURE_FAN_INPUT );
++          break;
++    
++        case SENSORS_FEATURE_TEMP:
++          ssubf = sensors_get_subfeature( scn, sf,
++                                          SENSORS_SUBFEATURE_TEMP_INPUT );
++          break;
++      }
++      
++      if ( !ssubf )
++        continue;
++
++      label = sensors_get_label( scn, sf );
++      p = (LMSENSOR*)malloc( sizeof( LMSENSOR ) );
++      p->fullName = (char*)malloc( strlen( "lmsensors/" ) +
++                                   strlen( scn->prefix ) + 1 +
++                                   strlen( label ) + 1 );
++      sprintf( p->fullName, "lmsensors/%s/%s", scn->prefix, label );
++
++      /* Make sure that name contains only proper characters. */
++      for ( s = p->fullName; *s; s++ )
++        if ( *s == ' ' )
++          *s = '_';
++
++      p->scn = scn;
++      p->sf = sf;
++      p->sfd = ssubf;
++
++      /* Note a name collision should never happen with the lm_sensors-3x code,
++         but it does in the case of k8temp, when there are 2 identical labeled
++         sensors per CPU. This are really 2 distinct sensors measuring the
++         same thing, but fullName must be unique so we just drop the second
++         sensor */
++      if ( search_ctnr( LmSensors, sensorCmp, p ) < 0 ) {
++        push_ctnr( LmSensors, p );
++        registerMonitor( p->fullName, "float", printLmSensor, printLmSensorInfo, sm );
++      } else {
++        free( p->fullName );
++        free( p );
++      }
++      free( label );
++    }
++  }
++  bsort_ctnr( LmSensors, sensorCmp );
++}
++#else /* SENSORS_API_VERSION & 0x400 */
+ void initLmSensors( struct SensorModul* sm )
+ {
+   const sensors_chip_name* scn;
+@@ -117,11 +198,13 @@ void initLmSensors( struct SensorModul* 
+           free( p->fullName );
+           free( p );
+         }
++        free( label );
+       }
+     }
+   }
+   bsort_ctnr( LmSensors, sensorCmp );
+ }
++#endif /* SENSORS_API_VERSION & 0x400 */
+ 
+ void exitLmSensors( void )
+ {
+@@ -137,8 +220,11 @@ void printLmSensor( const char* cmd )
+     fprintf( CurrentClient, "0\n" );
+     return;
+   }
+-
++#if SENSORS_API_VERSION & 0x400
++  sensors_get_value( s->scn, s->sfd->number, &value );
++#else
+   sensors_get_feature( *(s->scn), s->sfd->number, &value );
++#endif
+   fprintf( CurrentClient, "%f\n", value );
+ }
+ 

Reply to: