Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37770004
en ru br
Репозитории ALT

Группа :: Графические оболочки/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;
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin