[Kde-hardware-devel] KDE/kdelibs/solid

Kevin Ottens ervin at kde.org
Tue Dec 14 06:59:25 CET 2010


SVN commit 1206281 by ervin:

Seems the new backends now work good enough. So retire the old HAL
backend on Linux, it's still the default on other unices though. On
Linux it can be reactivated using the SOLID_HAL_LEGACY environment
variable.

CCMAIL: kde-hardware-devel at kde.org
BUG: 258638


 M  +17 -9     solid/managerbase.cpp  
 M  +5 -0      tests/halbasictest.cpp  
 M  +2 -0      tests/halbasictest.h  


--- trunk/KDE/kdelibs/solid/solid/managerbase.cpp #1206280:1206281
@@ -67,23 +67,31 @@
     } else {
 #        if defined (Q_OS_MAC)
             m_backends << new Solid::Backends::IOKit::IOKitManager(0);
-#        elif defined (Q_OS_UNIX)
+
+#        elif defined(Q_WS_WIN) && defined(HAVE_WBEM) && !defined(_WIN32_WCE)
+            m_backends << new Solid::Backends::Wmi::WmiManager(0);
+
+#        elif defined(Q_OS_UNIX) && !defined(Q_OS_LINUX)
+            m_backends << new Solid::Backends::Hal::HalManager(0);
+
+#        elif defined(Q_OS_LINUX)
+            bool solidHalLegacyEnabled
+                = QString::fromLocal8Bit(qgetenv("SOLID_HAL_LEGACY")).toInt()==1;
+            if (solidHalLegacyEnabled) {
+                m_backends << new Solid::Backends::Hal::HalManager(0);
+            } else {
 #           if defined (UDEV_FOUND)
                 m_backends << new Solid::Backends::UDev::UDevManager(0);
 #           endif
-            m_backends << new Solid::Backends::Hal::HalManager(0)
-// FIXME: the udisks backend used to build on !Linux too
-#           if defined (Q_OS_LINUX)
-                       << new Solid::Backends::UDisks::UDisksManager(0)
-#           endif
+                m_backends << new Solid::Backends::UDisks::UDisksManager(0)
                        << new Solid::Backends::UPower::UPowerManager(0)
                        << new Solid::Backends::Fstab::FstabManager(0);
+            }
+#        endif
+
 #        if defined (HUPNP_FOUND)
             m_backends << new Solid::Backends::UPnP::UPnPDeviceManager(0);
 #        endif
-#        elif defined (Q_WS_WIN) && defined(HAVE_WBEM) && !defined(_WIN32_WCE)
-            m_backends << new Solid::Backends::Wmi::WmiManager(0);
-#        endif
     }
 }
 
--- trunk/KDE/kdelibs/solid/tests/halbasictest.cpp #1206280:1206281
@@ -32,6 +32,11 @@
 
 QTEST_MAIN(HalBasicTest)
 
+HalBasicTest::HalBasicTest(QObject *parent)
+    : QObject(parent)
+{
+    setenv("SOLID_HAL_LEGACY", "1", 1);
+}
 
 void HalBasicTest::testBasic()
 {
--- trunk/KDE/kdelibs/solid/tests/halbasictest.h #1206280:1206281
@@ -30,6 +30,8 @@
 class HalBasicTest : public QObject
 {
     Q_OBJECT
+public:
+    HalBasicTest(QObject *parent = 0);
 private slots:
     void testBasic();
     void testProcessorList();


More information about the Kde-hardware-devel mailing list