Subject: bug#41541: [PATCH 1/8] system: Add 'hurd' field to <operating-system>.

From: "Jan (janneke) Nieuwenhuizen" <[email-masked]>
Date: Thu, 4 Jun 2020 15:59:07 +0200

* gnu/system.scm (<operating-system>)[hurd]: New field.
* doc/guix.texi (operating-system Reference): Document 'hurd'.
---
 doc/guix.texi  | 13 ++++++++++---
 gnu/system.scm |  3 +++
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 056bf011f6..4776eacacd 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -11484,9 +11484,16 @@ configuration (@pxref{Using the Configuration System}).
 
 @table @asis
 @item @code{kernel} (default: @code{linux-libre})
-The package object of the operating system kernel to use@footnote{Currently
-only the Linux-libre kernel is supported.  In the future, it will be
-possible to use the GNU@tie{}Hurd.}.
+The package object of the operating system kernel to
+use@footnote{Currently only the Linux-libre kernel is fully supported.
+Using GNU@tie{}mach in combination with a @code{hurd} is experimental
+and only available when building a vm-image.}.
+
+@cindex hurd
+@item @code{hurd} (default: @code{#f})
+The hurd to be started by the kernel.  This is required to build an
+experimental vm-image for the Hurd and requires using @code{kernel}
+GNU@tie{}mach as well as other specific operating system overrides.
 
 @item @code{kernel-loadable-modules} (default: '())
 A list of objects (usually packages) to collect loadable kernel modules
diff --git a/gnu/system.scm b/gnu/system.scm
index 213452a6f9..43dd2ec598 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -83,6 +83,7 @@
             operating-system-packages
             operating-system-host-name
             operating-system-hosts-file
+            operating-system-hurd
             operating-system-kernel
             operating-system-kernel-file
             operating-system-kernel-arguments
@@ -187,6 +188,8 @@
                     (default '()))                ; list of packages
   (kernel-arguments operating-system-user-kernel-arguments
                     (default %default-kernel-arguments)) ; list of gexps/strings
+  (hurd operating-system-hurd
+        (default #f))                             ; package
   (bootloader operating-system-bootloader)        ; <bootloader-configuration>
   (label operating-system-label                   ; string
          (thunked)
-- 
2.26.2