linux-initrd: Move 'check-device-initrd-modules' elsewhere.
This mostly reverts ca23693d28
, which
introduced a circular dependency between (gnu system linux-initrd)
and (gnu system mapped-devices).
Reported by Eric Bavier.
* gnu/system/linux-initrd.scm (check-device-initrd-modules): Move to...
* gnu/system/mapped-devices.scm (check-device-initrd-modules): ... here.
* po/guix/POTFILES.in: Adjust accordingly.
This commit is contained in:
parent
d661ed521e
commit
8ab10c19d7
@ -24,7 +24,6 @@
|
|||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix i18n)
|
|
||||||
#:use-module ((guix store)
|
#:use-module ((guix store)
|
||||||
#:select (%store-prefix))
|
#:select (%store-prefix))
|
||||||
#:use-module ((guix derivations)
|
#:use-module ((guix derivations)
|
||||||
@ -38,22 +37,16 @@
|
|||||||
#:select (%guile-static-stripped))
|
#:select (%guile-static-stripped))
|
||||||
#:use-module (gnu system file-systems)
|
#:use-module (gnu system file-systems)
|
||||||
#:use-module (gnu system mapped-devices)
|
#:use-module (gnu system mapped-devices)
|
||||||
#:autoload (gnu build linux-modules)
|
|
||||||
(device-module-aliases matching-modules known-module-aliases)
|
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 regex)
|
#:use-module (ice-9 regex)
|
||||||
#:use-module (ice-9 vlist)
|
#:use-module (ice-9 vlist)
|
||||||
#:use-module (ice-9 format)
|
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (srfi srfi-34)
|
|
||||||
#:use-module (srfi srfi-35)
|
|
||||||
#:export (expression->initrd
|
#:export (expression->initrd
|
||||||
%base-initrd-modules
|
%base-initrd-modules
|
||||||
raw-initrd
|
raw-initrd
|
||||||
file-system-packages
|
file-system-packages
|
||||||
base-initrd
|
base-initrd))
|
||||||
check-device-initrd-modules))
|
|
||||||
|
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
@ -350,41 +343,4 @@ loaded at boot time in the order in which they appear."
|
|||||||
#:volatile-root? volatile-root?
|
#:volatile-root? volatile-root?
|
||||||
#:on-error on-error))
|
#:on-error on-error))
|
||||||
|
|
||||||
(define (check-device-initrd-modules device linux-modules location)
|
|
||||||
"Raise an error if DEVICE needs modules beyond LINUX-MODULES to operate.
|
|
||||||
DEVICE must be a \"/dev\" file name."
|
|
||||||
(define aliases
|
|
||||||
;; Attempt to load 'modules.alias' from the current kernel, assuming we're
|
|
||||||
;; on GuixSD, and assuming that corresponds to the kernel we'll be
|
|
||||||
;; installing. Skip the whole thing if that file cannot be read.
|
|
||||||
(catch 'system-error
|
|
||||||
(lambda ()
|
|
||||||
(known-module-aliases))
|
|
||||||
(const #f)))
|
|
||||||
|
|
||||||
(when aliases
|
|
||||||
(let ((modules (delete-duplicates
|
|
||||||
(append-map (cut matching-modules <> aliases)
|
|
||||||
(device-module-aliases device)))))
|
|
||||||
(unless (every (cute member <> linux-modules) modules)
|
|
||||||
(raise (condition
|
|
||||||
(&message
|
|
||||||
(message (format #f (G_ "you may need these modules \
|
|
||||||
in the initrd for ~a:~{ ~a~}")
|
|
||||||
device modules)))
|
|
||||||
(&fix-hint
|
|
||||||
(hint (format #f (G_ "Try adding them to the
|
|
||||||
@code{initrd-modules} field of your @code{operating-system} declaration, along
|
|
||||||
these lines:
|
|
||||||
|
|
||||||
@example
|
|
||||||
(operating-system
|
|
||||||
;; @dots{}
|
|
||||||
(initrd-modules (append (list~{ ~s~})
|
|
||||||
%base-initrd-modules)))
|
|
||||||
@end example\n")
|
|
||||||
modules)))
|
|
||||||
(&error-location
|
|
||||||
(location (source-properties->location location)))))))))
|
|
||||||
|
|
||||||
;;; linux-initrd.scm ends here
|
;;; linux-initrd.scm ends here
|
||||||
|
@ -25,13 +25,14 @@
|
|||||||
#:use-module (guix i18n)
|
#:use-module (guix i18n)
|
||||||
#:use-module ((guix utils)
|
#:use-module ((guix utils)
|
||||||
#:select (source-properties->location
|
#:select (source-properties->location
|
||||||
|
&fix-hint
|
||||||
&error-location))
|
&error-location))
|
||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
#:use-module (gnu services shepherd)
|
#:use-module (gnu services shepherd)
|
||||||
#:use-module (gnu system uuid)
|
#:use-module (gnu system uuid)
|
||||||
#:use-module ((gnu system linux-initrd)
|
|
||||||
#:select (check-device-initrd-modules))
|
|
||||||
#: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)
|
||||||
|
(device-module-aliases matching-modules)
|
||||||
#: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)
|
||||||
@ -55,6 +56,8 @@
|
|||||||
device-mapping-service-type
|
device-mapping-service-type
|
||||||
device-mapping-service
|
device-mapping-service
|
||||||
|
|
||||||
|
check-device-initrd-modules ;XXX: needs a better place
|
||||||
|
|
||||||
luks-device-mapping
|
luks-device-mapping
|
||||||
raid-device-mapping))
|
raid-device-mapping))
|
||||||
|
|
||||||
@ -106,6 +109,48 @@
|
|||||||
"Return a service that sets up @var{mapped-device}."
|
"Return a service that sets up @var{mapped-device}."
|
||||||
(service device-mapping-service-type mapped-device))
|
(service device-mapping-service-type mapped-device))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Static checks.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define (check-device-initrd-modules device linux-modules location)
|
||||||
|
"Raise an error if DEVICE needs modules beyond LINUX-MODULES to operate.
|
||||||
|
DEVICE must be a \"/dev\" file name."
|
||||||
|
(define aliases
|
||||||
|
;; Attempt to load 'modules.alias' from the current kernel, assuming we're
|
||||||
|
;; on GuixSD, and assuming that corresponds to the kernel we'll be
|
||||||
|
;; installing. Skip the whole thing if that file cannot be read.
|
||||||
|
(catch 'system-error
|
||||||
|
(lambda ()
|
||||||
|
(known-module-aliases))
|
||||||
|
(const #f)))
|
||||||
|
|
||||||
|
(when aliases
|
||||||
|
(let ((modules (delete-duplicates
|
||||||
|
(append-map (cut matching-modules <> aliases)
|
||||||
|
(device-module-aliases device)))))
|
||||||
|
(unless (every (cute member <> linux-modules) modules)
|
||||||
|
(raise (condition
|
||||||
|
(&message
|
||||||
|
(message (format #f (G_ "you may need these modules \
|
||||||
|
in the initrd for ~a:~{ ~a~}")
|
||||||
|
device modules)))
|
||||||
|
(&fix-hint
|
||||||
|
(hint (format #f (G_ "Try adding them to the
|
||||||
|
@code{initrd-modules} field of your @code{operating-system} declaration, along
|
||||||
|
these lines:
|
||||||
|
|
||||||
|
@example
|
||||||
|
(operating-system
|
||||||
|
;; @dots{}
|
||||||
|
(initrd-modules (append (list~{ ~s~})
|
||||||
|
%base-initrd-modules)))
|
||||||
|
@end example\n")
|
||||||
|
modules)))
|
||||||
|
(&error-location
|
||||||
|
(location (source-properties->location location)))))))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Common device mappings.
|
;;; Common device mappings.
|
||||||
|
@ -5,7 +5,7 @@ gnu/packages.scm
|
|||||||
gnu/services.scm
|
gnu/services.scm
|
||||||
gnu/system.scm
|
gnu/system.scm
|
||||||
gnu/services/shepherd.scm
|
gnu/services/shepherd.scm
|
||||||
gnu/system/linux-initrd.scm
|
gnu/system/mapped-devices.scm
|
||||||
gnu/system/shadow.scm
|
gnu/system/shadow.scm
|
||||||
guix/scripts.scm
|
guix/scripts.scm
|
||||||
guix/scripts/build.scm
|
guix/scripts/build.scm
|
||||||
|
Loading…
Reference in New Issue
Block a user