commit:     5bef168f0205671187ec9958477db21a519ec0cb
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 29 22:05:36 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Jun 29 22:14:46 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5bef168f

kde-frameworks/kwallet: Backport use desktop file to launch kwalletmanager

See also:
https://invent.kde.org/frameworks/kwallet/-/merge_requests/119

Bug: https://bugs.gentoo.org/957631
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../kwallet-6.13.0-kstart-use-desktop-file.patch   | 62 ++++++++++++++++++++++
 kde-frameworks/kwallet/kwallet-6.13.0-r2.ebuild    | 54 +++++++++++++++++++
 2 files changed, 116 insertions(+)

diff --git 
a/kde-frameworks/kwallet/files/kwallet-6.13.0-kstart-use-desktop-file.patch 
b/kde-frameworks/kwallet/files/kwallet-6.13.0-kstart-use-desktop-file.patch
new file mode 100644
index 000000000000..c30c5f9132b8
--- /dev/null
+++ b/kde-frameworks/kwallet/files/kwallet-6.13.0-kstart-use-desktop-file.patch
@@ -0,0 +1,62 @@
+From 9ef0eb38cf3c9fe57ec3edcb8aaee5e49453b2f6 Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <[email protected]>
+Date: Fri, 23 May 2025 09:47:34 +0200
+Subject: [PATCH 1/2] Drop codepath for kstart5
+
+By now kstart should be available everywhere
+
+Make it consistent with startManagerForKwalletd
+---
+ src/runtime/kwalletd/kwalletd.cpp | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/runtime/kwalletd/kwalletd.cpp 
b/src/runtime/kwalletd/kwalletd.cpp
+index 72384176..4914128b 100644
+--- a/src/runtime/kwalletd/kwalletd.cpp
++++ b/src/runtime/kwalletd/kwalletd.cpp
+@@ -58,8 +58,6 @@ static void startManagerForKSecretD()
+ {
+     if (!QStandardPaths::findExecutable(QStringLiteral("kstart")).isEmpty()) {
+         QProcess::startDetached(QStringLiteral("kstart"), 
{QStringLiteral("kwalletmanager5"), QStringLiteral("--"), 
QStringLiteral("--kwalletd")});
+-    } else if 
(!QStandardPaths::findExecutable(QStringLiteral("kstart5")).isEmpty()) {
+-        QProcess::startDetached(QStringLiteral("kstart"), 
{QStringLiteral("kwalletmanager5"), QStringLiteral("--"), 
QStringLiteral("--kwalletd")});
+     } else {
+         QProcess::startDetached(QStringLiteral("kwalletmanager5"), 
QStringList{QStringLiteral("--kwalletd")});
+     }
+-- 
+GitLab
+
+
+From ec907efee65039f148f3cabb33e6df64ddd6e09b Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <[email protected]>
+Date: Thu, 22 May 2025 11:00:40 +0200
+Subject: [PATCH 2/2] Use desktop file to launch kwalletmanager
+
+kstart puts the started process in a cgroup, which is good
+and what we want. However when started like this the cgroup
+naming doesn't follow the standard pattern to encode the desktop
+file name so tools like plasma-systemmonitor can't resolve
+the desktop file from it.
+
+Instead of giving the raw command ask kstart to start the
+corresponding desktop file, which makes this work
+---
+ src/runtime/kwalletd/kwalletd.cpp | 2 +-
+ 1 file changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/runtime/kwalletd/kwalletd.cpp 
b/src/runtime/kwalletd/kwalletd.cpp
+index 537c4b75..34e896d1 100644
+--- a/src/runtime/kwalletd/kwalletd.cpp
++++ b/src/runtime/kwalletd/kwalletd.cpp
+@@ -25,7 +25,7 @@ unsigned int KWalletD::s_lastTransaction = 0;
+ static void startManagerForKwalletd()
+ {
+     if (!QStandardPaths::findExecutable(QStringLiteral("kstart")).isEmpty()) {
+-        QProcess::startDetached(QStringLiteral("kstart"), 
{QStringLiteral("kwalletmanager5"), QStringLiteral("--"), 
QStringLiteral("--kwalletd")});
++        QProcess::startDetached(QStringLiteral("kstart"), 
{QStringLiteral("--application"), QStringLiteral("kwalletmanager5-kwalletd")});
+     } else {
+         QProcess::startDetached(QStringLiteral("kwalletmanager5"), 
QStringList{QStringLiteral("--kwalletd")});
+     }
+-- 
+GitLab
+

diff --git a/kde-frameworks/kwallet/kwallet-6.13.0-r2.ebuild 
b/kde-frameworks/kwallet/kwallet-6.13.0-r2.ebuild
new file mode 100644
index 000000000000..20225bf3f650
--- /dev/null
+++ b/kde-frameworks/kwallet/kwallet-6.13.0-r2.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+QTMIN=6.7.2
+inherit ecm frameworks.kde.org optfeature
+
+DESCRIPTION="Framework providing desktop-wide storage for passwords"
+
+LICENSE="LGPL-2+"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+IUSE="gpg +man X"
+
+DEPEND="
+       >=app-crypt/qca-2.3.9:2[qt6(+)]
+       dev-libs/libgcrypt:0=
+       >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,widgets]
+       =kde-frameworks/kcolorscheme-${KDE_CATV}*:6
+       =kde-frameworks/kconfig-${KDE_CATV}*:6
+       =kde-frameworks/kcoreaddons-${KDE_CATV}*:6
+       =kde-frameworks/kcrash-${KDE_CATV}*:6
+       =kde-frameworks/kdbusaddons-${KDE_CATV}*:6
+       =kde-frameworks/ki18n-${KDE_CATV}*:6
+       =kde-frameworks/knotifications-${KDE_CATV}*:6
+       =kde-frameworks/kservice-${KDE_CATV}*:6
+       =kde-frameworks/kwidgetsaddons-${KDE_CATV}*:6
+       =kde-frameworks/kwindowsystem-${KDE_CATV}*:6[X?]
+       gpg? ( app-crypt/gpgme:=[qt6(-)] )
+"
+RDEPEND="${DEPEND}
+       !<kde-frameworks/kwallet-5.116.0-r2:5[-kf6compat(-)]
+"
+BDEPEND="man? ( >=kde-frameworks/kdoctools-${KDE_CATV}:6 )"
+
+PATCHES=( "${FILESDIR}/${P}-kstart-use-desktop-file.patch" ) # bug 957631, in 
6.15
+
+src_configure() {
+       local mycmakeargs=(
+               $(cmake_use_find_package gpg Gpgmepp)
+               $(cmake_use_find_package man KF6DocTools)
+               -DWITH_X11=$(usex X)
+       )
+
+       ecm_src_configure
+}
+
+pkg_postinst() {
+       if [[ -z "${REPLACING_VERSIONS}" ]]; then
+               optfeature "Auto-unlocking after Plasma login" 
"kde-plasma/kwallet-pam"
+               optfeature "KWallet management" "kde-apps/kwalletmanager"
+               elog "For more information, read 
https://wiki.gentoo.org/wiki/KDE#KWallet";
+       fi
+}

Reply via email to