* [bug#58818] [PATCH 0/1] gnu: home: greetd-service-type: Add gexp compilers for sessions.
@ 2022-10-27 17:35 ( via Guix-patches via
2022-10-27 17:38 ` [bug#58818] [PATCH 1/1] " ( via Guix-patches via
0 siblings, 1 reply; 6+ messages in thread
From: ( via Guix-patches via @ 2022-10-27 17:35 UTC (permalink / raw)
To: 58818; +Cc: (
Heya Guix!
This patch changes greetd-service-type to use gexp compilers to turn
session records into program-files, instead of an ad-hoc sanitiser
procedure.
( (1):
gnu: home: greetd-service-type: Add gexp compilers for sessions.
gnu/services/base.scm | 65 ++++++++++++++++++++-----------------------
1 file changed, 30 insertions(+), 35 deletions(-)
base-commit: 78d4a08ac3a1de481bc56eef967a2e5ed2a912d5
--
2.38.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#58818] [PATCH 1/1] gnu: home: greetd-service-type: Add gexp compilers for sessions.
2022-10-27 17:35 [bug#58818] [PATCH 0/1] gnu: home: greetd-service-type: Add gexp compilers for sessions ( via Guix-patches via
@ 2022-10-27 17:38 ` ( via Guix-patches via
2022-11-02 14:00 ` Andrew Tropin
2022-11-09 7:33 ` Andrew Tropin
0 siblings, 2 replies; 6+ messages in thread
From: ( via Guix-patches via @ 2022-10-27 17:38 UTC (permalink / raw)
To: 58818; +Cc: (
* gnu/home/services/base.scm (make-greetd-agreety-session-command,
greetd-wlgreet-sway-session-command,
make-greetd-default-session-command): Remove variables.
(greetd-agreety-session-compiler,
greetd-wlgreet-sway-session-compiler): New gexp compilers.
(greetd-terminal-configuration)[default-session-command]<sanitize>:
Remove it.
---
gnu/services/base.scm | 65 ++++++++++++++++++++-----------------------
1 file changed, 30 insertions(+), 35 deletions(-)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index d3e3335030..3bf924b8f1 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -2900,11 +2900,18 @@ (define greetd-agreety-tty-xdg-session-command
(quote (#$@extra-env)))
(apply execl #$command #$command (list #$@args)))))))
-(define (make-greetd-agreety-session-command config command)
- (let ((agreety (file-append (greetd-agreety config) "/bin/agreety")))
- (program-file
- "agreety-command"
- #~(execl #$agreety #$agreety "-c" #$command))))
+(define-gexp-compiler (greetd-agreety-session-compiler
+ (session <greetd-agreety-session>)
+ system target)
+ (let ((agreety (file-append (greetd-agreety session)
+ "/bin/agreety"))
+ (command ((if (greetd-agreety-xdg-env? session)
+ greetd-agreety-tty-xdg-session-command
+ greetd-agreety-tty-session-command)
+ session)))
+ (lower-object
+ (program-file "agreety-command"
+ #~(execl #$agreety #$agreety "-c" #$command)))))
(define-record-type* <greetd-wlgreet-session>
greetd-wlgreet-session make-greetd-wlgreet-session
@@ -2991,37 +2998,26 @@ (define (make-wlgreet-sway-configuration-file session)
"exec \"" wlgreet " --config " wlgreet-config "; "
swaymsg " exit\"\n")))
-(define (greetd-wlgreet-sway-session-command session)
+(define-gexp-compiler (greetd-wlgreet-sway-session-compiler
+ (session <greetd-wlgreet-sway-session>)
+ system target)
(let ((sway (file-append (greetd-wlgreet-sway-session-sway session)
"/bin/sway"))
(config (make-wlgreet-sway-configuration-file session)))
- (program-file "wlgreet-sway-session-command"
- #~(let* ((log-file (open-output-file
- (string-append "/tmp/sway-greeter."
- (number->string (getpid))
- ".log")))
- (username (getenv "USER"))
- (useruid (number->string (passwd:uid (getpwuid username)))))
- ;; redirect stdout/err to log-file
- (dup2 (fileno log-file) 1)
- (dup2 1 2)
- (sleep 1) ;give seatd/logind some time to start up
- (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))
- (execl #$sway #$sway "-d" "-c" #$config)))))
-
-(define (make-greetd-default-session-command config-or-command)
- (cond ((greetd-agreety-session? config-or-command)
- (cond ((greetd-agreety-xdg-env? config-or-command)
- (make-greetd-agreety-session-command
- config-or-command
- (greetd-agreety-tty-xdg-session-command config-or-command)))
- (#t
- (make-greetd-agreety-session-command
- config-or-command
- (greetd-agreety-tty-session-command config-or-command)))))
- ((greetd-wlgreet-sway-session? config-or-command)
- (greetd-wlgreet-sway-session-command config-or-command))
- (#t config-or-command)))
+ (lower-object
+ (program-file "wlgreet-sway-session-command"
+ #~(let* ((log-file (open-output-file
+ (string-append "/tmp/sway-greeter."
+ (number->string (getpid))
+ ".log")))
+ (username (getenv "USER"))
+ (useruid (number->string (passwd:uid (getpwuid username)))))
+ ;; redirect stdout/err to log-file
+ (dup2 (fileno log-file) 1)
+ (dup2 1 2)
+ (sleep 1) ;give seatd/logind some time to start up
+ (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))
+ (execl #$sway #$sway "-d" "-c" #$config))))))
(define-record-type* <greetd-terminal-configuration>
greetd-terminal-configuration make-greetd-terminal-configuration
@@ -3035,8 +3031,7 @@ (define-record-type* <greetd-terminal-configuration>
(terminal-switch greetd-terminal-switch (default #f))
(default-session-user greetd-default-session-user (default "greeter"))
(default-session-command greetd-default-session-command
- (default (greetd-agreety-session))
- (sanitize make-greetd-default-session-command)))
+ (default (greetd-agreety-session))))
(define (default-config-file-name config)
(string-join (list "config-" (greetd-terminal-vt config) ".toml") ""))
--
2.38.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bug#58818] [PATCH 1/1] gnu: home: greetd-service-type: Add gexp compilers for sessions.
2022-10-27 17:38 ` [bug#58818] [PATCH 1/1] " ( via Guix-patches via
@ 2022-11-02 14:00 ` Andrew Tropin
2022-11-02 16:44 ` ( via Guix-patches via
2022-11-09 7:33 ` Andrew Tropin
1 sibling, 1 reply; 6+ messages in thread
From: Andrew Tropin @ 2022-11-02 14:00 UTC (permalink / raw)
To: 58818; +Cc: (, muradm
[-- Attachment #1: Type: text/plain, Size: 5667 bytes --]
On 2022-10-27 18:38, "\( via Guix-patches" via wrote:
> * gnu/home/services/base.scm (make-greetd-agreety-session-command,
It should be gnu/services/base.scm, whithout home.
> greetd-wlgreet-sway-session-command,
> make-greetd-default-session-command): Remove variables.
> (greetd-agreety-session-compiler,
> greetd-wlgreet-sway-session-compiler): New gexp compilers.
> (greetd-terminal-configuration)[default-session-command]<sanitize>:
> Remove it.
> ---
> gnu/services/base.scm | 65 ++++++++++++++++++++-----------------------
> 1 file changed, 30 insertions(+), 35 deletions(-)
>
> diff --git a/gnu/services/base.scm b/gnu/services/base.scm
> index d3e3335030..3bf924b8f1 100644
> --- a/gnu/services/base.scm
> +++ b/gnu/services/base.scm
> @@ -2900,11 +2900,18 @@ (define greetd-agreety-tty-xdg-session-command
> (quote (#$@extra-env)))
> (apply execl #$command #$command (list #$@args)))))))
>
> -(define (make-greetd-agreety-session-command config command)
> - (let ((agreety (file-append (greetd-agreety config) "/bin/agreety")))
> - (program-file
> - "agreety-command"
> - #~(execl #$agreety #$agreety "-c" #$command))))
> +(define-gexp-compiler (greetd-agreety-session-compiler
> + (session <greetd-agreety-session>)
> + system target)
> + (let ((agreety (file-append (greetd-agreety session)
> + "/bin/agreety"))
> + (command ((if (greetd-agreety-xdg-env? session)
> + greetd-agreety-tty-xdg-session-command
> + greetd-agreety-tty-session-command)
> + session)))
> + (lower-object
> + (program-file "agreety-command"
> + #~(execl #$agreety #$agreety "-c" #$command)))))
>
> (define-record-type* <greetd-wlgreet-session>
> greetd-wlgreet-session make-greetd-wlgreet-session
> @@ -2991,37 +2998,26 @@ (define (make-wlgreet-sway-configuration-file session)
> "exec \"" wlgreet " --config " wlgreet-config "; "
> swaymsg " exit\"\n")))
>
> -(define (greetd-wlgreet-sway-session-command session)
> +(define-gexp-compiler (greetd-wlgreet-sway-session-compiler
> + (session <greetd-wlgreet-sway-session>)
> + system target)
> (let ((sway (file-append (greetd-wlgreet-sway-session-sway session)
> "/bin/sway"))
> (config (make-wlgreet-sway-configuration-file session)))
> - (program-file "wlgreet-sway-session-command"
> - #~(let* ((log-file (open-output-file
> - (string-append "/tmp/sway-greeter."
> - (number->string (getpid))
> - ".log")))
> - (username (getenv "USER"))
> - (useruid (number->string (passwd:uid (getpwuid username)))))
> - ;; redirect stdout/err to log-file
> - (dup2 (fileno log-file) 1)
> - (dup2 1 2)
> - (sleep 1) ;give seatd/logind some time to start up
> - (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))
> - (execl #$sway #$sway "-d" "-c" #$config)))))
> -
> -(define (make-greetd-default-session-command config-or-command)
> - (cond ((greetd-agreety-session? config-or-command)
> - (cond ((greetd-agreety-xdg-env? config-or-command)
> - (make-greetd-agreety-session-command
> - config-or-command
> - (greetd-agreety-tty-xdg-session-command config-or-command)))
> - (#t
> - (make-greetd-agreety-session-command
> - config-or-command
> - (greetd-agreety-tty-session-command config-or-command)))))
> - ((greetd-wlgreet-sway-session? config-or-command)
> - (greetd-wlgreet-sway-session-command config-or-command))
> - (#t config-or-command)))
> + (lower-object
> + (program-file "wlgreet-sway-session-command"
> + #~(let* ((log-file (open-output-file
> + (string-append "/tmp/sway-greeter."
> + (number->string (getpid))
> + ".log")))
> + (username (getenv "USER"))
> + (useruid (number->string (passwd:uid (getpwuid username)))))
> + ;; redirect stdout/err to log-file
> + (dup2 (fileno log-file) 1)
> + (dup2 1 2)
> + (sleep 1) ;give seatd/logind some time to start up
> + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))
> + (execl #$sway #$sway "-d" "-c" #$config))))))
>
> (define-record-type* <greetd-terminal-configuration>
> greetd-terminal-configuration make-greetd-terminal-configuration
> @@ -3035,8 +3031,7 @@ (define-record-type* <greetd-terminal-configuration>
> (terminal-switch greetd-terminal-switch (default #f))
> (default-session-user greetd-default-session-user (default "greeter"))
> (default-session-command greetd-default-session-command
> - (default (greetd-agreety-session))
> - (sanitize make-greetd-default-session-command)))
> + (default (greetd-agreety-session))))
>
> (define (default-config-file-name config)
> (string-join (list "config-" (greetd-terminal-vt config) ".toml") ""))
I didn't test it, but this change looks good. Also CCed muradm.
I can take a deeper look and try it out later this week if nobody else
will do it earlier.
--
Best regards,
Andrew Tropin
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#58818] [PATCH 1/1] gnu: home: greetd-service-type: Add gexp compilers for sessions.
2022-11-02 14:00 ` Andrew Tropin
@ 2022-11-02 16:44 ` ( via Guix-patches via
0 siblings, 0 replies; 6+ messages in thread
From: ( via Guix-patches via @ 2022-11-02 16:44 UTC (permalink / raw)
To: andrew, 58818; +Cc: muradm
On Wed Nov 2, 2022 at 2:00 PM GMT, Andrew Tropin wrote:
> It should be gnu/services/base.scm, whithout home.
Oops! :)
-- (
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#58818] [PATCH 1/1] gnu: home: greetd-service-type: Add gexp compilers for sessions.
2022-10-27 17:38 ` [bug#58818] [PATCH 1/1] " ( via Guix-patches via
2022-11-02 14:00 ` Andrew Tropin
@ 2022-11-09 7:33 ` Andrew Tropin
2022-11-09 7:41 ` ( via Guix-patches via
1 sibling, 1 reply; 6+ messages in thread
From: Andrew Tropin @ 2022-11-09 7:33 UTC (permalink / raw)
To: 58818; +Cc: (
[-- Attachment #1: Type: text/plain, Size: 5571 bytes --]
On 2022-10-27 18:38, guix-patches@gnu.org wrote:
> * gnu/home/services/base.scm (make-greetd-agreety-session-command,
> greetd-wlgreet-sway-session-command,
> make-greetd-default-session-command): Remove variables.
> (greetd-agreety-session-compiler,
> greetd-wlgreet-sway-session-compiler): New gexp compilers.
> (greetd-terminal-configuration)[default-session-command]<sanitize>:
> Remove it.
> ---
> gnu/services/base.scm | 65 ++++++++++++++++++++-----------------------
> 1 file changed, 30 insertions(+), 35 deletions(-)
>
> diff --git a/gnu/services/base.scm b/gnu/services/base.scm
> index d3e3335030..3bf924b8f1 100644
> --- a/gnu/services/base.scm
> +++ b/gnu/services/base.scm
> @@ -2900,11 +2900,18 @@ (define greetd-agreety-tty-xdg-session-command
> (quote (#$@extra-env)))
> (apply execl #$command #$command (list #$@args)))))))
>
> -(define (make-greetd-agreety-session-command config command)
> - (let ((agreety (file-append (greetd-agreety config) "/bin/agreety")))
> - (program-file
> - "agreety-command"
> - #~(execl #$agreety #$agreety "-c" #$command))))
> +(define-gexp-compiler (greetd-agreety-session-compiler
> + (session <greetd-agreety-session>)
> + system target)
> + (let ((agreety (file-append (greetd-agreety session)
> + "/bin/agreety"))
> + (command ((if (greetd-agreety-xdg-env? session)
> + greetd-agreety-tty-xdg-session-command
> + greetd-agreety-tty-session-command)
> + session)))
> + (lower-object
> + (program-file "agreety-command"
> + #~(execl #$agreety #$agreety "-c" #$command)))))
>
> (define-record-type* <greetd-wlgreet-session>
> greetd-wlgreet-session make-greetd-wlgreet-session
> @@ -2991,37 +2998,26 @@ (define (make-wlgreet-sway-configuration-file session)
> "exec \"" wlgreet " --config " wlgreet-config "; "
> swaymsg " exit\"\n")))
>
> -(define (greetd-wlgreet-sway-session-command session)
> +(define-gexp-compiler (greetd-wlgreet-sway-session-compiler
> + (session <greetd-wlgreet-sway-session>)
> + system target)
> (let ((sway (file-append (greetd-wlgreet-sway-session-sway session)
> "/bin/sway"))
> (config (make-wlgreet-sway-configuration-file session)))
> - (program-file "wlgreet-sway-session-command"
> - #~(let* ((log-file (open-output-file
> - (string-append "/tmp/sway-greeter."
> - (number->string (getpid))
> - ".log")))
> - (username (getenv "USER"))
> - (useruid (number->string (passwd:uid (getpwuid username)))))
> - ;; redirect stdout/err to log-file
> - (dup2 (fileno log-file) 1)
> - (dup2 1 2)
> - (sleep 1) ;give seatd/logind some time to start up
> - (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))
> - (execl #$sway #$sway "-d" "-c" #$config)))))
> -
> -(define (make-greetd-default-session-command config-or-command)
> - (cond ((greetd-agreety-session? config-or-command)
> - (cond ((greetd-agreety-xdg-env? config-or-command)
> - (make-greetd-agreety-session-command
> - config-or-command
> - (greetd-agreety-tty-xdg-session-command config-or-command)))
> - (#t
> - (make-greetd-agreety-session-command
> - config-or-command
> - (greetd-agreety-tty-session-command config-or-command)))))
> - ((greetd-wlgreet-sway-session? config-or-command)
> - (greetd-wlgreet-sway-session-command config-or-command))
> - (#t config-or-command)))
> + (lower-object
> + (program-file "wlgreet-sway-session-command"
> + #~(let* ((log-file (open-output-file
> + (string-append "/tmp/sway-greeter."
> + (number->string (getpid))
> + ".log")))
> + (username (getenv "USER"))
> + (useruid (number->string (passwd:uid (getpwuid username)))))
> + ;; redirect stdout/err to log-file
> + (dup2 (fileno log-file) 1)
> + (dup2 1 2)
> + (sleep 1) ;give seatd/logind some time to start up
> + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))
> + (execl #$sway #$sway "-d" "-c" #$config))))))
>
> (define-record-type* <greetd-terminal-configuration>
> greetd-terminal-configuration make-greetd-terminal-configuration
> @@ -3035,8 +3031,7 @@ (define-record-type* <greetd-terminal-configuration>
> (terminal-switch greetd-terminal-switch (default #f))
> (default-session-user greetd-default-session-user (default "greeter"))
> (default-session-command greetd-default-session-command
> - (default (greetd-agreety-session))
> - (sanitize make-greetd-default-session-command)))
> + (default (greetd-agreety-session))))
>
> (define (default-config-file-name config)
> (string-join (list "config-" (greetd-terminal-vt config) ".toml") ""))
Applied, tested agreety session, adjusted commit message, pushed as
fdc9e1b27edfb3df51d391364bcbc50e9cd1de40.
Thank you!
--
Best regards,
Andrew Tropin
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#58818] [PATCH 1/1] gnu: home: greetd-service-type: Add gexp compilers for sessions.
2022-11-09 7:33 ` Andrew Tropin
@ 2022-11-09 7:41 ` ( via Guix-patches via
0 siblings, 0 replies; 6+ messages in thread
From: ( via Guix-patches via @ 2022-11-09 7:41 UTC (permalink / raw)
To: andrew, 58818
On Wed Nov 9, 2022 at 7:33 AM GMT, Andrew Tropin wrote:
> Thank you!
Thanks!
-- (
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-11-09 7:42 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-27 17:35 [bug#58818] [PATCH 0/1] gnu: home: greetd-service-type: Add gexp compilers for sessions ( via Guix-patches via
2022-10-27 17:38 ` [bug#58818] [PATCH 1/1] " ( via Guix-patches via
2022-11-02 14:00 ` Andrew Tropin
2022-11-02 16:44 ` ( via Guix-patches via
2022-11-09 7:33 ` Andrew Tropin
2022-11-09 7:41 ` ( via Guix-patches via
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).