Subject: [PATCH v2 2/3] system: vm: Do not register-closures when cross-building to the Hurd.

From: "Jan (janneke) Nieuwenhuizen" <[email-masked]>
Date: Tue, 19 May 2020 09:23:01 +0200

This supports cross-building building a vm-image for the Hurd, running a
native qemu.

* gnu/system/vm.scm (qemu-image)[register-closures?]: Default to #f when
cross-compiling to the Hurd.  Only create sql-schema when actually registering
closures.
---
 gnu/build/vm.scm  | 2 +-
 gnu/system/vm.scm | 9 ++++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index c751e6b0e2..2b36dd29ce 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -27,7 +27,7 @@
   #:use-module (guix build store-copy)
   #:use-module (guix build syscalls)
   #:use-module ((guix utils) #:select (reset-timestamps))
-  #:use-module (guix store database)
+  #:autoload (guix store database) (%epoch register-items sql-schema)
   #:use-module (gnu build bootloader)
   #:use-module (gnu build linux-boot)
   #:use-module (gnu build install)
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 3e483fd86c..b343141c18 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -51,6 +51,7 @@
   #:use-module (gnu packages zile)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages hurd)
 
   #:use-module (gnu bootloader)
   #:use-module (gnu bootloader grub)
@@ -286,7 +287,8 @@ substitutable."
                      os
                      bootcfg-drv
                      bootloader
-                     (register-closures? (has-guix-service-type? os))
+                     (register-closures? (and (has-guix-service-type? os)
+                                              (not (hurd-target?))))
                      (inputs '())
                      copy-inputs?
                      (substitutable? #t))
@@ -333,12 +335,13 @@ system that is passed to 'populate-root-file-system'."
                         ((gnu build linux-boot)
                          #:select (make-essential-device-nodes
                                    make-hurd-device-nodes))
-                        (guix store database)
                         (guix build utils)
                         (srfi srfi-26)
                         (ice-9 binary-ports))
 
-           (sql-schema #$schema)
+           (when #$register-closures?
+             (use-modules (guix store database))
+             (sql-schema #$schema))
 
            ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded.
            (setenv "GUIX_LOCPATH"
-- 
2.26.2