~ruther/guix-local

239c6e276214813f59f761c9dc5cc0e9d266b49b — Ludovic Courtès 9 years ago 7ca8735
system: Use 'source-module-closure' where needed.

* gnu/system/vm.scm (%vm-module-closure): Remove.
(expression->derivation-in-linux-vm): Use 'source-module-closure'
instead of %VM-MODULE-CLOSURE.
(qemu-image): Likewise.
* gnu/system/linux-initrd.scm (expression->initrd): Likewise.
(flat-linux-module-directory, base-initrd): Likewise.
* gnu/system/mapped-devices.scm (open-luks-device): Likewise.
3 files changed, 19 insertions(+), 33 deletions(-)

M gnu/system/linux-initrd.scm
M gnu/system/mapped-devices.scm
M gnu/system/vm.scm
M gnu/system/linux-initrd.scm => gnu/system/linux-initrd.scm +11 -14
@@ 27,6 27,7 @@
                #:select (%store-prefix))
  #:use-module ((guix derivations)
                #:select (derivation->output-path))
  #:use-module (guix modules)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages guile)


@@ 66,10 67,8 @@ the derivations referenced by EXP are automatically copied to the initrd."
  (mlet %store-monad ((init (gexp->script "init" exp
                                          #:guile guile)))
    (define builder
      (with-imported-modules '((guix cpio)
                               (guix build utils)
                               (guix build store-copy)
                               (gnu build linux-initrd))
      (with-imported-modules (source-module-closure
                              '((gnu build linux-initrd)))
        #~(begin
            (use-modules (gnu build linux-initrd))



@@ 88,9 87,9 @@ the derivations referenced by EXP are automatically copied to the initrd."
  "Return a flat directory containing the Linux kernel modules listed in
MODULES and taken from LINUX."
  (define build-exp
    (with-imported-modules '((guix build utils)
                             (guix elf)
                             (gnu build linux-modules))
    (with-imported-modules (source-module-closure
                            '((guix build utils)
                              (gnu build linux-modules)))
      #~(begin
          (use-modules (ice-9 match) (ice-9 regex)
                       (srfi srfi-1)


@@ 223,13 222,11 @@ loaded at boot time in the order in which they appear."
  (mlet %store-monad ((kodir (flat-linux-module-directory linux
                                                          linux-modules)))
    (expression->initrd
     (with-imported-modules '((guix build bournish)
                              (guix build utils)
                              (guix build syscalls)
                              (gnu build linux-boot)
                              (gnu build linux-modules)
                              (gnu build file-systems)
                              (guix elf))
     (with-imported-modules (source-module-closure
                             '((gnu build linux-boot)
                               (guix build utils)
                               (guix build bournish)
                               (gnu build file-systems)))
       #~(begin
           (use-modules (gnu build linux-boot)
                        (guix build utils)

M gnu/system/mapped-devices.scm => gnu/system/mapped-devices.scm +3 -2
@@ 20,6 20,7 @@
(define-module (gnu system mapped-devices)
  #:use-module (guix gexp)
  #:use-module (guix records)
  #:use-module (guix modules)
  #:use-module (gnu services)
  #:use-module (gnu services shepherd)
  #:autoload   (gnu packages cryptsetup) (cryptsetup)


@@ 95,8 96,8 @@
(define (open-luks-device source target)
  "Return a gexp that maps SOURCE to TARGET as a LUKS device, using
'cryptsetup'."
  (with-imported-modules '((gnu build file-systems)
                           (guix build bournish))
  (with-imported-modules (source-module-closure
                          '((gnu build file-systems)))
    #~(let ((source #$source))
        ;; XXX: 'use-modules' should be at the top level.
        (use-modules (rnrs bytevectors)           ;bytevector?

M gnu/system/vm.scm => gnu/system/vm.scm +5 -17
@@ 26,6 26,7 @@
  #:use-module (guix packages)
  #:use-module (guix monads)
  #:use-module (guix records)
  #:use-module (guix modules)

  #:use-module ((gnu build vm)
                #:select (qemu-command))


@@ 90,21 91,6 @@
          (options "trans=virtio")
          (check? #f))))

(define %vm-module-closure
  ;; The closure of (gnu build vm), roughly.
  ;; FIXME: Compute it automatically.
  '((gnu build vm)
    (gnu build install)
    (gnu build linux-boot)
    (gnu build linux-modules)
    (gnu build file-systems)
    (guix elf)
    (guix records)
    (guix build utils)
    (guix build syscalls)
    (guix build bournish)
    (guix build store-copy)))

(define* (expression->derivation-in-linux-vm name exp
                                             #:key
                                             (system (%current-system))


@@ 148,7 134,8 @@ made available under the /xchg CIFS share."

    (define builder
      ;; Code that launches the VM that evaluates EXP.
      (with-imported-modules %vm-module-closure
      (with-imported-modules (source-module-closure '((guix build utils)
                                                      (gnu build vm)))
        #~(begin
            (use-modules (guix build utils)
                         (gnu build vm))


@@ 205,7 192,8 @@ register INPUTS in the store database of the image so that Guix can be used in
the image."
  (expression->derivation-in-linux-vm
   name
   (with-imported-modules %vm-module-closure
   (with-imported-modules (source-module-closure '((gnu build vm)
                                                   (guix build utils)))
     #~(begin
         (use-modules (gnu build vm)
                      (guix build utils))