GNU bug report logs - #62006
[PATCH] services: xorg: Deprecate 'screen-locker-service' procedure.

Previous Next

Package: guix-patches;

Reported by: Bruno Victal <mirai <at> makinata.eu>

Date: Mon, 6 Mar 2023 17:27:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 62006 in the body.
You can then email your comments to 62006 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to ludo <at> gnu.org, guix-patches <at> gnu.org:
bug#62006; Package guix-patches. (Mon, 06 Mar 2023 17:27:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bruno Victal <mirai <at> makinata.eu>:
New bug report received and forwarded. Copy sent to ludo <at> gnu.org, guix-patches <at> gnu.org. (Mon, 06 Mar 2023 17:27:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Bruno Victal <mirai <at> makinata.eu>
To: guix-patches <at> gnu.org
Cc: Bruno Victal <mirai <at> makinata.eu>
Subject: [PATCH] services: xorg: Deprecate 'screen-locker-service' procedure.
Date: Mon,  6 Mar 2023 17:26:44 +0000
* doc/guix.texi (X Window): Replace 'screen-locker-service' with 'screen-locker-service-type'.
Document <screen-locker-configuration>.
* gnu/services/desktop.scm (desktop-services-for-system): Use screen-locker-service-type.
* gnu/services/xorg.scm: Export accessors for <screen-locker-configuration>.
(<screen-locker>): Rename to ...
(<screen-locker-configuration>): ... this.
(<screen-locker-configuration>)[empty?]: Rename to ...
(<screen-locker-configuration>)[allow-empty-password?]: ... this.
(screen-locker-pam-services): Update record name.
(screen-locker-setuid-programs): Update accessor name.
(screen-locker-service): Deprecate procedure.
---

Split from #61789.

 doc/guix.texi            | 32 ++++++++++++++++++++++-----
 gnu/services/desktop.scm |  8 +++++--
 gnu/services/xorg.scm    | 47 +++++++++++++++++++++++++---------------
 3 files changed, 62 insertions(+), 25 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 6671ba9305..71a3fde298 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -22206,18 +22206,38 @@ X Window
 @end deffn
 
 
-@deffn {Scheme Procedure} screen-locker-service @var{package} [@var{program}]
-Add @var{package}, a package for a screen locker or screen saver whose
-command is @var{program}, to the set of setuid programs and add a PAM entry
-for it.  For example:
+@defvar screen-locker-service-type
+Type for a service that adds a package for a screen locker or screen
+saver to the set of setuid programs and add a PAM entry for it.  The
+value for this service is a @code{<screen-locker-configuration>} object.
+
+For example, to make XlockMore usable:
 
 @lisp
-(screen-locker-service xlockmore "xlock")
+(service screen-locker-service-type
+         (screen-locker-configuration
+           "xlock" (file-append xlockmore "/bin/xlock") #f))
 @end lisp
 
 makes the good ol' XlockMore usable.
-@end deffn
+@end defvar
 
+@deftp {Data Type} screen-locker-configuration
+Data type representing the configuration of
+@code{screen-locker-service-type}.
+
+@table @asis
+@item @code{name} (type: string)
+Name of the screen locker.
+
+@item @code{program} (type: gexp)
+Path to the executable for the screen locker as a G-Expression.
+
+@item @code{allow-empty-password?} (type: boolean)
+Whether to allow empty passwords.
+
+@end table
+@end deftp
 
 @node Printing Services
 @subsection Printing Services
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index aa9f93997d..c0178135b0 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1832,8 +1832,12 @@ (define* (desktop-services-for-system #:optional
              (service sddm-service-type))
 
          ;; Screen lockers are a pretty useful thing and these are small.
-         (screen-locker-service slock)
-         (screen-locker-service xlockmore "xlock")
+         (service screen-locker-service-type
+                  (screen-locker-configuration
+                   "slock" (file-append slock "/bin/slock") #f))
+         (service screen-locker-service-type
+                  (screen-locker-configuration
+                   "xlock" (file-append xlockmore "/bin/xlock") #f))
 
          ;; Add udev rules for MTP devices so that non-root users can access
          ;; them.
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 5f073d05d3..c4745cecf5 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -107,10 +107,13 @@ (define-module (gnu services xorg)
 
             slim-service-type
 
-            screen-locker
-            screen-locker?
+            screen-locker-configuration
+            screen-locker-configuration?
+            screen-locker-configuration-name
+            screen-locker-configuration-program
+            screen-locker-configuration-allow-empty-password?
             screen-locker-service-type
-            screen-locker-service
+            screen-locker-service  ; deprecated
 
             localed-configuration
             localed-configuration?
@@ -683,21 +686,30 @@ (define slim-service-type
 ;;; Screen lockers & co.
 ;;;
 
-(define-record-type <screen-locker>
-  (screen-locker name program empty?)
+(define-record-type <screen-locker-configuration>
+  (screen-locker-configuration name program allow-empty-password?)
+  screen-locker-configuration?
+  (name    screen-locker-configuration-name)           ;string
+  (program screen-locker-configuration-program)        ;gexp
+  (allow-empty-password?
+   screen-locker-configuration-allow-empty-password?)) ;Boolean
+
+(define-deprecated/public-alias
+  screen-locker
+  screen-locker-configuration)
+
+(define-deprecated/public-alias
   screen-locker?
-  (name    screen-locker-name)                     ;string
-  (program screen-locker-program)                  ;gexp
-  (empty?  screen-locker-allows-empty-passwords?)) ;Boolean
+  screen-locker-configuration?)
 
 (define screen-locker-pam-services
   (match-lambda
-    (($ <screen-locker> name _ empty?)
+    (($ <screen-locker-configuration> name _ empty?)
      (list (unix-pam-service name
                              #:allow-empty-passwords? empty?)))))
 
 (define screen-locker-setuid-programs
-  (compose list file-like->setuid-program screen-locker-program))
+  (compose list file-like->setuid-program screen-locker-configuration-program))
 
 (define screen-locker-service-type
   (service-type (name 'screen-locker)
@@ -711,10 +723,11 @@ (define screen-locker-service-type
 the graphical server by making it setuid-root, so it can authenticate users,
 and by creating a PAM service for it.")))
 
-(define* (screen-locker-service package
-                                #:optional
-                                (program (package-name package))
-                                #:key allow-empty-passwords?)
+(define-deprecated (screen-locker-service package
+                                          #:optional
+                                          (program (package-name package))
+                                          #:key allow-empty-passwords?)
+  screen-locker-service-type
   "Add @var{package}, a package for a screen locker or screen saver whose
 command is @var{program}, to the set of setuid programs and add a PAM entry
 for it.  For example:
@@ -725,9 +738,9 @@ (define* (screen-locker-service package
 
 makes the good ol' XlockMore usable."
   (service screen-locker-service-type
-           (screen-locker program
-                          (file-append package "/bin/" program)
-                          allow-empty-passwords?)))
+           (screen-locker-configuration program
+                                        (file-append package "/bin/" program)
+                                        allow-empty-passwords?)))
 
 
 ;;;
-- 
2.39.1





Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Fri, 10 Mar 2023 13:24:01 GMT) Full text and rfc822 format available.

Notification sent to Bruno Victal <mirai <at> makinata.eu>:
bug acknowledged by developer. (Fri, 10 Mar 2023 13:24:01 GMT) Full text and rfc822 format available.

Message #10 received at 62006-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Bruno Victal <mirai <at> makinata.eu>
Cc: 62006-done <at> debbugs.gnu.org
Subject: Re: [bug#62006] [PATCH] services: xorg: Deprecate
 'screen-locker-service' procedure.
Date: Fri, 10 Mar 2023 14:23:39 +0100
hello,

Bruno Victal <mirai <at> makinata.eu> skribis:

> * doc/guix.texi (X Window): Replace 'screen-locker-service' with 'screen-locker-service-type'.
> Document <screen-locker-configuration>.
> * gnu/services/desktop.scm (desktop-services-for-system): Use screen-locker-service-type.
> * gnu/services/xorg.scm: Export accessors for <screen-locker-configuration>.
> (<screen-locker>): Rename to ...
> (<screen-locker-configuration>): ... this.
> (<screen-locker-configuration>)[empty?]: Rename to ...
> (<screen-locker-configuration>)[allow-empty-password?]: ... this.
> (screen-locker-pam-services): Update record name.
> (screen-locker-setuid-programs): Update accessor name.
> (screen-locker-service): Deprecate procedure.
> ---
>
> Split from #61789.

Applied, thanks!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 08 Apr 2023 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 12 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.