aboutsummaryrefslogtreecommitdiff
path: root/gnu/system/mapped-devices.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/system/mapped-devices.scm')
-rw-r--r--gnu/system/mapped-devices.scm19
1 files changed, 10 insertions, 9 deletions
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index c19a818453..e56ead9e5e 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.")))
@@ -202,12 +206,6 @@ option of @command{guix system}.\n")
(uuid-bytevector source)
source))
(keyfile #$key-file))
- ;; XXX: 'use-modules' should be at the top level.
- (use-modules (rnrs bytevectors) ;bytevector?
- ((gnu build file-systems)
- #:select (find-partition-by-luks-uuid
- system*/tty))
- ((guix build utils) #:select (mkdir-p)))
;; Create '/run/cryptsetup/' if it does not exist, as device locking
;; is mandatory for LUKS2.
@@ -283,7 +281,10 @@ option of @command{guix system}.\n")
(mapped-device-kind
(open open-luks-device)
(close close-luks-device)
- (check check-luks-device)))
+ (check check-luks-device)
+ (modules '((rnrs bytevectors) ;bytevector?
+ ((gnu build file-systems)
+ #:select (find-partition-by-luks-uuid system*/tty))))))
(define* (luks-device-mapping-with-options #:key key-file)
"Return a luks-device-mapping object with open modified to pass the arguments