[PATCH 1/1] linux-initrd: raw-initrd: Add keyword argument #:pre-mount.

  • Done
  • quality assurance status badge
Details
2 participants
  • Hilton Chain
  • Ludovic Courtès
Owner
unassigned
Submitted by
Hilton Chain
Severity
normal
H
H
Hilton Chain wrote on 6 Nov 2022 02:45
(address . guix-patches@gnu.org)
y76k048etyu.wl-hako@ultrarare.space
* gnu/system/linux-initrd.scm (raw-initrd): Add keyword argument #:pre-mount.
---
gnu/system/linux-initrd.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

Toggle diff (24 lines)
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 4c4c78e444..1e72aaee1c 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -172,6 +172,7 @@ (define* (raw-initrd file-systems
#:key
(linux linux-libre)
(linux-modules '())
+ (pre-mount '())
(mapped-devices '())
(keyboard-layout #f)
(helper-packages '())
@@ -255,7 +256,8 @@ (define kodir
(map spec->file-system
'#$(map file-system->spec file-systems))
#:pre-mount (lambda ()
- (and #$@device-mapping-commands
+ (and #$@pre-mount
+ #$@device-mapping-commands
#$@file-system-scan-commands))
#:linux-modules '#$linux-modules
#:linux-module-directory '#$kodir
--
2.38.0
L
L
Ludovic Courtès wrote on 11 Nov 2022 22:32
(name . Hilton Chain)(address . hako@ultrarare.space)(address . 59066@debbugs.gnu.org)
87wn81dvog.fsf@gnu.org
Hi!

Hilton Chain <hako@ultrarare.space> skribis:

Toggle quote (2 lines)
> * gnu/system/linux-initrd.scm (raw-initrd): Add keyword argument #:pre-mount.

[...]

Toggle quote (12 lines)
> + (pre-mount '())
> (mapped-devices '())
> (keyboard-layout #f)
> (helper-packages '())
> @@ -255,7 +256,8 @@ (define kodir
> (map spec->file-system
> '#$(map file-system->spec file-systems))
> #:pre-mount (lambda ()
> - (and #$@device-mapping-commands
> + (and #$@pre-mount
> + #$@device-mapping-commands

I think #:pre-mount should be a single gexp (instead of a list),
defaulting to #t. So we’d do:

(lambda () (and #$pre-mount #$@device-mapping-commands …))

WDYT?

Also could you update the docstring and ‘doc/guix.texi’ accordingly?

Thanks,
Ludo’.
H
H
Hilton Chain wrote on 12 Nov 2022 14:59
[PATCH v2] linux-initrd: raw-initrd: Add keyword argument #:pre-mount.
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 59066@debbugs.gnu.org)
y76zgcwe0jl.wl-hako@ultrarare.space
* gnu/system/linux-initrd.scm (raw-initrd): Add keyword argument #:pre-mount.
Document it.
* doc/guix.texi (initial RAM disk): Likewise.
---
v1 -> v2:
1. Use gexp instead of a list.
2. Documentation.

Haven't begun my SSH test yet :P

doc/guix.texi | 8 +++++---
gnu/system/linux-initrd.scm | 7 +++++--
2 files changed, 10 insertions(+), 5 deletions(-)

Toggle diff (59 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 3f76184495..35eb128f6e 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -37844,15 +37844,17 @@ here is how to use it and customize it further.
@cindex initrd
@cindex initial RAM disk
@deffn {Scheme Procedure} raw-initrd @var{file-systems} @
- [#:linux-modules '()] [#:mapped-devices '()] @
- [#:keyboard-layout #f] @
- [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f]
+ [#:linux-modules '()] [#:pre-mount #t] [#:mapped-devices '()] @
+ [#:keyboard-layout #f] [#:helper-packages '()] @
+ [#:qemu-networking? #f] [#:volatile-root? #f]
Return a 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 @option{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{pre-mount} is a G-expression to evaluate before realizing
+@var{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
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 4c4c78e444..58e95a1312 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -172,6 +172,7 @@ (define* (raw-initrd file-systems
#:key
(linux linux-libre)
(linux-modules '())
+ (pre-mount #t)
(mapped-devices '())
(keyboard-layout #f)
(helper-packages '())
@@ -183,7 +184,8 @@ (define* (raw-initrd file-systems
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.
+mappings to realize before FILE-SYSTEMS are mounted. PRE-MOUNT is a
+G-expression to evaluate before realizing MAPPED-DEVICES.
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.

@@ -255,7 +257,8 @@ (define kodir
(map spec->file-system
'#$(map file-system->spec file-systems))
#:pre-mount (lambda ()
- (and #$@device-mapping-commands
+ (and #$pre-mount
+ #$@device-mapping-commands
#$@file-system-scan-commands))
#:linux-modules '#$linux-modules
#:linux-module-directory '#$kodir

base-commit: 2757de2e2b271d87f6f72ba4161c2225fbdc9e78
--
2.38.1
L
L
Ludovic Courtès wrote on 18 Nov 2022 14:25
Re: bug#59066: [PATCH 1/1] linux-initrd: raw-initrd: Add keyword argument #:pre-mount.
(name . Hilton Chain)(address . hako@ultrarare.space)(address . 59066-done@debbugs.gnu.org)
87cz9kcs40.fsf_-_@gnu.org
Hi,

Hilton Chain <hako@ultrarare.space> skribis:

Toggle quote (8 lines)
> * gnu/system/linux-initrd.scm (raw-initrd): Add keyword argument #:pre-mount.
> Document it.
> * doc/guix.texi (initial RAM disk): Likewise.
> ---
> v1 -> v2:
> 1. Use gexp instead of a list.
> 2. Documentation.

Applied, thanks!

Toggle quote (2 lines)
> Haven't begun my SSH test yet :P

Heh, no rush. :-)

Ludo’.
Closed
?