~ruther/guix-local

9110c2e9421b4f93b04411f72fcea90ae8511f3c — David Thompson 10 years ago df3ce5c
gnu: system: Move <file-system-mapping> into (gnu system file-systems).

* gnu/system/vm.scm (<file-system-mapping>, %store-mapping): Move from here...
* gnu/system/file-systems.scm: ...to here.
* guix/scripts/system.scm: Import (gnu system file-systems).
3 files changed, 32 insertions(+), 23 deletions(-)

M gnu/system/file-systems.scm
M gnu/system/vm.scm
M guix/scripts/system.scm
M gnu/system/file-systems.scm => gnu/system/file-systems.scm +31 -1
@@ 52,7 52,16 @@
            mapped-device-kind
            mapped-device-kind?
            mapped-device-kind-open
            mapped-device-kind-close))
            mapped-device-kind-close

            <file-system-mapping>
            file-system-mapping
            file-system-mapping?
            file-system-mapping-source
            file-system-mapping-target
            file-system-mapping-writable?

            %store-mapping))

;;; Commentary:
;;;


@@ 199,4 208,25 @@ file system."
  (close     mapped-device-kind-close             ;source target -> gexp
             (default (const #~(const #f)))))

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

;; Mapping of host file system SOURCE to mount point TARGET in the guest.
(define-record-type* <file-system-mapping> file-system-mapping
  make-file-system-mapping
  file-system-mapping?
  (source    file-system-mapping-source)          ;string
  (target    file-system-mapping-target)          ;string
  (writable? file-system-mapping-writable?        ;Boolean
             (default #f)))

(define %store-mapping
  ;; Mapping of the host's store into the guest.
  (file-system-mapping
   (source (%store-prefix))
   (target (%store-prefix))
   (writable? #f)))

;;; file-systems.scm ends here

M gnu/system/vm.scm => gnu/system/vm.scm +0 -22
@@ 58,12 58,6 @@
            qemu-image
            system-qemu-image

            file-system-mapping
            file-system-mapping?
            file-system-mapping-source
            file-system-mapping-target
            file-system-mapping-writable?

            system-qemu-image/shared-store
            system-qemu-image/shared-store-script
            system-disk-image))


@@ 354,22 348,6 @@ of the GNU system as described by OS."
;;; VMs that share file systems with the host.
;;;

;; Mapping of host file system SOURCE to mount point TARGET in the guest.
(define-record-type* <file-system-mapping> file-system-mapping
  make-file-system-mapping
  file-system-mapping?
  (source    file-system-mapping-source)          ;string
  (target    file-system-mapping-target)          ;string
  (writable? file-system-mapping-writable?        ;Boolean
             (default #f)))

(define %store-mapping
  ;; Mapping of the host's store into the guest.
  (file-system-mapping
   (source (%store-prefix))
   (target (%store-prefix))
   (writable? #f)))

(define (file-system->mount-tag fs)
  "Return a 9p mount tag for host file system FS."
  ;; QEMU mount tags cannot contain slashes and cannot start with '_'.

M guix/scripts/system.scm => guix/scripts/system.scm +1 -0
@@ 30,6 30,7 @@
  #:use-module (guix build utils)
  #:use-module (gnu build install)
  #:use-module (gnu system)
  #:use-module (gnu system file-systems)
  #:use-module (gnu system vm)
  #:use-module (gnu system grub)
  #:use-module (gnu packages grub)