linux-initrd: Module check correctly handles hyphen vs. underscore.
Fixes <https://bugs.gnu.org/31714>. Reported by Vagrant Cascadian <vagrant@debian.org> and Florian Pelz <pelzflorian@pelzflorian.de>. * gnu/system/mapped-devices.scm (check-device-initrd-modules): Pass LINUX-MODULES through 'normalize-module-name'. * gnu/build/linux-modules.scm (normalize-module-name): Export.
This commit is contained in:
parent
a9a685cc00
commit
411959bef3
|
@ -32,6 +32,7 @@
|
||||||
ensure-dot-ko
|
ensure-dot-ko
|
||||||
module-aliases
|
module-aliases
|
||||||
module-dependencies
|
module-dependencies
|
||||||
|
normalize-module-name
|
||||||
recursive-module-dependencies
|
recursive-module-dependencies
|
||||||
modules-loaded
|
modules-loaded
|
||||||
module-loaded?
|
module-loaded?
|
||||||
|
|
|
@ -32,7 +32,8 @@
|
||||||
#:use-module (gnu system uuid)
|
#:use-module (gnu system uuid)
|
||||||
#:autoload (gnu build file-systems) (find-partition-by-luks-uuid)
|
#:autoload (gnu build file-systems) (find-partition-by-luks-uuid)
|
||||||
#:autoload (gnu build linux-modules)
|
#:autoload (gnu build linux-modules)
|
||||||
(device-module-aliases matching-modules known-module-aliases)
|
(device-module-aliases matching-modules known-module-aliases
|
||||||
|
normalize-module-name)
|
||||||
#:autoload (gnu packages cryptsetup) (cryptsetup-static)
|
#:autoload (gnu packages cryptsetup) (cryptsetup-static)
|
||||||
#:autoload (gnu packages linux) (mdadm-static)
|
#:autoload (gnu packages linux) (mdadm-static)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
|
@ -127,10 +128,15 @@ DEVICE must be a \"/dev\" file name."
|
||||||
(const #f)))
|
(const #f)))
|
||||||
|
|
||||||
(when aliases
|
(when aliases
|
||||||
(let ((modules (delete-duplicates
|
(let ((modules (delete-duplicates
|
||||||
(append-map (cut matching-modules <> aliases)
|
(append-map (cut matching-modules <> aliases)
|
||||||
(device-module-aliases device)))))
|
(device-module-aliases device))))
|
||||||
(unless (every (cute member <> linux-modules) modules)
|
|
||||||
|
;; Module names (not file names) are supposed to use underscores
|
||||||
|
;; instead of hyphens. MODULES is a list of module names, whereas
|
||||||
|
;; LINUX-MODULES is file names without '.ko', so normalize them.
|
||||||
|
(provided (map normalize-module-name linux-modules)))
|
||||||
|
(unless (every (cut member <> provided) modules)
|
||||||
(raise (condition
|
(raise (condition
|
||||||
(&message
|
(&message
|
||||||
(message (format #f (G_ "you may need these modules \
|
(message (format #f (G_ "you may need these modules \
|
||||||
|
|
Loading…
Reference in New Issue