[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
32/35: services: Add `hurd-getty-service-type'.
From: |
guix-commits |
Subject: |
32/35: services: Add `hurd-getty-service-type'. |
Date: |
Thu, 28 May 2020 13:03:34 -0400 (EDT) |
janneke pushed a commit to branch wip-hurd-vm
in repository guix.
commit 41cb83a9872323d1dea5871b5a3fa939b4bb7e5e
Author: Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Thu May 7 11:14:01 2020 +0200
services: Add `hurd-getty-service-type'.
* gnu/services/hurd.scm (<hurd-gettty-configuration>): New record.
(hurd-ttys-shepherd-service): New procedure.
(hurd-getty-service-type): New variable.
* doc/guix.texi (Hurd Services): Document it.
---
doc/guix.texi | 23 +++++++++++++++++++++++
gnu/services/hurd.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 74 insertions(+), 1 deletion(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index cfeb3d8..15d4c53 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -26041,6 +26041,29 @@ specifics for the Hurd.
It is part of the @code{hurd-default-essential-services}.
@end deffn
+@defvr {Scheme Variable} hurd-getty-service-type
+This service starts a tty using the Hurd @code{getty} program.
+
+The service's value is a @code{hurd-getty-configuration} record.
+@end defvr
+
+@deftp {Data Type} hurd-getty-configuration
+This is the data type representing the configuration for the
+hurd-getty-service.
+
+@table @asis
+@item @code{hurd} (default: @var{hurd})
+The Hurd package to use.
+
+@item @code{tty}
+The name of the console this Getty runs on---e.g., @code{"tty1"}.
+
+@item @code{baud-rate} (default: @code{38400})
+An integer specifying the baud rate of the tty.
+
+@end table
+@end deftp
+
@node Miscellaneous Services
@subsection Miscellaneous Services
diff --git a/gnu/services/hurd.scm b/gnu/services/hurd.scm
index 27c674c..8fc5a1d 100644
--- a/gnu/services/hurd.scm
+++ b/gnu/services/hurd.scm
@@ -26,7 +26,9 @@
#:use-module (guix records)
#:export (hurd-console-configuration
hurd-console-service-type
- hurd-etc-service))
+ hurd-etc-service
+ hurd-getty-configuration
+ hurd-getty-service-type))
;;; Commentary:
;;;
@@ -99,4 +101,52 @@ fi\n"))
hurd-console-shepherd-service)))
(default-value (hurd-console-configuration))))
+
+;;;
+;;; The Hurd getty service.
+;;;
+
+(define-record-type* <hurd-getty-configuration>
+ hurd-getty-configuration make-hurd-getty-configuration
+ hurd-getty-configuration?
+ (hurd hurd-getty-configuration-hurd ;<package>
+ (default hurd))
+ (tty hurd-getty-configuration-tty) ;string
+ (baud-rate hurd-getty-configuration-baud-rate
+ (default 38400))) ;integer
+
+(define (hurd-getty-shepherd-service config)
+ "Return a <shepherd-service> for a Hurd getty with CONFIG."
+
+ (let ((hurd (hurd-getty-configuration-hurd config))
+ (tty (hurd-getty-configuration-tty config))
+ (baud-rate (hurd-getty-configuration-baud-rate config)))
+
+ (define getty-command
+ #~(list
+ (string-append #$hurd "/libexec/getty")
+ #$(number->string baud-rate)
+ #$tty))
+
+ (list
+ (shepherd-service
+ (documentation "Run getty on a tty.")
+ (provision (list (string->symbol (string-append "term-" tty))))
+ (requirement '(user-processes console))
+ (start #~(make-forkexec-constructor #$getty-command))
+ (stop #~(make-kill-destructor))))))
+
+(define hurd-getty-service-type
+ (service-type
+ (name 'getty)
+ (extensions (list (service-extension shepherd-root-service-type
+ hurd-getty-shepherd-service)))
+ (description
+ "Provide console login using the Hurd @command{getty} program.")))
+
+(define* (hurd-getty-service config)
+ "Return a service to run the Hurd getty according to @var{config}, which
+specifies the tty to run, among other things."
+ (service hurd-getty-service-type config))
+
;;; hurd.scm ends here
- 03/35: vm: 'qemu-image' uses the native partitioning tools and bootloader., (continued)
- 03/35: vm: 'qemu-image' uses the native partitioning tools and bootloader., guix-commits, 2020/05/28
- 08/35: gnu: hurd: Update to upstream Hurd-reserved xattr index., guix-commits, 2020/05/28
- 09/35: bootloader: Add 'disk-image-installer'., guix-commits, 2020/05/28
- 16/35: image: Do not use VM to create disk-images., guix-commits, 2020/05/28
- 21/35: system: Add 'hurd' field to <operating-system>., guix-commits, 2020/05/28
- 23/35: system: Add 'multiboot-modules' field to <boot-parameters>., guix-commits, 2020/05/28
- 25/35: system: Use 'hurd' package in label., guix-commits, 2020/05/28
- 26/35: system: examples: Add bare-hurd.tmpl., guix-commits, 2020/05/28
- 29/35: services: hurd: Use activation-service, hurd-etc-service., guix-commits, 2020/05/28
- 31/35: services: Add `hurd-console-service-type'., guix-commits, 2020/05/28
- 32/35: services: Add `hurd-getty-service-type'.,
guix-commits <=
- 04/35: vm: 'qemu-image' preserves the cross-compilation target of the OS., guix-commits, 2020/05/28
- 10/35: bootloader: grub: Do not run grub-install when creating a disk-image., guix-commits, 2020/05/28
- 12/35: image: Add bootloader installation support., guix-commits, 2020/05/28
- 19/35: image: Support extra-directives, add hurd-directives., guix-commits, 2020/05/28
- 20/35: system: hurd: Add hurd-default-essential-services., guix-commits, 2020/05/28
- 22/35: bootloader: Extend `<menu-entry>' for multiboot., guix-commits, 2020/05/28
- 27/35: services: hurd: Add `hurd-etc-service'., guix-commits, 2020/05/28
- 11/35: bootloader: grub: Use inheritance to define grub-minimal-bootloader., guix-commits, 2020/05/28
- 24/35: bootloader: grub: Add support for multiboot., guix-commits, 2020/05/28
- 28/35: system: Add `hurd-activation'., guix-commits, 2020/05/28