summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Marusich <cmmarusich@gmail.com>2018-03-15 05:09:12 +0100
committerChris Marusich <cmmarusich@gmail.com>2018-03-24 03:04:10 +0100
commit8c9bf2946a1cb58c5b7b941db3a37830ece80708 (patch)
tree8b735f4a40acdd5e08cdf8afec2b369ed28be4a7
parentaf81311b8c7712db207927c8e7b8ed66602be5c7 (diff)
downloadguix-8c9bf2946a1cb58c5b7b941db3a37830ece80708.tar.gz
gnu: When building in a VM, share a temporary directory.
* gnu/build/vm.scm (load-in-linux-vm): Make a shared temporary directory
  available in the VM.
* gnu/system/vm.scm (%linux-vm-file-systems): Add a corresponding entry.
-rw-r--r--gnu/build/vm.scm7
-rw-r--r--gnu/system/vm.scm12
2 files changed, 17 insertions, 2 deletions
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 4268ad1111..527b4c495d 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -126,6 +126,7 @@ the #:references-graphs parameter of 'derivation'."
              (number->string disk-image-size)))
 
   (mkdir "xchg")
+  (mkdir "tmp")
 
   (match references-graphs
     ((graph-files ...)
@@ -146,6 +147,12 @@ the #:references-graphs parameter of 'derivation'."
          "-virtfs"
          (string-append "local,id=xchg_dev,path=xchg"
                         ",security_model=none,mount_tag=xchg")
+         "-virtfs"
+         ;; Some programs require more space in /tmp than is normally
+         ;; available in the guest.  Accommodate such programs by sharing a
+         ;; temporary directory.
+         (string-append "local,id=tmp_dev,path=tmp"
+                        ",security_model=none,mount_tag=tmp")
          "-kernel" linux
          "-initrd" initrd
          (append
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 594ba66ff4..9d9eafc094 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -87,8 +88,8 @@
 ;;; Code:
 
 (define %linux-vm-file-systems
-  ;; File systems mounted for 'derivation-in-linux-vm'.  The store and /xchg
-  ;; directory are shared with the host over 9p.
+  ;; File systems mounted for 'derivation-in-linux-vm'.  These are shared with
+  ;; the host over 9p.
   (list (file-system
           (mount-point (%store-prefix))
           (device "store")
@@ -102,6 +103,13 @@
           (type "9p")
           (needed-for-boot? #t)
           (options "trans=virtio")
+          (check? #f))
+        (file-system
+          (mount-point "/tmp")
+          (device "tmp")
+          (type "9p")
+          (needed-for-boot? #t)
+          (options "trans=virtio")
           (check? #f))))
 
 (define* (expression->derivation-in-linux-vm name exp