summaryrefslogtreecommitdiffstats
path: root/kde/patch/plasma5-nm
diff options
context:
space:
mode:
Diffstat (limited to 'kde/patch/plasma5-nm')
-rw-r--r--kde/patch/plasma5-nm/plasma-nm-fixes.patch322
-rw-r--r--kde/patch/plasma5-nm/plasma-nm_modemmanager-qt_api.patch73
-rw-r--r--kde/patch/plasma5-nm/plasma-nm_networkmanager.patch17
-rw-r--r--kde/patch/plasma5-nm/plasma5-nm_KDEBUG_423093.patch31
4 files changed, 443 insertions, 0 deletions
diff --git a/kde/patch/plasma5-nm/plasma-nm-fixes.patch b/kde/patch/plasma5-nm/plasma-nm-fixes.patch
new file mode 100644
index 0000000..d98448d
--- /dev/null
+++ b/kde/patch/plasma5-nm/plasma-nm-fixes.patch
@@ -0,0 +1,322 @@
+diff --git a/applet/declarative/contents/ui/main.qml b/applet/declarative/contents/ui/main.qml
+index 8ea88cc..aa81707 100644
+--- a/applet/declarative/contents/ui/main.qml
++++ b/applet/declarative/contents/ui/main.qml
+@@ -19,6 +19,7 @@
+ */
+
+ import QtQuick 1.1
++import org.kde.plasma.extras 0.1 as PlasmaExtras
+ import org.kde.plasma.components 0.1 as PlasmaComponents
+ import org.kde.plasma.core 0.1 as PlasmaCore
+ import org.kde.networkmanagement 0.1 as PlasmaNM
+@@ -77,16 +78,7 @@ Item {
+ anchors.fill: parent
+ }
+
+- ListView {
+- id: connectionView;
+-
+- property bool expandedItem: false;
+- property string previouslyExpandedItem: "";
+-
+- property bool activeExpanded: true;
+- property bool previousExpanded: true;
+- property bool unknownExpanded: true;
+-
++ PlasmaExtras.ScrollArea {
+ anchors {
+ left: parent.left;
+ right: parent.right;
+@@ -95,50 +87,64 @@ Item {
+ topMargin: padding.margins.top;
+ bottomMargin: padding.margins.bottom
+ }
+- clip: true
+- model: connectionSortModel;
+- currentIndex: -1;
+- interactive: true;
+- boundsBehavior: Flickable.StopAtBounds;
+- section.property: "itemSection";
+- section.delegate: SectionHeader {
+- onHideSection: {
+- if (section == i18n("Active connections")) {
+- connectionView.activeExpanded = false;
+- } else if (section == i18n("Previous connections")) {
+- connectionView.previousExpanded = false;
+- } else {
+- connectionView.unknownExpanded = false;
++
++ ListView {
++ id: connectionView;
++
++ property bool expandedItem: false;
++ property string previouslyExpandedItem: "";
++
++ property bool activeExpanded: true;
++ property bool previousExpanded: true;
++ property bool unknownExpanded: true;
++
++ anchors.fill: parent;
++
++ clip: true
++ model: connectionSortModel;
++ currentIndex: -1;
++ interactive: true;
++ boundsBehavior: Flickable.StopAtBounds;
++ section.property: "itemSection";
++ section.delegate: SectionHeader {
++ onHideSection: {
++ if (section == i18n("Active connections")) {
++ connectionView.activeExpanded = false;
++ } else if (section == i18n("Previous connections")) {
++ connectionView.previousExpanded = false;
++ } else {
++ connectionView.unknownExpanded = false;
++ }
+ }
+- }
+
+- onShowSection: {
+- if (section == i18n("Active connections")) {
+- connectionView.activeExpanded = true;
+- } else if (section == i18n("Previous connections")) {
+- connectionView.previousExpanded = true;
+- } else {
+- connectionView.unknownExpanded = true;
++ onShowSection: {
++ if (section == i18n("Active connections")) {
++ connectionView.activeExpanded = true;
++ } else if (section == i18n("Previous connections")) {
++ connectionView.previousExpanded = true;
++ } else {
++ connectionView.unknownExpanded = true;
++ }
+ }
+ }
+- }
+
+- delegate: ConnectionItem {
+- expanded: connectionView.expandedItem && connectionView.previouslyExpandedItem == itemUni;
+- onItemExpanded: {
+- if (itemExpanded) {
+- connectionView.expandedItem = true;
+- connectionView.previouslyExpandedItem = itemUni;;
+- connectionView.currentIndex = index;
+- } else {
+- connectionView.expandedItem = false;
+- connectionView.previouslyExpandedItem = "";
++ delegate: ConnectionItem {
++ expanded: connectionView.expandedItem && connectionView.previouslyExpandedItem == itemUni;
++ onItemExpanded: {
++ if (itemExpanded) {
++ connectionView.expandedItem = true;
++ connectionView.previouslyExpandedItem = itemUni;;
++ connectionView.currentIndex = index;
++ } else {
++ connectionView.expandedItem = false;
++ connectionView.previouslyExpandedItem = "";
++ }
+ }
+- }
+
+- ListView.onRemove: {
+- if (ListView.isCurrentItem) {
+- connectionView.previouslyExpandedItem = "";
++ ListView.onRemove: {
++ if (ListView.isCurrentItem) {
++ connectionView.previouslyExpandedItem = "";
++ }
+ }
+ }
+ }
+diff --git a/declarative-plugins/applet/connectionicon.cpp b/declarative-plugins/applet/connectionicon.cpp
+index c3f8540..76bdca0 100644
+--- a/declarative-plugins/applet/connectionicon.cpp
++++ b/declarative-plugins/applet/connectionicon.cpp
+@@ -166,12 +166,24 @@ void ConnectionIcon::setIcons()
+
+ foreach (const NetworkManager::ActiveConnection::Ptr & active, actives) {
+ if (((active->default4() || active->default6()) && active->state() == NetworkManager::ActiveConnection::Activated) || !defaultRouteExists) {
++ NetworkManager::ActiveConnection::Ptr activeConnection;
++ if (active->vpn()) {
++ NetworkManager::ActiveConnection::Ptr activeTmp;
++ activeTmp = NetworkManager::findActiveConnection(active->specificObject());
++ if (activeTmp) {
++ activeConnection = activeTmp;
++ }
+
+- if (active->vpn() || active->devices().isEmpty()) {
++ vpnFound = true;
++ NMAppletDebug() << "Emit signal setHoverIcon(object-locked)";
++ Q_EMIT setHoverIcon("object-locked");
++ } else {
++ activeConnection = active;
++ }
++ if (activeConnection->devices().isEmpty()) {
+ continue;
+ }
+-
+- NetworkManager::Device::Ptr device = NetworkManager::findNetworkInterface(active->devices().first());
++ NetworkManager::Device::Ptr device = NetworkManager::findNetworkInterface(activeConnection->devices().first());
+ if (device) {
+ NetworkManager::Device::Type type = device->type();
+
+@@ -184,7 +196,7 @@ void ConnectionIcon::setIcons()
+ setWirelessIconForSignalStrength(100);
+ connectionFound = true;
+ } else {
+- NetworkManager::AccessPoint::Ptr ap = wifiDevice->findAccessPoint(active->specificObject());
++ NetworkManager::AccessPoint::Ptr ap = wifiDevice->findAccessPoint(activeConnection->specificObject());
+ if (ap) {
+ setWirelessIcon(device, ap->ssid());
+ connectionFound = true;
+@@ -222,9 +234,7 @@ void ConnectionIcon::setIcons()
+ }
+ }
+ }
+- }
+-
+- if (active->vpn() && active->state() == NetworkManager::ActiveConnection::Activated) {
++ } else if (active->vpn() && active->state() == NetworkManager::ActiveConnection::Activated) {
+ vpnFound = true;
+ NMAppletDebug() << "Emit signal setHoverIcon(object-locked)";
+ Q_EMIT setHoverIcon("object-locked");
+diff --git a/declarative-plugins/applet/networkstatus.cpp b/declarative-plugins/applet/networkstatus.cpp
+index d63066d..8149da9 100644
+--- a/declarative-plugins/applet/networkstatus.cpp
++++ b/declarative-plugins/applet/networkstatus.cpp
+@@ -129,8 +129,8 @@ void NetworkStatus::changeTooltip()
+ }
+
+ QString tooltip = "<qt>";
+- QString format = "<b>%1 - %2</b><br>%3<br><br>";
+- QString formatDefault = "<b>%1 - %2</b><br><b>%3</b><br><br>";
++ const QString format = "<b>%1 - %2</b><br>%3<br><br>";
++ const QString formatDefault = "<b>%1 - %2</b><br><b>%3</b><br><br>";
+
+ foreach (const NetworkManager::ActiveConnection::Ptr & active, NetworkManager::activeConnections()) {
+ if (!active->devices().isEmpty()) {
+@@ -145,7 +145,6 @@ void NetworkStatus::changeTooltip()
+ } else {
+ devName = device->ipInterfaceName();
+ }
+-// conType = NetworkManager::ConnectionSettings::typeAsString(active->connection()->settings()->connectionType());
+ if (active->vpn()) {
+ conType = i18n("VPN Connection");
+ } else {
+diff --git a/declarative-plugins/model/model.cpp b/declarative-plugins/model/model.cpp
+index 1b3f4c3..bb88362 100644
+--- a/declarative-plugins/model/model.cpp
++++ b/declarative-plugins/model/model.cpp
+@@ -230,7 +230,7 @@ void Model::addConnection(const QString& connection, const QString& device)
+ {
+ NetworkManager::Connection::Ptr con = NetworkManager::findConnection(connection);
+
+- if (con->settings()->isSlave()) {
++ if (con->settings()->isSlave() || con->name().isEmpty() || con->uuid().isEmpty()) {
+ return;
+ }
+
+@@ -395,7 +395,11 @@ void Model::removeWirelessNetwork(const QString& ssid, const QString& device)
+ if (wirelessDevice) {
+ accessPoint = wirelessDevice->findAccessPoint(item->specificPath());
+ }
+- if (accessPoint && accessPoint->mode() == NetworkManager::AccessPoint::Adhoc &&
++
++ // When accesspoint in ad-hoc mode dissapears, we should remove the item only when there is no connection. Similar case is when
++ // a wireless device is in AP mode, but in this case there could be only one visible AP and this should always be associated with some connection.
++ if (accessPoint && ((accessPoint->mode() == NetworkManager::AccessPoint::Adhoc && !item->connectionPath().isEmpty()) ||
++ wirelessDevice->mode() == NetworkManager::WirelessDevice::ApMode) &&
+ NetworkManager::isWirelessEnabled() && NetworkManager::isWirelessHardwareEnabled()) {
+ item->setWirelessNetwork(QString());
+ if (updateItem(item)) {
+diff --git a/declarative-plugins/model/modelitem.cpp b/declarative-plugins/model/modelitem.cpp
+index 9a5931f..58d5c42 100644
+--- a/declarative-plugins/model/modelitem.cpp
++++ b/declarative-plugins/model/modelitem.cpp
+@@ -151,6 +151,17 @@ QString ModelItem::icon() const
+ break;
+ case NetworkManager::ConnectionSettings::Wireless:
+ if (m_signal == 0 ) {
++ if (!m_connectionPath.isEmpty()) {
++ NetworkManager::Connection::Ptr con = NetworkManager::findConnection(m_connectionPath);
++ if (con) {
++ NetworkManager::WirelessSetting::Ptr wirelessSetting;
++ wirelessSetting = con->settings()->setting(NetworkManager::Setting::Wireless).dynamicCast<NetworkManager::WirelessSetting>();
++ if (wirelessSetting && (wirelessSetting->mode() == NetworkManager::WirelessSetting::Adhoc ||
++ wirelessSetting->mode() == NetworkManager::WirelessSetting::Ap)) {
++ return "network-wireless-100";
++ }
++ }
++ }
+ return "network-wireless-00";
+ } else if (m_signal < 20) {
+ return "network-wireless-20";
+diff --git a/kded/bluetoothmonitor.cpp b/kded/bluetoothmonitor.cpp
+index 2221d09..5d0218b 100644
+--- a/kded/bluetoothmonitor.cpp
++++ b/kded/bluetoothmonitor.cpp
+@@ -220,6 +220,7 @@ void BluetoothMonitor::init()
+
+ mDunDevice = reply.value();
+ }
++
+ #if WITH_MODEMMANAGER_SUPPORT
+ void BluetoothMonitor::modemAdded(const QString &udi)
+ {
+diff --git a/lib/editor/bridgewidget.cpp b/lib/editor/bridgewidget.cpp
+index 8815eb2..95344c4 100644
+--- a/lib/editor/bridgewidget.cpp
++++ b/lib/editor/bridgewidget.cpp
+@@ -216,5 +216,5 @@ void BridgeWidget::populateBridges()
+
+ bool BridgeWidget::isValid() const
+ {
+- return !m_ui->ifaceName->text().isEmpty() && m_ui->bridges->count() > 0;
++ return !m_ui->ifaceName->text().isEmpty();
+ }
+diff --git a/vpn/vpnc/vpnc.cpp b/vpn/vpnc/vpnc.cpp
+index d4a511d..645249d 100644
+--- a/vpn/vpnc/vpnc.cpp
++++ b/vpn/vpnc/vpnc.cpp
+@@ -145,7 +145,6 @@ NMVariantMapMap VpncUiPlugin::importConnectionSettings(const QString &fileName)
+ KConfigGroup cg(config, "main"); // Keys&Values are stored under [main]
+ if (cg.exists()) {
+ // Setup cisco-decrypt binary to decrypt the passwords
+- QStringList decrArgs;
+ const QString ciscoDecryptBinary = KStandardDirs::findExe("cisco-decrypt", QString::fromLocal8Bit(qgetenv("PATH")) + ":/usr/lib/vpnc");
+ if (ciscoDecryptBinary.isEmpty()) {
+ mErrorMessage = i18n("Needed executable cisco-decrypt could not be found.");
+@@ -174,11 +173,11 @@ NMVariantMapMap VpncUiPlugin::importConnectionSettings(const QString &fileName)
+ }
+ else if (!decrPlugin->readStringKeyValue(cg,"enc_UserPassword").isEmpty() && !ciscoDecryptBinary.isEmpty()) {
+ // Decrypt the password and insert into map
+- decrArgs.clear();
+- decrArgs << decrPlugin->readStringKeyValue(cg,"enc_UserPassword");
+- decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary, decrArgs);
++ decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary);
+ decrPlugin->ciscoDecrypt->start();
+- if (decrPlugin->ciscoDecrypt->waitForStarted() && decrPlugin->ciscoDecrypt->waitForFinished()) {
++ decrPlugin->ciscoDecrypt->waitForStarted();
++ decrPlugin->ciscoDecrypt->write(decrPlugin->readStringKeyValue(cg,"enc_UserPassword").toUtf8());
++ if (decrPlugin->ciscoDecrypt->waitForFinished()) {
+ secretData.insert(NM_VPNC_KEY_XAUTH_PASSWORD, decrPlugin->decryptedPasswd);
+ }
+ }
+@@ -203,11 +202,11 @@ NMVariantMapMap VpncUiPlugin::importConnectionSettings(const QString &fileName)
+ }
+ else if (!decrPlugin->readStringKeyValue(cg,"enc_GroupPwd").isEmpty() && !ciscoDecryptBinary.isEmpty()) {
+ //Decrypt the password and insert into map
+- decrArgs.clear();
+- decrArgs << decrPlugin->readStringKeyValue(cg,"enc_GroupPwd");
+- decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary, decrArgs);
++ decrPlugin->ciscoDecrypt->setProgram(ciscoDecryptBinary);
+ decrPlugin->ciscoDecrypt->start();
+- if (decrPlugin->ciscoDecrypt->waitForStarted() && decrPlugin->ciscoDecrypt->waitForFinished()) {
++ decrPlugin->ciscoDecrypt->waitForStarted();
++ decrPlugin->ciscoDecrypt->write(decrPlugin->readStringKeyValue(cg,"enc_GroupPwd").toUtf8());
++ if (decrPlugin->ciscoDecrypt->waitForFinished()) {
+ secretData.insert(NM_VPNC_KEY_SECRET, decrPlugin->decryptedPasswd);
+ data.insert(NM_VPNC_KEY_SECRET"-flags", QString::number(NetworkManager::Setting::AgentOwned));
+ }
diff --git a/kde/patch/plasma5-nm/plasma-nm_modemmanager-qt_api.patch b/kde/patch/plasma5-nm/plasma-nm_modemmanager-qt_api.patch
new file mode 100644
index 0000000..4c59f4c
--- /dev/null
+++ b/kde/patch/plasma5-nm/plasma-nm_modemmanager-qt_api.patch
@@ -0,0 +1,73 @@
+From: Jan Grulich <jgrulich@redhat.com>
+Date: Tue, 31 Mar 2015 12:37:16 +0000
+Subject: Adapt to modemmanager-qt API changes
+X-Git-Url: http://quickgit.kde.org/?p=plasma-nm.git&a=commitdiff&h=4d72cb7966edda33bc72c77fc2a126844fc1f134
+---
+Adapt to modemmanager-qt API changes
+---
+
+
+--- a/libs/models/networkmodel.cpp
++++ b/libs/models/networkmodel.cpp
+@@ -246,10 +246,10 @@
+ if (modem->hasInterface(ModemManager::ModemDevice::ModemInterface)) {
+ ModemManager::Modem::Ptr modemNetwork = modem->interface(ModemManager::ModemDevice::ModemInterface).objectCast<ModemManager::Modem>();
+ if (modemNetwork) {
+- connect(modemNetwork.data(), SIGNAL(signalQualityChanged(uint)),
+- SLOT(gsmNetworkSignalQualityChanged(uint)), Qt::UniqueConnection);
+- connect(modemNetwork.data(), SIGNAL(accessTechnologyChanged(ModemManager::Modem::AccessTechnologies)),
+- SLOT(gsmNetworkAccessTechnologyChanged(ModemManager::Modem::AccessTechnologies)), Qt::UniqueConnection);
++ connect(modemNetwork.data(), SIGNAL(signalQualityChanged(ModemManager::SignalQualityPair)),
++ SLOT(gsmNetworkSignalQualityChanged(ModemManager::SignalQualityPair)), Qt::UniqueConnection);
++ connect(modemNetwork.data(), SIGNAL(accessTechnologiesChanged(QFlags<MMModemAccessTechnology>)),
++ SLOT(gsmNetworkAccessTechnologiesChanged(QFlags<MMModemAccessTechnology>)), Qt::UniqueConnection);
+ connect(modemNetwork.data(), SIGNAL(currentModesChanged()),
+ SLOT(gsmNetworkCurrentModesChanged()), Qt::UniqueConnection);
+ }
+@@ -847,9 +847,9 @@
+ }
+
+ #if WITH_MODEMMANAGER_SUPPORT
+-void NetworkModel::gsmNetworkAccessTechnologyChanged(ModemManager::Modem::AccessTechnologies technology)
+-{
+- Q_UNUSED(technology);
++void NetworkModel::gsmNetworkAccessTechnologiesChanged(QFlags<MMModemAccessTechnology> accessTechnologies)
++{
++ Q_UNUSED(accessTechnologies);
+ ModemManager::Modem * gsmNetwork = qobject_cast<ModemManager::Modem*>(sender());
+ if (gsmNetwork) {
+ Q_FOREACH (const NetworkManager::Device::Ptr & dev, NetworkManager::networkInterfaces()) {
+@@ -893,7 +893,7 @@
+ }
+ }
+
+-void NetworkModel::gsmNetworkSignalQualityChanged(uint signal)
++void NetworkModel::gsmNetworkSignalQualityChanged(const ModemManager::SignalQualityPair &signalQuality)
+ {
+ ModemManager::Modem * gsmNetwork = qobject_cast<ModemManager::Modem*>(sender());
+ if (gsmNetwork) {
+@@ -905,7 +905,7 @@
+ ModemManager::Modem::Ptr modemNetwork = modem->interface(ModemManager::ModemDevice::ModemInterface).objectCast<ModemManager::Modem>();
+ if (modemNetwork && modemNetwork->device() == gsmNetwork->device()) {
+ Q_FOREACH (NetworkModelItem * item, m_list.returnItems(NetworkItemsList::Device, dev->uni())) {
+- item->setSignal(signal);
++ item->setSignal(signalQuality.signal);
+ updateItem(item);
+ }
+ }
+
+--- a/libs/models/networkmodel.h
++++ b/libs/models/networkmodel.h
+@@ -94,9 +94,9 @@
+ void deviceRemoved(const QString& device);
+ void deviceStateChanged(NetworkManager::Device::State state, NetworkManager::Device::State oldState, NetworkManager::Device::StateChangeReason reason);
+ #if WITH_MODEMMANAGER_SUPPORT
+- void gsmNetworkAccessTechnologyChanged(ModemManager::Modem::AccessTechnologies technology);
++ void gsmNetworkAccessTechnologiesChanged(QFlags<MMModemAccessTechnology> accessTechnologies);
+ void gsmNetworkCurrentModesChanged();
+- void gsmNetworkSignalQualityChanged(uint signal);
++ void gsmNetworkSignalQualityChanged(const ModemManager::SignalQualityPair &signalQuality);
+ #endif
+ void ipConfigChanged();
+ void ipInterfaceChanged();
+
diff --git a/kde/patch/plasma5-nm/plasma-nm_networkmanager.patch b/kde/patch/plasma5-nm/plasma-nm_networkmanager.patch
new file mode 100644
index 0000000..e635954
--- /dev/null
+++ b/kde/patch/plasma5-nm/plasma-nm_networkmanager.patch
@@ -0,0 +1,17 @@
+Patch taken from gentoo:
+https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd7dad9ddb35e1e3e68ad43176c5e48fbb25338d
+
+Fixes build with networkmanager-1.0.6.
+
+Triggered by http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?h=nm-1-0&id=6f616d4c4b04d5478f60d0311317bc84c5459ea4.
+
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -49,6 +49,7 @@
+ ${CMAKE_CURRENT_SOURCE_DIR}/libs
+ ${CMAKE_CURRENT_SOURCE_DIR}/libs/editor/
+ ${NETWORKMANAGER_INCLUDE_DIRS}
++ ${NM-UTIL_INCLUDE_DIRS}
+ ${NETWORKMANAGERQT_INCLUDE_DIRS}
+ ${KDE4_INCLUDES})
+
diff --git a/kde/patch/plasma5-nm/plasma5-nm_KDEBUG_423093.patch b/kde/patch/plasma5-nm/plasma5-nm_KDEBUG_423093.patch
new file mode 100644
index 0000000..53ea613
--- /dev/null
+++ b/kde/patch/plasma5-nm/plasma5-nm_KDEBUG_423093.patch
@@ -0,0 +1,31 @@
+From 271332cfc19ede398854113d037abfb35503179f Mon Sep 17 00:00:00 2001
+From: Nate Graham <nate@kde.org>
+Date: Thu, 18 Jun 2020 15:34:40 +0000
+Subject: [PATCH] [WIP] [applet] Fix inline password field component not
+ working properly
+
+BUG: 423093
+FIXED-IN: 5.20
+---
+ applet/contents/ui/ConnectionItem.qml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/applet/contents/ui/ConnectionItem.qml b/applet/contents/ui/ConnectionItem.qml
+index 98240928..06c7ab25 100644
+--- a/applet/contents/ui/ConnectionItem.qml
++++ b/applet/contents/ui/ConnectionItem.qml
+@@ -231,8 +231,8 @@ PlasmaExtras.ExpandableListItem {
+ if (!predictableWirelessPassword && !Uuid) {
+ handler.addAndActivateConnection(DevicePath, SpecificPath)
+ } else if (connectionItem.customExpandedViewContent == passwordDialogComponent) {
+- if (passwordDialogComponent.password != "") {
+- handler.addAndActivateConnection(DevicePath, SpecificPath, passwordDialogComponent.password)
++ if (connectionItem.customExpandedViewContentItem.password != "") {
++ handler.addAndActivateConnection(DevicePath, SpecificPath, connectionItem.customExpandedViewContentItem.password)
+ connectionItem.customExpandedViewContent = detailsComponent
+ connectionItem.collapse()
+ } else {
+--
+2.27.0
+
+