Subject: [PATCH 1/3] services: agetty: Add shepherd-requirement.

From: [email-masked]
Date: Thu, 3 Feb 2022 21:55:19 +0100

From: Danny Milosavljevic <[email-masked]>

* gnu/services/base.scm (<agetty-configuration>): Add shepherd-requirement.
* doc/guix.texi (agetty-configuration): Document it.
---
 doc/guix.texi         | 4 ++++
 gnu/services/base.scm | 8 ++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index aaa7cbb66f..68c4c4086a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -16634,6 +16634,10 @@ This option accepts, as an integer, the nice value with which to run the
 This option provides an ``escape hatch'' for the user to provide arbitrary
 command-line arguments to @command{agetty} as a list of strings.
 
+@item @code{shepherd-requirement} (default: @code{'()})
+The option can be used to provides extra shepherd requirements (for example
+@code{'syslogd}) to the respective @code{'term-}* shepherd service.
+
 @end table
 @end deftp
 
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index fbd01e84d6..d6f584abdb 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -876,6 +876,8 @@ (define-record-type* <agetty-configuration>
   ;; "Escape hatch" for passing arbitrary command-line arguments.
   (extra-options    agetty-extra-options          ;list of strings
                     (default '()))
+  (shepherd-requirement agetty-shepherd-requirement  ;list of SHEPHERD requirements
+                    (default '()))
 ;;; XXX Unimplemented for now!
 ;;; (issue-file     agetty-issue-file             ;file-like
 ;;;                 (default #f))
@@ -924,7 +926,8 @@ (define agetty-shepherd-service
         host no-issue? init-string no-clear? local-line extract-baud?
         skip-login? no-newline? login-options chroot hangup? keep-baud? timeout
         detect-case? wait-cr? no-hints? no-hostname? long-hostname?
-        erase-characters kill-characters chdir delay nice extra-options)
+        erase-characters kill-characters chdir delay nice extra-options
+        shepherd-requirement)
      (list
        (shepherd-service
          (documentation "Run agetty on a tty.")
@@ -934,7 +937,8 @@ (define agetty-shepherd-service
          ;; service to be done.  Also wait for udev essentially so that the tty
          ;; text is not lost in the middle of kernel messages (see also
          ;; mingetty-shepherd-service).
-         (requirement '(user-processes host-name udev))
+         (requirement (cons* 'user-processes 'host-name 'udev
+                             shepherd-requirement))
 
          (modules '((ice-9 match) (gnu build linux-boot)))
          (start
-- 
2.34.0