summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-09-22 21:29:41 +0200
committerLudovic Courtès <ludo@gnu.org>2014-09-22 21:29:41 +0200
commit52ac153e2a83035ce2bc875f9c414cb26db5f6fc (patch)
tree3f80b66b7e76e39d8c5b276e3d316d1ada13572f
parent8591fae4cf34ac5abcf85bf0cee0225d6c472e32 (diff)
downloadguix-52ac153e2a83035ce2bc875f9c414cb26db5f6fc.tar.gz
linux-initrd: Adjust VM code and doc to new 'base-initrd' signature.
This fixes regressions introduced in de1c158 ("system: Add support for
boot-time mapped devices.").

* doc/guix.texi (Initial RAM Disk): Adjust example with custom use of
  'base-initrd'.  Document #:mapped-devices parameter of 'base-initrd'.
* gnu/system/vm.scm (system-disk-image, system-qemu-image,
  virtualized-operating-system): Adjust call to 'base-initrd' to new
  signature.
-rw-r--r--doc/guix.texi19
-rw-r--r--gnu/system/vm.scm26
2 files changed, 26 insertions, 19 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 9630ae1c58..51884c3c6f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3649,23 +3649,24 @@ at boot time, you can define the @code{initrd} field of the operating
 system declaration like this:
 
 @example
-(initrd (cut base-initrd <>
-             #:extra-modules '("my.ko" "modules.ko")))
+(initrd (lambda (file-systems . rest)
+          (apply base-initrd file-systems
+                 #:extra-modules '("my.ko" "modules.ko")
+                 rest)))
 @end example
 
-@noindent
-Note that for the example above, the SRFI-26 module needs to be imported
-(@pxref{SRFI-26,,, guile, GNU Guile Reference Manual}).
-
-It also handles common use cases that involves using the system as a
-QEMU guest, or as a ``live'' system whose root file system is volatile.
+The @code{base-initrd} procedure also handles common use cases that
+involves using the system as a QEMU guest, or as a ``live'' system whose
+root file system is volatile.
 
 @deffn {Monadic Procedure} base-initrd @var{file-systems} @
        [#:qemu-networking? #f] [#:virtio? #f] [#:volatile-root? #f] @
-       [#:extra-modules '()]
+       [#:extra-modules '()] [#:mapped-devices '()]
 Return a monadic derivation that builds a generic initrd.  @var{file-systems} is
 a list of file-systems to be mounted by the initrd, possibly in addition to
 the root file system specified on the kernel command line via @code{--root}.
+@var{mapped-devices} is a list of device mappings to realize before
+@var{file-systems} are mounted (@pxref{Mapped Devices}).
 
 When @var{qemu-networking?} is true, set up networking with the standard QEMU
 parameters.  When @var{virtio?} is true, load additional modules so the initrd can
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index fa4ae78077..799ab51d41 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -289,9 +289,11 @@ to USB sticks meant to be read-only."
               ;; Since this is meant to be used on real hardware, don't
               ;; install QEMU networking or anything like that, but make sure
               ;; USB mass storage devices are available.
-              (initrd (cut base-initrd <>
-                           #:volatile-root? #t
-                           #:extra-modules '("usb-storage.ko")))
+              (initrd (lambda (file-systems . rest)
+                        (apply base-initrd file-systems
+                               #:volatile-root? #t
+                               #:extra-modules '("usb-storage.ko")
+                               rest)))
 
               ;; Force our own root file system.
               (file-systems (cons (file-system
@@ -333,9 +335,11 @@ of the GNU system as described by OS."
 
   (let ((os (operating-system (inherit os)
               ;; Use an initrd with the whole QEMU shebang.
-              (initrd (cut base-initrd <>
-                           #:virtio? #t
-                           #:qemu-networking? #t))
+              (initrd (lambda (file-systems . rest)
+                        (apply base-initrd file-systems
+                               #:virtio? #t
+                               #:qemu-networking? #t
+                               rest)))
 
               ;; Force our own root file system.
               (file-systems (cons (file-system
@@ -358,10 +362,12 @@ of the GNU system as described by OS."
   "Return an operating system based on OS suitable for use in a virtualized
 environment with the store shared with the host."
   (operating-system (inherit os)
-    (initrd (cut base-initrd <>
-                 #:volatile-root? #t
-                 #:virtio? #t
-                 #:qemu-networking? #t))
+    (initrd (lambda (file-systems . rest)
+              (apply base-initrd file-systems
+                     #:volatile-root? #t
+                     #:virtio? #t
+                     #:qemu-networking? #t
+                     rest)))
     (file-systems (cons* (file-system
                            (mount-point "/")
                            (device "/dev/vda1")