Browse Source

system: Add (gnu system mapped-devices).

* gnu/system/file-systems.scm (<mapped-device>, <mapped-device-type>):
Move to...
* gnu/system/mapped-devices.scm: ... here.  New file.
* gnu/system.scm, gnu/services/base.scm,
gnu/system/linux-initrd.scm: Use it.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* gnu.scm (%public-modules): Add it.
gn-latest-20200428
Ludovic Courtès 4 years ago
parent
commit
060d62a740
7 changed files with 59 additions and 32 deletions
  1. +1
    -0
      gnu-system.am
  2. +2
    -1
      gnu.scm
  3. +1
    -0
      gnu/services/base.scm
  4. +1
    -0
      gnu/system.scm
  5. +0
    -31
      gnu/system/file-systems.scm
  6. +1
    -0
      gnu/system/linux-initrd.scm
  7. +53
    -0
      gnu/system/mapped-devices.scm

+ 1
- 0
gnu-system.am View File

@@ -383,6 +383,7 @@ GNU_SYSTEM_MODULES = \
gnu/system/linux-container.scm \
gnu/system/linux-initrd.scm \
gnu/system/locale.scm \
gnu/system/mapped-devices.scm \
gnu/system/nss.scm \
gnu/system/pam.scm \
gnu/system/shadow.scm \


+ 2
- 1
gnu.scm View File

@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Joshua S. Grant <jgrant@parenthetical.io>
;;;
;;; This file is part of GNU Guix.
@@ -32,6 +32,7 @@
(begin
(define %public-modules
'((gnu system)
(gnu system mapped-devices)
(gnu system file-systems)
(gnu system grub) ; 'grub-configuration'
(gnu system pam)


+ 1
- 0
gnu/services/base.scm View File

@@ -27,6 +27,7 @@
#:use-module (gnu system pam)
#:use-module (gnu system shadow) ; 'user-account', etc.
#:use-module (gnu system file-systems) ; 'file-system', etc.
#:use-module (gnu system mapped-devices)
#:use-module (gnu packages admin)
#:use-module ((gnu packages linux)
#:select (eudev kbd e2fsprogs lvm2 fuse alsa-utils crda gpm))


+ 1
- 0
gnu/system.scm View File

@@ -54,6 +54,7 @@
#:use-module (gnu system pam)
#:use-module (gnu system linux-initrd)
#:use-module (gnu system file-systems)
#:use-module (gnu system mapped-devices)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)


+ 0
- 31
gnu/system/file-systems.scm View File

@@ -54,17 +54,6 @@
%base-file-systems
%container-file-systems

mapped-device
mapped-device?
mapped-device-source
mapped-device-target
mapped-device-type

mapped-device-kind
mapped-device-kind?
mapped-device-kind-open
mapped-device-kind-close

<file-system-mapping>
file-system-mapping
file-system-mapping?
@@ -293,26 +282,6 @@ initrd code."
(create-mount-point? #t)
(check? #f))))


;;;
;;; Mapped devices, for Linux's device-mapper.
;;;

(define-record-type* <mapped-device> mapped-device
make-mapped-device
mapped-device?
(source mapped-device-source) ;string
(target mapped-device-target) ;string
(type mapped-device-type)) ;<mapped-device-kind>

(define-record-type* <mapped-device-type> mapped-device-kind
make-mapped-device-kind
mapped-device-kind?
(open mapped-device-kind-open) ;source target -> gexp
(close mapped-device-kind-close ;source target -> gexp
(default (const #~(const #f)))))

;;;
;;; Shared file systems, for VMs/containers.


+ 1
- 0
gnu/system/linux-initrd.scm View File

@@ -32,6 +32,7 @@
#:use-module ((gnu packages make-bootstrap)
#:select (%guile-static-stripped))
#:use-module (gnu system file-systems)
#:use-module (gnu system mapped-devices)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (srfi srfi-1)


+ 53
- 0
gnu/system/mapped-devices.scm View File

@@ -0,0 +1,53 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu system mapped-devices)
#:use-module (guix records)
#:export (mapped-device
mapped-device?
mapped-device-source
mapped-device-target
mapped-device-type

mapped-device-kind
mapped-device-kind?
mapped-device-kind-open
mapped-device-kind-close))

;;; Commentary:
;;;
;;; This module supports "device mapping", a concept implemented by Linux's
;;; device-mapper.
;;;
;;; Code:

(define-record-type* <mapped-device> mapped-device
make-mapped-device
mapped-device?
(source mapped-device-source) ;string
(target mapped-device-target) ;string
(type mapped-device-type)) ;<mapped-device-kind>

(define-record-type* <mapped-device-type> mapped-device-kind
make-mapped-device-kind
mapped-device-kind?
(open mapped-device-kind-open) ;source target -> gexp
(close mapped-device-kind-close ;source target -> gexp
(default (const #~(const #f)))))

;;; mapped-devices.scm ends here

Loading…
Cancel
Save