Группа :: Графические оболочки/KDE
Пакет: plasma5-kscreenlocker
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: alt-pam-support.patch
Скачать
Скачать
commit 8a81f8fcd13bac1b5298bfb30ef6bafb38f070e7
Author: Oleg Solovyov <mcpain@altlinux.org>
Date: Tue Sep 6 14:22:15 2022 +0300
restore kcheckpass
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 78ed0ad..769e914 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -41,6 +41,21 @@ add_feature_info("prctl/procctl tracing control"
CAN_DISABLE_PTRACE
"Required for disallowing ptrace on greeter and kcheckpass process")
+check_include_file("sys/signalfd.h" HAVE_SIGNALFD_H)
+if (NOT HAVE_SIGNALFD_H)
+ check_include_files("sys/types.h;sys/event.h" HAVE_EVENT_H)
+endif ()
+if (NOT (HAVE_SIGNALFD_H OR HAVE_EVENT_H))
+ message(FATAL_ERROR "kcheckpass either needs signalfd() or kevent()&sigtimedwait() to work")
+endif ()
+add_feature_info("sys/signalfd.h"
+ HAVE_SIGNALFD_H
+ "Use the signalfd() api for signalhandling")
+add_feature_info("sys/event.h"
+ HAVE_EVENT_H
+ "Use the kevent() and sigwaitinfo() api for signalhandling")
+
+
find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS DBus Widgets Quick Test)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
Crash
@@ -137,6 +152,7 @@ include(ECMQtDeclareLoggingCategory)
add_subdirectory(greeter)
add_subdirectory(kcm)
add_subdirectory(settings)
+add_subdirectory(kcheckpass)
add_definitions(-DTRANSLATION_DOMAIN=\"kscreenlocker\")
--- a/greeter/CMakeLists.txt
+++ b/greeter/CMakeLists.txt
@@ -3,38 +3,29 @@ add_definitions(-DTRANSLATION_DOMAIN=\"k
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
+ ../kcheckpass/
${CMAKE_CURRENT_BINARY_DIR}/../
)
-set(kscreenlocker_authenticator_SRCS
- pamauthenticator.cpp
- pamauthenticator.h
-)
-
-ecm_qt_declare_logging_category(kscreenlocker_authenticator_SRCS
- HEADER kscreenlocker_greet_logging.h
- IDENTIFIER KSCREENLOCKER_GREET
- CATEGORY_NAME kscreenlocker_greet
- DEFAULT_SEVERITY Info
- DESCRIPTION "KScreenLocker (greeter)"
- EXPORT KSCREENLOCKER
-)
-
set(kscreenlocker_greet_SRCS
+ authenticator.cpp
greeterapp.cpp
main.cpp
powermanagement.cpp
noaccessnetworkaccessmanagerfactory.cpp
+ authenticator.h
greeterapp.h
- main.cpp
powermanagement.h
noaccessnetworkaccessmanagerfactory.h
)
-add_library(kscreenlocker_authenticator OBJECT ${kscreenlocker_authenticator_SRCS})
-target_link_libraries(kscreenlocker_authenticator
- Qt::Core
- ${PAM_LIBRARIES}
+ecm_qt_declare_logging_category(kscreenlocker_greet_SRCS
+ HEADER kscreenlocker_greet_logging.h
+ IDENTIFIER KSCREENLOCKER_GREET
+ CATEGORY_NAME kscreenlocker_greet
+ DEFAULT_SEVERITY Info
+ DESCRIPTION "KScreenLocker (greeter)"
+ EXPORT KSCREENLOCKER
)
qt_add_resources(kscreenlocker_greet_SRCS fallbacktheme.qrc)
@@ -48,7 +39,6 @@ add_executable(kscreenlocker_greet ${ksc
target_link_libraries(kscreenlocker_greet
settings
- kscreenlocker_authenticator
KF5::Package
KF5::Crash
KF5::I18n
@@ -72,7 +62,7 @@ else()
endif()
target_compile_definitions(kscreenlocker_greet PRIVATE
- KCHECKPASS_BIN="kcheckpass"
+ KCHECKPASS_BIN="${KDE_INSTALL_LIBEXECDIR}/kf5/kcheckpass"
)
install(TARGETS kscreenlocker_greet DESTINATION ${KDE_INSTALL_LIBEXECDIR})
diff --git a/greeter/greeterapp.cpp b/greeter/greeterapp.cpp
index 4d66f89..0edc16d 100644
--- a/greeter/greeterapp.cpp
+++ b/greeter/greeterapp.cpp
@@ -80,7 +80,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//
#include <xcb/xcb.h>
-#include "pamauthenticator.h"
+#include "authenticator.h"
// this is usable to fake a "screensaver" installation for testing
// *must* be "0" for every public commit!
@@ -149,7 +149,7 @@ UnlockApp::UnlockApp(int &argc, char **argv)
, m_testing(false)
, m_ignoreRequests(false)
, m_immediateLock(false)
- , m_authenticator(new PamAuthenticator("kde", KUser().loginName(), this))
+ , m_authenticator(new Authenticator(AuthenticationMode::Direct, this))
, m_graceTime(0)
, m_noLock(false)
, m_defaultToSwitchUser(false)
diff --git a/greeter/greeterapp.h b/greeter/greeterapp.h
index 6d80c33..6b62584 100644
--- a/greeter/greeterapp.h
+++ b/greeter/greeterapp.h
@@ -42,8 +42,6 @@ class Authenticator;
struct org_kde_ksld;
-class PamAuthenticator;
-
namespace ScreenLocker
{
class WallpaperIntegration;
@@ -104,7 +102,7 @@ private:
bool m_ignoreRequests;
bool m_immediateLock;
bool m_runtimeInitialized;
- PamAuthenticator *m_authenticator;
+ Authenticator *m_authenticator;
int m_graceTime;
bool m_noLock;
bool m_defaultToSwitchUser;