diff options
author | Ludovic Courtès <ludo@gnu.org> | 2024-04-08 00:13:25 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-04-08 00:13:25 +0200 |
commit | 6062339156ecc42cac59af0d34e22fcc7da3aa4a (patch) | |
tree | a1642b7b52995e184ca30ef0cf7aa0b852a79b7e /gnu | |
parent | b30b838d5055e36be19d030db28838fec4474d98 (diff) | |
download | guix-6062339156ecc42cac59af0d34e22fcc7da3aa4a.tar.gz guix-6062339156ecc42cac59af0d34e22fcc7da3aa4a.zip |
mapped-devices: <mapped-device-type> can specify modules to import.
* gnu/system/mapped-devices.scm (<mapped-device-type>)[modules]: New
field.
(device-mapping-service-type): Honor it.
* gnu/system/linux-initrd.scm (raw-initrd): Likewise.
Change-Id: Icc702cb6f281741975e33203f87fbc1ffa9856da
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/system/linux-initrd.scm | 7 | ||||
-rw-r--r-- | gnu/system/mapped-devices.scm | 8 |
2 files changed, 12 insertions, 3 deletions
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index f5d86219a8..7868ff5723 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013-2020, 2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com> @@ -259,6 +259,11 @@ upon error." #:select (find-partition-by-luks-uuid)) (rnrs bytevectors)) + ;; Load extra modules needed by the mapped device code. + #$@(append-map (compose mapped-device-kind-modules + mapped-device-type) + mapped-devices)) + (with-output-to-port (%make-void-port "w") (lambda () (set-path-environment-variable "PATH" '("bin" "sbin") diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index c19a818453..4e135772a9 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014-2022, 2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz> @@ -57,6 +57,7 @@ mapped-device-kind? mapped-device-kind-open mapped-device-kind-close + mapped-device-kind-modules mapped-device-kind-check device-mapping-service-type @@ -112,6 +113,8 @@ specifications to 'targets'." (open mapped-device-kind-open) ;source target -> gexp (close mapped-device-kind-close ;source target -> gexp (default (const #~(const #f)))) + (modules mapped-device-kind-modules ;list of module names + (default '())) (check mapped-device-kind-check ;source -> Boolean (default (const #t)))) @@ -125,13 +128,14 @@ specifications to 'targets'." 'device-mapping (match-lambda (($ <mapped-device> source targets - ($ <mapped-device-type> open close)) + ($ <mapped-device-type> open close modules)) (shepherd-service (provision (list (symbol-append 'device-mapping- (string->symbol (string-join targets "-"))))) (requirement '(udev)) (documentation "Map a device node using Linux's device mapper.") (start #~(lambda () #$(open source targets))) (stop #~(lambda _ (not #$(close source targets)))) + (modules (append %default-modules modules)) (respawn? #f)))) (description "Map a device node using Linux's device mapper."))) |