diff options
Diffstat (limited to 'kde/patch/plasma5-nm')
-rw-r--r-- | kde/patch/plasma5-nm/plasma-nm-fixes.patch | 322 | ||||
-rw-r--r-- | kde/patch/plasma5-nm/plasma-nm_modemmanager-qt_api.patch | 73 | ||||
-rw-r--r-- | kde/patch/plasma5-nm/plasma-nm_networkmanager.patch | 17 | ||||
-rw-r--r-- | kde/patch/plasma5-nm/plasma5-nm_KDEBUG_423093.patch | 31 |
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 + + |