From 751bc8192283fbd4569ba4999fa5d082c87cd2bf Mon Sep 17 00:00:00 2001 From: termux-pacman-bot Date: Mon, 9 Feb 2026 12:51:26 +0000 Subject: [PATCH] addpkg(x11/kdeplasma-addons): 6.5.5 Co-authored-by: Robert Kirkman --- x11-packages/kdeplasma-addons/build.sh | 16 +++ ...-improper-use-of-qnetworkinformation.patch | 101 ++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 x11-packages/kdeplasma-addons/build.sh create mode 100644 x11-packages/kdeplasma-addons/fix-undefined-behavior-improper-use-of-qnetworkinformation.patch diff --git a/x11-packages/kdeplasma-addons/build.sh b/x11-packages/kdeplasma-addons/build.sh new file mode 100644 index 0000000000..6a0c01142e --- /dev/null +++ b/x11-packages/kdeplasma-addons/build.sh @@ -0,0 +1,16 @@ +TERMUX_PKG_HOMEPAGE="https://invent.kde.org/plasma/kdeplasma-addons" +TERMUX_PKG_DESCRIPTION="All kind of addons to improve your Plasma experience" +TERMUX_PKG_LICENSE="LGPL-2.0-or-later" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION="6.5.5" +TERMUX_PKG_SRCURL="https://download.kde.org/stable/plasma/${TERMUX_PKG_VERSION}/kdeplasma-addons-${TERMUX_PKG_VERSION}.tar.xz" +TERMUX_PKG_SHA256="32b69b987258998b95017cf08aba1d85b986303bd59e1bbc600ed12e2184f5cb" +TERMUX_PKG_AUTO_UPDATE=true +TERMUX_PKG_DEPENDS="kf6-kauth, kf6-kcmutils, kf6-kconfig, kf6-kcoreaddons, kf6-kdbusaddons, kf6-kdeclarative, kf6-kglobalaccel, kf6-kholidays, kf6-ki18n, kf6-kiconthemes, kf6-kio, kf6-kirigami, kf6-kitemmodels, kf6-kjobwidgets, kf6-knewstuff, kf6-knotifications, kf6-kpackage, kf6-krunner, kf6-kservice, kf6-ksvg, kf6-kunitconversion, kf6-kwidgetsaddons, kf6-kwindowsystem, kf6-kxmlgui, kf6-sonnet, kirigami-addons, kwin-x11, libc++, libicu, libplasma, plasma-workspace, plasma5support, qt6-qt5compat, qt6-qtbase, qt6-qtdeclarative" +TERMUX_PKG_BUILD_DEPENDS="extra-cmake-modules, qt6-qtwebengine" +TERMUX_PKG_EXCLUDED_ARCHES="i686" +TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +-DCMAKE_SYSTEM_NAME=Linux +-DKDE_INSTALL_QMLDIR=lib/qt6/qml +-DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins +" diff --git a/x11-packages/kdeplasma-addons/fix-undefined-behavior-improper-use-of-qnetworkinformation.patch b/x11-packages/kdeplasma-addons/fix-undefined-behavior-improper-use-of-qnetworkinformation.patch new file mode 100644 index 0000000000..c0a972564e --- /dev/null +++ b/x11-packages/kdeplasma-addons/fix-undefined-behavior-improper-use-of-qnetworkinformation.patch @@ -0,0 +1,101 @@ +diff --git a/applets/comic/engine/comic.cpp b/applets/comic/engine/comic.cpp +index 4c6ae71..5074a94 100644 +--- a/applets/comic/engine/comic.cpp ++++ b/applets/comic/engine/comic.cpp +@@ -28,7 +28,10 @@ ComicEngine::ComicEngine(QObject *parent) + , mEmptySuffix(false) + , mIsCheckingForUpdates(false) + { +- QNetworkInformation::instance()->loadBackendByFeatures(QNetworkInformation::Feature::Reachability); ++ if (!QNetworkInformation::instance()->loadBackendByFeatures(QNetworkInformation::Feature::Reachability)) { ++ qWarning() << "QNetworkInformation is not supported on this device."; ++ m_qNetworkInformationHasBackend = false; ++ } + loadProviders(); + } + +@@ -278,5 +281,8 @@ QString ComicEngine::lastCachedIdentifier(const QString &identifier) const + + bool ComicEngine::isOnline() const + { ++ if (!m_qNetworkInformationHasBackend) { ++ return true; ++ } + return QNetworkInformation::instance()->reachability() == QNetworkInformation::Reachability::Online; + } +diff --git a/applets/comic/engine/comic.h b/applets/comic/engine/comic.h +index e6cf0cb..48c528d 100644 +--- a/applets/comic/engine/comic.h ++++ b/applets/comic/engine/comic.h +@@ -60,6 +60,7 @@ private: + private: + bool mEmptySuffix; + bool mIsCheckingForUpdates; ++ bool m_qNetworkInformationHasBackend = true; + QString mIdentifierError; + QHash m_jobs; + QSet mProviders; +diff --git a/applets/weather/ioncontrol_p.cpp b/applets/weather/ioncontrol_p.cpp +index 57f486f..fffff5c 100644 +--- a/applets/weather/ioncontrol_p.cpp ++++ b/applets/weather/ioncontrol_p.cpp +@@ -17,7 +17,10 @@ IonControl::IonControl(const QString &name, const std::shared_ptr &ion, con + , m_fetchThread(ionThread) + , m_ionName(name) + { +- QNetworkInformation::loadBackendByFeatures(QNetworkInformation::Feature::Reachability); ++ if (!QNetworkInformation::loadBackendByFeatures(QNetworkInformation::Feature::Reachability)) { ++ qWarning() << "QNetworkInformation is not supported on this device."; ++ m_qNetworkInformationHasBackend = false; ++ } + connect(QNetworkInformation::instance(), &QNetworkInformation::reachabilityChanged, this, &IonControl::onOnlineStateChanged); + + qCDebug(WEATHER::CONTROLLER) << "IonControl " << m_ionName << ": The worker thread is: " << m_fetchThread.get(); +@@ -61,7 +64,7 @@ void IonControl::updateLocations(const std::shared_ptr &locationD + qCDebug(WEATHER::CONTROLLER) << "IonControl " << m_ionName << ": get locations request"; + + // skip update and add locations to the queue if the network is offline +- if (QNetworkInformation::instance()->reachability() != QNetworkInformation::Reachability::Online) { ++ if (m_qNetworkInformationHasBackend && QNetworkInformation::instance()->reachability() != QNetworkInformation::Reachability::Online) { + qCDebug(WEATHER::CONTROLLER) << "IonControl " << m_ionName << ": Network connection is unavailable. Skip update forecast"; + auto errorLocations = std::make_shared(); + errorLocations->setError(); +@@ -154,7 +157,7 @@ void IonControl::updateForecast(const std::shared_ptr &forecastDat + qCDebug(WEATHER::CONTROLLER) << "IonControl " << m_ionName << ": get forecast request"; + + // skip update and add forecast to the queue if the network is offline +- if (QNetworkInformation::instance()->reachability() != QNetworkInformation::Reachability::Online) { ++ if (m_qNetworkInformationHasBackend && QNetworkInformation::instance()->reachability() != QNetworkInformation::Reachability::Online) { + qCDebug(WEATHER::CONTROLLER) << "IonControl " << m_ionName << ": Network connection is unavailable. Skip update forecast"; + auto errorForecast = std::make_shared(); + errorForecast->setError(); +@@ -216,7 +219,7 @@ void IonControl::onFetchForecastEnded() + + m_isBusy = false; + +- if (QNetworkInformation::instance()->reachability() == QNetworkInformation::Reachability::Online) { ++ if (!m_qNetworkInformationHasBackend || QNetworkInformation::instance()->reachability() == QNetworkInformation::Reachability::Online) { + checkQueues(); + } + } +@@ -229,7 +232,7 @@ void IonControl::onFetchForecastCancelled() + + m_isBusy = false; + +- if (QNetworkInformation::instance()->reachability() == QNetworkInformation::Reachability::Online) { ++ if (!m_qNetworkInformationHasBackend || QNetworkInformation::instance()->reachability() == QNetworkInformation::Reachability::Online) { + checkQueues(); + } + } +diff --git a/applets/weather/ioncontrol_p.h b/applets/weather/ioncontrol_p.h +index 6e07d69..d204b8d 100644 +--- a/applets/weather/ioncontrol_p.h ++++ b/applets/weather/ioncontrol_p.h +@@ -107,5 +107,7 @@ private: + + bool m_isBusy = false; + ++ bool m_qNetworkInformationHasBackend = true; ++ + QString m_ionName; + };