From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53534) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eooFO-00039i-Gb for guix-patches@gnu.org; Thu, 22 Feb 2018 05:37:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eooFL-0002vb-Cq for guix-patches@gnu.org; Thu, 22 Feb 2018 05:37:06 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:47422) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eooFL-0002vH-8x for guix-patches@gnu.org; Thu, 22 Feb 2018 05:37:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eooFL-0006sP-35 for guix-patches@gnu.org; Thu, 22 Feb 2018 05:37:03 -0500 Subject: [bug#30572] [PATCH 3/7] system: Allow customization of the initrd's Guile. Resent-Message-ID: From: Chris Marusich Date: Thu, 22 Feb 2018 11:35:24 +0100 Message-Id: <20180222103528.5108-3-cmmarusich@gmail.com> In-Reply-To: <20180222103528.5108-1-cmmarusich@gmail.com> References: <20180222103528.5108-1-cmmarusich@gmail.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 30572@debbugs.gnu.org Cc: Chris Marusich * gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Add the #:guile keyword argument. * doc/guix.texi (Initial Ram Disk) : Update their documentation. --- doc/guix.texi | 40 +++++++++++++++++++++++----------------- gnu/system/linux-initrd.scm | 31 ++++++++++++++++++++++--------- 2 files changed, 45 insertions(+), 26 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..aa2f1ae29 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. @@ -221,9 +222,15 @@ upon error." #:linux-modules '#$linux-modules #:linux-module-directory '#$kodir #:qemu-guest-networking? #$qemu-networking? +<<<<<<< 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. (define* (file-system-packages file-systems #:key (volatile-root? #f)) "Return the list of statically-linked, stripped packages to check @@ -246,6 +253,7 @@ FILE-SYSTEMS." #:key (linux linux-libre) (mapped-devices '()) + (guile %guile-static-stripped) qemu-networking? volatile-root? (virtio? #t) @@ -255,7 +263,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 +334,10 @@ loaded at boot time in the order in which they appear." #:helper-packages helper-packages #:qemu-networking? qemu-networking? #:volatile-root? volatile-root? +<<<<<<< HEAD #:on-error on-error)) +======= + #:guile guile)) +>>>>>>> system: Allow customization of the initrd's Guile. ;;; linux-initrd.scm ends here -- 2.15.1