diff options
author | Christopher Baines <mail@cbaines.net> | 2017-10-08 09:52:24 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2017-10-08 17:31:49 +0100 |
commit | b36e06c2b0889f1d0f939465589d36887ff24d33 (patch) | |
tree | ae7e66a2f39fe73244db6d56f45e2653127d1c50 /gnu/system | |
parent | fe90a6e08b1e82d13cf1604322235c78a3278fb9 (diff) | |
download | guix-b36e06c2b0889f1d0f939465589d36887ff24d33.tar guix-b36e06c2b0889f1d0f939465589d36887ff24d33.tar.gz |
linux-initrd: Ensure that the guile used in the initrd is referenced.
By referencing guile from the initrd output explicitly, it will be present in
the store when this initrd is used. If the exact guile used within the initrd
isn't present in the store, then after root is switched during the boot
process, loading modules (such as (ice-9 popen)) won't work.
This fixes guix-patches bug #28399, "Fix mysql activation, and add a basic
test".
* gnu/system/linux-initrd.scm (expression->initrd)[builder]: Write out a file
called references in to the initrd output, which includes the store path for
guile.
Diffstat (limited to 'gnu/system')
-rw-r--r-- | gnu/system/linux-initrd.scm | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 5a7aec5c87..969a89266c 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -78,6 +78,19 @@ the derivations referenced by EXP are automatically copied to the initrd." (use-modules (gnu build linux-initrd)) (mkdir #$output) + + ;; The guile used in the initrd must be present in the store, so + ;; that module loading works once the root is switched. + ;; + ;; To ensure that is the case, add an explicit reference to the + ;; guile package used in the initrd to the output. + ;; + ;; This fixes guix-patches bug #28399, "Fix mysql activation, and + ;; add a basic test". + (call-with-output-file (string-append #$ output "/references") + (lambda (port) + (simple-format port "~A\n" #$guile))) + (build-initrd (string-append #$output "/initrd") #:guile #$guile #:init #$init |