commit:     cbfe4380265c1ff82f41526d6ec08e0baf3b0d91
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 17 22:30:07 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Nov 17 22:34:52 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cbfe4380

kde-misc/kdeconnect: Check that the device ID doesn't change

... during the handshake

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 ...kdeconnect-25.08.2-check-dev-ID-no-change.patch |  47 +++++++++
 kde-misc/kdeconnect/kdeconnect-25.08.2-r1.ebuild   | 107 +++++++++++++++++++++
 kde-misc/kdeconnect/kdeconnect-25.08.3-r1.ebuild   | 107 +++++++++++++++++++++
 3 files changed, 261 insertions(+)

diff --git 
a/kde-misc/kdeconnect/files/kdeconnect-25.08.2-check-dev-ID-no-change.patch 
b/kde-misc/kdeconnect/files/kdeconnect-25.08.2-check-dev-ID-no-change.patch
new file mode 100644
index 000000000000..81dbe4632cc9
--- /dev/null
+++ b/kde-misc/kdeconnect/files/kdeconnect-25.08.2-check-dev-ID-no-change.patch
@@ -0,0 +1,47 @@
+From 1d757349d0f517ef12c119565ffb1f79503fbcdf Mon Sep 17 00:00:00 2001
+From: Albert Vaca Cintora <[email protected]>
+Date: Sun, 16 Nov 2025 17:56:53 +0100
+Subject: [PATCH] Check that the device ID doesn't change during the handshake
+
+(cherry picked from commit b42d0392d047a7326232d4e534db4bc26626fb81)
+---
+ core/backends/lan/lanlinkprovider.cpp | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/core/backends/lan/lanlinkprovider.cpp 
b/core/backends/lan/lanlinkprovider.cpp
+index f1a029d77..b4634523f 100644
+--- a/core/backends/lan/lanlinkprovider.cpp
++++ b/core/backends/lan/lanlinkprovider.cpp
+@@ -418,6 +418,7 @@ void LanLinkProvider::encrypted()
+ 
+     NetworkPacket *identityPacket = m_receivedIdentityPackets[socket].np;
+ 
++    QString deviceId = 
identityPacket->get<QString>(QStringLiteral("deviceId"));
+     int protocolVersion = 
identityPacket->get<int>(QStringLiteral("protocolVersion"), -1);
+     if (protocolVersion >= 8) {
+         disconnect(socket, &QObject::destroyed, nullptr, nullptr);
+@@ -426,7 +427,7 @@ void LanLinkProvider::encrypted()
+         NetworkPacket myIdentity = 
KdeConnectConfig::instance().deviceInfo().toIdentityPacket();
+         socket->write(myIdentity.serialize());
+         socket->flush();
+-        connect(socket, &QIODevice::readyRead, this, [this, socket, 
protocolVersion]() {
++        connect(socket, &QIODevice::readyRead, this, [this, socket, 
protocolVersion, deviceId]() {
+             if (!socket->canReadLine()) {
+                 // This can happen if the packet is large enough to be split 
in two chunks
+                 return;
+@@ -443,6 +444,12 @@ void LanLinkProvider::encrypted()
+             int newProtocolVersion = 
secureIdentityPacket->get<int>(QStringLiteral("protocolVersion"), 0);
+             if (newProtocolVersion != protocolVersion) {
+                 qCWarning(KDECONNECT_CORE) << "Protocol version changed 
half-way through the handshake:" << protocolVersion << "->" << 
newProtocolVersion;
++                return;
++            }
++            QString newDeviceId = 
secureIdentityPacket->get<QString>(QStringLiteral("deviceId"));
++            if (newDeviceId != deviceId) {
++                qCWarning(KDECONNECT_CORE) << "Device ID changed half-way 
through the handshake:" << deviceId << "->" << newDeviceId;
++                return;
+             }
+             DeviceInfo deviceInfo = 
DeviceInfo::FromIdentityPacketAndCert(*secureIdentityPacket, 
socket->peerCertificate());
+ 
+-- 
+GitLab
+

diff --git a/kde-misc/kdeconnect/kdeconnect-25.08.2-r1.ebuild 
b/kde-misc/kdeconnect/kdeconnect-25.08.2-r1.ebuild
new file mode 100644
index 000000000000..328f149d6601
--- /dev/null
+++ b/kde-misc/kdeconnect/kdeconnect-25.08.2-r1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_TEST="true"
+KDE_ORG_NAME="${PN}-kde"
+KDE_SELINUX_MODULE="${PN}"
+KFMIN=6.16.0
+QTMIN=6.9.1
+inherit ecm flag-o-matic gear.kde.org xdg
+
+DESCRIPTION="Adds communication between KDE Plasma and your smartphone"
+HOMEPAGE="https://kdeconnect.kde.org/ https://apps.kde.org/kdeconnect/";
+
+LICENSE="GPL-2+"
+SLOT="6"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="bluetooth pulseaudio telephony zeroconf X"
+
+RESTRICT="test"
+
+# slot op: Uses Qt6::GuiPrivate for qtx11extras_p.h
+# TODO: make conditional on X upstream
+COMMON_DEPEND="
+       dev-libs/openssl:=
+       >=dev-libs/wayland-1.15.0
+       >=dev-qt/qtbase-${QTMIN}:6=[dbus,gui,network,wayland,widgets]
+       >=dev-qt/qtdeclarative-${QTMIN}:6[widgets]
+       >=dev-qt/qtmultimedia-${QTMIN}:6
+       >=kde-frameworks/kcolorscheme-${KFMIN}:6
+       >=kde-frameworks/kconfig-${KFMIN}:6[qml]
+       >=kde-frameworks/kcoreaddons-${KFMIN}:6
+       >=kde-frameworks/kcrash-${KFMIN}:6
+       >=kde-frameworks/kdbusaddons-${KFMIN}:6
+       >=kde-frameworks/kguiaddons-${KFMIN}:6
+       >=kde-frameworks/ki18n-${KFMIN}:6
+       >=kde-frameworks/kiconthemes-${KFMIN}:6
+       >=kde-frameworks/kio-${KFMIN}:6
+       >=kde-frameworks/kirigami-${KFMIN}:6
+       >=kde-frameworks/kitemmodels-${KFMIN}:6
+       >=kde-frameworks/knotifications-${KFMIN}:6
+       >=kde-frameworks/kpeople-${KFMIN}:6
+       >=kde-frameworks/kservice-${KFMIN}:6
+       >=kde-frameworks/kstatusnotifieritem-${KFMIN}:6
+       >=kde-frameworks/kwidgetsaddons-${KFMIN}:6
+       >=kde-frameworks/kwindowsystem-${KFMIN}:6
+       >=kde-frameworks/qqc2-desktop-style-${KFMIN}:6
+       >=kde-frameworks/solid-${KFMIN}:6
+       sys-apps/dbus
+       x11-libs/libxkbcommon
+       bluetooth? ( >=dev-qt/qtconnectivity-${QTMIN}:6[bluetooth] )
+       pulseaudio? ( >=media-libs/pulseaudio-qt-1.4:= )
+       telephony? ( >=kde-frameworks/modemmanager-qt-${KFMIN}:6 )
+       zeroconf? ( >=kde-frameworks/kdnssd-${KFMIN}:6 )
+       X? (
+               x11-libs/libfakekey
+               x11-libs/libX11
+               x11-libs/libXtst
+       )
+"
+DEPEND="${COMMON_DEPEND}
+       dev-libs/wayland-protocols
+"
+RDEPEND="${COMMON_DEPEND}
+       dev-libs/kirigami-addons:6
+       >=dev-qt/qt5compat-${QTMIN}:6[qml]
+       >=dev-qt/qtmultimedia-${QTMIN}:6[qml]
+       >=dev-qt/qttools-${QTMIN}:6[qdbus]
+       >=kde-frameworks/kdeclarative-${KFMIN}:6
+       kde-plasma/libplasma:6
+       net-fs/sshfs
+"
+RDEPEND+=" || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 )"
+BDEPEND="
+       >=dev-qt/qtbase-${QTMIN}:6[wayland]
+       dev-util/wayland-scanner
+       virtual/pkgconfig
+"
+BDEPEND+=" || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 )"
+
+PATCHES=( "${FILESDIR}/${P}-check-dev-ID-no-change.patch" )
+
+src_configure() {
+       # -Werror=lto-type-mismatch
+       # https://bugs.gentoo.org/921648
+       # https://bugs.kde.org/show_bug.cgi?id=480522
+       filter-lto
+
+       local mycmakeargs=(
+               -DBLUETOOTH_ENABLED=$(usex bluetooth)
+               -DWITH_PULSEAUDIO=$(usex pulseaudio)
+               $(cmake_use_find_package telephony KF6ModemManagerQt)
+               -DWITH_X11=$(usex X)
+               -DMDNS_ENABLED=$(usex zeroconf)
+       )
+       ecm_src_configure
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       elog "The Android .apk file is available via"
+       elog 
"https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp";
+       elog "or via"
+       elog "https://f-droid.org/packages/org.kde.kdeconnect_tp/";
+}

diff --git a/kde-misc/kdeconnect/kdeconnect-25.08.3-r1.ebuild 
b/kde-misc/kdeconnect/kdeconnect-25.08.3-r1.ebuild
new file mode 100644
index 000000000000..954aafa9f0aa
--- /dev/null
+++ b/kde-misc/kdeconnect/kdeconnect-25.08.3-r1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_TEST="true"
+KDE_ORG_NAME="${PN}-kde"
+KDE_SELINUX_MODULE="${PN}"
+KFMIN=6.16.0
+QTMIN=6.9.1
+inherit ecm flag-o-matic gear.kde.org xdg
+
+DESCRIPTION="Adds communication between KDE Plasma and your smartphone"
+HOMEPAGE="https://kdeconnect.kde.org/ https://apps.kde.org/kdeconnect/";
+
+LICENSE="GPL-2+"
+SLOT="6"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="bluetooth pulseaudio telephony zeroconf X"
+
+RESTRICT="test"
+
+# slot op: Uses Qt6::GuiPrivate for qtx11extras_p.h
+# TODO: make conditional on X upstream
+COMMON_DEPEND="
+       dev-libs/openssl:=
+       >=dev-libs/wayland-1.15.0
+       >=dev-qt/qtbase-${QTMIN}:6=[dbus,gui,network,wayland,widgets]
+       >=dev-qt/qtdeclarative-${QTMIN}:6[widgets]
+       >=dev-qt/qtmultimedia-${QTMIN}:6
+       >=kde-frameworks/kcolorscheme-${KFMIN}:6
+       >=kde-frameworks/kconfig-${KFMIN}:6[qml]
+       >=kde-frameworks/kcoreaddons-${KFMIN}:6
+       >=kde-frameworks/kcrash-${KFMIN}:6
+       >=kde-frameworks/kdbusaddons-${KFMIN}:6
+       >=kde-frameworks/kguiaddons-${KFMIN}:6
+       >=kde-frameworks/ki18n-${KFMIN}:6
+       >=kde-frameworks/kiconthemes-${KFMIN}:6
+       >=kde-frameworks/kio-${KFMIN}:6
+       >=kde-frameworks/kirigami-${KFMIN}:6
+       >=kde-frameworks/kitemmodels-${KFMIN}:6
+       >=kde-frameworks/knotifications-${KFMIN}:6
+       >=kde-frameworks/kpeople-${KFMIN}:6
+       >=kde-frameworks/kservice-${KFMIN}:6
+       >=kde-frameworks/kstatusnotifieritem-${KFMIN}:6
+       >=kde-frameworks/kwidgetsaddons-${KFMIN}:6
+       >=kde-frameworks/kwindowsystem-${KFMIN}:6
+       >=kde-frameworks/qqc2-desktop-style-${KFMIN}:6
+       >=kde-frameworks/solid-${KFMIN}:6
+       sys-apps/dbus
+       x11-libs/libxkbcommon
+       bluetooth? ( >=dev-qt/qtconnectivity-${QTMIN}:6[bluetooth] )
+       pulseaudio? ( >=media-libs/pulseaudio-qt-1.4:= )
+       telephony? ( >=kde-frameworks/modemmanager-qt-${KFMIN}:6 )
+       zeroconf? ( >=kde-frameworks/kdnssd-${KFMIN}:6 )
+       X? (
+               x11-libs/libfakekey
+               x11-libs/libX11
+               x11-libs/libXtst
+       )
+"
+DEPEND="${COMMON_DEPEND}
+       dev-libs/wayland-protocols
+"
+RDEPEND="${COMMON_DEPEND}
+       dev-libs/kirigami-addons:6
+       >=dev-qt/qt5compat-${QTMIN}:6[qml]
+       >=dev-qt/qtmultimedia-${QTMIN}:6[qml]
+       >=dev-qt/qttools-${QTMIN}:6[qdbus]
+       >=kde-frameworks/kdeclarative-${KFMIN}:6
+       kde-plasma/libplasma:6
+       net-fs/sshfs
+"
+RDEPEND+=" || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 )"
+BDEPEND="
+       >=dev-qt/qtbase-${QTMIN}:6[wayland]
+       dev-util/wayland-scanner
+       virtual/pkgconfig
+"
+BDEPEND+=" || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 )"
+
+PATCHES=( "${FILESDIR}/${PN}-25.08.2-check-dev-ID-no-change.patch" )
+
+src_configure() {
+       # -Werror=lto-type-mismatch
+       # https://bugs.gentoo.org/921648
+       # https://bugs.kde.org/show_bug.cgi?id=480522
+       filter-lto
+
+       local mycmakeargs=(
+               -DBLUETOOTH_ENABLED=$(usex bluetooth)
+               -DWITH_PULSEAUDIO=$(usex pulseaudio)
+               $(cmake_use_find_package telephony KF6ModemManagerQt)
+               -DWITH_X11=$(usex X)
+               -DMDNS_ENABLED=$(usex zeroconf)
+       )
+       ecm_src_configure
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       elog "The Android .apk file is available via"
+       elog 
"https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp";
+       elog "or via"
+       elog "https://f-droid.org/packages/org.kde.kdeconnect_tp/";
+}

Reply via email to