author | Urja (ARMLFS builder)
<urja+armlfs@urja.dev> 2024-06-19 07:31:04 UTC |
committer | Urja (ARMLFS builder)
<urja+armlfs@urja.dev> 2024-06-19 07:31:04 UTC |
parent | 54ef276401c61559808db12daacb92df12dbfce1 |
.gitignore | +2 | -0 |
0001-Dubious-fix.patch | +36 | -0 |
0001-Revert-Make-ModemManagerQt-a-required-dependency.patch | +793 | -0 |
PKGBUILD | +17 | -7 |
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a43258a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/src/ +/pkg/ diff --git a/0001-Dubious-fix.patch b/0001-Dubious-fix.patch new file mode 100644 index 0000000..f38165d --- /dev/null +++ b/0001-Dubious-fix.patch @@ -0,0 +1,36 @@ +From ed5ad8417eee9bb4377f72e761920263509c56e4 Mon Sep 17 00:00:00 2001 +From: Nobody <nop@nop.nop> +Date: Fri, 24 May 2024 10:29:24 +0300 +Subject: [PATCH] Dubious fix + +--- + libs/handler.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libs/handler.cpp b/libs/handler.cpp +index d8191c03..bd964282 100644 +--- a/libs/handler.cpp ++++ b/libs/handler.cpp +@@ -972,7 +972,7 @@ void Handler::slotRequestWifiCode(QDBusPendingCallWatcher *watcher) + const QString connectionName = watcher->property("connectionName").toString(); + QDBusPendingReply<NMVariantMapMap> reply = *watcher; + if (!reply.isValid() || reply.isError()) { +- Q_EMIT wifiCodeReceived(ret % QLatin1Char(';'), connectionName); ++ Q_EMIT wifiCodeReceived(ret + QLatin1Char(';'), connectionName); + return; + } + +@@ -991,8 +991,8 @@ void Handler::slotRequestWifiCode(QDBusPendingCallWatcher *watcher) + return; + } + if (!pass.isEmpty()) { +- ret += QStringLiteral("P:") % pass % QLatin1Char(';'); ++ ret += QStringLiteral("P:") + pass + QLatin1Char(';'); + } + +- Q_EMIT wifiCodeReceived(ret % QLatin1Char(';'), connectionName); ++ Q_EMIT wifiCodeReceived(ret + QLatin1Char(';'), connectionName); + } +-- +2.44.0 + diff --git a/0001-Revert-Make-ModemManagerQt-a-required-dependency.patch b/0001-Revert-Make-ModemManagerQt-a-required-dependency.patch new file mode 100644 index 0000000..b347d5d --- /dev/null +++ b/0001-Revert-Make-ModemManagerQt-a-required-dependency.patch @@ -0,0 +1,793 @@ +From fd400d67f4af5181a3ffd8ed4e1c3b0fc5c2a3b2 Mon Sep 17 00:00:00 2001 +From: Nobody <nop@nop.nop> +Date: Fri, 24 May 2024 10:16:22 +0300 +Subject: [PATCH] Revert "Make ModemManagerQt a required dependency" + +This reverts commit e74e44310ef0795588d2c5240d04cc92b5d6999f. +Why, oh why are you bloat-o-maniacs there... +--- + CMakeLists.txt | 20 +++++++++++++++++++- + README.md | 6 +++++- + kcm/kcm.cpp | 2 ++ + kded/CMakeLists.txt | 23 +++++++++++++++++------ + kded/bluetoothmonitor.cpp | 5 ++++- + kded/bluetoothmonitor.h | 2 ++ + kded/monitor.cpp | 6 ++++++ + kded/monitor.h | 7 ++++++- + libs/CMakeLists.txt | 4 +++- + libs/declarative/CMakeLists.txt | 5 ++++- + libs/declarative/connectionicon.cpp | 20 ++++++++++++++++++++ + libs/declarative/connectionicon.h | 8 +++++++- + libs/editor/CMakeLists.txt | 19 +++++++++++++------ + libs/editor/uiutils.cpp | 4 ++++ + libs/editor/uiutils.h | 4 ++++ + libs/handler.cpp | 6 ++++++ + libs/handler.h | 8 +++++++- + libs/models/creatableconnectionsmodel.cpp | 2 ++ + libs/models/networkmodel.cpp | 14 +++++++++++--- + libs/models/networkmodel.h | 4 ++++ + libs/models/networkmodelitem.cpp | 4 ++++ + tests/CMakeLists.txt | 10 ++++++---- + 22 files changed, 156 insertions(+), 27 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 46230bdb..d75a17b3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -54,9 +54,12 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED + WidgetsAddons + WindowSystem + KCMUtils +- ModemManagerQt + ) + ++find_package(KF5ModemManagerQt ${KF5_MIN_VERSION}) ++set_package_properties(KF5ModemManagerQt PROPERTIES ++ TYPE OPTIONAL) ++ + ecm_find_qmlmodule(org.kde.prison 1.0) + + find_package(KF5Kirigami2 ${KF5_MIN_VERSION} CONFIG) +@@ -84,6 +87,19 @@ pkg_check_modules(NETWORKMANAGER IMPORTED_TARGET libnm>1.4.0 REQUIRED) + pkg_check_modules(MOBILEBROADBANDPROVIDERINFO mobile-broadband-provider-info) + pkg_get_variable(BROADBANDPROVIDER_DATABASE mobile-broadband-provider-info database) + ++if (DISABLE_MODEMMANAGER_SUPPORT) ++ message(STATUS "Disabling ModemManager support") ++ set(WITH_MODEMMANAGER_SUPPORT 0) ++else() ++ if (KF5ModemManagerQt_FOUND) ++ message(STATUS "Enabling ModemManager support") ++ set(WITH_MODEMMANAGER_SUPPORT 1) ++ else() ++ message(STATUS "ModemManager or ModemManagerQt not found") ++ set(WITH_MODEMMANAGER_SUPPORT 0) ++ endif() ++endif() ++ + add_definitions( + -DQT_DISABLE_DEPRECATED_BEFORE=0x050f00 + -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 +@@ -96,6 +112,8 @@ add_definitions(-DQT_NO_URL_CAST_FROM_STRING) + + remove_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY) + ++add_definitions(-DWITH_MODEMMANAGER_SUPPORT=${WITH_MODEMMANAGER_SUPPORT}) ++ + add_subdirectory(applet) + add_subdirectory(kded) + add_subdirectory(kcm) +diff --git a/README.md b/README.md +index feca419f..9865b083 100644 +--- a/README.md ++++ b/README.md +@@ -6,11 +6,15 @@ Plasma applet written in QML for managing network connections + Dependencies: + ------------- + * networkmanager-qt +- * modemmanager-qt + * NetworkManager 0.9.10 and newer + + Optional dependencies: + --------------------- ++ * modemmanager-qt ++ - requires ModemManager 1.0.0 and newer as runtime dependency ++ - Plasma-nm is compiled with ModemManager support by default when modemmanager-qt is found, ++ when you want to explicitly disable ModemManager support, use `-DDISABLE_MODEMMANAGER_SUPPORT=true` cmake parameter. ++ + * openconnect + - if you want to build the OpenConnect VPN plugin + +diff --git a/kcm/kcm.cpp b/kcm/kcm.cpp +index 617ec33c..d51036cf 100644 +--- a/kcm/kcm.cpp ++++ b/kcm/kcm.cpp +@@ -292,6 +292,7 @@ void KCMNetworkmanagement::onRequestCreateConnection(int connectionType, const Q + } + + } else if (type == NetworkManager::ConnectionSettings::Gsm) { // launch the mobile broadband wizard, both gsm/cdma ++#if WITH_MODEMMANAGER_SUPPORT + QPointer<MobileConnectionWizard> wizard = new MobileConnectionWizard(NetworkManager::ConnectionSettings::Unknown, this); + wizard->setAttribute(Qt::WA_DeleteOnClose); + connect(wizard.data(), &MobileConnectionWizard::accepted, [wizard, this]() { +@@ -325,6 +326,7 @@ void KCMNetworkmanagement::onRequestCreateConnection(int connectionType, const Q + }); + wizard->setModal(true); + wizard->show(); ++#endif + } else { + NetworkManager::ConnectionSettings::Ptr connectionSettings; + connectionSettings = NetworkManager::ConnectionSettings::Ptr(new NetworkManager::ConnectionSettings(type)); +diff --git a/kded/CMakeLists.txt b/kded/CMakeLists.txt +index f7dd2176..e58a59d3 100644 +--- a/kded/CMakeLists.txt ++++ b/kded/CMakeLists.txt +@@ -17,17 +17,25 @@ target_sources(kded_networkmanagement PRIVATE + passworddialog.h + secretagent.h + service.h +- modemmonitor.cpp +- modemmonitor.h +- pindialog.cpp +- pindialog.h + ) + + ki18n_wrap_ui(kded_networkmanagement + passworddialog.ui +- pinwidget.ui + ) + ++if (WITH_MODEMMANAGER_SUPPORT) ++ target_sources(kded_networkmanagement PRIVATE ++ modemmonitor.cpp ++ modemmonitor.h ++ pindialog.cpp ++ pindialog.h ++ ) ++ ++ ki18n_wrap_ui(kded_networkmanagement ++ pinwidget.ui ++ ) ++endif() ++ + ecm_qt_declare_logging_category(kded_networkmanagement HEADER plasma_nm_kded.h IDENTIFIER PLASMA_NM_KDED_LOG CATEGORY_NAME org.kde.plasma.nm.kded DESCRIPTION "Plasma NM (kded)" EXPORT PLASMANM) + + +@@ -45,9 +53,12 @@ target_link_libraries(kded_networkmanagement + KF5::Wallet + KF5::WindowSystem + KF5::KIOGui +- KF5::ModemManagerQt + ) + ++if (WITH_MODEMMANAGER_SUPPORT) ++ target_link_libraries(kded_networkmanagement KF5::ModemManagerQt) ++endif() ++ + install(TARGETS kded_networkmanagement DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf${QT_MAJOR_VERSION}/kded) + + install(FILES networkmanagement.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR}) +diff --git a/kded/bluetoothmonitor.cpp b/kded/bluetoothmonitor.cpp +index 82b32f6b..1b60527b 100644 +--- a/kded/bluetoothmonitor.cpp ++++ b/kded/bluetoothmonitor.cpp +@@ -85,7 +85,9 @@ void BluetoothMonitor::addBluetoothConnection(const QString &bdAddr, const QStri + btSetting->setInitialized(true); + + NetworkManager::addConnection(connectionSettings.toMap()); +- } else if (service == QLatin1String("dun")) { ++ } ++#if WITH_MODEMMANAGER_SUPPORT ++ else if (service == QLatin1String("dun")) { + QPointer<MobileConnectionWizard> mobileConnectionWizard = new MobileConnectionWizard(NetworkManager::ConnectionSettings::Bluetooth); + mobileConnectionWizard->setAttribute(Qt::WA_DeleteOnClose); + connect(mobileConnectionWizard.data(), &MobileConnectionWizard::accepted, [bdAddr, connectionName, mobileConnectionWizard]() { +@@ -121,4 +123,5 @@ void BluetoothMonitor::addBluetoothConnection(const QString &bdAddr, const QStri + mobileConnectionWizard->setModal(true); + mobileConnectionWizard->show(); + } ++#endif + } +diff --git a/kded/bluetoothmonitor.h b/kded/bluetoothmonitor.h +index 64776e8c..93b4ba35 100644 +--- a/kded/bluetoothmonitor.h ++++ b/kded/bluetoothmonitor.h +@@ -9,8 +9,10 @@ + + #ifndef PLASMA_NM_BLUETOOTH_MONITOR_H + #define PLASMA_NM_BLUETOOTH_MONITOR_H ++#if WITH_MODEMMANAGER_SUPPORT + #include "mobileconnectionwizard.h" + #include <ModemManagerQt/Manager> ++#endif + + #include <QObject> + +diff --git a/kded/monitor.cpp b/kded/monitor.cpp +index a5c06295..3120e625 100644 +--- a/kded/monitor.cpp ++++ b/kded/monitor.cpp +@@ -12,7 +12,9 @@ Monitor::Monitor(QObject *parent) + : QObject(parent) + , m_bluetoothMonitor(new BluetoothMonitor(this)) + { ++#if WITH_MODEMMANAGER_SUPPORT + m_modemMonitor = new ModemMonitor(this); ++#endif + + QDBusConnection::sessionBus().registerService(QStringLiteral("org.kde.plasmanetworkmanagement")); + QDBusConnection::sessionBus().registerObject(QStringLiteral("/org/kde/plasmanetworkmanagement"), this, QDBusConnection::ExportScriptableContents); +@@ -21,7 +23,9 @@ Monitor::Monitor(QObject *parent) + Monitor::~Monitor() + { + delete m_bluetoothMonitor; ++#if WITH_MODEMMANAGER_SUPPORT + delete m_modemMonitor; ++#endif + } + + bool Monitor::bluetoothConnectionExists(const QString &bdAddr, const QString &service) +@@ -34,8 +38,10 @@ void Monitor::addBluetoothConnection(const QString &bdAddr, const QString &servi + m_bluetoothMonitor->addBluetoothConnection(bdAddr, service, connectionName); + } + ++#if WITH_MODEMMANAGER_SUPPORT + void Monitor::unlockModem(const QString &modem) + { + qDebug() << "unlocking " << modem; + m_modemMonitor->unlockModem(modem); + } ++#endif +diff --git a/kded/monitor.h b/kded/monitor.h +index 1c9d3eb9..b853683c 100644 +--- a/kded/monitor.h ++++ b/kded/monitor.h +@@ -11,7 +11,9 @@ + #include <QObject> + + #include "bluetoothmonitor.h" ++#if WITH_MODEMMANAGER_SUPPORT + #include "modemmonitor.h" ++#endif + + class Q_DECL_EXPORT Monitor : public QObject + { +@@ -24,11 +26,14 @@ public: + public Q_SLOTS: + Q_SCRIPTABLE bool bluetoothConnectionExists(const QString &bdAddr, const QString &service); + Q_SCRIPTABLE void addBluetoothConnection(const QString &bdAddr, const QString &service, const QString &connectionName); ++#if WITH_MODEMMANAGER_SUPPORT + Q_SCRIPTABLE void unlockModem(const QString &modem); +- ++#endif + private: + BluetoothMonitor *const m_bluetoothMonitor; ++#if WITH_MODEMMANAGER_SUPPORT + ModemMonitor *m_modemMonitor = nullptr; ++#endif + }; + + #endif // PLASMA_NM_MONITOR_H +diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt +index 59d8cedc..bd4ac49b 100644 +--- a/libs/CMakeLists.txt ++++ b/libs/CMakeLists.txt +@@ -44,7 +44,9 @@ PRIVATE + KF5::KIOGui + ) + +-target_link_libraries(plasmanm_internal PUBLIC KF5::ModemManagerQt) ++if (WITH_MODEMMANAGER_SUPPORT) ++ target_link_libraries(plasmanm_internal PUBLIC KF5::ModemManagerQt) ++endif() + + install(TARGETS plasmanm_internal ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + +diff --git a/libs/declarative/CMakeLists.txt b/libs/declarative/CMakeLists.txt +index 3909e6b7..70581a79 100644 +--- a/libs/declarative/CMakeLists.txt ++++ b/libs/declarative/CMakeLists.txt +@@ -20,8 +20,11 @@ target_link_libraries(plasmanm_qmlplugins + plasmanm_editor + Qt::Quick + KF5::I18n +- KF5::ModemManagerQt + ) + ++if (WITH_MODEMMANAGER_SUPPORT) ++ target_link_libraries(plasmanm_qmlplugins KF5::ModemManagerQt) ++endif() ++ + install(TARGETS plasmanm_qmlplugins DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/networkmanagement) + install(FILES qmldir DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/networkmanagement) +diff --git a/libs/declarative/connectionicon.cpp b/libs/declarative/connectionicon.cpp +index 5f97fb5c..779982cd 100644 +--- a/libs/declarative/connectionicon.cpp ++++ b/libs/declarative/connectionicon.cpp +@@ -17,12 +17,16 @@ + #include <NetworkManagerQt/WirelessDevice> + #include <NetworkManagerQt/WirelessSetting> + ++#if WITH_MODEMMANAGER_SUPPORT + #include <ModemManagerQt/Manager> ++#endif + + ConnectionIcon::ConnectionIcon(QObject *parent) + : QObject(parent) + , m_wirelessNetwork(nullptr) ++#if WITH_MODEMMANAGER_SUPPORT + , m_modemNetwork(nullptr) ++#endif + { + connect(NetworkManager::notifier(), &NetworkManager::Notifier::primaryConnectionChanged, this, &ConnectionIcon::primaryConnectionChanged); + connect(NetworkManager::notifier(), &NetworkManager::Notifier::activatingConnectionChanged, this, &ConnectionIcon::activatingConnectionChanged); +@@ -173,6 +177,7 @@ void ConnectionIcon::deviceRemoved(const QString &device) + } + } + ++#if WITH_MODEMMANAGER_SUPPORT + void ConnectionIcon::modemNetworkRemoved() + { + m_modemNetwork.clear(); +@@ -188,6 +193,7 @@ void ConnectionIcon::modemSignalChanged(ModemManager::SignalQualityPair signalQu + setIconForModem(); + } + } ++#endif + + void ConnectionIcon::networkingEnabledChanged(bool enabled) + { +@@ -272,10 +278,12 @@ void ConnectionIcon::setStates() + void ConnectionIcon::setIcons() + { + m_signal = 0; ++#if WITH_MODEMMANAGER_SUPPORT + if (m_modemNetwork) { + disconnect(m_modemNetwork.data(), nullptr, this, nullptr); + m_modemNetwork.clear(); + } ++#endif + if (m_wirelessNetwork) { + disconnect(m_wirelessNetwork.data(), nullptr, this, nullptr); + m_wirelessNetwork.clear(); +@@ -348,12 +356,22 @@ void ConnectionIcon::setIcons() + setConnectionIcon(QStringLiteral("network-wired-activated")); + setConnectionTooltipIcon(QStringLiteral("network-wired-activated")); + } else if (type == NetworkManager::Device::Modem) { ++#if WITH_MODEMMANAGER_SUPPORT + setModemIcon(device); ++#else ++ setConnectionIcon("network-mobile-0"); ++ setConnectionTooltipIcon("phone"); ++#endif + } else if (type == NetworkManager::Device::Bluetooth) { + NetworkManager::BluetoothDevice::Ptr btDevice = device.objectCast<NetworkManager::BluetoothDevice>(); + if (btDevice) { + if (btDevice->bluetoothCapabilities().testFlag(NetworkManager::BluetoothDevice::Dun)) { ++#if WITH_MODEMMANAGER_SUPPORT + setModemIcon(device); ++#else ++ setConnectionIcon("network-mobile-0"); ++ setConnectionTooltipIcon("phone"); ++#endif + } else { + setConnectionIcon(QStringLiteral("network-bluetooth-activated")); + setConnectionTooltipIcon(QStringLiteral("preferences-system-bluetooth")); +@@ -432,6 +450,7 @@ void ConnectionIcon::setDisconnectedIcon() + } + } + ++#if WITH_MODEMMANAGER_SUPPORT + void ConnectionIcon::setModemIcon(const NetworkManager::Device::Ptr &device) + { + NetworkManager::ModemDevice::Ptr modemDevice = device.objectCast<NetworkManager::ModemDevice>(); +@@ -526,6 +545,7 @@ void ConnectionIcon::setIconForModem() + setConnectionIcon(QString(result).arg(strength)); + setConnectionTooltipIcon(QStringLiteral("phone")); + } ++#endif + + void ConnectionIcon::setWirelessIcon(const NetworkManager::Device::Ptr &device, const QString &ssid) + { +diff --git a/libs/declarative/connectionicon.h b/libs/declarative/connectionicon.h +index 22eecefd..287c9a0b 100644 +--- a/libs/declarative/connectionicon.h ++++ b/libs/declarative/connectionicon.h +@@ -7,11 +7,13 @@ + #ifndef PLASMA_NM_CONNECTION_ICON_H + #define PLASMA_NM_CONNECTION_ICON_H + +-#include <ModemManagerQt/Modem> + #include <NetworkManagerQt/ActiveConnection> + #include <NetworkManagerQt/Manager> + #include <NetworkManagerQt/VpnConnection> + #include <NetworkManagerQt/WirelessNetwork> ++#if WITH_MODEMMANAGER_SUPPORT ++#include <ModemManagerQt/Modem> ++#endif + + class ConnectionIcon : public QObject + { +@@ -45,9 +47,11 @@ private Q_SLOTS: + void deviceRemoved(const QString &device); + void networkingEnabledChanged(bool enabled); + void primaryConnectionChanged(const QString &connection); ++#if WITH_MODEMMANAGER_SUPPORT + void modemNetworkRemoved(); + void modemSignalChanged(ModemManager::SignalQualityPair signalQuality); + void setIconForModem(); ++#endif + void statusChanged(NetworkManager::Status status); + void setWirelessIconForSignalStrength(int strength); + void vpnConnectionStateChanged(NetworkManager::VpnConnection::State state, NetworkManager::VpnConnection::StateChangeReason reason); +@@ -81,8 +85,10 @@ private: + void setIcons(); + void setStates(); + void setWirelessIcon(const NetworkManager::Device::Ptr &device, const QString &ssid); ++#if WITH_MODEMMANAGER_SUPPORT + ModemManager::Modem::Ptr m_modemNetwork; + void setModemIcon(const NetworkManager::Device::Ptr &device); ++#endif + }; + + #endif // PLASMA_NM_CONNECTION_ICON_H +diff --git a/libs/editor/CMakeLists.txt b/libs/editor/CMakeLists.txt +index 1e2c3d68..fe983d63 100644 +--- a/libs/editor/CMakeLists.txt ++++ b/libs/editor/CMakeLists.txt +@@ -87,14 +87,19 @@ set(plasmanm_editor_SRCS + widgets/settingwidget.h + widgets/ssidcombobox.cpp + widgets/ssidcombobox.h +- widgets/mobileconnectionwizard.cpp +- widgets/mobileconnectionwizard.h + wireguardkeyvalidator.cpp + wireguardkeyvalidator.h +- mobileproviders.cpp +- mobileproviders.h + ) + ++if (WITH_MODEMMANAGER_SUPPORT) ++ set(plasmanm_editor_SRCS ++ ${plasmanm_editor_SRCS} ++ widgets/mobileconnectionwizard.cpp ++ widgets/mobileconnectionwizard.h ++ mobileproviders.cpp ++ mobileproviders.h) ++endif() ++ + ki18n_wrap_ui(plasmanm_editor_SRCS + settings/ui/802-1x.ui + settings/ui/bond.ui +@@ -143,7 +148,6 @@ PUBLIC + KF5::Completion + KF5::NetworkManagerQt + KF5::WidgetsAddons +- KF5::ModemManagerQt + Qt::Widgets + PRIVATE + KF5::I18n +@@ -156,6 +160,9 @@ PRIVATE + qca-qt${QT_MAJOR_VERSION} + ) + +-target_compile_definitions(plasmanm_editor PRIVATE BROADBANDPROVIDER_DATABASE=\"${BROADBANDPROVIDER_DATABASE}\") ++if (WITH_MODEMMANAGER_SUPPORT) ++ target_link_libraries(plasmanm_editor PUBLIC KF5::ModemManagerQt) ++ target_compile_definitions(plasmanm_editor PRIVATE BROADBANDPROVIDER_DATABASE=\"${BROADBANDPROVIDER_DATABASE}\") ++endif() + + install(TARGETS plasmanm_editor ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +diff --git a/libs/editor/uiutils.cpp b/libs/editor/uiutils.cpp +index 95d5decd..305d692b 100644 +--- a/libs/editor/uiutils.cpp ++++ b/libs/editor/uiutils.cpp +@@ -21,10 +21,12 @@ + #include <NetworkManagerQt/Manager> + #include <NetworkManagerQt/Security8021xSetting> + ++#if WITH_MODEMMANAGER_SUPPORT + #include <ModemManagerQt/Manager> + #include <ModemManagerQt/Modem3Gpp> + #include <ModemManagerQt/ModemCdma> + #include <ModemManagerQt/ModemDevice> ++#endif + + // Qt + #include <QHostAddress> +@@ -458,6 +460,7 @@ QString UiUtils::wirelessFrequencyToString(uint frequency) + return i18nc("Wireless connection frequency", "%1 GHz", frequency / 1000.0); + } + ++#if WITH_MODEMMANAGER_SUPPORT + QString UiUtils::convertAllowedModeToString(ModemManager::Modem::ModemModes modes) + { + if (modes.testFlag(MM_MODEM_MODE_4G)) { +@@ -561,6 +564,7 @@ QString UiUtils::convertLockReasonToString(MMModemLock reason) + return i18nc("possible SIM lock reason", "Lock reason unknown."); + } + } ++#endif + + NetworkManager::ModemDevice::Capability UiUtils::modemSubType(NetworkManager::ModemDevice::Capabilities modemCaps) + { +diff --git a/libs/editor/uiutils.h b/libs/editor/uiutils.h +index 7949fb3c..d143c4ee 100644 +--- a/libs/editor/uiutils.h ++++ b/libs/editor/uiutils.h +@@ -19,8 +19,10 @@ + #include <NetworkManagerQt/WirelessDevice> + #include <NetworkManagerQt/WirelessSetting> + ++#if WITH_MODEMMANAGER_SUPPORT + #include <ModemManager/ModemManager.h> + #include <ModemManagerQt/Modem> ++#endif + + class Q_DECL_EXPORT UiUtils + { +@@ -134,9 +136,11 @@ public: + */ + static void setConnectionDefaultPermissions(NetworkManager::ConnectionSettings::Ptr &settings); + ++#if WITH_MODEMMANAGER_SUPPORT + static QString convertAllowedModeToString(ModemManager::Modem::ModemModes mode); + static QString convertAccessTechnologyToString(ModemManager::Modem::AccessTechnologies tech); + static QString convertLockReasonToString(MMModemLock reason); ++#endif + static NetworkManager::ModemDevice::Capability modemSubType(NetworkManager::ModemDevice::Capabilities modemCaps); + static QString labelFromWirelessSecurity(NetworkManager::WirelessSecurityType type); + +diff --git a/libs/handler.cpp b/libs/handler.cpp +index 8b1782dd..d8191c03 100644 +--- a/libs/handler.cpp ++++ b/libs/handler.cpp +@@ -23,8 +23,10 @@ + + #include <libnm/nm-vpn-plugin-info.h> + ++#if WITH_MODEMMANAGER_SUPPORT + #include <ModemManagerQt/Manager> + #include <ModemManagerQt/ModemDevice> ++#endif + + #include <QDBusError> + #include <QDBusMetaType> +@@ -149,6 +151,7 @@ void Handler::activateConnection(const QString &connection, const QString &devic + } + } + ++#if WITH_MODEMMANAGER_SUPPORT + if (con->settings()->connectionType() == NetworkManager::ConnectionSettings::Gsm) { + NetworkManager::ModemDevice::Ptr nmModemDevice = NetworkManager::findNetworkInterface(device).objectCast<NetworkManager::ModemDevice>(); + if (nmModemDevice) { +@@ -172,6 +175,7 @@ void Handler::activateConnection(const QString &connection, const QString &devic + } + } + } ++#endif + + QDBusPendingReply<QDBusObjectPath> reply = NetworkManager::activateConnection(connection, device, specificObject); + auto watcher = new QDBusPendingCallWatcher(reply, this); +@@ -951,12 +955,14 @@ void Handler::primaryConnectionTypeChanged(NetworkManager::ConnectionSettings::C + Q_EMIT hotspotSupportedChanged(m_hotspotSupported); + } + ++#if WITH_MODEMMANAGER_SUPPORT + void Handler::unlockRequiredChanged(MMModemLock modemLock) + { + if (modemLock == MM_MODEM_LOCK_NONE) { + activateConnection(m_tmpConnectionPath, m_tmpDevicePath, m_tmpSpecificPath); + } + } ++#endif + + void Handler::slotRequestWifiCode(QDBusPendingCallWatcher *watcher) + { +diff --git a/libs/handler.h b/libs/handler.h +index 1ae77e07..3b34ce3f 100644 +--- a/libs/handler.h ++++ b/libs/handler.h +@@ -11,11 +11,13 @@ + #include <QPointer> + #include <QTimer> + +-#include <ModemManagerQt/GenericTypes> + #include <NetworkManagerQt/Connection> + #include <NetworkManagerQt/ConnectionSettings> + #include <NetworkManagerQt/Settings> + #include <NetworkManagerQt/Utils> ++#if WITH_MODEMMANAGER_SUPPORT ++#include <ModemManagerQt/GenericTypes> ++#endif + + class Q_DECL_EXPORT Handler : public QObject + { +@@ -133,7 +135,9 @@ private Q_SLOTS: + void replyFinished(QDBusPendingCallWatcher *watcher); + void hotspotCreated(QDBusPendingCallWatcher *watcher); + void primaryConnectionTypeChanged(NetworkManager::ConnectionSettings::ConnectionType type); ++#if WITH_MODEMMANAGER_SUPPORT + void unlockRequiredChanged(MMModemLock modemLock); ++#endif + void slotRequestWifiCode(QDBusPendingCallWatcher *watcher); + + Q_SIGNALS: +@@ -150,7 +154,9 @@ private: + bool m_hotspotSupported; + bool m_tmpWirelessEnabled; + bool m_tmpWwanEnabled; ++#if WITH_MODEMMANAGER_SUPPORT + QString m_tmpConnectionPath; ++#endif + QString m_tmpConnectionUuid; + QString m_tmpDevicePath; + QString m_tmpSpecificPath; +diff --git a/libs/models/creatableconnectionsmodel.cpp b/libs/models/creatableconnectionsmodel.cpp +index 8cdc6517..26e3f347 100644 +--- a/libs/models/creatableconnectionsmodel.cpp ++++ b/libs/models/creatableconnectionsmodel.cpp +@@ -146,12 +146,14 @@ void CreatableConnectionsModel::populateModel() + NetworkManager::ConnectionSettings::Infiniband); + m_list << connectionItem; + ++#if WITH_MODEMMANAGER_SUPPORT + connectionItem = new CreatableConnectionItem(i18n("Mobile Broadband"), + i18n("Hardware based connections"), + i18n("Some mobile broadband description"), + QStringLiteral("smartphone"), + NetworkManager::ConnectionSettings::Gsm); + m_list << connectionItem; ++#endif + + connectionItem = new CreatableConnectionItem(i18n("Wired Ethernet"), + i18n("Hardware based connections"), +diff --git a/libs/models/networkmodel.cpp b/libs/models/networkmodel.cpp +index 59fff801..80b46c91 100644 +--- a/libs/models/networkmodel.cpp ++++ b/libs/models/networkmodel.cpp +@@ -12,8 +12,9 @@ + #include <QVector> + #include <algorithm> + ++#if WITH_MODEMMANAGER_SUPPORT + #include <ModemManagerQt/Manager> +- ++#endif + #include <NetworkManagerQt/GenericDevice> + #include <NetworkManagerQt/Settings> + +@@ -297,7 +298,9 @@ void NetworkModel::initializeSignals(const NetworkManager::Device::Ptr &device) + connect(wifiDev.data(), &NetworkManager::WirelessDevice::networkAppeared, this, &NetworkModel::wirelessNetworkAppeared, Qt::UniqueConnection); + connect(wifiDev.data(), &NetworkManager::WirelessDevice::networkDisappeared, this, &NetworkModel::wirelessNetworkDisappeared, Qt::UniqueConnection); + +- } else if (device->type() == NetworkManager::Device::Modem) { ++ } ++#if WITH_MODEMMANAGER_SUPPORT ++ else if (device->type() == NetworkManager::Device::Modem) { + ModemManager::ModemDevice::Ptr modem = ModemManager::findModemDevice(device->udi()); + if (modem) { + if (modem->hasInterface(ModemManager::ModemDevice::ModemInterface)) { +@@ -322,6 +325,7 @@ void NetworkModel::initializeSignals(const NetworkManager::Device::Ptr &device) + } + } + } ++#endif + } + + void NetworkModel::initializeSignals(const NetworkManager::WirelessNetwork::Ptr &network) +@@ -409,6 +413,7 @@ void NetworkModel::addAvailableConnection(const QString &connection, const Netwo + item->setDevicePath(device->uni()); + item->setDeviceState(device->state()); + qCDebug(PLASMA_NM_LIBS_LOG).nospace() << "Item " << item->name() << ": device changed to " << item->devicePath(); ++#if WITH_MODEMMANAGER_SUPPORT + if (device->type() == NetworkManager::Device::Modem) { + ModemManager::ModemDevice::Ptr modemDevice = ModemManager::findModemDevice(device->udi()); + if (modemDevice) { +@@ -419,7 +424,7 @@ void NetworkModel::addAvailableConnection(const QString &connection, const Netwo + } + } + } +- ++#endif + if (item->type() == NetworkManager::ConnectionSettings::Wireless && item->mode() == NetworkManager::WirelessSetting::Infrastructure) { + // Find an accesspoint which could be removed, because it will be merged with a connection + for (NetworkModelItem *secondItem : m_list.returnItems(NetworkItemsList::Ssid, item->ssid())) { +@@ -933,6 +938,7 @@ void NetworkModel::deviceStateChanged(NetworkManager::Device::State state, + } + } + ++#if WITH_MODEMMANAGER_SUPPORT + void NetworkModel::gsmNetworkAccessTechnologiesChanged(QFlags<MMModemAccessTechnology> accessTechnologies) + { + Q_UNUSED(accessTechnologies); +@@ -1030,6 +1036,8 @@ void NetworkModel::gsmNetworkSignalQualityChanged(const ModemManager::SignalQual + } + } + ++#endif ++ + void NetworkModel::ipConfigChanged() + { + NetworkManager::Device::Ptr device = NetworkManager::findNetworkInterface(qobject_cast<NetworkManager::Device *>(sender())->uni()); +diff --git a/libs/models/networkmodel.h b/libs/models/networkmodel.h +index c32b8d2d..131ea417 100644 +--- a/libs/models/networkmodel.h ++++ b/libs/models/networkmodel.h +@@ -17,7 +17,9 @@ + #include <NetworkManagerQt/VpnConnection> + #include <NetworkManagerQt/WirelessDevice> + ++#if WITH_MODEMMANAGER_SUPPORT + #include <ModemManagerQt/Modem> ++#endif + + class Q_DECL_EXPORT NetworkModel : public QAbstractListModel + { +@@ -95,9 +97,11 @@ private Q_SLOTS: + void deviceAdded(const QString &device); + void deviceRemoved(const QString &device); + void deviceStateChanged(NetworkManager::Device::State state, NetworkManager::Device::State oldState, NetworkManager::Device::StateChangeReason reason); ++#if WITH_MODEMMANAGER_SUPPORT + void gsmNetworkAccessTechnologiesChanged(QFlags<MMModemAccessTechnology> accessTechnologies); + void gsmNetworkCurrentModesChanged(); + void gsmNetworkSignalQualityChanged(const ModemManager::SignalQualityPair &signalQuality); ++#endif + void ipConfigChanged(); + void ipInterfaceChanged(); + void statusChanged(NetworkManager::Status status); +diff --git a/libs/models/networkmodelitem.cpp b/libs/models/networkmodelitem.cpp +index 0de5c865..85ea7bf1 100644 +--- a/libs/models/networkmodelitem.cpp ++++ b/libs/models/networkmodelitem.cpp +@@ -26,11 +26,13 @@ + + #include <KLocalizedString> + ++#if WITH_MODEMMANAGER_SUPPORT + #include <ModemManagerQt/Manager> + #include <ModemManagerQt/Modem3Gpp> + #include <ModemManagerQt/Modem> + #include <ModemManagerQt/ModemCdma> + #include <ModemManagerQt/ModemDevice> ++#endif + + #include <QStringBuilder> + +@@ -660,6 +662,7 @@ void NetworkModelItem::updateDetails() const + m_details << i18n("MAC Address") << wirelessDevice->hardwareAddress(); + } + } else if (m_type == NetworkManager::ConnectionSettings::Gsm || m_type == NetworkManager::ConnectionSettings::Cdma) { ++#if WITH_MODEMMANAGER_SUPPORT + NetworkManager::ModemDevice::Ptr modemDevice = device.objectCast<NetworkManager::ModemDevice>(); + if (modemDevice) { + ModemManager::ModemDevice::Ptr modem = ModemManager::findModemDevice(modemDevice->udi()); +@@ -682,6 +685,7 @@ void NetworkModelItem::updateDetails() const + } + } + } ++#endif + } else if (m_type == NetworkManager::ConnectionSettings::Vpn) { + m_details << i18n("VPN plugin") << m_vpnType; + +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index 6a880a96..00ca8efb 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -18,7 +18,9 @@ ecm_add_test( + LINK_LIBRARIES Qt::Test plasmanm_editor + ) + +-ecm_add_test( +- mobileproviderstest.cpp +- LINK_LIBRARIES Qt::Test plasmanm_editor +-) ++if (WITH_MODEMMANAGER_SUPPORT) ++ ecm_add_test( ++ mobileproviderstest.cpp ++ LINK_LIBRARIES Qt::Test plasmanm_editor ++ ) ++endif() +-- +2.44.0 + diff --git a/PKGBUILD b/PKGBUILD index 5470892..af63034 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -7,24 +7,34 @@ pkgver=5.27.10 _dirver=$(echo $pkgver | cut -d. -f1-3) pkgrel=1 pkgdesc='Plasma applet written in QML for managing network connections' -arch=(x86_64) +arch=(x86_64 'armv7h') url='https://kde.org/plasma-desktop/' license=(GPL2) -depends=(plasma-workspace modemmanager-qt5 networkmanager-qt5) -makedepends=(extra-cmake-modules openconnect) -optdepends=('openconnect: Cisco AnyConnect VPN plugin') +depends=(plasma-workspace networkmanager-qt) +makedepends=(extra-cmake-modules) +#optdepends=('openconnect: Cisco AnyConnect VPN plugin') groups=(plasma) -source=(https://download.kde.org/stable/plasma/$_dirver/$pkgname-$pkgver.tar.xz{,.sig}) +source=(https://download.kde.org/stable/plasma/$_dirver/$pkgname-$pkgver.tar.xz{,.sig} + +0001-Revert-Make-ModemManagerQt-a-required-dependency.patch +0001-Dubious-fix.patch +) sha256sums=('b75dd3a7624e137ce350f438c3e3535c24d015d0e096e8e2f513b75df1b3dcb0' - 'SKIP') + 'SKIP' SKIP SKIP) validpgpkeys=('E0A3EB202F8E57528E13E72FD7574483BB57B18D' # Jonathan Esk-Riddell <jr@jriddell.org> '0AAC775BB6437A8D9AF7A3ACFE0784117FBCE11D' # Bhushan Shah <bshah@kde.org> 'D07BD8662C56CB291B316EB2F5675605C74E02CF' # David Edmundson <davidedmundson@kde.org> '1FA881591C26B276D7A5518EEAAF29B42A678C20') # Marco Martin <notmart@gmail.com> +prepare() { + cd $pkgname-$pkgver + patch -Np1 -i ../0001-Revert-Make-ModemManagerQt-a-required-dependency.patch + patch -Np1 -i ../0001-Dubious-fix.patch +} + build() { cmake -B build -S $pkgname-$pkgver \ - -DBUILD_TESTING=OFF + -DBUILD_TESTING=OFF -DDISABLE_MODEMMANAGER_SUPPORT=true cmake --build build }