mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-12 14:16:55 -05:00
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
This commit is contained in:
parent
b30b838d50
commit
6062339156
2 changed files with 12 additions and 3 deletions
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; 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 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
|
@ -259,6 +259,11 @@ (define kodir
|
||||||
#:select (find-partition-by-luks-uuid))
|
#:select (find-partition-by-luks-uuid))
|
||||||
(rnrs bytevectors))
|
(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")
|
(with-output-to-port (%make-void-port "w")
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(set-path-environment-variable "PATH" '("bin" "sbin")
|
(set-path-environment-variable "PATH" '("bin" "sbin")
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; 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 © 2016 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
|
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
|
||||||
|
@ -57,6 +57,7 @@ (define-module (gnu system mapped-devices)
|
||||||
mapped-device-kind?
|
mapped-device-kind?
|
||||||
mapped-device-kind-open
|
mapped-device-kind-open
|
||||||
mapped-device-kind-close
|
mapped-device-kind-close
|
||||||
|
mapped-device-kind-modules
|
||||||
mapped-device-kind-check
|
mapped-device-kind-check
|
||||||
|
|
||||||
device-mapping-service-type
|
device-mapping-service-type
|
||||||
|
@ -112,6 +113,8 @@ (define-record-type* <mapped-device-type> mapped-device-kind
|
||||||
(open mapped-device-kind-open) ;source target -> gexp
|
(open mapped-device-kind-open) ;source target -> gexp
|
||||||
(close mapped-device-kind-close ;source target -> gexp
|
(close mapped-device-kind-close ;source target -> gexp
|
||||||
(default (const #~(const #f))))
|
(default (const #~(const #f))))
|
||||||
|
(modules mapped-device-kind-modules ;list of module names
|
||||||
|
(default '()))
|
||||||
(check mapped-device-kind-check ;source -> Boolean
|
(check mapped-device-kind-check ;source -> Boolean
|
||||||
(default (const #t))))
|
(default (const #t))))
|
||||||
|
|
||||||
|
@ -125,13 +128,14 @@ (define device-mapping-service-type
|
||||||
'device-mapping
|
'device-mapping
|
||||||
(match-lambda
|
(match-lambda
|
||||||
(($ <mapped-device> source targets
|
(($ <mapped-device> source targets
|
||||||
($ <mapped-device-type> open close))
|
($ <mapped-device-type> open close modules))
|
||||||
(shepherd-service
|
(shepherd-service
|
||||||
(provision (list (symbol-append 'device-mapping- (string->symbol (string-join targets "-")))))
|
(provision (list (symbol-append 'device-mapping- (string->symbol (string-join targets "-")))))
|
||||||
(requirement '(udev))
|
(requirement '(udev))
|
||||||
(documentation "Map a device node using Linux's device mapper.")
|
(documentation "Map a device node using Linux's device mapper.")
|
||||||
(start #~(lambda () #$(open source targets)))
|
(start #~(lambda () #$(open source targets)))
|
||||||
(stop #~(lambda _ (not #$(close source targets))))
|
(stop #~(lambda _ (not #$(close source targets))))
|
||||||
|
(modules (append %default-modules modules))
|
||||||
(respawn? #f))))
|
(respawn? #f))))
|
||||||
(description "Map a device node using Linux's device mapper.")))
|
(description "Map a device node using Linux's device mapper.")))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue