public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/kde:master commit in: kde-plasma/kscreenlocker/files/, kde-plasma/kscreenlocker/
@ 2020-08-01 18:44 Andreas Sturmlechner
  0 siblings, 0 replies; 6+ messages in thread
From: Andreas Sturmlechner @ 2020-08-01 18:44 UTC (permalink / raw
  To: gentoo-commits

commit:     9997de4d0f1d79abc4339f8c5ab233606b7486d3
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Aug  1 18:22:58 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Aug  1 18:22:58 2020 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=9997de4d

kde-plasma/kscreenlocker: Make ConsoleKit switch always accessible

Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/kscreenlocker-5.19.5-ck-unlock.patch     | 32 ++++++++++++++++++++++
 .../kscreenlocker-5.19.49.9999.ebuild              |  4 ++-
 kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild |  4 ++-
 3 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/kde-plasma/kscreenlocker/files/kscreenlocker-5.19.5-ck-unlock.patch b/kde-plasma/kscreenlocker/files/kscreenlocker-5.19.5-ck-unlock.patch
new file mode 100644
index 0000000000..bb15eba72b
--- /dev/null
+++ b/kde-plasma/kscreenlocker/files/kscreenlocker-5.19.5-ck-unlock.patch
@@ -0,0 +1,32 @@
+From 1bac5f6e50bc3255ab0e4c9183e7456f53acfdd5 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Sat, 1 Aug 2020 20:05:17 +0200
+Subject: [PATCH] Provide ConsoleKit switch irrespective of HAVE_LOGINCTL
+
+---
+ CMakeLists.txt | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 60d3ee1..aaebc82 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -92,7 +92,6 @@ set_package_properties(loginctl PROPERTIES
+     )
+ set(HAVE_LOGINCTL ${loginctl_FOUND})
+ 
+-if ( NOT HAVE_LOGINCTL )
+     find_package(ConsoleKit)
+     set_package_properties(ConsoleKit PROPERTIES
+         URL "https://github.com/ConsoleKit2/ConsoleKit2"
+@@ -100,7 +99,6 @@ if ( NOT HAVE_LOGINCTL )
+         TYPE RECOMMENDED
+         )
+     set(HAVE_CONSOLEKIT ${ConsoleKit_FOUND})
+-endif ()
+ 
+ if (HAVE_LOGINCTL OR HAVE_CONSOLEKIT)
+     set(HAVE_UNLOCK_CAPABILITY TRUE)
+-- 
+2.28.0
+

diff --git a/kde-plasma/kscreenlocker/kscreenlocker-5.19.49.9999.ebuild b/kde-plasma/kscreenlocker/kscreenlocker-5.19.49.9999.ebuild
index adac48392d..490270a765 100644
--- a/kde-plasma/kscreenlocker/kscreenlocker-5.19.49.9999.ebuild
+++ b/kde-plasma/kscreenlocker/kscreenlocker-5.19.49.9999.ebuild
@@ -57,6 +57,8 @@ PDEPEND="
 
 RESTRICT+=" test"
 
+PATCHES=( "${FILESDIR}/${PN}-5.19.5-ck-unlock.patch" )
+
 src_prepare() {
 	ecm_src_prepare
 
@@ -77,7 +79,7 @@ src_test() {
 src_configure() {
 	local mycmakeargs=(
 		-DCMAKE_DISABLE_FIND_PACKAGE_Seccomp=ON
-		$(cmake_use_find_package consolekit loginctl)
+		$(cmake_use_find_package consolekit ConsoleKit)
 		-DPAM_REQUIRED=$(usex pam)
 		$(cmake_use_find_package pam PAM)
 	)

diff --git a/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild b/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
index 10fdd8806a..3b3966efc6 100644
--- a/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
+++ b/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
@@ -57,6 +57,8 @@ PDEPEND="
 
 RESTRICT+=" test"
 
+PATCHES=( "${FILESDIR}/${PN}-5.19.5-ck-unlock.patch" )
+
 src_prepare() {
 	ecm_src_prepare
 
@@ -76,7 +78,7 @@ src_test() {
 
 src_configure() {
 	local mycmakeargs=(
-		$(cmake_use_find_package consolekit loginctl)
+		$(cmake_use_find_package consolekit ConsoleKit)
 		-DPAM_REQUIRED=$(usex pam)
 		$(cmake_use_find_package pam PAM)
 	)


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [gentoo-commits] proj/kde:master commit in: kde-plasma/kscreenlocker/files/, kde-plasma/kscreenlocker/
@ 2023-12-20 15:55 Sam James
  0 siblings, 0 replies; 6+ messages in thread
From: Sam James @ 2023-12-20 15:55 UTC (permalink / raw
  To: gentoo-commits

commit:     c1d265805f8cf58fcbc4a95c34452207765bff19
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 20 15:55:10 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Dec 20 15:55:10 2023 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=c1d26580

kde-plasma/kscreenlocker: prefix new PAM stack w/ kde6-

Then strip it out when installing.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../kscreenlocker/files/{kde-fingerprint.pam => kde6-fingerprint.pam} | 0
 .../kscreenlocker/files/{kde-smartcard.pam => kde6-smartcard.pam}     | 0
 kde-plasma/kscreenlocker/files/{kde-password.pam => kde6.pam}         | 0
 kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild                    | 4 ++--
 4 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/kde-plasma/kscreenlocker/files/kde-fingerprint.pam b/kde-plasma/kscreenlocker/files/kde6-fingerprint.pam
similarity index 100%
rename from kde-plasma/kscreenlocker/files/kde-fingerprint.pam
rename to kde-plasma/kscreenlocker/files/kde6-fingerprint.pam

diff --git a/kde-plasma/kscreenlocker/files/kde-smartcard.pam b/kde-plasma/kscreenlocker/files/kde6-smartcard.pam
similarity index 100%
rename from kde-plasma/kscreenlocker/files/kde-smartcard.pam
rename to kde-plasma/kscreenlocker/files/kde6-smartcard.pam

diff --git a/kde-plasma/kscreenlocker/files/kde-password.pam b/kde-plasma/kscreenlocker/files/kde6.pam
similarity index 100%
rename from kde-plasma/kscreenlocker/files/kde-password.pam
rename to kde-plasma/kscreenlocker/files/kde6.pam

diff --git a/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild b/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
index 543ef36e07..995a67c4d1 100644
--- a/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
+++ b/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
@@ -75,7 +75,7 @@ src_install() {
 	ecm_src_install
 
 	local config
-	for config in kde-{fingerprint,password,smartcard} ; do
-		newpamd "${FILESDIR}/${config}.pam" ${config}
+	for config in kde6{,-fingerprint,-smartcard} ; do
+		newpamd "${FILESDIR}/${config}.pam" ${config/6}
 	done
 }


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [gentoo-commits] proj/kde:master commit in: kde-plasma/kscreenlocker/files/, kde-plasma/kscreenlocker/
@ 2023-12-20 15:49 Sam James
  0 siblings, 0 replies; 6+ messages in thread
From: Sam James @ 2023-12-20 15:49 UTC (permalink / raw
  To: gentoo-commits

commit:     fb007288a48a935bb3c56474efe7aa24d99cb587
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 20 15:49:37 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Dec 20 15:49:37 2023 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=fb007288

kde-plasma/kscreenlocker: rename pam services

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/{kscreenlocker-fingerprint.pam => kde-fingerprint.pam}        | 0
 .../files/{kscreenlocker-password.pam => kde-password.pam}              | 0
 .../files/{kscreenlocker-smartcard.pam => kde-smartcard.pam}            | 0
 kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild                      | 2 +-
 4 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/kde-plasma/kscreenlocker/files/kscreenlocker-fingerprint.pam b/kde-plasma/kscreenlocker/files/kde-fingerprint.pam
similarity index 100%
rename from kde-plasma/kscreenlocker/files/kscreenlocker-fingerprint.pam
rename to kde-plasma/kscreenlocker/files/kde-fingerprint.pam

diff --git a/kde-plasma/kscreenlocker/files/kscreenlocker-password.pam b/kde-plasma/kscreenlocker/files/kde-password.pam
similarity index 100%
rename from kde-plasma/kscreenlocker/files/kscreenlocker-password.pam
rename to kde-plasma/kscreenlocker/files/kde-password.pam

diff --git a/kde-plasma/kscreenlocker/files/kscreenlocker-smartcard.pam b/kde-plasma/kscreenlocker/files/kde-smartcard.pam
similarity index 100%
rename from kde-plasma/kscreenlocker/files/kscreenlocker-smartcard.pam
rename to kde-plasma/kscreenlocker/files/kde-smartcard.pam

diff --git a/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild b/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
index 29c7cf2f72..543ef36e07 100644
--- a/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
+++ b/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
@@ -75,7 +75,7 @@ src_install() {
 	ecm_src_install
 
 	local config
-	for config in kscreenlocker-{fingerprint,password,smartcard} ; do
+	for config in kde-{fingerprint,password,smartcard} ; do
 		newpamd "${FILESDIR}/${config}.pam" ${config}
 	done
 }


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [gentoo-commits] proj/kde:master commit in: kde-plasma/kscreenlocker/files/, kde-plasma/kscreenlocker/
@ 2023-12-20 15:47 Sam James
  0 siblings, 0 replies; 6+ messages in thread
From: Sam James @ 2023-12-20 15:47 UTC (permalink / raw
  To: gentoo-commits

commit:     15b01074eef56e2c5e46739cd8ba12fea8d7fbcc
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 20 15:44:43 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Dec 20 15:47:15 2023 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=15b01074

kde-plasma/kscreenlocker: first cut of new PAM configuration

As with all of the masked KDE ebuilds, there is ** no warranty **. I've not
yet runtime tested this. Don't use this yet on a machine where you rely on
kscreenlocker behaving correctly for security.

See https://community.kde.org/Plasma/Plasma_6.0_Release_notes#New_required_PAM_configuration
and https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/163.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../kscreenlocker/files/kscreenlocker-fingerprint.pam       | 13 +++++++++++++
 kde-plasma/kscreenlocker/files/kscreenlocker-password.pam   |  9 +++++++++
 kde-plasma/kscreenlocker/files/kscreenlocker-smartcard.pam  | 13 +++++++++++++
 kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild          |  6 ++++--
 4 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/kde-plasma/kscreenlocker/files/kscreenlocker-fingerprint.pam b/kde-plasma/kscreenlocker/files/kscreenlocker-fingerprint.pam
new file mode 100644
index 0000000000..38267de65e
--- /dev/null
+++ b/kde-plasma/kscreenlocker/files/kscreenlocker-fingerprint.pam
@@ -0,0 +1,13 @@
+#%PAM-1.0
+
+auth        required    pam_shells.so
+auth        required    pam_nologin.so
+auth        required    pam_faillock.so preauth
+auth        required    pam_fprintd.so
+auth        required    pam_env.so
+
+account     include     system-local-login
+
+password    include     system-local-login
+
+session     include     system-local-login

diff --git a/kde-plasma/kscreenlocker/files/kscreenlocker-password.pam b/kde-plasma/kscreenlocker/files/kscreenlocker-password.pam
new file mode 100644
index 0000000000..ce9e84d588
--- /dev/null
+++ b/kde-plasma/kscreenlocker/files/kscreenlocker-password.pam
@@ -0,0 +1,9 @@
+#%PAM-1.0
+
+auth     include  system-local-login
+
+account  include  system-local-login
+
+password include  system-local-login
+
+session  include  system-local-login

diff --git a/kde-plasma/kscreenlocker/files/kscreenlocker-smartcard.pam b/kde-plasma/kscreenlocker/files/kscreenlocker-smartcard.pam
new file mode 100644
index 0000000000..f887c78234
--- /dev/null
+++ b/kde-plasma/kscreenlocker/files/kscreenlocker-smartcard.pam
@@ -0,0 +1,13 @@
+#%PAM-1.0
+
+auth        required    pam_shells.so
+auth        required    pam_nologin.so
+auth        required    pam_faillock.so preauth
+auth        required    pam_pkcs11.so wait_for_card card_only
+auth        required    pam_env.so
+
+account     include     system-local-login
+
+password    include     system-local-login
+
+session     include     system-local-login

diff --git a/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild b/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
index da6f0f9036..29c7cf2f72 100644
--- a/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
+++ b/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
@@ -74,6 +74,8 @@ src_test() {
 src_install() {
 	ecm_src_install
 
-	newpamd "${FILESDIR}/kde.pam" kde
-	newpamd "${FILESDIR}/kde-np.pam" kde-np
+	local config
+	for config in kscreenlocker-{fingerprint,password,smartcard} ; do
+		newpamd "${FILESDIR}/${config}.pam" ${config}
+	done
 }


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [gentoo-commits] proj/kde:master commit in: kde-plasma/kscreenlocker/files/, kde-plasma/kscreenlocker/
@ 2020-08-02 11:16 Andreas Sturmlechner
  0 siblings, 0 replies; 6+ messages in thread
From: Andreas Sturmlechner @ 2020-08-02 11:16 UTC (permalink / raw
  To: gentoo-commits

commit:     ab60e71421fc10e14f37939f6c91d67fdb00aae8
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Aug  2 08:57:27 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Aug  2 08:57:27 2020 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=ab60e714

kde-plasma/kscreenlocker: Drop IUSE=consolekit from 5.19 too

Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/kscreenlocker-5.19.5-ck-unlock.patch     | 32 ----------------------
 .../kscreenlocker-5.19.49.9999.ebuild              |  6 +---
 kde-plasma/kscreenlocker/metadata.xml              |  3 --
 3 files changed, 1 insertion(+), 40 deletions(-)

diff --git a/kde-plasma/kscreenlocker/files/kscreenlocker-5.19.5-ck-unlock.patch b/kde-plasma/kscreenlocker/files/kscreenlocker-5.19.5-ck-unlock.patch
deleted file mode 100644
index bb15eba72b..0000000000
--- a/kde-plasma/kscreenlocker/files/kscreenlocker-5.19.5-ck-unlock.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 1bac5f6e50bc3255ab0e4c9183e7456f53acfdd5 Mon Sep 17 00:00:00 2001
-From: Andreas Sturmlechner <asturm@gentoo.org>
-Date: Sat, 1 Aug 2020 20:05:17 +0200
-Subject: [PATCH] Provide ConsoleKit switch irrespective of HAVE_LOGINCTL
-
----
- CMakeLists.txt | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 60d3ee1..aaebc82 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -92,7 +92,6 @@ set_package_properties(loginctl PROPERTIES
-     )
- set(HAVE_LOGINCTL ${loginctl_FOUND})
- 
--if ( NOT HAVE_LOGINCTL )
-     find_package(ConsoleKit)
-     set_package_properties(ConsoleKit PROPERTIES
-         URL "https://github.com/ConsoleKit2/ConsoleKit2"
-@@ -100,7 +99,6 @@ if ( NOT HAVE_LOGINCTL )
-         TYPE RECOMMENDED
-         )
-     set(HAVE_CONSOLEKIT ${ConsoleKit_FOUND})
--endif ()
- 
- if (HAVE_LOGINCTL OR HAVE_CONSOLEKIT)
-     set(HAVE_UNLOCK_CAPABILITY TRUE)
--- 
-2.28.0
-

diff --git a/kde-plasma/kscreenlocker/kscreenlocker-5.19.49.9999.ebuild b/kde-plasma/kscreenlocker/kscreenlocker-5.19.49.9999.ebuild
index ae938b4eea..c230b040ab 100644
--- a/kde-plasma/kscreenlocker/kscreenlocker-5.19.49.9999.ebuild
+++ b/kde-plasma/kscreenlocker/kscreenlocker-5.19.49.9999.ebuild
@@ -15,7 +15,7 @@ DESCRIPTION="Library and components for secure lock screen architecture"
 LICENSE="GPL-2" # TODO: CHECK
 SLOT="5"
 KEYWORDS=""
-IUSE="consolekit +pam"
+IUSE="+pam"
 
 COMMON_DEPEND="
 	dev-libs/wayland
@@ -45,7 +45,6 @@ COMMON_DEPEND="
 	x11-libs/libXi
 	x11-libs/libxcb
 	x11-libs/xcb-util-keysyms
-	consolekit? ( sys-auth/consolekit )
 	pam? ( sys-libs/pam )
 "
 DEPEND="${COMMON_DEPEND}
@@ -61,8 +60,6 @@ PDEPEND="
 
 RESTRICT+=" test"
 
-PATCHES=( "${FILESDIR}/${PN}-5.19.5-ck-unlock.patch" )
-
 src_prepare() {
 	ecm_src_prepare
 
@@ -83,7 +80,6 @@ src_test() {
 src_configure() {
 	local mycmakeargs=(
 		-DCMAKE_DISABLE_FIND_PACKAGE_Seccomp=ON
-		$(cmake_use_find_package consolekit ConsoleKit)
 		-DPAM_REQUIRED=$(usex pam)
 		$(cmake_use_find_package pam PAM)
 	)

diff --git a/kde-plasma/kscreenlocker/metadata.xml b/kde-plasma/kscreenlocker/metadata.xml
index 7c59355b62..2fdbf33d96 100644
--- a/kde-plasma/kscreenlocker/metadata.xml
+++ b/kde-plasma/kscreenlocker/metadata.xml
@@ -5,7 +5,4 @@
 		<email>kde@gentoo.org</email>
 		<name>Gentoo KDE Project</name>
 	</maintainer>
-	<use>
-		<flag name="consolekit">Support for killing the screenlocker when <pkg>sys-auth/consolekit</pkg> is the session tracker</flag>
-	</use>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [gentoo-commits] proj/kde:master commit in: kde-plasma/kscreenlocker/files/, kde-plasma/kscreenlocker/
@ 2018-02-17  1:16 Michael Palimaka
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Palimaka @ 2018-02-17  1:16 UTC (permalink / raw
  To: gentoo-commits

commit:     50141c4028e664727b1006319ddd44b3cc50eb31
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 17 01:13:31 2018 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Sat Feb 17 01:15:48 2018 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=50141c40

kde-plasma/kscreenlocker: add support for killing the screenlocker on consolekit

Original script by Daniel Frey <djqfrey <AT> gmail.com>.
Modifications by Lars Wendler <polynomial-c <AT> gentoo.org>.

Bug: https://bugs.gentoo.org/647576
Package-Manager: Portage-2.3.19, Repoman-2.3.6

 kde-plasma/kscreenlocker/files/ck-unlock-session   | 220 +++++++++++++++++++++
 .../files/kscreenlocker-consolekit-unlock.patch    |  13 ++
 .../kscreenlocker-5.12.49.9999.ebuild              |   6 +-
 kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild |   6 +-
 kde-plasma/kscreenlocker/metadata.xml              |   3 +
 5 files changed, 246 insertions(+), 2 deletions(-)

diff --git a/kde-plasma/kscreenlocker/files/ck-unlock-session b/kde-plasma/kscreenlocker/files/ck-unlock-session
new file mode 100644
index 0000000000..6ce6935b06
--- /dev/null
+++ b/kde-plasma/kscreenlocker/files/ck-unlock-session
@@ -0,0 +1,220 @@
+#!/bin/sh
+
+# This script is to make unlocking using OpenRC/Consolekit easier when the KDE Screenlocker breaks.
+#
+# Version: 0.2
+# Date written: February 2, 2018
+# Last modification: February 17, 2018
+#
+# Copyright (C) 2018 Daniel Frey
+# Copyright (C) 2018 Lars Wendler
+#
+# This script is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This script is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+#
+# Some notes:
+#   -The switch processing/argument handling is very basic.
+#   -This script assumes session names start with "Session" when listing
+#    sessions. This is settable via a variable.
+#
+# Possible actions:
+#   -h : Show help screen
+#   -l : List current consolekit sessions
+#   -u : Unlock specified session (one parameter required - the session name)
+#   -a : Attempt to unlock all sessions
+
+# Return code documentation
+#
+#  0: Script executed normally
+#  1: Root access is not present for script
+#  2: No arguments passed
+#  3: Multiple actions requested, can only do one at a time
+#  4: Argument passed was not recognized
+#  5: Multiple arguments passed for unlock single session, only one needed
+#  6: The argument required for unlocksession() is missing (internal error)
+
+SCRIPTNAME="$(basename $0)"
+
+# Return code constants
+readonly ERR_NORMAL_OPERATION=0
+readonly ERR_NO_ROOT=1
+readonly ERR_NO_ARGS=2
+readonly ERR_TOO_MANY_ACTIONS=3
+readonly ERR_INVALID_ARGUMENTS=4
+readonly ERR_TOO_MANY_ARGS=5
+readonly ERR_INTERNAL_ARG_MISSING=6
+
+# Action parameter constants
+readonly ACTION_NONE=0
+readonly ACTION_HELP=1
+readonly ACTION_LIST=2
+readonly ACTION_UNLOCKALL=3
+readonly ACTION_UNLOCK=4
+
+# This is what's used to look for a session via consolekit.
+# By default, assume it is prefixed with "Session".
+SESSION_SEARCH_PREFIX="Session"
+
+# Check to make sure script has root access, if not... abort now!
+if [ "$(id -u)" -ne 0 ]; then
+	echo "This script must be run as root."
+	exit ${ERR_NO_ROOT}
+fi
+
+showhelp() {
+	cat <<EOF
+${SCRIPTNAME}: a script that helps unlock consolekit sessions
+
+Usage: ${SCRIPTNAME} [action] [parameters]
+
+Actions:
+	-l : list current sessions available for unlocking 
+	-u : unlock session specified as a parameter
+	-a : attempt to unlock all current sessions
+	-h : this screen
+
+Parameters:
+	The -u parameter requires a session name to unlock, use -l to 
+	list sessions.
+
+Example:
+	To unlock a single session, use:
+	${SCRIPTNAME} -u Session1
+
+No arguments will show this screen.
+EOF
+}
+
+listsessions() {
+	# Get a list of all sessions, and remove the full colon from the session name
+	ALLSESSIONS=$(ck-list-sessions | grep "^${SESSION_SEARCH_PREFIX}" | awk -F : '{print $1}')
+
+	echo
+	echo "Sessions present on this machine, space-delineated:"
+	echo
+	echo ${ALLSESSIONS}
+	echo
+	echo
+	echo "Session detail (to help locate a specific session:"
+	ck-list-sessions | grep -A 2 "^${SESSION_SEARCH_PREFIX}"
+}
+
+unlocksession() {
+	# This function expects one parameter set (the session to unlock).
+	# Make sure the parameter exists before continuing.
+	if [ -z "${1}" ]; then 
+		showhelp
+		exit ${ERR_INTERNAL_ARG_MISSING}
+	fi
+
+	echo "Attempting to unlock session $1; messages from dbus are not suppressed."
+
+	# Finally, request the unlock.
+	dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/$1 org.freedesktop.ConsoleKit.Session.Unlock
+}
+
+unlockallsessions() {
+	# Get a list of all sessions, and remove the full colon from the session name
+	ALLSESSIONS=$(ck-list-sessions | grep "^${SESSION_SEARCH_PREFIX}" | awk -F : '{print $1}')
+
+	echo "Attempting to unlock all sessions. Messages from dbus are not suppressed."
+	echo
+	# Loop through results, attempt to unlock all sessions.
+	# Count them and report at the end.
+	COUNT=0
+	for i in ${ALLSESSIONS}; do
+		dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/$i org.freedesktop.ConsoleKit.Session.Unlock
+		let "COUNT+=1"
+	done
+
+	echo
+	echo "Attempted to unlock ${COUNT} session(s)."
+}
+
+check_actions() {
+	# Make sure multiple actions are not chosen.
+	if [ ${ACTION} -ne ${ACTION_NONE} ]; then
+		echo "You can only declare one action at a time!"
+		echo ""
+		showhelp
+		exit ${ERR_TOO_MANY_ACTIONS}
+	fi
+}
+
+# Start of "main" routine
+
+# Initialize variables:
+#     ACTION=default 0; used to make sure more than one action are not
+#          specified at the same time. If an invalid argument was passed
+#          (e.g. one without the hyphen prefix) it will be caught as well.
+ACTION="${ACTION_NONE}"
+
+# Show help if no arguments provided at all
+if  [ $# -eq 0 ]; then
+	showhelp
+	exit ${ERR_NO_ARGS}
+fi
+
+# Process arguments passed, setting environment appropriately.
+# During this check, ensure only one action was requested. This
+# script will not do multiple things at a time.
+while getopts “hlau:” OPTION; do
+	case ${OPTION} in
+		h)	# Help action
+			check_actions
+			ACTION=${ACTION_HELP}
+		;;
+                l)	# List action
+			check_actions
+			ACTION="${ACTION_LIST}"
+		;;
+		a)	# Enable all USB hubs/devices action
+			check_actions
+			ACTION="${ACTION_UNLOCKALL}"
+		;;
+		u)	# Enable specific hub/device via find command action
+			check_actions
+			ACTION="${ACTION_UNLOCK}"
+
+			# Save session name passed for later
+			UNLOCKSESSION="${OPTARG}"
+		;;
+		?)	# Unknown parameter
+			showhelp
+			exit ${ERR_INVALID_ARGUMENTS}
+		;;
+	esac
+done
+
+# If script reaches this point, only one action was specified, so it is safe
+# to continue processing.
+case ${ACTION} in
+	${ACTION_HELP})		# help action
+		showhelp
+	;;
+	${ACTION_LIST})		# list action
+		listsessions
+	;;
+	${ACTION_UNLOCKALL}) 	# unlock all sessions
+		unlockallsessions
+	;;
+	${ACTION_UNLOCK})	# unlock single session
+		unlocksession ${UNLOCKSESSION}
+	;;
+	*)
+		echo "Unrecognized action."
+		echo
+		showhelp
+		exit ${ERR_INVALID_ARGUMENTS}
+	;;
+esac
+
+exit ${ERR_NORMAL_OPERATION}

diff --git a/kde-plasma/kscreenlocker/files/kscreenlocker-consolekit-unlock.patch b/kde-plasma/kscreenlocker/files/kscreenlocker-consolekit-unlock.patch
new file mode 100644
index 0000000000..b0e4011d2b
--- /dev/null
+++ b/kde-plasma/kscreenlocker/files/kscreenlocker-consolekit-unlock.patch
@@ -0,0 +1,13 @@
+--- a/abstractlocker.cpp
++++ b/abstractlocker.cpp
+@@ -52,9 +52,8 @@ void BackgroundWindow::paintEvent(QPaintEvent* )
+         auto text = ki18n("The screen locker is broken and unlocking is not possible anymore.\n"
+                           "In order to unlock switch to a virtual terminal (e.g. Ctrl+Alt+F2),\n"
+                           "log in and execute the command:\n\n"
+-                          "loginctl unlock-session %1\n\n"
++                          "ck-unlock-session\n\n"
+                           "Afterwards switch back to the running session (Ctrl+Alt+F%2).");
+-        text = text.subs(QString::fromLocal8Bit(qgetenv("XDG_SESSION_ID")));
+         text = text.subs(QString::fromLocal8Bit(qgetenv("XDG_VTNR")));
+         p.setPen(Qt::white);
+         QFont f = p.font();

diff --git a/kde-plasma/kscreenlocker/kscreenlocker-5.12.49.9999.ebuild b/kde-plasma/kscreenlocker/kscreenlocker-5.12.49.9999.ebuild
index 402ee0bd5d..8c9e48f8cf 100644
--- a/kde-plasma/kscreenlocker/kscreenlocker-5.12.49.9999.ebuild
+++ b/kde-plasma/kscreenlocker/kscreenlocker-5.12.49.9999.ebuild
@@ -9,7 +9,7 @@ inherit kde5 pam
 
 DESCRIPTION="Library and components for secure lock screen architecture"
 KEYWORDS=""
-IUSE="+pam seccomp"
+IUSE="consolekit +pam seccomp"
 
 REQUIRED_USE="seccomp? ( pam )"
 
@@ -58,6 +58,8 @@ RESTRICT+=" test"
 src_prepare() {
 	kde5_src_prepare
 
+	use consolekit && eapply "${FILESDIR}"/${PN}-consolekit-unlock.patch
+
 	use test || sed -i \
 		-e "/add_subdirectory(autotests)/ s/^/#/" greeter/CMakeLists.txt || die
 }
@@ -85,6 +87,8 @@ src_install() {
 	newpamd "${FILESDIR}/kde.pam" kde
 	newpamd "${FILESDIR}/kde-np.pam" kde-np
 
+	use consolekit && dobin "${FILESDIR}"/ck-unlock-session
+
 	if ! use pam; then
 		chown root "${ED}"usr/$(get_libdir)/libexec/kcheckpass || die
 		chmod +s "${ED}"usr/$(get_libdir)/libexec/kcheckpass || die

diff --git a/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild b/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
index 402ee0bd5d..8c9e48f8cf 100644
--- a/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
+++ b/kde-plasma/kscreenlocker/kscreenlocker-9999.ebuild
@@ -9,7 +9,7 @@ inherit kde5 pam
 
 DESCRIPTION="Library and components for secure lock screen architecture"
 KEYWORDS=""
-IUSE="+pam seccomp"
+IUSE="consolekit +pam seccomp"
 
 REQUIRED_USE="seccomp? ( pam )"
 
@@ -58,6 +58,8 @@ RESTRICT+=" test"
 src_prepare() {
 	kde5_src_prepare
 
+	use consolekit && eapply "${FILESDIR}"/${PN}-consolekit-unlock.patch
+
 	use test || sed -i \
 		-e "/add_subdirectory(autotests)/ s/^/#/" greeter/CMakeLists.txt || die
 }
@@ -85,6 +87,8 @@ src_install() {
 	newpamd "${FILESDIR}/kde.pam" kde
 	newpamd "${FILESDIR}/kde-np.pam" kde-np
 
+	use consolekit && dobin "${FILESDIR}"/ck-unlock-session
+
 	if ! use pam; then
 		chown root "${ED}"usr/$(get_libdir)/libexec/kcheckpass || die
 		chmod +s "${ED}"usr/$(get_libdir)/libexec/kcheckpass || die

diff --git a/kde-plasma/kscreenlocker/metadata.xml b/kde-plasma/kscreenlocker/metadata.xml
index 2fdbf33d96..099a76f8dd 100644
--- a/kde-plasma/kscreenlocker/metadata.xml
+++ b/kde-plasma/kscreenlocker/metadata.xml
@@ -5,4 +5,7 @@
 		<email>kde@gentoo.org</email>
 		<name>Gentoo KDE Project</name>
 	</maintainer>
+	<use>
+		<flag name="consolekit">Add support for killing the screenlocker when <pkg>sys-auth/consolekit</pkg> is the session tracker</flag>
+	</use>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-12-20 15:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-01 18:44 [gentoo-commits] proj/kde:master commit in: kde-plasma/kscreenlocker/files/, kde-plasma/kscreenlocker/ Andreas Sturmlechner
  -- strict thread matches above, loose matches on Subject: below --
2023-12-20 15:55 Sam James
2023-12-20 15:49 Sam James
2023-12-20 15:47 Sam James
2020-08-02 11:16 Andreas Sturmlechner
2018-02-17  1:16 Michael Palimaka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox