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/" +}
