Files
fedora-tools/plasma-fingerprint-workaround/kscreenlocker/patches/0001-dont-cancel-authentication-on-suspend.patch
T

69 lines
2.4 KiB
Diff

From: Alex Sanchez-Stern <alex@dmodel.ai>
Subject: [PATCH] Don't cancel in-progress authentication on suspend
Aborting an in-progress PAM conversation when the system suspends makes
pam_authenticate() report a failure. The greeter then displays a failed
login on resume, and authentication backends such as fingerprint can be
left unusable for the remainder of that lock-screen session.
Leave the conversation parked across suspend and resume instead. This is
the change proposed upstream in KScreenLocker merge request 340, adapted
to the Plasma 6.7.4 source shipped by Fedora 44.
---
greeter/greeterapp.cpp | 6 ------
greeter/greeterapp.h | 2 --
2 files changed, 8 deletions(-)
diff --git a/greeter/greeterapp.cpp b/greeter/greeterapp.cpp
index b1de459..08d8134 100644
--- a/greeter/greeterapp.cpp
+++ b/greeter/greeterapp.cpp
@@ -10,8 +10,6 @@ SPDX-License-Identifier: GPL-2.0-or-later
#include "shell_integration.h"
#include "wallpaper_integration.h"
-#include "../logind.h"
-
#include <config-kscreenlocker.h>
#include <iostream>
#include <unistd.h>
@@ -133,7 +131,6 @@ UnlockApp::UnlockApp(int &argc, char **argv)
, m_graceTime(0)
, m_noLock(false)
, m_shellIntegration(new ShellIntegration(this))
- , m_logindIntegration(new LogindIntegration(this))
{
auto interactive = std::make_unique<PamAuthenticator>(QStringLiteral(KSCREENLOCKER_PAM_SERVICE), KUser().loginName());
std::vector<std::unique_ptr<PamAuthenticator>> noninteractive;
@@ -142,9 +139,6 @@ UnlockApp::UnlockApp(int &argc, char **argv)
noninteractive.push_back(
std::make_unique<PamAuthenticator>(QStringLiteral(KSCREENLOCKER_PAM_SMARTCARD_SERVICE), KUser().loginName(), PamAuthenticator::Smartcard));
m_authenticators = new PamAuthenticators(std::move(interactive), std::move(noninteractive), this);
- connect(m_logindIntegration, &LogindIntegration::prepareForSleep, m_authenticators, [this] {
- m_authenticators->cancel();
- });
initialize();
if (KWindowSystem::isPlatformX11()) {
diff --git a/greeter/greeterapp.h b/greeter/greeterapp.h
index 2362dd2..ff355de 100644
--- a/greeter/greeterapp.h
+++ b/greeter/greeterapp.h
@@ -25,7 +25,6 @@ class QuickViewSharedEngine;
}
class Authenticator;
-class LogindIntegration;
struct org_kde_ksld;
@@ -94,6 +93,5 @@ private:
KPackage::Package m_wallpaperPackage;
ShellIntegration *m_shellIntegration;
- LogindIntegration *m_logindIntegration;
};
} // namespace
--
2.51.0