summaryrefslogtreecommitdiff
path: root/gnu/system/linux-initrd.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-03-07 10:41:06 +0100
committerLudovic Courtès <ludo@gnu.org>2018-03-07 11:22:42 +0100
commitca23693d280de5c4031058da4d3041d830080484 (patch)
treeccd3a61edd11e3634895f5f2e792b306b71e586b /gnu/system/linux-initrd.scm
parent6c4458172d12dbda969c2eae5b3b6be19a068780 (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.scm24
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.
355DEVICE 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 \
363in 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