rpms/kdebase-workspace/F-9 kdebase-workspace-4.2.0-bluetooth-revert.patch, NONE, 1.1 solid-bluetoothTrunkTo42.diff, NONE, 1.1 kdebase-workspace.spec, 1.126, 1.127 kdebase-workspace-4.1.2-ldap.patch, 1.1, NONE

Kevin Kofler kkofler at fedoraproject.org
Thu Jan 29 19:41:35 UTC 2009


Author: kkofler

Update of /cvs/pkgs/rpms/kdebase-workspace/F-9
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv26432/F-9

Modified Files:
	kdebase-workspace.spec 
Added Files:
	kdebase-workspace-4.2.0-bluetooth-revert.patch 
	solid-bluetoothTrunkTo42.diff 
Removed Files:
	kdebase-workspace-4.1.2-ldap.patch 
Log Message:
* Thu Jan 29 2009 Kevin Kofler <Kevin at tigcc.ticalc.org> - 4.2.0-4.1
- conditionalize bluetooth backport on F10+
- F9: revert solid-bluetooth to the version from KDE 4.1.4

* Thu Jan 29 2009 Rex Dieter <rdieter at fedoraproject.org> - 4.2.0-4
- omit ldap hack (#457638), kde42's reduced linkage to the rescue

* Thu Jan 29 2009 Rex Dieter <rdieter at fedoraproject.org> - 4.2.0-3
- Requires: PyKDE4 (for plasmascript bits)
- solid-bluetoothTrunkTo42.diff (bug #481801), and 
  +Provides: solid-bluetooth(-devel) = 4.3

kdebase-workspace-4.2.0-bluetooth-revert.patch:

--- NEW FILE kdebase-workspace-4.2.0-bluetooth-revert.patch ---
diff -ur kdebase-workspace-4.2.0/libs/solid/control/backends/CMakeLists.txt kdebase-workspace-4.2.0-bluetooth-revert/libs/solid/control/backends/CMakeLists.txt
--- kdebase-workspace-4.2.0/libs/solid/control/backends/CMakeLists.txt	2008-10-17 13:00:21.000000000 +0200
+++ kdebase-workspace-4.2.0-bluetooth-revert/libs/solid/control/backends/CMakeLists.txt	2008-01-05 00:55:29.000000000 +0100
@@ -1,3 +1,3 @@
 add_subdirectory( fakenet )
-#add_subdirectory( fakebluetooth )
+add_subdirectory( fakebluetooth )
 
diff -ur kdebase-workspace-4.2.0/libs/solid/control/backends/fakebluetooth/fakebluetoothinterface.h kdebase-workspace-4.2.0-bluetooth-revert/libs/solid/control/backends/fakebluetooth/fakebluetoothinterface.h
--- kdebase-workspace-4.2.0/libs/solid/control/backends/fakebluetooth/fakebluetoothinterface.h	2008-07-03 07:05:34.000000000 +0200
+++ kdebase-workspace-4.2.0-bluetooth-revert/libs/solid/control/backends/fakebluetooth/fakebluetoothinterface.h	2008-08-28 10:06:55.000000000 +0200
@@ -134,6 +134,7 @@
     }
     bool isTrusted(const QString& mac)
     {
+	Q_UNUSED(mac)
 	return true;
     }
 
diff -ur kdebase-workspace-4.2.0/libs/solid/control/bluetoothinputdevice.cpp kdebase-workspace-4.2.0-bluetooth-revert/libs/solid/control/bluetoothinputdevice.cpp
--- kdebase-workspace-4.2.0/libs/solid/control/bluetoothinputdevice.cpp	2008-10-30 15:13:17.000000000 +0100
+++ kdebase-workspace-4.2.0-bluetooth-revert/libs/solid/control/bluetoothinputdevice.cpp	2008-05-21 10:33:09.000000000 +0200
@@ -19,6 +19,7 @@
 
 */
 
+#include <QMap>
 #include <QStringList>
 
 #include "ifaces/bluetoothinputdevice.h"
@@ -71,19 +72,39 @@
     return_SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), QString(), ubi());
 }
 
-QMap<QString,QVariant> Solid::Control::BluetoothInputDevice::getProperties() const
+bool Solid::Control::BluetoothInputDevice::isConnected() const
 {
-    return_SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), (QMap< QString,QVariant >()), getProperties());
+    return_SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), false, isConnected());
 }
 
-void Solid::Control::BluetoothInputDevice::connect()
+QString Solid::Control::BluetoothInputDevice::name() const
 {
-    SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), connect());
+    return_SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), QString(), name());
 }
 
-void Solid::Control::BluetoothInputDevice::disconnect()
+QString Solid::Control::BluetoothInputDevice::address() const
 {
-    SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), disconnect());
+    return_SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), QString(), address());
+}
+
+QString Solid::Control::BluetoothInputDevice::productID() const
+{
+    return_SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), QString(), productID());
+}
+
+QString Solid::Control::BluetoothInputDevice::vendorID() const
+{
+    return_SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), QString(), vendorID());
+}
+
+void Solid::Control::BluetoothInputDevice::slotConnect()
+{
+    SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), slotConnect());
+}
+
+void Solid::Control::BluetoothInputDevice::slotDisconnect()
+{
+    SOLID_CALL(Ifaces::BluetoothInputDevice *, d->backendObject(), slotDisconnect());
 }
 
 void Solid::Control::BluetoothInputDevicePrivate::setBackendObject(QObject *object)
@@ -91,8 +112,10 @@
     FrontendObjectPrivate::setBackendObject(object);
 
     if (object) {
-        QObject::connect(object, SIGNAL(propertyChanged(QString,QVariant)),
-                         parent(), SIGNAL(propertyChanged(QString,QVariant)));
+        QObject::connect(object, SIGNAL(connected()),
+                         parent(), SIGNAL(connected()));
+        QObject::connect(object, SIGNAL(disconnected()),
+                         parent(), SIGNAL(disconnected()));
     }
 }
 
diff -ur kdebase-workspace-4.2.0/libs/solid/control/bluetoothinputdevice.h kdebase-workspace-4.2.0-bluetooth-revert/libs/solid/control/bluetoothinputdevice.h
--- kdebase-workspace-4.2.0/libs/solid/control/bluetoothinputdevice.h	2008-10-30 15:13:17.000000000 +0100
+++ kdebase-workspace-4.2.0-bluetooth-revert/libs/solid/control/bluetoothinputdevice.h	2008-06-10 13:41:04.000000000 +0200
@@ -1,7 +1,6 @@
 /*  This file is part of the KDE project
     Copyright (C) 2007 Will Stephenson <wstephenson at kde.org>
     Copyright (C) 2007 Daniel Gollub <dgollub at suse.de>
-    Copyright (C) 2008 Tom Patzig <tpatzig at suse.de>
 
 
     This library is free software; you can redistribute it and/or
@@ -24,8 +23,6 @@
 #define SOLID_CONTROL_BLUETOOTHINPUTDEVICE_H
 
 #include <QtCore/QObject>
-#include <QtCore/QMap>
-#include <QtCore/QVariant>
 
 #include "solid_control_export.h"
 
@@ -77,36 +74,65 @@
      * @returns the Universal Network Identifier of the current bluetooth remote device
      */
     QString ubi() const;
+
+    /**
+     * Retrieves connection status of bluetooth input device.
+     *
+     * @returns true if bluetooth input device is connected
+     */
+    bool isConnected() const;
+
+    /**
+     * Retrieves MAC address of bluetooth input device.
+     *
+     * @returns MAC address of bluetooth input device
+     */
+    QString address() const;
+
+    /**
+     * Retrievies Name of bluetooth input device.
+     *
+     * @returns Name of bluetooth input device
+     */
+    QString name() const;
+
     /**
-     * Retrieve all properties from the input device.
+     * Retrieves Product ID of bluetooth input device.
      *
-     * @returns a hash of named properties
+     * @returns Product ID of bluetooth input device
      */
-    QMap<QString,QVariant> getProperties() const;
+    QString productID() const;
 
+    /**
+     * Retrieves Vendor ID of bluetooth input device.
+     *
+     * @returns Vendor ID of bluetooth input device
+     */
+    QString vendorID() const;
 
 
 public Q_SLOTS:
     /**
      * Connect bluetooth input device.
      */
-    void connect();
+    void slotConnect();
 
     /**
      * Disconnect bluetooth input device.
      */
-    void disconnect();
+    void slotDisconnect();
 
 
 Q_SIGNALS:
-     /**
-     * A Property for the input device has changed.
-     *
-     * @param name the name of the changed property
-     * @param value the new value
+    /**
+     * This signal is emitted when the bluetooth input device is connected.
      */
-    void propertyChanged(const QString &name, const QVariant &value);
+    void connected();
 
+    /**
+     * This signal is emitted when the bluetooth input device is not available anymore.
+     */
+    void disconnected();
 
 private:
     Q_PRIVATE_SLOT(d, void _k_destroyed(QObject *))
diff -ur kdebase-workspace-4.2.0/libs/solid/control/bluetoothinterface.cpp kdebase-workspace-4.2.0-bluetooth-revert/libs/solid/control/bluetoothinterface.cpp
--- kdebase-workspace-4.2.0/libs/solid/control/bluetoothinterface.cpp	2008-12-04 09:34:54.000000000 +0100
+++ kdebase-workspace-4.2.0-bluetooth-revert/libs/solid/control/bluetoothinterface.cpp	2008-07-03 07:05:34.000000000 +0200
@@ -1,7 +1,6 @@
 /*  This file is part of the KDE project
     Copyright (C) 2006 Will Stephenson <wstephenson at kde.org>
     Copyright (C) 2007 Daniel Gollub <dgollub at suse.de>
-    Copyright (C) 2008 Tom Patzig <tpatzig at suse.de>
 
 
     This library is free software; you can redistribute it and/or
@@ -23,7 +22,6 @@
 #include <QMap>
[...3466 lines suppressed...]
--- kdebase-workspace-4.2.0/solid/bluez/bluez-bluetoothremotedevice.h	2008-10-17 13:00:20.000000000 +0200
+++ kdebase-workspace-4.2.0-bluetooth-revert/solid/bluez/bluez-bluetoothremotedevice.h	2008-01-05 00:55:19.000000000 +0100
@@ -1,7 +1,6 @@
 /*  This file is part of the KDE project
     Copyright (C) 2007 Will Stephenson <wstephenson at kde.org>
     Copyright (C) 2007 Daniel Gollub <dgollub at suse.de>
-    Copyright (C) 2008 Tom Patzig <tpatzig at suse.de>
 
 
     This library is free software; you can redistribute it and/or
@@ -36,35 +35,63 @@
 public:
     BluezBluetoothRemoteDevice(const QString &objectPath);
     virtual ~BluezBluetoothRemoteDevice();
-
     QString ubi() const;
-    QMap<QString,QVariant> getProperties() const;
-    void discoverServices(const QString &pattern) const;
-    QStringList listNodes() const;
+    QString address() const;
+    bool isConnected() const;
+    QString version() const;
+    QString revision() const;
+    QString manufacturer() const;
+    QString company() const;
+    QString majorClass() const;
+    QString minorClass() const;
+    QStringList serviceClasses() const;
+    QString name() const;
+    QString alias() const;
+    QString lastSeen() const;
+    QString lastUsed() const;
+    bool hasBonding() const;
+    int pinCodeLength() const;
+    int encryptionKeySize() const;
 
+    KJob *createBonding();
 private Q_SLOTS:
-
-    void slotPropertyChanged(const QString &, const QDBusVariant &);
-    void slotDisconnectRequested();
-    void slotNodeCreated(const QDBusObjectPath &); 
-    void slotNodeRemoved(const QDBusObjectPath &);
-
-    void slotServiceDiscover(const QMap<uint,QString> &handles);
-    void dbusErrorServiceDiscover(const QDBusError &error);
+    void slotClassChanged(const QString &address, uint newClass);
+    void slotNameUpdated(const QString &address,const QString &newName);
+    void slotNameResolvingFailed(const QString &address);
+    void slotAliasChanged(const QString &address,const QString &newAlias);
+    void slotAliasCleared(const QString &address);
+    void slotConnected(const QString &address);
+    void slotRequestDisconnection(const QString &address);
+    void slotDisconnected(const QString &address);
+    void slotBonded(const QString &address);
+    void slotUnbonded(const QString &address);
+    
+    void slotServiceHandles(const QList<uint> &handles);
+    void dbusErrorHandles(const QDBusError &error);
+    void slotServiceRecordAsXml(const QString &record);
+    void dbusErrorRecordAsXml(const QDBusError &error);
 
 public Q_SLOTS:
-
-    void setProperty(const QString &, const QVariant &);
-    void cancelDiscovery();
+    void setAlias(const QString &alias);
+    void clearAlias();
     void disconnect();
-
+    void cancelBondingProcess();
+    void removeBonding();
+    void serviceHandles(const QString &filter ="") const;
+    void serviceRecordAsXml(uint handle) const;
 Q_SIGNALS:
-
-    void serviceDiscoverAvailable(const QString &state, const QMap<uint,QString> &handles);
-    void propertyChanged(const QString &, const QVariant &);
-    void disconnectRequested();
-    void nodeCreated(const QString &);
-    void nodeRemoved(const QString &);
+    void classChanged(uint deviceClass);
+    void nameChanged(const QString &name);
+    void nameResolvingFailed();
+    void aliasChanged(const QString &alias);
+    void aliasCleared();
+    void connected();
+    void requestDisconnection();
+    void disconnected();
+    void bondingCreated();
+    void bondingRemoved();
+    void serviceRecordXmlAvailable(const QString &ubi, const QString &record);
+    void serviceHandlesAvailable(const QString &ubi, const QList<uint> &handles);
 
 private:
     QString m_objectPath;
diff -ur kdebase-workspace-4.2.0/solid/bluez/solid_bluez.desktop kdebase-workspace-4.2.0-bluetooth-revert/solid/bluez/solid_bluez.desktop
--- kdebase-workspace-4.2.0/solid/bluez/solid_bluez.desktop	2009-01-17 11:59:34.000000000 +0100
+++ kdebase-workspace-4.2.0-bluetooth-revert/solid/bluez/solid_bluez.desktop	2008-08-28 10:06:58.000000000 +0200
@@ -5,22 +5,20 @@
 InitialPreference=100
 Icon=preferences-system-bluetooth
 Name=BlueZ
+Name[ar]=اضافات
 Name[hi]=ब्लूज़
-Name[kn]=ಬ್ಲೂಜ಼್
-Name[mai]=ब्लूज
 Name[ne]=ब्लुZ
 Name[sr]=БлуЗ
 Name[x-test]=xxBlueZxx
 Comment=Bluetooth management using the BlueZ stack
-Comment[ar]=إدارة بلوتوث باستخدام كومة BlueZ
+Comment[ar]=ادارة بلوتوث باستخدام كومة الاضافات
 Comment[be]=Кіраванне Bluetooth пры дапамозе стэка BlueZ
-Comment[be at latin]=Kiravańnie pryładami „Bluetooth” praz systemu „BlueZ”.
 Comment[ca]=Gestió del Bluetooth usant la pila BlueZ
 Comment[da]=Bluetooth-håndtering med brug af BlueZ-stakken
 Comment[de]=Bluetooth-Verwaltung mit Hilfe von Bluez
 Comment[el]=Διαχείριση bluetooth με χρήση της στοίβας BlueZ
 Comment[eo]=Bluetooth-administrado uzante la BlueZ-stakon
-Comment[es]=Gestión de Bluetooth mediante la pila BlueZ
+Comment[es]=Administrar Bluetooth mediante la pila BlueZ
 Comment[et]=Bluetoothi haldamine BlueZi pinuga
 Comment[eu]=Bluetooth kudeaketa BlueZ pila erabiliz
 Comment[fa]=مدیریت بلوتوث با استفاده از پشته BlueZ
@@ -31,14 +29,12 @@
 Comment[gl]=Xestión de Bluetooth usando a pila BlueZ
 Comment[gu]=BlueZ સ્ટેકનો ઉપયોગ કરીને બ્લ્યુટુથ સંચાલન
 Comment[he]=ניהול Bluetooth באמצעות מחסנית BlueZ
-Comment[hi]=ब्लूएज स्टैक के प्रयोग से ब्लूटूथ प्रबंधन
 Comment[hu]=Bluetooth-kezelő (a BlueZ keretrendszerre épül)
 Comment[is]=Umsýsla með Blátönn um BlueZ kerfið
 Comment[it]=Gestione Bluetooth che usa lo stack BlueZ
 Comment[ja]=BlueZ スタックによる Bluetooth 管理
 Comment[kk]=BlueZ стегі көмегімен Bluetooth-ды басқару
 Comment[km]=ការ​គ្រប់គ្រង​ប៊្លូធូស​ដោយ​ប្រើជង់ BlueZ
-Comment[kn]=ಬ್ಲೂಜ಼್ ಅಡುಕು (ಸ್ಟಾಕ್) ಬಳಸಿ ಬ್ಲೂಟೂತ್ ವ್ಯವಸ್ಥಾಪನೆ
 Comment[ko]=BlueZ 스택을 사용하는 블루투스 관리
 Comment[ku]=Gerînendetiya Bluetoothê BlueZ stack bi kar tîne
 Comment[lv]=Bluetooth pārvaldība lietojot BlueZ
@@ -49,7 +45,6 @@
 Comment[ne]=ब्लुZ थाक प्रयोग गरिएको ब्लुटुथ व्यवस्थापन
 Comment[nl]=Bluetooth-beheer via de BlueZ Stack
 Comment[nn]=Bluetooth-handtering med BlueZ
-Comment[or]=BlueZ ଥାକ ବ୍ୟବହାର କରି ବ୍ଲୁଟୁଥ ପରିଚାଳନା
 Comment[pa]=BlueZ ਸਟੈਕ ਨਾਲ ਬਲਿਊਟੁੱਥ ਮੈਨਿਜਮੈਂਟ
 Comment[pl]=ZarzÄ…dzanie interfejsami Bluetooth za pomocÄ… stosu BlueZ
 Comment[pt]=Gestão do Bluetooth com a plataforma BlueZ
@@ -57,12 +52,10 @@
 Comment[ro]=Gestiune bluetooth folosind stiva BlueZ
 Comment[ru]=Управление протоколм Bluetooth на основе стека BlueZ
 Comment[se]=Gieđahala Bluetooth BlueZain
-Comment[sk]=Správa bluetooth pomocou aplikácie BlueZ
 Comment[sl]=Upravljanje z Bluetooth z uporabo sklada BlueZ
 Comment[sr]=Управљање блутутом механизмима БлуЗ‑а
 Comment[sr at latin]=Upravljanje Bluetoothom mehanizmima BlueZ‑a
 Comment[sv]=Blåtandshantering som använder BlueZ
-Comment[te]=BlueZ స్టాక్ ఉపయోగిస్తూ బ్లూటూత్ నిర్వహణ
 Comment[th]=จัดการระบบบลูทูธโดยใช้ชั้นข้อมูลของ BlueZ
 Comment[tr]=BlueZ kullanan Bluetooth yönetimi
 Comment[uk]=Керування Bluetooth через стос BlueZ
diff -ur kdebase-workspace-4.2.0/solid/bluez/tests/blueztest.cpp kdebase-workspace-4.2.0-bluetooth-revert/solid/bluez/tests/blueztest.cpp
--- kdebase-workspace-4.2.0/solid/bluez/tests/blueztest.cpp	2008-10-17 13:00:20.000000000 +0200
+++ kdebase-workspace-4.2.0-bluetooth-revert/solid/bluez/tests/blueztest.cpp	2008-01-05 00:55:19.000000000 +0100
@@ -4,7 +4,7 @@
 
 #include "bluez-bluetoothmanager.h"
 #include "bluez-bluetoothinterface.h"
-//#include "bluez-bluetoothremotedevice.h"
+#include "bluez-bluetoothremotedevice.h"
 
 int main(int argc, char **argv)
 {
@@ -14,23 +14,14 @@
 
     kDebug() << "Interfaces: " << mgr.bluetoothInterfaces();
     kDebug() << "Default Interface: " << mgr.defaultInterface();
-    kDebug() << "Finding Interface hci0: " << mgr.findInterface("hci0");
 
-
-//  kDebug() << "Bluetooth Input Devices: " << mgr.bluetoothInputDevices();
+    kDebug() << "Bluetooth Input Devices: " << mgr.bluetoothInputDevices();
 
     BluezBluetoothInterface iface(mgr.defaultInterface());
 
-    iface.setProperty("Name","testNAME");
-
-    QMap<QString, QVariant> props =  iface.getProperties();
-
-    foreach(QString key, props.keys()) {
-        kDebug() << "Interface Property: " << key << " : " << props[key];
-    }
-
+//    iface.discoverDevices();
 
-    iface.startDiscovery();
+    iface.startPeriodicDiscovery();
 
 #if 0
     BluezBluetoothRemoteDevice remote("/org/bluez/hci0/00:16:BC:15:A3:FF");

solid-bluetoothTrunkTo42.diff:

--- NEW FILE solid-bluetoothTrunkTo42.diff ---
Index: solid_bluez.desktop
===================================================================
--- solid_bluez.desktop	(.../branches/KDE/4.2/kdebase/workspace/solid/bluez)	(revision 912529)
+++ solid/bluez/solid_bluez.desktop	(.../trunk/KDE/kdebase/workspace/solid/bluez)	(revision 912529)
@@ -7,7 +7,6 @@
 Name=BlueZ
 Name[hi]=ब्लूज़
 Name[kn]=ಬ್ಲೂಜ಼್
-Name[mai]=ब्लूज
 Name[ne]=ब्लुZ
 Name[sr]=БлуЗ
 Name[x-test]=xxBlueZxx
Index: bluez-bluetoothinterface.cpp
===================================================================
--- bluez-bluetoothinterface.cpp	(.../branches/KDE/4.2/kdebase/workspace/solid/bluez)	(revision 912529)
+++ solid/bluez/bluez-bluetoothinterface.cpp	(.../trunk/KDE/kdebase/workspace/solid/bluez)	(revision 912529)
@@ -25,6 +25,7 @@
 #include <solid/control/bluetoothinterface.h>
 
 #include "bluez-bluetoothremotedevice.h"
+#include "bluez-bluetoothinputdevice.h"
 #include <KDebug>
 
 
@@ -43,6 +44,7 @@
     QString objectPath;
 
     QMap<QString, BluezBluetoothRemoteDevice *> devices;
+    QMap<QString, BluezBluetoothInputDevice *> inputDevices;
 };
 
 
@@ -56,23 +58,6 @@
                                    objectPath, \
                                    "org.bluez.Adapter", \
                                    signal, this, SLOT(slot));
-/*  
-    connectInterfaceToThis("ModeChanged", slotModeChanged(const QString &));
-    connectInterfaceToThis("DiscoverableTimeoutChanged", slotDiscoverableTimeoutChanged(int));
-    connectInterfaceToThis("MinorClassChanged", slotMinorClassChanged(const QString &));
-    connectInterfaceToThis("NameChanged", slotNameChanged(const QString &));
-    connectInterfaceToThis("DiscoveryStarted", slotDiscoveryStarted());
-    connectInterfaceToThis("DiscoveryCompleted", slotDiscoveryCompleted());
-    connectInterfaceToThis("RemoteDeviceDisappeared", slotRemoteDeviceDisappeared(const QString &));
-    connectInterfaceToThis("RemoteDeviceFound", slotRemoteDeviceFound(const QString &, uint, short));
-    connectInterfaceToThis("RemoteNameUpdated", slotRemoteNameUpdated(const QString &, const QString &));
-    connectInterfaceToThis("RemoteDeviceConnected", slotRemoteDeviceConnected(const QString &));
-    connectInterfaceToThis("RemoteDeviceDisconnected", slotRemoteDeviceDisconnected(const QString &));
-    connectInterfaceToThis("TrustAdded", slotTrustAdded(const QString &));
-    connectInterfaceToThis("TrustRemoved", slotTrustRemoved(const QString &));
-    connectInterfaceToThis("BondingCreated", slotBondingCreated(const QString &));
-    connectInterfaceToThis("BondingRemoved", slotBondingRemoved(const QString &));
-*/
 
     connectInterfaceToThis("PropertyChanged", slotPropertyChanged(const QString &, const QVariant &));
     connectInterfaceToThis("DeviceCreated", slotDeviceCreated(const QDBusObjectPath &));
@@ -98,21 +83,14 @@
     d->iface.call("CancelDeviceCreation",addr);
 }
 
-QString BluezBluetoothInterface::createDevice(const QString &addr) const
+void BluezBluetoothInterface::createDevice(const QString &addr) const
 {
-    QDBusObjectPath path = objectReply("CreateDevice",addr);
-    return path.path();
+    d->iface.call("CreateDevice",addr);
 }
 
-QString BluezBluetoothInterface::createPairedDevice(const QString &addr, const QString &agentUBI, const QString &capab) const
+void BluezBluetoothInterface::createPairedDevice(const QString &addr, const QString &agentUBI, const QString &capab) const
 {
-    QDBusReply< QDBusObjectPath > reply;
-    reply = d->iface.call("CreatePairedDevice",addr,agentUBI,capab);
-
-    if (!reply.isValid()) {
-        return QString();
-    }
-    return reply.value().path();
+    d->iface.call("CreatePairedDevice",addr,qVariantFromValue(QDBusObjectPath(agentUBI)),capab);
 }
 
 QString BluezBluetoothInterface::findDevice(const QString &addr) const
@@ -147,7 +125,7 @@
 
 void BluezBluetoothInterface::registerAgent(const QString &agentUBI, const QString &capab)
 {
-    d->iface.call("RegisterAgent",agentUBI,capab);
+    d->iface.call("RegisterAgent",qVariantFromValue(QDBusObjectPath(agentUBI)),capab);
 }
 
 void BluezBluetoothInterface::releaseSession()
@@ -157,7 +135,7 @@
 
 void BluezBluetoothInterface::removeDevice(const QString &deviceUBI )
 {
-    d->iface.call("RemoveDevice",deviceUBI);
+    d->iface.call("RemoveDevice",qVariantFromValue(QDBusObjectPath(deviceUBI)));
 }
 
 void BluezBluetoothInterface::requestSession()
@@ -183,305 +161,20 @@
 
 void BluezBluetoothInterface::unregisterAgent(const QString &agentUBI)
 {
-    d->iface.call("UnregisterAgent",agentUBI);
+    d->iface.call("UnregisterAgent",qVariantFromValue(QDBusObjectPath(agentUBI)));
 }
 
 
 
-/*
-
-QString BluezBluetoothInterface::address() const
+void BluezBluetoothInterface::slotDeviceCreated(const QDBusObjectPath &path)
 {
-    return stringReply("GetAddress");
-}
+    kDebug() << "device created";
 
-QString BluezBluetoothInterface::version() const
-{
-    return stringReply("GetVersion");
-}
-
-QString BluezBluetoothInterface::revision() const
-{
-    return stringReply("GetRevision");
-}
-
-QString BluezBluetoothInterface::manufacturer() const
-{
-    return stringReply("GetManufacturer");
-}
-
-QString BluezBluetoothInterface::company() const
-{
-    return stringReply("GetCompany");
-}
-
-Solid::Control::BluetoothInterface::Mode BluezBluetoothInterface::mode() const
-{
-    QString theMode = stringReply("GetMode");
-    Solid::Control::BluetoothInterface::Mode modeEnum;
-    if (theMode == "connectable")
-    {
-        modeEnum = Solid::Control::BluetoothInterface::Connectable;
+    if (!d->devices.contains(path.path())) {
+        BluezBluetoothRemoteDevice* bluetoothRemoteDev = new BluezBluetoothRemoteDevice(path.path());
+        d->devices.insert(path.path(), bluetoothRemoteDev);
     }
-    else if (theMode == "discoverable")
-    {
-        modeEnum = Solid::Control::BluetoothInterface::Discoverable;
-    } else {
-        Q_ASSERT(theMode == "off");
-        modeEnum = Solid::Control::BluetoothInterface::Off;
-    }
-    return modeEnum;
-}
 
-int BluezBluetoothInterface::discoverableTimeout() const
-{
-    QDBusReply< uint > timeout = d->iface.call("GetDiscoverableTimeout");
-    if (timeout.isValid()) {
-        return timeout.value();
-    }
-
-    return -1;
-}
-
-bool BluezBluetoothInterface::isDiscoverable() const
-{
-    return boolReply("IsDiscoverable");
-}
-
-QStringList BluezBluetoothInterface::listConnections() const
-{
-    QStringList list = listReply("ListConnections");
-    for (int i = 0; i < list.size(); i++) {
-        list[i] = ubi() + '/' + list[i];
-    }
-    return list;
-}
-
-QString BluezBluetoothInterface::majorClass() const
-{
-    return stringReply("GetMajorClass");
-}
-
-QStringList BluezBluetoothInterface::listAvailableMinorClasses() const
-{
-    return listReply("ListAvailableMinorClasses");
-}
-
-QString BluezBluetoothInterface::minorClass() const
-{
-    return stringReply("GetMinorClass");
-}
-
-QStringList BluezBluetoothInterface::serviceClasses() const
-{
-    return listReply("GetServiceClasses");
-}
-
-QString BluezBluetoothInterface::name() const
-{
-    return stringReply("GetName");
-}
-
-QString BluezBluetoothInterface::getRemoteName(const QString &mac)
-{
-    return stringReply("GetRemoteName",mac);
-}
-
-bool BluezBluetoothInterface::isTrusted(const QString &mac)
-{
-   return boolReply("IsTrusted",mac);
-}
-
-QStringList BluezBluetoothInterface::listBondings() const
-{
-    return listReply("ListBondings");
-}
-
-bool BluezBluetoothInterface::isPeriodicDiscoveryActive() const
-{
-    return boolReply("IsPeriodicDiscovery");
-}
-
-bool BluezBluetoothInterface::isPeriodicDiscoveryNameResolvingActive() const
-{
-    return boolReply("IsPeriodicDiscoveryNameResolving");
-}
-
-QStringList BluezBluetoothInterface::listRemoteDevices() const
-{
-    QStringList list = listReply("ListRemoteDevices");
-    for (int i = 0; i < list.size(); i++) {
-        list[i] = ubi() + '/' + list[i];
-    }
-    return list;
-}
-
-QStringList BluezBluetoothInterface::listRecentRemoteDevices(const QDateTime &) const
-{
-    return listReply("ListRecentRemoteDevices");
-}
-
-void BluezBluetoothInterface::setMode(const Solid::Control::BluetoothInterface::Mode mode)
-{
-    QString modeString;
-    switch(mode)
-    {
-    case Solid::Control::BluetoothInterface::Off:
-        modeString = "off";
-        break;
-    case Solid::Control::BluetoothInterface::Discoverable:
-        modeString = "discoverable";
-        break;
-    case Solid::Control::BluetoothInterface::Connectable:
-        modeString = "connectable";
-        break;
-    }
-    d->iface.call("SetMode", modeString);
-}
-
-void BluezBluetoothInterface::setDiscoverableTimeout(int timeout)
-{
-    d->iface.call("SetDiscoverableTimeout", (uint)timeout);
-}
-
-void BluezBluetoothInterface::setMinorClass(const QString &minorClass)
-{
-    d->iface.call("SetMinorClass", minorClass);
-}
-
-void BluezBluetoothInterface::setName(const QString &name)
-{
-    d->iface.call("SetName", name);
-}
-
-void BluezBluetoothInterface::discoverDevices()
-{
-    d->iface.call("DiscoverDevices");
-}
-
-void BluezBluetoothInterface::discoverDevicesWithoutNameResolving()
-{
-    d->iface.call("DiscoverDevicesWithoutNameResolving");
-}
-
-void BluezBluetoothInterface::cancelDiscovery()
-{
-    d->iface.call("CancelDiscovery");
-}
-
-void BluezBluetoothInterface::startPeriodicDiscovery()
-{
-    d->iface.call("StartPeriodicDiscovery");
-}
-
-void BluezBluetoothInterface::stopPeriodicDiscovery()
-{
-    d->iface.call("StopPeriodicDiscovery");
-}
-
-void BluezBluetoothInterface::setPeriodicDiscoveryNameResolving(bool nameResolving)
-{
-    d->iface.call("SetPeriodicDiscoveryNameResolving", nameResolving);
-}
-
-void BluezBluetoothInterface::setTrusted(const QString& mac)
-{
-    d->iface.call("SetTrusted", mac);
-}
-
-void BluezBluetoothInterface::removeTrust(const QString& mac)
-{
-    d->iface.call("RemoveTrust", mac);
-}
-
-*/
-
-
-
-/*
-
-void BluezBluetoothInterface::slotModeChanged(const Solid::Control::BluetoothInterface::Mode mode)
-{
-    emit modeChanged(mode);
-}
-
-void BluezBluetoothInterface::slotDiscoverableTimeoutChanged(int timeout)
-{
-    emit discoverableTimeoutChanged(timeout);
-}
-
-void BluezBluetoothInterface::slotMinorClassChanged(const QString &minorClass)
-{
-    emit minorClassChanged(minorClass);
-}
-
-void BluezBluetoothInterface::slotNameChanged(const QString &name)
-{
-    emit nameChanged(name);
-}
-
-void BluezBluetoothInterface::slotDiscoveryStarted()
-{
-    emit discoveryStarted();
-}
-
-void BluezBluetoothInterface::slotDiscoveryCompleted()
-{
-    emit discoveryCompleted();
-}
-
-void BluezBluetoothInterface::slotRemoteDeviceFound(const QString &address, uint deviceClass, short rssi)
-{
-    QString remoteubi = QString("%1/%2").arg(ubi()).arg(address);
-    emit remoteDeviceFound(remoteubi, deviceClass, rssi);
-}
-
-void BluezBluetoothInterface::slotRemoteDeviceDisappeared(const QString &address)
-{
-    QString remoteubi = QString("%1/%2").arg(ubi()).arg(address);
-    emit remoteDeviceDisappeared(remoteubi);
-}
-
-void BluezBluetoothInterface::slotRemoteNameUpdated(const QString &address, const QString& name)
-{
-   emit remoteNameUpdated(address,name);
-}
-
-void BluezBluetoothInterface::slotRemoteDeviceConnected(const QString &address)
-{
-   emit remoteDeviceConnected(address);
-}
-
-void BluezBluetoothInterface::slotRemoteDeviceDisconnected(const QString &address)
-{
-   emit remoteDeviceDisconnected(address);
-}
-
-void BluezBluetoothInterface::slotTrustAdded(const QString &address)
-{
-   emit trustAdded(address);
-}
-
-void BluezBluetoothInterface::slotTrustRemoved(const QString &address)
-{
-   emit trustRemoved(address);
-}
-
-void BluezBluetoothInterface::slotBondingCreated(const QString &address)
-{
-   emit bondingCreated(address);
-}
-
-void BluezBluetoothInterface::slotBondingRemoved(const QString &address)
-{
-   emit bondingRemoved(address);
-}
-
-*/
-
-void BluezBluetoothInterface::slotDeviceCreated(const QDBusObjectPath &path)
-{
-    kDebug() << "device created";
     emit deviceCreated(path.path());
 }
 
@@ -523,7 +216,20 @@
     return bluetoothInterface;
 }
 
+QObject *BluezBluetoothInterface::createBluetoothInputDevice(const QString &ubi)
+{
+    BluezBluetoothInputDevice *bluetoothInputDev;
+    if (d->inputDevices.contains(ubi)) {
+        bluetoothInputDev = d->inputDevices[ubi];
+    } else {
+        bluetoothInputDev = new BluezBluetoothInputDevice(ubi);
+        d->inputDevices.insert(ubi, bluetoothInputDev);
+    }
+    return bluetoothInputDev;
+}
 
+
+
 /******************* DBus Calls *******************************/
 
 QStringList BluezBluetoothInterface::listReply(const QString &method) const
@@ -574,10 +280,13 @@
 
     if (param.isEmpty())
 	    reply = d->iface.call(method);
-    else
+    else {
+            qDebug() << "ObjectReply calling: " << method << " " << param;
 	    reply = d->iface.call(method, param);
+    }
 	    	
     if (reply.isValid()) {
+        qDebug() << "ObjectReply Valid? "<<  reply.value().path();
         return reply.value();
     }
 
Index: bluez-bluetoothinterface.h
===================================================================
--- bluez-bluetoothinterface.h	(.../branches/KDE/4.2/kdebase/workspace/solid/bluez)	(revision 912529)
+++ solid/bluez/bluez-bluetoothinterface.h	(.../trunk/KDE/kdebase/workspace/solid/bluez)	(revision 912529)
@@ -27,6 +27,7 @@
 #include <QtDBus>
 #include <QDBusVariant>
 #include <QDBusObjectPath>
+#include <QString>
 
 #include <solid/control/ifaces/bluetoothinterface.h>
 
@@ -42,34 +43,11 @@
     BluezBluetoothInterface(const QString  & objectPath);
     virtual ~BluezBluetoothInterface();
     QString ubi() const;
-/*
-    QString address() const;
-    QString version() const;
-    QString revision() const;
-    QString manufacturer() const;
-    QString company() const;
-    Solid::Control::BluetoothInterface::Mode mode() const;
-    int discoverableTimeout() const;
-    bool isDiscoverable() const;
-    QStringList listConnections() const;
-    QString majorClass() const;
-    QStringList listAvailableMinorClasses() const;
-    QString minorClass() const;
-    QStringList serviceClasses() const;
-    QString name() const;
-    QStringList listBondings() const;
-    bool isPeriodicDiscoveryActive() const;
-    bool isPeriodicDiscoveryNameResolvingActive() const;
-    QStringList listRemoteDevices() const;
-    QStringList listRecentRemoteDevices(const QDateTime &) const;
-    QString getRemoteName(const QString &);
-    bool isTrusted(const QString &);
-
-*/    
+    
     QObject *createBluetoothRemoteDevice(const QString &);
-
-    QString createDevice(const QString &) const;
-    QString createPairedDevice(const QString &,const QString &,const QString &) const;
+    QObject *createBluetoothInputDevice(const QString &);
+    void createDevice(const QString &) const;
+    void createPairedDevice(const QString &,const QString &,const QString &) const;
     QString findDevice(const QString &) const;
     QMap< QString, QVariant > getProperties() const;
     QStringList listDevices() const;
@@ -87,36 +65,6 @@
     void stopDiscovery();
     void unregisterAgent(const QString &);
 
-/*
-    void setMode(const Solid::Control::BluetoothInterface::Mode);
-    void setDiscoverableTimeout(int);
-    void setMinorClass(const QString &);
-    void setName(const QString &);
-    void discoverDevices();
-    void discoverDevicesWithoutNameResolving();
-    void cancelDiscovery();
-    void startPeriodicDiscovery();
-    void stopPeriodicDiscovery();
-    void setPeriodicDiscoveryNameResolving(bool);
-    void setTrusted(const QString &);
-    void removeTrust(const QString &);
-
-    void slotModeChanged(const Solid::Control::BluetoothInterface::Mode mode);
-    void slotDiscoverableTimeoutChanged(int timeout);
-    void slotMinorClassChanged(const QString &minor);
-    void slotNameChanged(const QString &name);
-    void slotDiscoveryStarted();
-    void slotDiscoveryCompleted();
-    void slotRemoteDeviceFound(const QString &ubi, uint deviceClass, short rssi);
-    void slotRemoteDeviceDisappeared(const QString &ubi);
-    void slotRemoteNameUpdated(const QString &, const QString &);
-    void slotRemoteDeviceConnected(const QString&);
-    void slotRemoteDeviceDisconnected(const QString&);
-    void slotTrustAdded(const QString&);
-    void slotTrustRemoved(const QString&);
-    void slotBondingCreated(const QString&);
-    void slotBondingRemoved(const QString&);
-*/    
     void slotDeviceCreated(const QDBusObjectPath &);
     void slotDeviceDisappeared(const QString &);
     void slotDeviceFound(const QString &, const QMap< QString, QVariant > &);
Index: bluez-bluetoothmanager.cpp
===================================================================
--- bluez-bluetoothmanager.cpp	(.../branches/KDE/4.2/kdebase/workspace/solid/bluez)	(revision 912529)
+++ solid/bluez/bluez-bluetoothmanager.cpp	(.../trunk/KDE/kdebase/workspace/solid/bluez)	(revision 912529)
@@ -104,6 +104,7 @@
 
 QString BluezBluetoothManager::defaultInterface() const
 {
+    kDebug() << "Calling Backend Default Interface";
     QDBusReply< QDBusObjectPath > path = d->manager.call("DefaultAdapter");
     if (!path.isValid())
         return QString();
@@ -132,6 +133,16 @@
     return bluetoothInterface;
 }
 
+void BluezBluetoothManager::removeInterface(const QString& ubi)
+{
+
+    if (d->interfaces.contains(ubi)) {
+        kDebug() << "Removing Interface" << ubi;
+        BluezBluetoothInterface * bluetoothInterface = d->interfaces.take(ubi);
+        bluetoothInterface = 0;
+    }
+}
+
 /*
 KJob *BluezBluetoothManager::setupInputDevice(const QString &ubi)
 {
Index: bluez-bluetoothremotedevice.cpp
===================================================================
--- bluez-bluetoothremotedevice.cpp	(.../branches/KDE/4.2/kdebase/workspace/solid/bluez)	(revision 912529)
+++ solid/bluez/bluez-bluetoothremotedevice.cpp	(.../trunk/KDE/kdebase/workspace/solid/bluez)	(revision 912529)
@@ -42,6 +42,7 @@
 	m_adapter = m_objectPath.left(objectPath.size() - 18);
 	m_address = m_objectPath.right(17);
 
+        kdDebug() << "Connecting to ObjectPath: " << objectPath;
 
 	device = new QDBusInterface("org.bluez", objectPath,
 				    "org.bluez.Device", QDBusConnection::systemBus());
@@ -79,7 +80,7 @@
 
 void BluezBluetoothRemoteDevice::setProperty(const QString &name, const QVariant &value)
 {
-    device->call("SetProperty",name,value);
+    device->call("SetProperty",name,qVariantFromValue(QDBusVariant(value)));
 }
 
 void BluezBluetoothRemoteDevice::discoverServices(const QString& pattern) const
Index: bluez-bluetoothmanager.h
===================================================================
--- bluez-bluetoothmanager.h	(.../branches/KDE/4.2/kdebase/workspace/solid/bluez)	(revision 912529)
+++ solid/bluez/bluez-bluetoothmanager.h	(.../trunk/KDE/kdebase/workspace/solid/bluez)	(revision 912529)
@@ -43,6 +43,7 @@
     virtual ~BluezBluetoothManager();
     QStringList bluetoothInterfaces() const;
     QObject * createInterface(const QString &);
+    void removeInterface(const QString& ubi);
 //  QStringList bluetoothInputDevices() const;
     QString defaultInterface() const;
     QString findInterface(const QString &) const;
diff -Nur -x '[^b][^l]*' -x .svn 4_2libsControl/bluetoothinputdevice.cpp kdebase/workspace/libs/solid/control/bluetoothinputdevice.cpp
--- 4_2libsControl/bluetoothinputdevice.cpp	2009-01-17 17:51:33.000000000 +0100
+++ libs/solid/control/bluetoothinputdevice.cpp	2009-01-14 21:06:47.000000000 +0100
@@ -91,8 +91,8 @@
     FrontendObjectPrivate::setBackendObject(object);
 
     if (object) {
-        QObject::connect(object, SIGNAL(propertyChanged(QString,QVariant)),
-                         parent(), SIGNAL(propertyChanged(QString,QVariant)));
+        QObject::connect(object, SIGNAL(propertyChanged(const QString&,const QVariant&)),
+                         parent(), SIGNAL(propertyChanged(const QString,const QVariant&)));
     }
 }
 
diff -Nur -x '[^b][^l]*' -x .svn 4_2libsControl/bluetoothinterface.cpp kdebase/workspace/libs/solid/control/bluetoothinterface.cpp
--- 4_2libsControl/bluetoothinterface.cpp	2009-01-17 17:51:33.000000000 +0100
+++ libs/solid/control/bluetoothinterface.cpp	2009-01-16 12:11:03.000000000 +0100
@@ -25,7 +25,7 @@
 #include <QStringList>
 #include <QVariant>
 
-#include <kdebug.h>
+#include <KDebug>
 
 #include "ifaces/bluetoothinterface.h"
 
@@ -49,9 +49,12 @@
     void setBackendObject(QObject *object);
 
     QPair<BluetoothRemoteDevice *, Ifaces::BluetoothRemoteDevice *> findRegisteredBluetoothRemoteDevice(const QString &ubi) const;
+    QPair<BluetoothInputDevice *, Ifaces::BluetoothInputDevice *> findRegisteredBluetoothInputDevice(const QString &ubi) const;
 
     mutable QMap<QString, QPair<BluetoothRemoteDevice *, Ifaces::BluetoothRemoteDevice *> > remoteDeviceMap;
+    mutable QMap<QString, QPair<BluetoothInputDevice *, Ifaces::BluetoothInputDevice *> > inputDeviceMap;
     mutable BluetoothRemoteDevice invalidDevice;
+    mutable BluetoothInputDevice invalidInputDevice;
 };
 }
 }
@@ -65,30 +68,39 @@
 {
     const BluetoothInterface &device = BluetoothManager::self().findBluetoothInterface(ubi);
     d->setBackendObject(device.d->backendObject());
+    QObject::connect(d->backendObject(), SIGNAL(deviceCreated(const QString &)),this, SLOT(slotDeviceCreated(const QString &)));
 }
 
 Solid::Control::BluetoothInterface::BluetoothInterface(QObject *backendObject)
         : QObject(), d(new BluetoothInterfacePrivate(this))
 {
     d->setBackendObject(backendObject);
+    QObject::connect(d->backendObject(), SIGNAL(deviceCreated(const QString &)),this, SLOT(slotDeviceCreated(const QString &)));
 }
 
 Solid::Control::BluetoothInterface::BluetoothInterface(const BluetoothInterface &device)
         : QObject(), d(new BluetoothInterfacePrivate(this))
 {
     d->setBackendObject(device.d->backendObject());
+    QObject::connect(d->backendObject(), SIGNAL(deviceCreated(const QString &)),this, SLOT(slotDeviceCreated(const QString &)));
 }
 
 Solid::Control::BluetoothInterface::~BluetoothInterface()
 {
     // Delete all the interfaces, they are now outdated
     typedef QPair<BluetoothRemoteDevice *, Ifaces::BluetoothRemoteDevice *> BluetoothRemoteDeviceIfacePair;
+    typedef QPair<BluetoothInputDevice *, Ifaces::BluetoothInputDevice *> BluetoothInputDeviceIfacePair;
 
     // Delete all the devices, they are now outdated
-    foreach (const BluetoothRemoteDeviceIfacePair &pair, d->remoteDeviceMap) {
+    foreach (const BluetoothRemoteDeviceIfacePair &pair, d->remoteDeviceMap.values()) {
         delete pair.first;
         delete pair.second;
     }
+    foreach (const BluetoothInputDeviceIfacePair &pair, d->inputDeviceMap.values()) {
+        delete pair.first;
+        delete pair.second;
+    }
+
 }
 
 Solid::Control::BluetoothInterface &Solid::Control::BluetoothInterface::operator=(const Solid::Control::BluetoothInterface  & dev)
@@ -108,9 +120,12 @@
     SOLID_CALL(Ifaces::BluetoothInterface *, d->backendObject(), cancelDeviceCreation(address));
 }
 
-QString Solid::Control::BluetoothInterface::createPairedDevice(const QString &address,const QString &adapterPath, const QString &capab) const
+void Solid::Control::BluetoothInterface::createPairedDevice(const QString &address,const QString &adapterPath, const QString &capab) const
 {
-    return_SOLID_CALL(Ifaces::BluetoothInterface *, d->backendObject(), QString(), createPairedDevice(address,adapterPath,capab));
+    Ifaces::BluetoothInterface *backend = qobject_cast<Ifaces::BluetoothInterface *>(d->backendObject());
+    if (backend == 0) 
+        return;
+    backend->createPairedDevice(address,adapterPath,capab);
 }
 
 QMap<QString, QVariant> Solid::Control::BluetoothInterface::getProperties() const
@@ -137,7 +152,7 @@
 
     Solid::Control::BluetoothRemoteDeviceList list;
     foreach (const QString& ubi,ubis) {
-        BluetoothRemoteDevice remoteDevice = findBluetoothRemoteDevice(ubi);
+        BluetoothRemoteDevice* remoteDevice = findBluetoothRemoteDeviceUBI(ubi);
         list.append(remoteDevice);
     }
     return list;
@@ -184,13 +199,13 @@
 }
 
 
-Solid::Control::BluetoothRemoteDevice Solid::Control::BluetoothInterface::findBluetoothRemoteDevice(const QString &address) const
+Solid::Control::BluetoothRemoteDevice Solid::Control::BluetoothInterface::findBluetoothRemoteDeviceAddr(const QString &address) const
 {
     Ifaces::BluetoothInterface *backend = qobject_cast<Ifaces::BluetoothInterface *>(d->backendObject());
     if (backend == 0) 
         return d->invalidDevice;
 
-    const QString ubi = backend->findDevice(address);
+    const QString ubi = getBluetoothRemoteDeviceUBI(address);
 
     QPair<BluetoothRemoteDevice *, Ifaces::BluetoothRemoteDevice *> pair = d->findRegisteredBluetoothRemoteDevice(ubi);
 
@@ -201,18 +216,56 @@
     }
 }
 
-Solid::Control::BluetoothRemoteDevice * Solid::Control::BluetoothInterface::createBluetoothRemoteDevice(const QString &address)
+
+const QString Solid::Control::BluetoothInterface::getBluetoothRemoteDeviceUBI(const QString &address) const
 {
     Ifaces::BluetoothInterface *backend = qobject_cast<Ifaces::BluetoothInterface *>(d->backendObject());
     if (backend == 0) 
-        return 0;
+        return "";
+
+    const QString ubi = backend->findDevice(address);
+    return ubi;
+}
 
-    const QString ubi = backend->createDevice(address);
 
+void Solid::Control::BluetoothInterface::createBluetoothRemoteDevice(const QString &address)
+{
+    Ifaces::BluetoothInterface *backend = qobject_cast<Ifaces::BluetoothInterface *>(d->backendObject());
+    if (backend == 0) 
+        return;
+    backend->createDevice(address);
+}
+
+
+Solid::Control::BluetoothRemoteDevice* Solid::Control::BluetoothInterface::findBluetoothRemoteDeviceUBI(const QString &ubi) const
+{
     QPair<BluetoothRemoteDevice *, Ifaces::BluetoothRemoteDevice *> pair = d->findRegisteredBluetoothRemoteDevice(ubi);
     return pair.first;
 }
 
+Solid::Control::BluetoothInputDevice* Solid::Control::BluetoothInterface::findBluetoothInputDeviceUBI(const QString &ubi) const
+{
+    QPair<BluetoothInputDevice *, Ifaces::BluetoothInputDevice *> pair = d->findRegisteredBluetoothInputDevice(ubi);
+    return pair.first;
+}
+
+void Solid::Control::BluetoothInterface::slotDeviceCreated(const QString& ubi)
+{
+
+    Ifaces::BluetoothInterface *backend = qobject_cast<Ifaces::BluetoothInterface *>(d->backendObject());
+    Ifaces::BluetoothRemoteDevice *iface = 0;
+
+    if (backend != 0) {
+        iface = qobject_cast<Ifaces::BluetoothRemoteDevice *>(backend->createBluetoothRemoteDevice(ubi));
+    }
+
+    if (iface != 0) {
+        BluetoothRemoteDevice *device = new BluetoothRemoteDevice(iface);
+
+        QPair<BluetoothRemoteDevice *, Ifaces::BluetoothRemoteDevice *> pair(device, iface);
+        d->remoteDeviceMap[ubi] = pair;
+    }
+}
 
 QString Solid::Control::BluetoothInterface::address() const
 {
@@ -492,8 +545,6 @@
         QObject::connect(object, SIGNAL(propertyChanged(const QString &,const QVariant &)),
                                  parent(), SIGNAL(propertyChanged(const QString &, const QVariant &)));
 
-
-
     }
 }
 
@@ -521,6 +572,32 @@
         }
 
     }
+}
+
+QPair<Solid::Control::BluetoothInputDevice *, Solid::Control::Ifaces::BluetoothInputDevice *> Solid::Control::BluetoothInterfacePrivate::findRegisteredBluetoothInputDevice(const QString &ubi) const
+{
+    if (inputDeviceMap.contains(ubi)) {
+        return inputDeviceMap[ubi];
+    } else {
+        Ifaces::BluetoothInterface *backend = qobject_cast<Ifaces::BluetoothInterface *>(backendObject());
+        Ifaces::BluetoothInputDevice *iface = 0;
+
+        if (backend != 0) {
+            iface = qobject_cast<Ifaces::BluetoothInputDevice *>(backend->createBluetoothInputDevice(ubi));
+        }
+
+        if (iface != 0) {
+            BluetoothInputDevice *device = new BluetoothInputDevice(iface);
+
+            QPair<BluetoothInputDevice *, Ifaces::BluetoothInputDevice *> pair(device, iface);
+            inputDeviceMap[ubi] = pair;
+
+            return pair;
+        } else {
+            return QPair<BluetoothInputDevice *, Ifaces::BluetoothInputDevice *>(0, 0);
+        }
+
+    }
 }
 
 #include "bluetoothinterface.moc"
diff -Nur -x '[^b][^l]*' -x .svn 4_2libsControl/bluetoothinterface.h kdebase/workspace/libs/solid/control/bluetoothinterface.h
--- 4_2libsControl/bluetoothinterface.h	2009-01-17 17:51:33.000000000 +0100
+++ libs/solid/control/bluetoothinterface.h	2009-01-14 14:17:14.000000000 +0100
@@ -28,7 +28,9 @@
 #include <QtCore/QMap>
 
 #include "bluetoothremotedevice.h"
+#include "bluetoothinputdevice.h"
 #include "ifaces/bluetoothremotedevice.h"
+#include "ifaces/bluetoothinputdevice.h"
 
 
 
@@ -37,7 +39,7 @@
 namespace Control
 {
 class BluetoothRemoteDevice;
-typedef QList<BluetoothRemoteDevice> BluetoothRemoteDeviceList;
+typedef QList<BluetoothRemoteDevice*> BluetoothRemoteDeviceList;
 class BluetoothInterfacePrivate;
 
 /**
@@ -115,7 +117,8 @@
      * @param ubi the identifier of the bluetooth device to instantiate
      * @returns a bluetooth object, if a bluetooth device having the given UBI, for this interface exists, 0 otherwise
      */
-    Solid::Control::BluetoothRemoteDevice* createBluetoothRemoteDevice(const QString &address);
+    //Solid::Control::BluetoothRemoteDevice* createBluetoothRemoteDevice(const QString &address);
+    void createBluetoothRemoteDevice(const QString &address);
 
     /**
      * Finds a BluetoothRemoteDevice object given its UBI.
@@ -123,7 +126,13 @@
      * @param ubi the identifier of the bluetooth remote device to find from this bluetooth interface
      * @returns a valid BluetoothRemoteDevice object if a remote device having the given UBI for this interface exists, an invalid BluetoothRemoteDevice object otherwise.
      */
-    Solid::Control::BluetoothRemoteDevice findBluetoothRemoteDevice(const QString &address) const;
+    const QString getBluetoothRemoteDeviceUBI(const QString &address) const;
+
+    Solid::Control::BluetoothRemoteDevice findBluetoothRemoteDeviceAddr(const QString &addr) const;
+
+    Solid::Control::BluetoothRemoteDevice* findBluetoothRemoteDeviceUBI(const QString &ubi) const;
+
+    Solid::Control::BluetoothInputDevice* findBluetoothInputDeviceUBI(const QString &ubi) const;
 
     /**
      * Retrieves the MAC address of the bluetooth interface/adapter.
@@ -296,7 +305,7 @@
 //    bool isTrusted(const QString &);
 
 
-    QString createPairedDevice(const QString &, const QString &, const QString &) const;
+    void createPairedDevice(const QString &, const QString &, const QString &) const;
 
     QMap< QString, QVariant > getProperties() const;
 
@@ -557,6 +566,9 @@
     QVariant getProperty(const QString&) const;
     BluetoothInterfacePrivate * const d;
 
+private slots:
+    void slotDeviceCreated(const QString& ubi);
+
 };
 
 } //Control
diff -Nur -x '[^b][^l]*' -x .svn 4_2libsControl/bluetoothmanager.cpp kdebase/workspace/libs/solid/control/bluetoothmanager.cpp
--- 4_2libsControl/bluetoothmanager.cpp	2009-01-17 17:51:33.000000000 +0100
+++ libs/solid/control/bluetoothmanager.cpp	2009-01-16 13:17:33.000000000 +0100
@@ -58,6 +58,7 @@
 
     void _k_interfaceAdded(const QString &ubi);
     void _k_interfaceRemoved(const QString &ubi);
+    void _k_defaultInterfaceChanged(const QString &ubi);
     void _k_interfaceDestroyed(QObject *object);
 /*
     void _k_inputDeviceCreated(const QString &ubi);
@@ -95,7 +96,7 @@
     typedef QPair<BluetoothInterface *, Ifaces::BluetoothInterface *> BluetoothInterfaceIfacePair;
 
     // Delete all the devices, they are now outdated
-    foreach (const BluetoothInterfaceIfacePair &pair, d->bluetoothInterfaceMap) {
+    foreach (const BluetoothInterfaceIfacePair &pair, d->bluetoothInterfaceMap.values()) {
         delete pair.first;
         delete pair.second;
     }
@@ -110,6 +111,8 @@
 
     if (backend == 0) return list;
 
+    kDebug() << "UBI List " << ubiList;
+
     foreach (const QString &ubi, ubiList) {
         QPair<BluetoothInterface *, Ifaces::BluetoothInterface *> pair = d->findRegisteredBluetoothInterface(ubi);
 
@@ -239,7 +242,9 @@
 */
 void Solid::Control::BluetoothManagerPrivate::_k_interfaceAdded(const QString &ubi)
 {
-    QPair<BluetoothInterface *, Ifaces::BluetoothInterface *> pair = bluetoothInterfaceMap.take(ubi);
+    kDebug() << "Size of InterfaceList " << bluetoothInterfaceMap.size();
+    QPair<BluetoothInterface *, Ifaces::BluetoothInterface *> pair = findRegisteredBluetoothInterface(ubi);
+/*    QPair<BluetoothInterface *, Ifaces::BluetoothInterface *> pair = bluetoothInterfaceMap.take(ubi);
 
     if (pair.first != 0) {
         // Oops, I'm not sure it should happen...
@@ -247,7 +252,7 @@
 
         delete pair.first;
         delete pair.second;
-    }
+    }*/
 
     emit q->interfaceAdded(ubi);
 }
@@ -261,11 +266,19 @@
         delete pair.second;
     }
 
+    Ifaces::BluetoothManager *backend = qobject_cast<Ifaces::BluetoothManager *>(managerBackend());
+    backend->removeInterface(ubi);
     emit q->interfaceRemoved(ubi);
 }
 
+void Solid::Control::BluetoothManagerPrivate::_k_defaultInterfaceChanged(const QString &ubi)
+{
+    emit q->defaultInterfaceChanged(ubi);
+}
+
 void Solid::Control::BluetoothManagerPrivate::_k_interfaceDestroyed(QObject *object)
 {
+    kDebug() << "Interface detroyed";
     Ifaces::BluetoothInterface *device = qobject_cast<Ifaces::BluetoothInterface *>(object);
 
     if (device != 0) {
@@ -323,6 +336,9 @@
                      q, SLOT(_k_interfaceAdded(const QString &)));
     QObject::connect(newBackend, SIGNAL(interfaceRemoved(const QString &)),
                      q, SLOT(_k_interfaceRemoved(const QString &)));
+    QObject::connect(newBackend, SIGNAL(defaultInterfaceChanged(const QString &)),
+                     q, SLOT(_k_defaultInterfaceChanged(const QString &)));
+
 /*
     QObject::connect(newBackend, SIGNAL(inputDeviceCreated(const QString &)),
                      q, SLOT(_k_inputDeviceCreated(const QString &)));
@@ -334,17 +350,22 @@
 
 QPair<Solid::Control::BluetoothInterface *, Solid::Control::Ifaces::BluetoothInterface *> Solid::Control::BluetoothManagerPrivate::findRegisteredBluetoothInterface(const QString &ubi) const
 {
+
+    kDebug() << "findRegisteredBluetoothInterface " << ubi;
     if (bluetoothInterfaceMap.contains(ubi)) {
         return bluetoothInterfaceMap[ubi];
     } else {
+        kDebug() << "Creating New Interface " << ubi;
         Ifaces::BluetoothManager *backend = qobject_cast<Ifaces::BluetoothManager *>(managerBackend());
         Ifaces::BluetoothInterface *iface = 0;
 
         if (backend != 0) {
+            kDebug() << "Calling Backend to Creating New Interface " << ubi;
             iface = qobject_cast<Ifaces::BluetoothInterface *>(backend->createInterface(ubi));
         }
 
         if (iface != 0) {
+            kDebug() << "BackendIface created ";
             BluetoothInterface *device = new BluetoothInterface(iface);
             QPair<BluetoothInterface *, Ifaces::BluetoothInterface *> pair(device, iface);
             QObject::connect(iface, SIGNAL(destroyed(QObject *)),
diff -Nur -x '[^b][^l]*' -x .svn 4_2libsControl/bluetoothmanager.h kdebase/workspace/libs/solid/control/bluetoothmanager.h
--- 4_2libsControl/bluetoothmanager.h	2009-01-17 17:51:33.000000000 +0100
+++ libs/solid/control/bluetoothmanager.h	2009-01-16 13:17:33.000000000 +0100
@@ -188,6 +188,7 @@
 
     Q_PRIVATE_SLOT(d, void _k_interfaceAdded(const QString &))
     Q_PRIVATE_SLOT(d, void _k_interfaceRemoved(const QString &))
+    Q_PRIVATE_SLOT(d, void _k_defaultInterfaceChanged(const QString &))
     Q_PRIVATE_SLOT(d, void _k_interfaceDestroyed(QObject *))
 /*
     Q_PRIVATE_SLOT(d, void _k_inputDeviceCreated(const QString &))
diff -Nur -x '[^b][^l]*' -x .svn 4_2libsControl/bluetoothremotedevice.cpp kdebase/workspace/libs/solid/control/bluetoothremotedevice.cpp
--- 4_2libsControl/bluetoothremotedevice.cpp	2009-01-17 17:51:33.000000000 +0100
+++ libs/solid/control/bluetoothremotedevice.cpp	2009-01-13 14:53:39.000000000 +0100
@@ -88,6 +88,15 @@
     return_SOLID_CALL(Ifaces::BluetoothRemoteDevice *, d->backendObject(), (QMap< QString,QVariant >()), getProperties());
 }
 
+QVariant Solid::Control::BluetoothRemoteDevice::getProperty(const QString &key)
+{
+    QMap<QString, QVariant> props = getProperties();
+    if (props.contains(key))
+        return props[key];
+    else
+        return QVariant();
+}
+
 QStringList Solid::Control::BluetoothRemoteDevice::listNodes()
 {
     Q_D(const BluetoothRemoteDevice);
@@ -113,14 +122,65 @@
 }
 
 
+QString Solid::Control::BluetoothRemoteDevice::address()
+{
+    QVariant var = getProperty("Address");
+
+    if (var.isValid())
+        return var.value<QString>();
+    else
+        return QString();
 
-/*
-QString Solid::Control::BluetoothRemoteDevice::address() const
+//    Q_D(const BluetoothRemoteDevice);
+//    return_SOLID_CALL(Ifaces::BluetoothRemoteDevice *, d->backendObject(), QString(), address());
+}
+
+bool Solid::Control::BluetoothRemoteDevice::isTrusted()
 {
-    Q_D(const BluetoothRemoteDevice);
-    return_SOLID_CALL(Ifaces::BluetoothRemoteDevice *, d->backendObject(), QString(), address());
+     QVariant var = getProperty("Trusted");
+
+    if (var.isValid())
+        return var.value<bool>();
+    else
+        return false;
+}
+
+void Solid::Control::BluetoothRemoteDevice::setTrusted(bool trust)
+{
+    setProperty("Trusted",QVariant(trust));
 }
 
+QString Solid::Control::BluetoothRemoteDevice::icon()
+{
+     QVariant var = getProperty("Icon");
+
+    if (var.isValid())
+        return var.value<QString>();
+    else
+        return "";
+}
+
+QStringList Solid::Control::BluetoothRemoteDevice::uuids()
+{
+     QVariant var = getProperty("UUIDs");
+
+    if (var.isValid())
+        return var.value<QStringList>();
+    else
+        return QStringList();
+}
+
+bool Solid::Control::BluetoothRemoteDevice::isConnected()
+{
+     QVariant var = getProperty("Connected");
+
+    if (var.isValid())
+        return var.value<bool>();
+    else
+        return false;
+}
+
+/*
 bool Solid::Control::BluetoothRemoteDevice::isConnected() const
 {
     Q_D(const BluetoothRemoteDevice);
@@ -168,12 +228,21 @@
     Q_D(const BluetoothRemoteDevice);
     return_SOLID_CALL(Ifaces::BluetoothRemoteDevice *, d->backendObject(), QStringList(), serviceClasses());
 }
-QString Solid::Control::BluetoothRemoteDevice::name() const
+*/
+
+QString Solid::Control::BluetoothRemoteDevice::name()
 {
-    Q_D(const BluetoothRemoteDevice);
-    return_SOLID_CALL(Ifaces::BluetoothRemoteDevice *, d->backendObject(), QString(), name());
+    QVariant var = getProperty("Name");
+
+    if (var.isValid())
+        return var.value<QString>();
+    else
+        return QString();
+
+//    return_SOLID_CALL(Ifaces::BluetoothRemoteDevice *, d->backendObject(), QString(), name());
 }
 
+/*
 QString Solid::Control::BluetoothRemoteDevice::alias() const
 {
     Q_D(const BluetoothRemoteDevice);
diff -Nur -x '[^b][^l]*' -x .svn 4_2libsControl/bluetoothremotedevice.h kdebase/workspace/libs/solid/control/bluetoothremotedevice.h
--- 4_2libsControl/bluetoothremotedevice.h	2009-01-17 17:51:33.000000000 +0100
+++ libs/solid/control/bluetoothremotedevice.h	2009-01-13 14:53:39.000000000 +0100
@@ -82,11 +82,46 @@
     bool operator==(const BluetoothRemoteDevice  & other) const;
 
     /**
-     * The UBI of the remote de device.
+     * The UBI of the remote device.
      */
     QString ubi() const;
 
     /**
+     * The address of the remote device.
+     */
+    QString address();
+
+    /**
+     * The name of the remote device.
+     */
+    QString name();
+
+    /**
+     * The icon of the remote device.
+     */
+    QString icon();
+
+    /**
+     * The Trust state of the remote device.
+     */
+    bool isTrusted();
+
+    /**
+     * Set the Trust state of the remote device.
+     */
+    void setTrusted(bool);
+
+    /**
+     * Returns the service uuids of the remote device.
+     */
+    QStringList uuids();
+
+    /**
+     * The Connection state of the remote device.
+     */
+    bool isConnected();
+
+    /**
      * Retrieve all properties from the remote device.
      *
      * @returns a hash of named properties
@@ -157,6 +192,9 @@
 
 private:
     Q_PRIVATE_SLOT(d_func(), void _k_destroyed(QObject *))
+
+
+    QVariant getProperty(const QString &key);
 };
 
 } //Control
diff -Nur -x '[^b][^l]*' -x .svn 4_2libsControl/ifaces/bluetoothinterface.h kdebase/workspace/libs/solid/control/ifaces/bluetoothinterface.h
--- 4_2libsControl/ifaces/bluetoothinterface.h	2009-01-17 17:51:32.000000000 +0100
+++ libs/solid/control/ifaces/bluetoothinterface.h	2009-01-16 17:16:55.000000000 +0100
@@ -240,7 +240,7 @@
      */
 
 
-    virtual QString createPairedDevice(const QString &, const QString &, const QString &) const = 0;
+    virtual void createPairedDevice(const QString &, const QString &, const QString &) const = 0;
 
     virtual QMap< QString, QVariant > getProperties() const = 0;
 
@@ -248,7 +248,8 @@
 
     virtual QString findDevice(const QString &) const = 0;
 
-    virtual QString createDevice(const QString &) const = 0;
+    //virtual QString createDevice(const QString &) const = 0;
+    virtual void createDevice(const QString &) const = 0;
 
 
 
@@ -320,7 +321,9 @@
      * @param ubi the identifier of the bluetooth remote device instantiated
      * @returns a new BluetoothRemoteDevice object if there's a device having the given UBI, 0 otherwise
      */
-    virtual QObject *createBluetoothRemoteDevice(const QString &address) = 0;
+    virtual QObject *createBluetoothRemoteDevice(const QString &ubi) = 0;
+
+    virtual QObject *createBluetoothInputDevice(const QString &ubi) = 0;
 
     /**
      * Marks the device as trusted.
diff -Nur -x '[^b][^l]*' -x .svn 4_2libsControl/ifaces/bluetoothmanager.h kdebase/workspace/libs/solid/control/ifaces/bluetoothmanager.h
--- 4_2libsControl/ifaces/bluetoothmanager.h	2009-01-17 17:51:32.000000000 +0100
+++ libs/solid/control/ifaces/bluetoothmanager.h	2009-01-16 12:42:32.000000000 +0100
@@ -89,6 +89,13 @@
      virtual QObject *createInterface(const QString &ubi) = 0;
 
     /**
+     * Removes a BluetoothInterface object from this backend given its UBI.
+     *
+     * @param ubi the identifier of the bluetooth interface instantiated
+     */
+     virtual void removeInterface(const QString &ubi) = 0;
+
+    /**
      * Retrieves the list of Universal Bluetooth Identifiers (UBIs) of bluetooth input devices
      * which are configured in the system. Configured means also not connected devices.
      *


Index: kdebase-workspace.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kdebase-workspace/F-9/kdebase-workspace.spec,v
retrieving revision 1.126
retrieving revision 1.127
diff -u -r1.126 -r1.127
--- kdebase-workspace.spec	28 Jan 2009 12:54:57 -0000	1.126
+++ kdebase-workspace.spec	29 Jan 2009 19:41:04 -0000	1.127
@@ -1,10 +1,14 @@
 %{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
 
+%if 0%{?fedora} <= 9
+%define have_bluez3 1
+%endif
+
 Summary: K Desktop Environment - Workspace
 Name: kdebase-workspace
 Version: 4.2.0
 
-Release: 2%{?dist}
+Release: 4%{?dist}.1
 Source0: ftp://ftp.kde.org/pub/kde/stable/%{version}/src/kdebase-workspace-%{version}.tar.bz2
 License: GPLv2
 Group: User Interface/Desktops
@@ -22,13 +26,17 @@
 Patch7: kdebase-workspace-4.0.3-krdb.patch
 Patch8: kdebase-workspace-4.0.72-klipper-url.patch
 Patch9: kdebase-workspace-4.1.80-session-button.patch
-Patch10: kdebase-workspace-4.1.2-ldap.patch
 Patch11: kdebase-workspace-4.1.96-font.patch
 Patch12: kdebase-workspace-4.2.0-default_applets.patch
 
 # upstream patches:
 # trunk
 Patch100: kdebase-workspace-4.1.96-AllowExternalPaths.patch
+# solid-bluetooth, https://bugzilla.redhat.com/481801
+Patch101: solid-bluetoothTrunkTo42.diff
+# revert solid-bluetooth to the version from 4.1.4, needed for kdebluetooth 0.2
+# 0.3 requires BlueZ 4 and the patch above
+Patch102: kdebase-workspace-4.2.0-bluetooth-revert.patch
 
 # FIXME: "inconsistent naming System Monitor vs KSysGuard" http://bugs.kde.org/162151
 
@@ -43,6 +51,9 @@
 Requires: kdebase4
 %endif
 
+# for plasmascript bits
+Requires: PyKDE4 >= %{version}
+
 # kdmtheme's functionality is now provided by kdebase-workspace itself
 Obsoletes: kdmtheme < 1.3
 
@@ -65,7 +76,6 @@
 BuildRequires: pam-devel
 BuildRequires: qimageblitz-devel
 BuildRequires: soprano-devel
-BuildRequires: openldap-devel
 BuildRequires: python-devel
 BuildRequires: PyKDE4-devel >= %{version}
 BuildRequires: qedje-devel
@@ -120,6 +130,11 @@
 %package devel
 Group:    Development/Libraries
 Summary:  Development files for %{name}
+%if 0%{?have_bluez3}
+Provides: solid-bluetooth-devel = 4.1.4-1
+%else
+Provides: solid-bluetooth-devel = 4.3-0.1
+%endif
 Requires: %{name}-libs = %{version}-%{release}
 Requires: kdelibs4-devel
 %description devel
@@ -128,6 +143,11 @@
 %package libs
 Summary: Runtime libraries for %{name}
 Group:   System Environment/Libraries
+%if 0%{?have_bluez3}
+Provides: solid-bluetooth = 4.1.4-1
+%else
+Provides: solid-bluetooth = 4.3-0.1
+%endif
 Requires: kdelibs4 >= %{version}
 Requires: %{name} = %{version}-%{release}
 %description libs
@@ -171,12 +191,16 @@
 %patch7 -p0 -b .krdb
 %patch8 -p1 -b .klipper-url
 %patch9 -p1 -b .session-button
-%patch10 -p1 -b .ldap
 %patch11 -p1 -b .font
 %patch12 -p1 -b .default_applets
 
 # upstream patches
 %patch100 -p1 -b .AllowExternalPaths
+%if 0%{?have_bluez3}
+%patch102 -p1 -b .bluetooth-revert
+%else
+%patch101 -p0 -b .solid-bluetoothTrunkTo42
+%endif
 
 %build
 
@@ -302,6 +326,18 @@
 
 
 %changelog
+* Thu Jan 29 2009 Kevin Kofler <Kevin at tigcc.ticalc.org> - 4.2.0-4.1
+- conditionalize bluetooth backport on F10+
+- F9: revert solid-bluetooth to the version from KDE 4.1.4
+
+* Thu Jan 29 2009 Rex Dieter <rdieter at fedoraproject.org> - 4.2.0-4
+- omit ldap hack (#457638), kde42's reduced linkage to the rescue
+
+* Thu Jan 29 2009 Rex Dieter <rdieter at fedoraproject.org> - 4.2.0-3
+- Requires: PyKDE4 (for plasmascript bits)
+- solid-bluetoothTrunkTo42.diff (bug #481801), and 
+  +Provides: solid-bluetooth(-devel) = 4.3
+
 * Wed Jan 28 2009 Than Ngo <than at redhat.com> - 4.2.0-2
 - readd the patch that omist battery applet when guidance-power-manager is installed
 


--- kdebase-workspace-4.1.2-ldap.patch DELETED ---




More information about the fedora-extras-commits mailing list