diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2018-03-07 10:41:06 +0100 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2018-03-07 11:22:42 +0100 |
| commit | ca23693d280de5c4031058da4d3041d830080484 (patch) | |
| tree | ccd3a61edd11e3634895f5f2e792b306b71e586b /gnu/system/linux-initrd.scm | |
| parent | 6c4458172d12dbda969c2eae5b3b6be19a068780 (diff) | |
linux-initrd: Factorize 'check-device-initrd-modules'.
* gnu/system/mapped-devices.scm (check-device-initrd-modules): Move to...
* gnu/system/linux-initrd.scm (check-device-initrd-modules): ... here.
New procedure.
* po/guix/POTFILES.in: Add it.
* guix/scripts/system.scm (check-initrd-modules)[check-device]: Remove.
Use 'check-device-initrd-modules' instead.
Diffstat (limited to 'gnu/system/linux-initrd.scm')
| -rw-r--r-- | gnu/system/linux-initrd.scm | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index e0cb59c0098..d75caed83e5 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | #:use-module (guix store) | 24 | #:use-module (guix store) |
| 25 | #:use-module (guix gexp) | 25 | #:use-module (guix gexp) |
| 26 | #:use-module (guix utils) | 26 | #:use-module (guix utils) |
| 27 | #:use-module (guix i18n) | ||
| 27 | #:use-module ((guix store) | 28 | #:use-module ((guix store) |
| 28 | #:select (%store-prefix)) | 29 | #:select (%store-prefix)) |
| 29 | #:use-module ((guix derivations) | 30 | #:use-module ((guix derivations) |
| @@ -37,16 +38,22 @@ | |||
| 37 | #:select (%guile-static-stripped)) | 38 | #:select (%guile-static-stripped)) |
| 38 | #:use-module (gnu system file-systems) | 39 | #:use-module (gnu system file-systems) |
| 39 | #:use-module (gnu system mapped-devices) | 40 | #:use-module (gnu system mapped-devices) |
| 41 | #:autoload (gnu build linux-modules) | ||
| 42 | (device-module-aliases matching-modules) | ||
| 40 | #:use-module (ice-9 match) | 43 | #:use-module (ice-9 match) |
| 41 | #:use-module (ice-9 regex) | 44 | #:use-module (ice-9 regex) |
| 42 | #:use-module (ice-9 vlist) | 45 | #:use-module (ice-9 vlist) |
| 46 | #:use-module (ice-9 format) | ||
| 43 | #:use-module (srfi srfi-1) | 47 | #:use-module (srfi srfi-1) |
| 44 | #:use-module (srfi srfi-26) | 48 | #:use-module (srfi srfi-26) |
| 49 | #:use-module (srfi srfi-34) | ||
| 50 | #:use-module (srfi srfi-35) | ||
| 45 | #:export (expression->initrd | 51 | #:export (expression->initrd |
| 46 | %base-initrd-modules | 52 | %base-initrd-modules |
| 47 | raw-initrd | 53 | raw-initrd |
| 48 | file-system-packages | 54 | file-system-packages |
| 49 | base-initrd)) | 55 | base-initrd |
| 56 | check-device-initrd-modules)) | ||
| 50 | 57 | ||
| 51 | 58 | ||
| 52 | ;;; Commentary: | 59 | ;;; Commentary: |
| @@ -343,4 +350,19 @@ loaded at boot time in the order in which they appear." | |||
| 343 | #:volatile-root? volatile-root? | 350 | #:volatile-root? volatile-root? |
| 344 | #:on-error on-error)) | 351 | #:on-error on-error)) |
| 345 | 352 | ||
| 353 | (define (check-device-initrd-modules device linux-modules location) | ||
| 354 | "Raise an error if DEVICE needs modules beyond LINUX-MODULES to operate. | ||
| 355 | DEVICE must be a \"/dev\" file name." | ||
| 356 | (let ((modules (delete-duplicates | ||
| 357 | (append-map matching-modules | ||
| 358 | (device-module-aliases device))))) | ||
| 359 | (unless (every (cute member <> linux-modules) modules) | ||
| 360 | (raise (condition | ||
| 361 | (&message | ||
| 362 | (message (format #f (G_ "you may need these modules \ | ||
| 363 | in the initrd for ~a:~{ ~a~}") | ||
| 364 | device modules))) | ||
| 365 | (&error-location | ||
| 366 | (location (source-properties->location location)))))))) | ||
| 367 | |||
| 346 | ;;; linux-initrd.scm ends here | 368 | ;;; linux-initrd.scm ends here |
