diff options
| author | Miguel Ángel Arruga Vivas <rosen644835@gmail.com> | 2020-10-24 18:15:53 +0200 |
|---|---|---|
| committer | Miguel Ángel Arruga Vivas <rosen644835@gmail.com> | 2020-11-01 02:28:38 +0100 |
| commit | 582cf9257cd1f9c969fbba5eb1c336ac8b975cde (patch) | |
| tree | 579aa251535713503cb1f5611a67ea1523338b5e /tests/boot-parameters.scm | |
| parent | 96d0f0b13819a68480e204716c1af6605cfdcb4c (diff) | |
system: Add store-directory-prefix to boot-parameters.
Fixes <http://issues.guix.gnu.org/44196>
* gnu/machine/ssh.scm (roll-back-managed-host): Use
boot-parameters-store-directory-prefix.
* gnu/system.scm (define-module): Export
boot-parameters-store-directory-prefix.
(<boot-parameters>)[store-directory-prefix]: New field. It is used to
generate the correct paths when /gnu/store is installed on a btrfs
subvolume whose name doesn't match the final runtime path, as the
bootloader doesn't have knowledge about the final mounting points.
[boot-parameters-store-directory-prefix]: New accessor.
(read-boot-parameters): Read directory-prefix from store field.
(operating-system-boot-parameters-file): Add directory-prefix to
store field.
* guix/scripts/system.scm (reinstall-bootloader): Use
boot-parameters-store-directory-prefix.
* test/boot-parameters.scm (%default-btrfs-subvolume,
%default-store-directory-prefix): New variables.
(%grub-boot-parameters): Use %default-store-directory-prefix.
(%default-operating-system): Use %default-btrfs-subvolume.
(test-boot-parameters): Add directory-prefix.
(test optional fields): Add test for directory-prefix.
(test os store-directory-prefix): New test.
Diffstat (limited to 'tests/boot-parameters.scm')
| -rw-r--r-- | tests/boot-parameters.scm | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/tests/boot-parameters.scm b/tests/boot-parameters.scm index d7e579bc898..a00b2275511 100644 --- a/tests/boot-parameters.scm +++ b/tests/boot-parameters.scm | |||
| @@ -46,6 +46,9 @@ | |||
| 46 | (define %default-initrd (string-append %default-initrd-path "/initrd.cpio.gz")) | 46 | (define %default-initrd (string-append %default-initrd-path "/initrd.cpio.gz")) |
| 47 | (define %default-root-device (uuid "abcdef12-3456-7890-abcd-ef1234567890")) | 47 | (define %default-root-device (uuid "abcdef12-3456-7890-abcd-ef1234567890")) |
| 48 | (define %default-store-device (uuid "01234567-89ab-cdef-0123-456789abcdef")) | 48 | (define %default-store-device (uuid "01234567-89ab-cdef-0123-456789abcdef")) |
| 49 | (define %default-btrfs-subvolume "testfs") | ||
| 50 | (define %default-store-directory-prefix | ||
| 51 | (string-append "/" %default-btrfs-subvolume)) | ||
| 49 | (define %default-store-mount-point (%store-prefix)) | 52 | (define %default-store-mount-point (%store-prefix)) |
| 50 | (define %default-multiboot-modules '()) | 53 | (define %default-multiboot-modules '()) |
| 51 | (define %default-locale "es_ES.utf8") | 54 | (define %default-locale "es_ES.utf8") |
| @@ -63,6 +66,7 @@ | |||
| 63 | (multiboot-modules %default-multiboot-modules) | 66 | (multiboot-modules %default-multiboot-modules) |
| 64 | (locale %default-locale) | 67 | (locale %default-locale) |
| 65 | (store-device %default-store-device) | 68 | (store-device %default-store-device) |
| 69 | (store-directory-prefix %default-store-directory-prefix) | ||
| 66 | (store-mount-point %default-store-mount-point))) | 70 | (store-mount-point %default-store-mount-point))) |
| 67 | 71 | ||
| 68 | (define %default-operating-system | 72 | (define %default-operating-system |
| @@ -81,7 +85,10 @@ | |||
| 81 | (file-system | 85 | (file-system |
| 82 | (device %default-store-device) | 86 | (device %default-store-device) |
| 83 | (mount-point %default-store-mount-point) | 87 | (mount-point %default-store-mount-point) |
| 84 | (type "btrfs")) | 88 | (type "btrfs") |
| 89 | (options | ||
| 90 | (string-append "subvol=" | ||
| 91 | %default-btrfs-subvolume))) | ||
| 85 | %base-file-systems)))) | 92 | %base-file-systems)))) |
| 86 | 93 | ||
| 87 | (define (quote-uuid uuid) | 94 | (define (quote-uuid uuid) |
| @@ -103,6 +110,7 @@ | |||
| 103 | (with-store #t) | 110 | (with-store #t) |
| 104 | (store-device | 111 | (store-device |
| 105 | (quote-uuid %default-store-device)) | 112 | (quote-uuid %default-store-device)) |
| 113 | (store-directory-prefix %default-store-directory-prefix) | ||
| 106 | (store-mount-point %default-store-mount-point)) | 114 | (store-mount-point %default-store-mount-point)) |
| 107 | (define (generate-boot-parameters) | 115 | (define (generate-boot-parameters) |
| 108 | (define (sexp-or-nothing fmt val) | 116 | (define (sexp-or-nothing fmt val) |
| @@ -117,10 +125,12 @@ | |||
| 117 | (sexp-or-nothing " (kernel-arguments ~S)" kernel-arguments) | 125 | (sexp-or-nothing " (kernel-arguments ~S)" kernel-arguments) |
| 118 | (sexp-or-nothing " (initrd ~S)" initrd) | 126 | (sexp-or-nothing " (initrd ~S)" initrd) |
| 119 | (if with-store | 127 | (if with-store |
| 120 | (format #false " (store~a~a)" | 128 | (format #false " (store~a~a~a)" |
| 121 | (sexp-or-nothing " (device ~S)" store-device) | 129 | (sexp-or-nothing " (device ~S)" store-device) |
| 122 | (sexp-or-nothing " (mount-point ~S)" | 130 | (sexp-or-nothing " (mount-point ~S)" |
| 123 | store-mount-point)) | 131 | store-mount-point) |
| 132 | (sexp-or-nothing " (directory-prefix ~S)" | ||
| 133 | store-directory-prefix)) | ||
| 124 | "") | 134 | "") |
| 125 | (sexp-or-nothing " (locale ~S)" locale) | 135 | (sexp-or-nothing " (locale ~S)" locale) |
| 126 | (sexp-or-nothing " (bootloader-name ~a)" bootloader-name) | 136 | (sexp-or-nothing " (bootloader-name ~a)" bootloader-name) |
| @@ -149,6 +159,7 @@ | |||
| 149 | (test-read-boot-parameters #:store-device #false) | 159 | (test-read-boot-parameters #:store-device #false) |
| 150 | (test-read-boot-parameters #:store-device 'false) | 160 | (test-read-boot-parameters #:store-device 'false) |
| 151 | (test-read-boot-parameters #:store-mount-point #false) | 161 | (test-read-boot-parameters #:store-mount-point #false) |
| 162 | (test-read-boot-parameters #:store-directory-prefix #false) | ||
| 152 | (test-read-boot-parameters #:multiboot-modules #false) | 163 | (test-read-boot-parameters #:multiboot-modules #false) |
| 153 | (test-read-boot-parameters #:locale #false) | 164 | (test-read-boot-parameters #:locale #false) |
| 154 | (test-read-boot-parameters #:bootloader-name #false | 165 | (test-read-boot-parameters #:bootloader-name #false |
| @@ -253,4 +264,10 @@ | |||
| 253 | (operating-system-boot-parameters %default-operating-system | 264 | (operating-system-boot-parameters %default-operating-system |
| 254 | %default-root-device))) | 265 | %default-root-device))) |
| 255 | 266 | ||
| 267 | (test-equal "from os, store-directory-prefix" | ||
| 268 | %default-store-directory-prefix | ||
| 269 | (boot-parameters-store-directory-prefix | ||
| 270 | (operating-system-boot-parameters %default-operating-system | ||
| 271 | %default-root-device))) | ||
| 272 | |||
| 256 | (test-end "boot-parameters") | 273 | (test-end "boot-parameters") |
