[SCM] plasma-nm packaging branch, kubuntu_xenial_archive, updated. ubuntu/4%5.4.2-0ubuntu1-1-g6a66563
Clive Johnston
clivejo-guest at moszumanska.debian.org
Mon Oct 26 17:53:28 UTC 2015
Gitweb-URL: http://git.debian.org/?p=pkg-kde/plasma/plasma-nm.git;a=commitdiff;h=6a66563
The following commit has been merged in the kubuntu_xenial_archive branch:
commit 6a66563c56edfae3631d89bba1b3bbc66476b931
Author: Clive Johnston <clivejo at aol.com>
Date: Mon Oct 26 17:53:22 2015 +0000
Adding patch to fix LP Bug 1509334
* Adding patch - kubuntu_upstream_fix_making_bluez_asynchronous.diff
* Updating changelog
---
debian/changelog | 8 +
...ntu_upstream_fix_making_bluez_asynchronous.diff | 217 +++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 226 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 0ee9195..6bab8ae 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+plasma-nm (4:5.4.2-0ubuntu2) UNRELEASED; urgency=medium
+
+ * Applying patch (kubuntu_upstream_fix_making_bluez_asynchronous.diff)
+ which will be applied upstream to make all bluez calls asynchronous,
+ fixing Launchpad Bug 1509334 Patch by Jan Grulich jgrulich at redhat.com
+
+ -- Clive Johnston <clivejo at aol.com> Mon, 26 Oct 2015 16:14:16 +0000
+
plasma-nm (4:5.4.2-0ubuntu1) wily; urgency=medium
* New upstream release
diff --git a/debian/patches/kubuntu_upstream_fix_making_bluez_asynchronous.diff b/debian/patches/kubuntu_upstream_fix_making_bluez_asynchronous.diff
new file mode 100644
index 0000000..13ba4d6
--- /dev/null
+++ b/debian/patches/kubuntu_upstream_fix_making_bluez_asynchronous.diff
@@ -0,0 +1,217 @@
+From: Jan Grulich <jgrulich at redhat.com>
+Date: Sun, 25 Oct 2015 16:36:44 +0000
+Subject: Make all bluez calls asynchronous
+X-Git-Url: http://quickgit.kde.org/?p=plasma-nm.git&a=commitdiff&h=48a45ebad0e1d5ecc023a9e8866a95d47c76790f
+---
+Make all bluez calls asynchronous
+
+REVIEW:125785
+BUG:354230
+---
+
+
+--- a/libs/handler.cpp
++++ b/libs/handler.cpp
+@@ -42,6 +42,7 @@
+ #endif
+
+ #include <QDBusError>
++#include <QDBusPendingReply>
+ #include <QIcon>
+
+ #include <KNotification>
+@@ -54,9 +55,8 @@
+ #include <KIconLoader>
+ #include <KWallet/Wallet>
+
+-Handler::Handler(QObject* parent)
++Handler::Handler(QObject *parent)
+ : QObject(parent)
+- , m_tmpBluetoothEnabled(isBtEnabled())
+ #if !NM_CHECK_VERSION(1, 2, 0)
+ , m_tmpWimaxEnabled(NetworkManager::isWimaxEnabled())
+ #endif
+@@ -281,22 +281,19 @@
+ void Handler::enableAirplaneMode(bool enable)
+ {
+ if (enable) {
+- m_tmpBluetoothEnabled = isBtEnabled();
+ #if !NM_CHECK_VERSION(1, 2, 0)
+ m_tmpWimaxEnabled = NetworkManager::isWimaxEnabled();
+ #endif
+ m_tmpWirelessEnabled = NetworkManager::isWirelessEnabled();
+ m_tmpWwanEnabled = NetworkManager::isWwanEnabled();
+- enableBt(false);
++ enableBluetooth(false);
+ #if !NM_CHECK_VERSION(1, 2, 0)
+ enableWimax(false);
+ #endif
+ enableWireless(false);
+ enableWwan(false);
+ } else {
+- if (m_tmpBluetoothEnabled) {
+- enableBt(true);
+- }
++ enableBluetooth(true);
+ #if !NM_CHECK_VERSION(1, 2, 0)
+ if (m_tmpWimaxEnabled) {
+ enableWimax(true);
+@@ -311,6 +308,64 @@
+ }
+ }
+
++void Handler::enableBluetooth(bool enable)
++{
++ qDBusRegisterMetaType< QMap<QDBusObjectPath, NMVariantMapMap > >();
++
++ QDBusMessage message = QDBusMessage::createMethodCall("org.bluez", "/", "org.freedesktop.DBus.ObjectManager", "GetManagedObjects");
++ QDBusPendingReply<QMap<QDBusObjectPath, NMVariantMapMap> > reply = QDBusConnection::systemBus().asyncCall(message);
++ QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
++ connect(watcher, &QDBusPendingCallWatcher::finished,
++ [this, enable] (QDBusPendingCallWatcher *watcher) {
++ QDBusPendingReply<QMap<QDBusObjectPath, NMVariantMapMap> > reply = *watcher;
++ if (reply.isValid()) {
++ Q_FOREACH (const QDBusObjectPath &path, reply.value().keys()) {
++ const QString objPath = path.path();
++ qCDebug(PLASMA_NM) << "inspecting path" << objPath;
++ const QStringList interfaces = reply.value().value(path).keys();
++ qCDebug(PLASMA_NM) << "interfaces:" << interfaces;
++ if (interfaces.contains("org.bluez.Adapter1")) {
++ // We need to check previous state first
++ if (!enable) {
++ QDBusMessage message = QDBusMessage::createMethodCall("org.bluez", objPath, "org.freedesktop.DBus.Properties", "Get");
++ QList<QVariant> arguments;
++ arguments << QLatin1Literal("org.bluez.Adapter1");
++ arguments << QLatin1Literal("Powered");
++ message.setArguments(arguments);
++ QDBusPendingReply<QVariant> getReply = QDBusConnection::systemBus().asyncCall(message);
++ QDBusPendingCallWatcher *getWatcher = new QDBusPendingCallWatcher(getReply, this);
++ connect(getWatcher, &QDBusPendingCallWatcher::finished,
++ [this, objPath] (QDBusPendingCallWatcher *watcher) {
++ QDBusPendingReply<QVariant> reply = *watcher;
++ if (reply.isValid()) {
++ m_bluetoothAdapters.insert(objPath, reply.value().toBool());
++ QDBusMessage message = QDBusMessage::createMethodCall("org.bluez", objPath, "org.freedesktop.DBus.Properties", "Set");
++ QList<QVariant> arguments;
++ arguments << QLatin1Literal("org.bluez.Adapter1");
++ arguments << QLatin1Literal("Powered");
++ arguments << QVariant::fromValue(QDBusVariant(QVariant(false)));
++ message.setArguments(arguments);
++ QDBusConnection::systemBus().asyncCall(message);
++ }
++
++ });
++ getWatcher->deleteLater();
++ } else if (enable && m_bluetoothAdapters.value(objPath)) {
++ QDBusMessage message = QDBusMessage::createMethodCall("org.bluez", objPath, "org.freedesktop.DBus.Properties", "Set");
++ QList<QVariant> arguments;
++ arguments << QLatin1Literal("org.bluez.Adapter1");
++ arguments << QLatin1Literal("Powered");
++ arguments << QVariant::fromValue(QDBusVariant(QVariant(enable)));
++ message.setArguments(arguments);
++ QDBusConnection::systemBus().asyncCall(message);
++ }
++ }
++ }
++ }
++ });
++ watcher->deleteLater();
++}
++
+ void Handler::enableNetworking(bool enable)
+ {
+ NetworkManager::setNetworkingEnabled(enable);
+@@ -331,54 +386,6 @@
+ void Handler::enableWwan(bool enable)
+ {
+ NetworkManager::setWwanEnabled(enable);
+-}
+-
+-bool Handler::isBtEnabled()
+-{
+- qDBusRegisterMetaType< QMap<QDBusObjectPath, NMVariantMapMap > >();
+- bool result = false;
+-
+- QDBusInterface managerIface("org.bluez", "/", "org.freedesktop.DBus.ObjectManager", QDBusConnection::systemBus(), this);
+- QDBusReply<QMap<QDBusObjectPath, NMVariantMapMap> > reply = managerIface.call("GetManagedObjects");
+- if (reply.isValid()) {
+- Q_FOREACH (const QDBusObjectPath &path, reply.value().keys()) {
+- const QString objPath = path.path();
+- qCDebug(PLASMA_NM) << "inspecting path" << objPath;
+- const QStringList interfaces = reply.value().value(path).keys();
+- qCDebug(PLASMA_NM) << "interfaces:" << interfaces;
+- if (interfaces.contains("org.bluez.Adapter1")) {
+- QDBusInterface adapterIface("org.bluez", objPath, "org.bluez.Adapter1", QDBusConnection::systemBus(), this);
+- const bool adapterEnabled = adapterIface.property("Powered").toBool();
+- qCDebug(PLASMA_NM) << "Adapter" << objPath << "enabled:" << adapterEnabled;
+- result |= adapterEnabled;
+- }
+- }
+- } else {
+- qCDebug(PLASMA_NM) << "Failed to enumerate BT adapters";
+- }
+-
+- return result;
+-}
+-
+-void Handler::enableBt(bool enable)
+-{
+- QDBusInterface managerIface("org.bluez", "/", "org.freedesktop.DBus.ObjectManager", QDBusConnection::systemBus(), this);
+- QDBusReply<QMap<QDBusObjectPath, NMVariantMapMap> > reply = managerIface.call("GetManagedObjects");
+- if (reply.isValid()) {
+- Q_FOREACH (const QDBusObjectPath &path, reply.value().keys()) {
+- const QString objPath = path.path();
+- qCDebug(PLASMA_NM) << "inspecting path" << objPath;
+- const QStringList interfaces = reply.value().value(path).keys();
+- qCDebug(PLASMA_NM) << "interfaces:" << interfaces;
+- if (interfaces.contains("org.bluez.Adapter1")) {
+- QDBusInterface adapterIface("org.bluez", objPath, "org.bluez.Adapter1", QDBusConnection::systemBus(), this);
+- qCDebug(PLASMA_NM) << "Enabling adapter:" << objPath << enable;
+- adapterIface.setProperty("Powered", enable);
+- }
+- }
+- } else {
+- qCDebug(PLASMA_NM) << "Failed to enumerate BT adapters";
+- }
+ }
+
+ // void Handler::editConnection(const QString& uuid)
+
+--- a/libs/handler.h
++++ b/libs/handler.h
+@@ -84,7 +84,6 @@
+ */
+ void disconnectAll();
+ void enableAirplaneMode(bool enable);
+- void enableBt(bool enable);
+ void enableNetworking(bool enable);
+ void enableWireless(bool enable);
+ #if !NM_CHECK_VERSION(1, 2, 0)
+@@ -113,13 +112,12 @@
+
+ private Q_SLOTS:
+ void initKdedModule();
+- void replyFinished(QDBusPendingCallWatcher * watcher);
++ void replyFinished(QDBusPendingCallWatcher *watcher);
+ #if WITH_MODEMMANAGER_SUPPORT
+ void unlockRequiredChanged(MMModemLock modemLock);
+ #endif
+
+ private:
+- bool m_tmpBluetoothEnabled;
+ #if !NM_CHECK_VERSION(1, 2, 0)
+ bool m_tmpWimaxEnabled;
+ #endif
+@@ -131,8 +129,9 @@
+ QString m_tmpConnectionUuid;
+ QString m_tmpDevicePath;
+ QString m_tmpSpecificPath;
++ QMap<QString, bool> m_bluetoothAdapters;
+
+- bool isBtEnabled();
++ void enableBluetooth(bool enable);
+ QDBusInterface m_agentIface;
+ };
+
+
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..d51d09c
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+kubuntu_upstream_fix_making_bluez_asynchronous.diff
--
plasma-nm packaging
More information about the pkg-kde-commits
mailing list