Subject: Re: [bug#30572] [PATCH 3/7] system: Allow customization of the initrd's Guile.

From: Chris Marusich <[email-masked]>
Date: Thu, 22 Feb 2018 13:10:33 +0100

Chris Marusich <[email-masked]> writes:

> +<<<<<<< HEAD
>                        #:volatile-root? '#$volatile-root?
>                        #:on-error '#$on-error)))
>     #:name "raw-initrd"))
> +=======
> +                      #:volatile-root? '#$volatile-root?)))
> +   #:name "raw-initrd"
> +   #:guile guile))
> +>>>>>>> system: Allow customization of the initrd's Guile.
>
> ...
>
> +<<<<<<< HEAD
>                #:on-error on-error))
> +=======
> +              #:guile guile))
> +>>>>>>> system: Allow customization of the initrd's Guile.

This is obviously not correct.  I accidentally forgot to resolve these
conflicts when rebasing my branch onto origin/master.  Please disregard
patch 3/7 in favor of the attached patch, which resolves the conflicts.

I've verified (for sure, this time!) that this patch series builds
successfully after it has been applied.  Sorry for the additional churn!

-- 
Chris
From 44a4d91853c5c83f6ac32d16d16fab1c342d3b4e Mon Sep 17 00:00:00 2001
From: Chris Marusich <[email-masked]>
Date: Mon, 19 Feb 2018 04:47:42 +0100
Subject: [PATCH] system: Allow customization of the initrd's Guile.

* gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Add the #:guile
  keyword argument.
* doc/guix.texi (Initial Ram Disk) <base-initrd, raw-initrd>: Update
  their documentation.
---
 doc/guix.texi               | 40 +++++++++++++++++++++++-----------------
 gnu/system/linux-initrd.scm | 27 ++++++++++++++++-----------
 2 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 7ed39ff13..5e8c27486 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -18849,33 +18849,39 @@ here is how to use it and customize it further.
 @cindex initrd
 @cindex initial RAM disk
 @deffn {Monadic Procedure} raw-initrd @var{file-systems} @
+       [#:linux linux-libre]
        [#:linux-modules '()] [#:mapped-devices '()] @
-       [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f]
-Return a monadic derivation that builds a raw 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{linux-modules} is a list of kernel modules to be loaded at boot time.
-@var{mapped-devices} is a list of device mappings to realize before
-@var{file-systems} are mounted (@pxref{Mapped Devices}).
-@var{helper-packages} is a list of packages to be copied in the initrd. It may
-include @code{e2fsck/static} or other packages needed by the initrd to check
-the root file system.
+       [#:helper-packages '()] [#:guile %guile-static-stripped]
+       [#:qemu-networking? #f] [#:volatile-root? #f]
+Return a monadic derivation that builds a raw initrd, with kernel
+modules taken from @var{linux}.  @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{linux-modules} is a list of kernel modules to be loaded at boot
+time.  @var{mapped-devices} is a list of device mappings to realize
+before @var{file-systems} are mounted (@pxref{Mapped Devices}).
+@var{helper-packages} is a list of packages to be copied in the
+initrd. It may include @code{e2fsck/static} or other packages needed by
+the initrd to check root partition.  @var{guile} is the Guile to use in
+the initrd.
 
 When @var{qemu-networking?} is true, set up networking with the standard QEMU
-parameters.  When @var{virtio?} is true, load additional modules so that the
-initrd can be used as a QEMU guest with para-virtualized I/O drivers.
+parameters.
 
 When @var{volatile-root?} is true, the root file system is writable but any changes
 to it are lost.
 @end deffn
 
 @deffn {Monadic Procedure} base-initrd @var{file-systems} @
-       [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f]@
+       [#:linux linux-libre]
+       [#:mapped-devices '()] [#:guile %guile-static-stripped]
+       [#:qemu-networking? #f] [#:volatile-root? #f]@
        [#:virtio? #t] [#:extra-modules '()]
-Return a monadic derivation that builds a generic initrd.  @var{file-systems} is
-a list of file systems to be mounted by the initrd like for @code{raw-initrd}.
-@var{mapped-devices}, @var{qemu-networking?} and @var{volatile-root?}
-also behaves as in @code{raw-initrd}.
+Return a monadic derivation that builds a generic initrd, with kernel
+modules taken from @var{linux}.  @var{file-systems} is a list of file
+systems to be mounted by the initrd like for @code{raw-initrd}.
+@var{mapped-devices}, @var{guile}, @var{qemu-networking?} and
+@var{volatile-root?} also behave as in @code{raw-initrd}.
 
 When @var{virtio?} is true, load additional modules so that the
 initrd can be used as a QEMU guest with para-virtualized I/O drivers.
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 330438bce..301e6cffa 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -154,17 +154,18 @@ MODULES and taken from LINUX."
                       (linux-modules '())
                       (mapped-devices '())
                       (helper-packages '())
+                      (guile %guile-static-stripped)
                       qemu-networking?
                       volatile-root?
                       (on-error 'debug))
-  "Return a monadic derivation that builds a raw initrd, with kernel
-modules taken from LINUX.  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 '--root'. LINUX-MODULES is a list of kernel
-modules to be loaded at boot time. MAPPED-DEVICES is a list of device
-mappings to realize before FILE-SYSTEMS are mounted.
-HELPER-PACKAGES is a list of packages to be copied in the initrd. It may include
-e2fsck/static or other packages needed by the initrd to check root partition.
+  "Return a monadic derivation that builds a raw initrd, with kernel modules
+taken from LINUX.  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 '--root'.  LINUX-MODULES is a list of kernel modules to be
+loaded at boot time.  MAPPED-DEVICES is a list of device mappings to realize
+before FILE-SYSTEMS are mounted.  HELPER-PACKAGES is a list of packages to be
+copied in the initrd. It may include e2fsck/static or other packages needed by
+the initrd to check root partition.  GUILE is the Guile to use in the initrd.
 
 When QEMU-NETWORKING? is true, set up networking with the standard QEMU
 parameters.
@@ -223,7 +224,8 @@ upon error."
                       #:qemu-guest-networking? #$qemu-networking?
                       #:volatile-root? '#$volatile-root?
                       #:on-error '#$on-error)))
-   #:name "raw-initrd"))
+   #:name "raw-initrd"
+   #:guile guile))
 
 (define* (file-system-packages file-systems #:key (volatile-root? #f))
   "Return the list of statically-linked, stripped packages to check
@@ -246,6 +248,7 @@ FILE-SYSTEMS."
                       #:key
                       (linux linux-libre)
                       (mapped-devices '())
+                      (guile %guile-static-stripped)
                       qemu-networking?
                       volatile-root?
                       (virtio? #t)
@@ -255,7 +258,8 @@ FILE-SYSTEMS."
 modules taken from LINUX.  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 '--root'.  MAPPED-DEVICES is a list of device
-mappings to realize before FILE-SYSTEMS are mounted.
+mappings to realize before FILE-SYSTEMS are mounted.  GUILE is the Guile to
+use in the initrd.
 
 QEMU-NETWORKING? and VOLATILE-ROOT? behaves as in raw-initrd.
 
@@ -325,6 +329,7 @@ loaded at boot time in the order in which they appear."
               #:helper-packages helper-packages
               #:qemu-networking? qemu-networking?
               #:volatile-root? volatile-root?
-              #:on-error on-error))
+              #:on-error on-error
+              #:guile guile))
 
 ;;; linux-initrd.scm ends here
-- 
2.15.1