kde-plasma/plasma-workspace: Fix user KCM unable to change user password

Upstream commit 84dcfc45b9a354827b9bbf6ae58902d04e8fe915

Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
Andreas Sturmlechner 2022-10-03 09:56:54 +02:00
parent 1a38474d5b
commit 3a8bca8abe
No known key found for this signature in database
GPG Key ID: 14644BCDD1535109
2 changed files with 263 additions and 0 deletions

View File

@ -0,0 +1,39 @@
From 84dcfc45b9a354827b9bbf6ae58902d04e8fe915 Mon Sep 17 00:00:00 2001
From: Marco Martin <notmart@gmail.com>
Date: Wed, 28 Sep 2022 11:33:33 +0200
Subject: [PATCH] set setInteractiveAuthorizationAllowed on SetPassword call
is important that the setpasswod call uses interactive authorization,
otherwise will be denied, unless the user had been modified beforehand
so an authorization was already granted
BUG:459309
---
kcms/users/src/user.cpp | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/kcms/users/src/user.cpp b/kcms/users/src/user.cpp
index 020ebee097..87745582c5 100644
--- a/kcms/users/src/user.cpp
+++ b/kcms/users/src/user.cpp
@@ -217,9 +217,14 @@ void User::setPassword(const QString &password)
{
// Blocking because we need to wait for the password to be changed before we
// can ask the user about also possibly changing their KWallet password
- auto invocation = m_dbusIface->SetPassword(saltPassword(password), QString());
- invocation.waitForFinished();
- if (!invocation.isError()) {
+
+ auto mc = QDBusMessage::createMethodCall(m_dbusIface->service(), m_dbusIface->path(), m_dbusIface->interface(), "SetPassword");
+ mc.setArguments({saltPassword(password), QString()});
+ mc.setInteractiveAuthorizationAllowed(true);
+ auto message = QDBusConnection::systemBus().call(mc);
+
+ // Not an error or invalid message
+ if (message.type() == QDBusMessage::ReplyMessage) {
Q_EMIT passwordSuccessfullyChanged();
}
}
--
GitLab

View File

@ -0,0 +1,224 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
ECM_HANDBOOK="optional"
ECM_TEST="forceoptional"
KFMIN=5.95.0
PVCUT=$(ver_cut 1-3)
QTMIN=5.15.5
VIRTUALX_REQUIRED="test"
inherit ecm plasma.kde.org
DESCRIPTION="KDE Plasma workspace"
LICENSE="GPL-2" # TODO: CHECK
SLOT="5"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="appstream +calendar +fontconfig geolocation gps +policykit
screencast +semantic-desktop telemetry"
REQUIRED_USE="gps? ( geolocation )"
RESTRICT="test"
# slot op: various private QtWaylandClient headers
COMMON_DEPEND="
dev-libs/icu:=
>=dev-libs/wayland-1.15
>=dev-qt/qtdbus-${QTMIN}:5
>=dev-qt/qtdeclarative-${QTMIN}:5[widgets]
>=dev-qt/qtgui-${QTMIN}:5=[jpeg,libinput]
>=dev-qt/qtnetwork-${QTMIN}:5
>=dev-qt/qtsql-${QTMIN}:5
>=dev-qt/qtsvg-${QTMIN}:5
>=dev-qt/qtwayland-${QTMIN}:5=
>=dev-qt/qtwidgets-${QTMIN}:5
>=dev-qt/qtx11extras-${QTMIN}:5
>=dev-qt/qtxml-${QTMIN}:5
>=kde-frameworks/kactivities-${KFMIN}:5
>=kde-frameworks/kactivities-stats-${KFMIN}:5
>=kde-frameworks/karchive-${KFMIN}:5
>=kde-frameworks/kauth-${KFMIN}:5
>=kde-frameworks/kbookmarks-${KFMIN}:5
>=kde-frameworks/kcompletion-${KFMIN}:5
>=kde-frameworks/kconfig-${KFMIN}:5
>=kde-frameworks/kconfigwidgets-${KFMIN}:5
>=kde-frameworks/kcoreaddons-${KFMIN}:5
>=kde-frameworks/kcrash-${KFMIN}:5
>=kde-frameworks/kdbusaddons-${KFMIN}:5
>=kde-frameworks/kdeclarative-${KFMIN}:5
>=kde-frameworks/kded-${KFMIN}:5
>=kde-frameworks/kglobalaccel-${KFMIN}:5
>=kde-frameworks/kguiaddons-${KFMIN}:5
>=kde-frameworks/ki18n-${KFMIN}:5
>=kde-frameworks/kiconthemes-${KFMIN}:5
>=kde-frameworks/kidletime-${KFMIN}:5
>=kde-frameworks/kinit-${KFMIN}:5
>=kde-frameworks/kio-${KFMIN}:5
>=kde-frameworks/kitemmodels-${KFMIN}:5
>=kde-frameworks/kitemviews-${KFMIN}:5
>=kde-frameworks/kjobwidgets-${KFMIN}:5
>=kde-frameworks/knewstuff-${KFMIN}:5
>=kde-frameworks/knotifications-${KFMIN}:5
>=kde-frameworks/knotifyconfig-${KFMIN}:5
>=kde-frameworks/kpackage-${KFMIN}:5
>=kde-frameworks/kpeople-${KFMIN}:5
>=kde-frameworks/krunner-${KFMIN}:5
>=kde-frameworks/kservice-${KFMIN}:5
>=kde-frameworks/ktexteditor-${KFMIN}:5
>=kde-frameworks/ktextwidgets-${KFMIN}:5
>=kde-frameworks/kunitconversion-${KFMIN}:5
>=kde-frameworks/kwallet-${KFMIN}:5
>=kde-frameworks/kwayland-${KFMIN}:5
>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
>=kde-frameworks/kwindowsystem-${KFMIN}:5
>=kde-frameworks/kxmlgui-${KFMIN}:5
>=kde-frameworks/plasma-${KFMIN}:5
>=kde-frameworks/prison-${KFMIN}:5[qml]
>=kde-frameworks/solid-${KFMIN}:5
>=kde-plasma/breeze-${PVCUT}:5
>=kde-plasma/kscreenlocker-${PVCUT}:5
>=kde-plasma/kwin-${PVCUT}:5
>=kde-plasma/layer-shell-qt-${PVCUT}:5
>=kde-plasma/libkscreen-${PVCUT}:5
>=kde-plasma/libksysguard-${PVCUT}:5
>=kde-plasma/libkworkspace-${PVCUT}:5
>=media-libs/phonon-4.11.0
sci-libs/libqalculate:=
sys-libs/zlib
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau
x11-libs/libxcb
x11-libs/libXcursor
x11-libs/libXfixes
x11-libs/libXrender
x11-libs/libXtst
x11-libs/xcb-util
x11-libs/xcb-util-image
appstream? ( dev-libs/appstream[qt5] )
calendar? ( >=kde-frameworks/kholidays-${KFMIN}:5 )
fontconfig? (
>=dev-qt/qtprintsupport-${QTMIN}:5
media-libs/fontconfig
x11-libs/libXft
x11-libs/xcb-util-image
)
geolocation? ( >=kde-frameworks/networkmanager-qt-${KFMIN}:5 )
gps? ( sci-geosciences/gpsd )
policykit? ( virtual/libcrypt:= )
screencast? (
>=dev-qt/qtgui-${QTMIN}:5=[egl]
media-libs/libglvnd
>=media-video/pipewire-0.3:=
x11-libs/libdrm
)
semantic-desktop? ( >=kde-frameworks/baloo-${KFMIN}:5 )
telemetry? ( dev-libs/kuserfeedback:5 )
"
DEPEND="${COMMON_DEPEND}
>=dev-libs/plasma-wayland-protocols-1.6.0
>=dev-qt/qtconcurrent-${QTMIN}:5
>=dev-util/wayland-scanner-1.19.0
x11-base/xorg-proto
fontconfig? ( x11-libs/libXrender )
test? ( >=dev-libs/wayland-protocols-1.24 )
"
RDEPEND="${COMMON_DEPEND}
app-text/iso-codes
>=dev-qt/qdbus-${QTMIN}:*
>=dev-qt/qtgraphicaleffects-${QTMIN}:5
>=dev-qt/qtpaths-${QTMIN}:5
>=dev-qt/qtquickcontrols-${QTMIN}:5[widgets]
>=dev-qt/qtquickcontrols2-${QTMIN}:5
kde-apps/kio-extras:5
>=kde-frameworks/kirigami-${KFMIN}:5
>=kde-frameworks/kquickcharts-${KFMIN}:5
>=kde-plasma/milou-${PVCUT}:5
>=kde-plasma/plasma-integration-${PVCUT}:5
sys-apps/dbus
x11-apps/xmessage
x11-apps/xprop
x11-apps/xrdb
x11-apps/xsetroot
!<kde-plasma/breeze-5.22.90:5
!<kde-plasma/plasma-desktop-5.23.90:5
policykit? ( sys-apps/accountsservice )
"
BDEPEND="
>=dev-qt/qtwaylandscanner-${QTMIN}:5
virtual/pkgconfig
"
PDEPEND=">=kde-plasma/kde-cli-tools-${PVCUT}:5"
PATCHES=(
"${FILESDIR}/${PN}-5.24.80-split-libkworkspace.patch" # downstream
"${FILESDIR}/${PN}-5.22.5-krunner-cwd-at-home.patch" # TODO upstream: KDE-bug 432975, bug 767478
"${FILESDIR}/${P}-widgetexplorer-recurse-containments.patch" # https://mail.kde.org/pipermail/distributions/2022-September/001287.html
"${FILESDIR}/${P}-delay-ksplash-until-after-env-setup.patch" # KDE-bug 458865 w/ Qt 5.15.6
"${FILESDIR}/${P}-fonts-honor-and-present-system-defaults.patch" # KDE-bug 416140
"${FILESDIR}/${P}-prevent-panel-go-out-of-screen.patch" # git master and Plasma/5.24 branch double revert
"${FILESDIR}/${P}-fix-setpassword.patch" # Plasma/5.25 branch, KDE-bug 459309
)
src_prepare() {
ecm_src_prepare
cmake_comment_add_subdirectory libkworkspace
# delete colliding libkworkspace translations
if [[ ${KDE_BUILD_TYPE} = release ]]; then
find po -type f -name "*po" -and -name "libkworkspace*" -delete || die
fi
# TODO: try to get a build switch upstreamed
if ! use screencast; then
sed -e "s/^pkg_check_modules.*PipeWire/#&/" -i CMakeLists.txt || die
fi
# TODO: try to get a build switch upstreamed
if use geolocation; then
use gps || sed -e "s/^pkg_check_modules.*LIBGPS/#&/" \
-i dataengines/geolocation/CMakeLists.txt || die
fi
if ! use policykit; then
cmake_run_in kcms cmake_comment_add_subdirectory users
fi
}
src_configure() {
local mycmakeargs=(
-DBUILD_xembed-sni-proxy=OFF
-DCMAKE_DISABLE_FIND_PACKAGE_PackageKitQt5=ON
$(cmake_use_find_package appstream AppStreamQt)
$(cmake_use_find_package calendar KF5Holidays)
$(cmake_use_find_package fontconfig Fontconfig)
$(cmake_use_find_package geolocation KF5NetworkManagerQt)
$(cmake_use_find_package semantic-desktop KF5Baloo)
$(cmake_use_find_package telemetry KUserFeedback)
)
ecm_src_configure
}
src_install() {
ecm_src_install
# default startup and shutdown scripts
insinto /etc/xdg/plasma-workspace/env
doins "${FILESDIR}"/10-agent-startup.sh
insinto /etc/xdg/plasma-workspace/shutdown
doins "${FILESDIR}"/10-agent-shutdown.sh
fperms +x /etc/xdg/plasma-workspace/shutdown/10-agent-shutdown.sh
}
pkg_postinst () {
ecm_pkg_postinst
elog "To enable gpg-agent and/or ssh-agent in Plasma sessions,"
elog "edit ${EPREFIX}/etc/xdg/plasma-workspace/env/10-agent-startup.sh"
elog "and ${EPREFIX}/etc/xdg/plasma-workspace/shutdown/10-agent-shutdown.sh"
}