all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: muradm <mail@muradm.net>
To: 49969@debbugs.gnu.org
Cc: muradm <mail@muradm.net>
Subject: [bug#49969] [PATCH 6/7] gnu: desktop: Add greetd-service-type
Date: Mon,  9 Aug 2021 22:18:02 +0300	[thread overview]
Message-ID: <20210809191803.7833-6-mail@muradm.net> (raw)
In-Reply-To: <20210809190257.7280-1-mail@muradm.net>

greetd is a minimal and flexible login manager daemon that makes
no assumptions about what you want to launch.

Currently, only agreety configuration is provided.

* gnu/services/desktop.scm: Add greetd-service-type
---
 gnu/services/desktop.scm | 139 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 139 insertions(+)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index cc13859532..601b9921a4 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -49,6 +49,7 @@
   #:use-module (gnu system pam)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
@@ -160,6 +161,11 @@
             seatd-configuration
             seatd-service-type
 
+            greetd-configuration
+            greetd-agreety-tty-session
+            greetd-agreety-tty-xdg-session
+            greetd-service-type
+
             %desktop-services))
 
 ;;; Commentary:
@@ -1297,6 +1303,139 @@ or setting its password with passwd.")))
                                      seatd-shepherd-service)))
                 (default-value (seatd-configuration))))
 
+\f
+;;;
+;;; greetd-service-type -- minimal and flexible login manager daemon
+;;;
+
+(define %greetd-accounts
+  (list (user-account (name "greeter") (group "wheel") (system? #t))))
+
+(define-record-type* <greetd-agreety-session>
+  greetd-agreety-session make-greetd-agreety-session
+  greetd-agreety-session?
+  (package greetd-agreety-command-package (default bash))
+  (command-bin greetd-agreety-command-bin (default "/bin/bash"))
+  (command-args greetd-agreety-command-args (default '("-l")))
+  (extra-env greetd-agreety-extra-env (default '()))
+  (command-generator greetd-agreety-command-generator))
+
+(define greetd-agreety-tty-session-command
+  (match-lambda
+    (($ <greetd-agreety-session> pkg command-bin command-args extra-env)
+     (program-file
+      "agreety-tty-session-command"
+      #~(begin
+          (use-modules (ice-9 match))
+          (let* ((abs-cmd-bin #$(file-append pkg command-bin)))
+            (for-each
+             (match-lambda ((var . val) (setenv var val)))
+             (quote (#$@extra-env)))
+            (apply execl abs-cmd-bin abs-cmd-bin
+                   (list #$@command-args))))))))
+
+(define greetd-agreety-tty-xdg-session-command
+  (match-lambda
+    (($ <greetd-agreety-session> package command-bin command-args extra-env)
+     (program-file
+      "agreety-tty-xdg-session-command"
+      #~(begin
+          (use-modules (ice-9 popen) (ice-9 rdelim) (ice-9 match))
+          (let*
+              ((pmvarrun-bin #$(file-append seatd-pam-mount "/sbin/pmvarrun"))
+               (username (getenv "USER"))
+               (useruid (passwd:uid (getpwuid username)))
+               (useruid (number->string useruid))
+               (pmvarrun-cmd (string-join (list pmvarrun-bin "-u" username "-o" "0") " "))
+               (pmvarrun-port (open-input-pipe pmvarrun-cmd))
+               (session-id (read-line pmvarrun-port))
+               (session-id (string-append username "-" session-id))
+               (abs-cmd-bin #$(file-append package command-bin)))
+            (close-pipe pmvarrun-port)
+            (setenv "XDG_SESSION_ID" session-id)
+            (setenv "XDG_SESSION_TYPE" "tty")
+            (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))
+            (for-each
+             (match-lambda ((var . val) (setenv var val)))
+             (quote (#$@extra-env)))
+            (apply execl abs-cmd-bin abs-cmd-bin
+                   (list #$@command-args))))))))
+
+(define greetd-agreety-tty-session
+  (greetd-agreety-session
+   (command-generator greetd-agreety-tty-session-command)))
+
+(define greetd-agreety-tty-xdg-session
+  (greetd-agreety-session
+   (command-generator greetd-agreety-tty-xdg-session-command)))
+
+(define-record-type* <greetd-configuration> greetd-configuration
+  make-greetd-configuration
+  greetd-configuration?
+  (greetd greetd-package (default greetd))
+  (config-file-name greetd-config-file-name (thunked)
+                    (default (default-config-file-name this-record)))
+  (terminal-vt greetd-terminal-vt (default "7"))
+  (default-session-user greetd-default-session-user (default "greeter"))
+  (default-session-command greetd-default-session-command
+    (default greetd-agreety-tty-session)))
+
+(define (default-config-file-name config)
+  (string-join (list "config-" (greetd-terminal-vt config) ".toml") ""))
+
+(define make-greetd-default-session-command
+  (match-lambda
+    (($ <greetd-configuration> greetd _ _ _ default-session-command)
+     (cond ((greetd-agreety-session? default-session-command)
+            (let*
+                ((generator (greetd-agreety-command-generator
+                             default-session-command))
+                 (command (apply generator (list default-session-command)))
+                 (agreety-bin (file-append greetd "/bin/agreety")))
+              (program-file
+               "agreety-command"
+               #~(execl #$agreety-bin #$agreety-bin "-c" #$command))))
+           (else (program-file "agreety-command-exit" #~(exit #f)))))))
+
+(define (greetd-configuration-file config)
+  (let*
+      ((config-file-name (greetd-config-file-name config))
+       (terminal-vt (greetd-terminal-vt config))
+       (default-session-user (greetd-default-session-user config))
+       (default-session-command (make-greetd-default-session-command config)))
+    (mixed-text-file
+     config-file-name
+     "[terminal]\n"
+     "vt = " terminal-vt "\n"
+     "[default_session]\n"
+     "user = " default-session-user "\n"
+     "command = " default-session-command "\n")))
+
+(define (greetd-shepherd-service config)
+  (let*
+      ((greetd-bin (file-append (greetd-package config) "/sbin/greetd"))
+       (greetd-conf (greetd-configuration-file config)))
+    (list
+     (shepherd-service
+      (requirement '(user-processes host-name udev virtual-terminal))
+      (provision (list (symbol-append
+                        'term-tty
+                        (string->symbol (greetd-terminal-vt config)))))
+      (start #~(make-forkexec-constructor
+                (list #$greetd-bin "-c" #$greetd-conf)))
+      (stop #~(make-kill-destructor))))))
+
+(define greetd-service-type
+  (service-type
+   (name 'greetd)
+   (extensions
+    (list
+     (service-extension shepherd-root-service-type
+                        greetd-shepherd-service)
+     (service-extension account-service-type
+                        (const %greetd-accounts))))
+   (default-value (greetd-configuration))))
+
 \f
 ;;;
 ;;; The default set of desktop services.
-- 
2.32.0





  parent reply	other threads:[~2021-08-09 19:19 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-09 19:02 [bug#49969] [PATCH 0/7] gnu: desktop: Add seatd-service-type and greetd-service-type muradm
2021-08-09 19:17 ` [bug#49969] [PATCH 1/7] gnu: rust-enquote: Add rust-enquote 1.0.3 muradm
2021-08-09 19:17 ` [bug#49969] [PATCH 2/7] gnu: rust-pam-sys: Add rust-pam-sys 0.5.6 muradm
2021-08-09 19:17 ` [bug#49969] [PATCH 3/7] gnu: greetd: Add greetd 0.7.0 muradm
2021-08-09 19:18 ` [bug#49969] [PATCH 4/7] gnu: seatd-pam-mount: Add seatd-pam-mount muradm
2021-08-09 19:18 ` [bug#49969] [PATCH 5/7] gnu: desktop: Add seatd-service-type muradm
2021-08-09 19:18 ` muradm [this message]
2021-08-09 19:18 ` [bug#49969] [PATCH 7/7] doc: Add desktop seatd-service-type and greetd-service-type muradm
2021-08-10 19:36 ` [bug#49969] [PATCH v2 0/7] gnu: desktop: Add " muradm
2021-08-10 20:07   ` [bug#49969] [PATCH v2 1/7] gnu: crates-io: Add rust-enquote 1.0.3 muradm
2021-08-11 11:16     ` Xinglu Chen
2021-08-11 19:12       ` muradm
2021-08-10 20:07   ` [bug#49969] [PATCH v2 2/7] gnu: crates-io: Add rust-pam-sys 0.5.6 muradm
2021-08-11 11:20     ` Xinglu Chen
2021-08-11 19:12       ` muradm
2021-08-10 20:07   ` [bug#49969] [PATCH v2 3/7] gnu: freedesktop: Add greetd 0.7.0 muradm
2021-08-11 11:29     ` Xinglu Chen
2021-08-11 20:10       ` muradm
2021-08-12 11:45         ` Xinglu Chen
2021-08-12 19:51           ` muradm
2021-08-10 20:07   ` [bug#49969] [PATCH v2 4/7] gnu: admin: Add greetd-pam-mount muradm
2021-08-11 11:32     ` Xinglu Chen
2021-08-11 20:15       ` muradm
2021-08-10 20:07   ` [bug#49969] [PATCH v2 5/7] gnu: desktop: Add seatd-service-type muradm
2021-08-11 11:52     ` Xinglu Chen
2021-08-11 20:31       ` muradm
2021-08-10 20:07   ` [bug#49969] [PATCH v2 6/7] gnu: desktop: Add greetd-service-type muradm
2021-08-10 20:07   ` [bug#49969] [PATCH v2 7/7] doc: Add desktop seatd-service-type and greetd-service-type muradm
2021-08-12 21:55   ` [bug#49969] [PATCH 00/10] gnu: desktop: Add " muradm
2021-08-12 22:00   ` muradm
2021-08-12 22:04     ` [bug#49969] [PATCH v3 " muradm
2021-08-19 14:31       ` [bug#49969] [PATCH v4 " muradm
2021-08-19 14:38         ` [bug#49969] [PATCH v4 01/10] gnu: crates-io: Add rust-enquote 1.0.3 muradm
2021-08-19 14:38         ` [bug#49969] [PATCH v4 02/10] gnu: crates-io: Add rust-pam-sys 0.5.6 muradm
2021-08-19 14:38         ` [bug#49969] [PATCH v4 03/10] gnu: freedesktop: Add greetd 0.7.0 muradm
2021-08-19 14:39         ` [bug#49969] [PATCH v4 04/10] gnu: admin: Add greetd-pam-mount muradm
2021-08-19 14:39         ` [bug#49969] [PATCH v4 05/10] gnu: desktop: Add seatd-service-type muradm
2021-08-19 14:39         ` [bug#49969] [PATCH v4 06/10] gnu: desktop: Add greetd-service-type muradm
2021-08-19 14:39         ` [bug#49969] [PATCH v4 07/10] gnu: base: Add greetd to applied PAM services muradm
2021-08-19 14:39         ` [bug#49969] [PATCH v4 08/10] gnu: pam-mount: " muradm
2021-08-19 14:39         ` [bug#49969] [PATCH v4 09/10] gnu: tests: Add seatd/greetd based minimal desktop system tests muradm
2021-08-19 14:39         ` [bug#49969] [PATCH v4 10/10] doc: Add desktop seatd-service-type and greetd-service-type muradm
2021-08-22 21:50         ` [bug#49969] [PATCH v5 00/10] gnu: desktop: Add " muradm
2021-08-22 21:50           ` [bug#49969] [PATCH v5 01/10] gnu: crates-io: Add rust-enquote 1.0.3 muradm
2021-08-22 21:50           ` [bug#49969] [PATCH v5 02/10] gnu: crates-io: Add rust-pam-sys 0.5.6 muradm
2021-08-22 21:50           ` [bug#49969] [PATCH v5 03/10] gnu: freedesktop: Add greetd 0.7.0 muradm
2021-08-22 21:50           ` [bug#49969] [PATCH v5 04/10] gnu: admin: Add greetd-pam-mount muradm
2021-08-22 21:50           ` [bug#49969] [PATCH v5 05/10] gnu: desktop: Add seatd-service-type muradm
2021-08-22 21:50           ` [bug#49969] [PATCH v5 06/10] gnu: desktop: Add greetd-service-type muradm
2021-08-22 21:50           ` [bug#49969] [PATCH v5 07/10] gnu: base: Add greetd to applied PAM services muradm
2021-08-22 21:50           ` [bug#49969] [PATCH v5 08/10] gnu: pam-mount: " muradm
2021-08-22 21:50           ` [bug#49969] [PATCH v5 09/10] gnu: tests: Add seatd/greetd based minimal desktop system tests muradm
2021-08-22 21:50           ` [bug#49969] [PATCH v5 10/10] doc: Add desktop seatd-service-type and greetd-service-type muradm
2021-09-06 15:26           ` [bug#49969] [PATCH v6 0/8] gnu: Add " muradm
2021-09-06 15:26             ` [bug#49969] [PATCH v6 1/8] gnu: crates-io: Add rust-enquote-1 1.0.3 muradm
2021-09-06 15:26             ` [bug#49969] [PATCH v6 2/8] gnu: crates-io: Add rust-pam-sys 0.5.6 muradm
2021-09-06 15:26             ` [bug#49969] [PATCH v6 3/8] gnu: admin: Add greetd 0.8.0 muradm
2021-09-06 15:26             ` [bug#49969] [PATCH v6 4/8] gnu: admin: Add greetd-pam-mount muradm
2021-09-06 15:26             ` [bug#49969] [PATCH v6 5/8] gnu: base: Add greetd-service-type muradm
2021-09-06 15:26             ` [bug#49969] [PATCH v6 6/8] gnu: admin: Add libseat 0.5.0 and move seatd muradm
2021-09-06 15:26             ` [bug#49969] [PATCH v6 7/8] gnu: desktop: Add seatd-service-type muradm
2021-09-06 15:26             ` [bug#49969] [PATCH v6 8/8] gnu: tests: Add seatd/greetd based minimal desktop system tests muradm
2021-09-15 16:29             ` [bug#49969] [PATCH v7 0/7] gnu: Add greetd-service-type and seatd-service-type muradm
2021-09-15 16:29               ` [bug#49969] [PATCH v7 1/7] gnu: crates-io: Add rust-enquote 1.0.3 and rust-pam-sys 0.5.6 muradm
2021-09-15 16:29               ` [bug#49969] [PATCH v7 2/7] gnu: admin: Add greetd 0.8.0 muradm
2021-09-15 16:29               ` [bug#49969] [PATCH v7 3/7] gnu: admin: Add greetd-pam-mount muradm
2021-09-15 16:29               ` [bug#49969] [PATCH v7 4/7] gnu: base: Add greetd-service-type muradm
2021-09-15 16:29               ` [bug#49969] [PATCH v7 5/7] gnu: admin: Add libseat 0.6.1 and move seatd muradm
2021-09-15 16:29               ` [bug#49969] [PATCH v7 6/7] gnu: desktop: Add seatd-service-type muradm
2021-09-15 16:29               ` [bug#49969] [PATCH v7 7/7] gnu: tests: Add seatd/greetd based minimal desktop system tests muradm
2021-09-16 19:47               ` [bug#49969] [PATCH v8 0/7] Update libseat and seatd to 0.6.2 muradm
2021-09-16 19:47                 ` [bug#49969] [PATCH v8 1/7] gnu: crates-io: Add rust-enquote 1.0.3 and rust-pam-sys 0.5.6 muradm
2021-09-16 19:47                 ` [bug#49969] [PATCH v8 2/7] gnu: admin: Add greetd 0.8.0 muradm
2021-09-16 19:47                 ` [bug#49969] [PATCH v8 3/7] gnu: admin: Add greetd-pam-mount muradm
2021-09-16 19:47                 ` [bug#49969] [PATCH v8 4/7] gnu: base: Add greetd-service-type muradm
2021-09-16 19:47                 ` [bug#49969] [PATCH v8 5/7] gnu: admin: Add libseat 0.6.2 and move seatd muradm
2021-09-24 23:13                   ` Leo Famulari
2021-09-25  7:00                     ` muradm
2021-09-16 19:47                 ` [bug#49969] [PATCH v8 6/7] gnu: desktop: Add seatd-service-type muradm
2021-09-16 19:47                 ` [bug#49969] [PATCH v8 7/7] gnu: tests: Add seatd/greetd based minimal desktop system tests muradm
2021-08-12 22:04     ` [bug#49969] [PATCH v3 01/10] gnu: crates-io: Add rust-enquote 1.0.3 muradm
2021-08-12 22:04     ` [bug#49969] [PATCH v3 02/10] gnu: crates-io: Add rust-pam-sys 0.5.6 muradm
2021-08-12 22:04     ` [bug#49969] [PATCH 03/10] gnu: freedesktop: Add greetd 0.7.0 muradm
2021-08-12 22:04     ` [bug#49969] [PATCH v3 04/10] gnu: admin: Add greetd-pam-mount muradm
2021-08-12 22:04     ` [bug#49969] [PATCH v3 05/10] gnu: desktop: Add seatd-service-type muradm
2021-08-12 22:04     ` [bug#49969] [PATCH v3 06/10] gnu: desktop: Add greetd-service-type muradm
2021-08-12 22:04     ` [bug#49969] [PATCH v3 07/10] gnu: base: Add greetd to applied PAM services muradm
2021-08-12 22:04     ` [bug#49969] [PATCH v3 08/10] gnu: pam-mount: " muradm
2021-08-12 22:04     ` [bug#49969] [PATCH v3 09/10] gnu: tests: Add seatd/greetd based minimal desktop system tests muradm
2021-08-12 22:04     ` [bug#49969] [PATCH v3 10/10] doc: Add desktop seatd-service-type and greetd-service-type muradm
2021-08-13 20:43     ` [bug#49969] [PATCH v3 03/10] gnu: freedesktop: Add greetd 0.7.0 muradm
2021-11-14 17:43 ` [bug#49969] [PATCH 0/7] gnu: desktop: Add seatd-service-type and greetd-service-type norgli via Guix-patches via
     [not found] <20220603180923.0caf6958@ultrarare.space>
2022-06-03 10:10 ` [bug#49969] [PATCH v9 1/7] gnu: crates-io: Add rust-enquote 1.1.0 and rust-pam-sys 0.5.6 Hilton Chain via Guix-patches via
2022-06-03 10:11   ` [bug#49969] [PATCH 2/7] gnu: admin: Add greetd 0.8.0 Hilton Chain via Guix-patches via
2022-06-03 10:14     ` [bug#49969] [PATCH v9 3/7] gnu: admin: Add greetd-pam-mount Hilton Chain via Guix-patches via
2022-06-03 10:15       ` [bug#49969] [PATCH v9 4/7] gnu: base: Add greetd-service-type Hilton Chain via Guix-patches via
2022-06-03 10:16         ` [bug#49969] [PATCH v9 5/7] gnu: admin: Add libseat 0.7.0 and move seatd Hilton Chain via Guix-patches via
2022-06-03 10:17           ` [bug#49969] [PATCH v9 6/7] gnu: desktop: Add seatd-service-type Hilton Chain via Guix-patches via
2022-06-03 10:18             ` [bug#49969] [PATCH v9 7/7] gnu: tests: Add seatd/greetd based minimal desktop system tests Hilton Chain via Guix-patches via
2022-06-07  9:44         ` [bug#49969] [PATCH v9 4/7] gnu: base: Add greetd-service-type Lars-Dominik Braun
2022-06-13  8:45           ` [bug#49969] [PATCH v10 0/7] " muradm
2022-06-13  8:45             ` [bug#49969] [PATCH v10 1/7] gnu: crates-io: Add rust-enquote 1.1.0 and rust-pam-sys 0.5.6 muradm
2022-06-13 13:20               ` Maxime Devos
2022-06-13 14:45                 ` [bug#49969] [PATCH v11 0/8] " muradm
2022-06-13 14:45                   ` [bug#49969] [PATCH v11 1/8] gnu: crates-io: Add rust-enquote 1.1.0 muradm
2022-06-13 14:45                   ` [bug#49969] [PATCH v11 2/8] gnu: crates-io: Add rust-pam-sys 0.5.6 muradm
2022-06-13 14:45                   ` [bug#49969] [PATCH v11 3/8] gnu: admin: Add greetd 0.8.0 muradm
2022-06-13 14:45                   ` [bug#49969] [PATCH v11 4/8] gnu: admin: Add greetd-pam-mount muradm
2022-06-13 14:45                   ` [bug#49969] [PATCH v11 5/8] gnu: base: Add greetd-service-type muradm
2022-06-13 14:45                   ` [bug#49969] [PATCH v11 6/8] gnu: admin: Add libseat 0.8.0 and move seatd muradm
2022-06-13 14:45                   ` [bug#49969] [PATCH v11 7/8] gnu: desktop: Add seatd-service-type muradm
2022-06-14 12:13                     ` Tom Fitzhenry
2022-06-13 14:45                   ` [bug#49969] [PATCH v11 8/8] gnu: tests: Add seatd/greetd based minimal desktop system tests muradm
2022-06-15  6:54                   ` [bug#49969] [PATCH v11 0/8] Re: [bug#49969] [PATCH v10 1/7] gnu: crates-io: Add rust-enquote 1.1.0 and rust-pam-sys 0.5.6 muradm
2022-06-15  8:28                     ` Lars-Dominik Braun
2022-06-15  9:17                       ` [bug#49969] [PATCH v12 0/8] with fixed tests muradm
2022-06-15  9:17                         ` [bug#49969] [PATCH v12 1/8] gnu: crates-io: Add rust-enquote 1.1.0 muradm
2022-06-15  9:17                         ` [bug#49969] [PATCH v12 2/8] gnu: crates-io: Add rust-pam-sys 0.5.6 muradm
2022-06-15  9:17                         ` [bug#49969] [PATCH v12 3/8] gnu: admin: Add greetd 0.8.0 muradm
2022-06-15  9:17                         ` [bug#49969] [PATCH v12 4/8] gnu: admin: Add greetd-pam-mount muradm
2022-06-15  9:17                         ` [bug#49969] [PATCH v12 5/8] gnu: base: Add greetd-service-type muradm
2022-06-15  9:17                         ` [bug#49969] [PATCH v12 6/8] gnu: admin: Add libseat 0.8.0 and move seatd muradm
2022-06-15  9:17                         ` [bug#49969] [PATCH v12 7/8] gnu: desktop: Add seatd-service-type muradm
2022-06-15  9:17                         ` [bug#49969] [PATCH v12 8/8] gnu: tests: Add seatd/greetd based minimal desktop system tests muradm
2022-06-16 16:19                         ` [bug#49969] [PATCH v12 0/8] with fixed tests muradm
2022-06-17  8:47                           ` bug#49969: " Lars-Dominik Braun
2022-06-13  8:45             ` [bug#49969] [PATCH v10 2/7] gnu: admin: Add greetd 0.8.0 muradm
2022-06-13  8:46             ` [bug#49969] [PATCH v10 3/7] gnu: admin: Add greetd-pam-mount muradm
2022-06-13  8:46             ` [bug#49969] [PATCH v10 4/7] gnu: base: Add greetd-service-type muradm
2022-06-13  8:46             ` [bug#49969] [PATCH v10 5/7] gnu: admin: Add libseat 0.8.0 and move seatd muradm
2022-06-13  8:46             ` [bug#49969] [PATCH v10 6/7] gnu: desktop: Add seatd-service-type muradm
2022-06-13  8:46             ` [bug#49969] [PATCH v10 7/7] gnu: tests: Add seatd/greetd based minimal desktop system tests muradm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210809191803.7833-6-mail@muradm.net \
    --to=mail@muradm.net \
    --cc=49969@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.