guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: system: image: Define correct docker image arch w


From: guix-commits
Subject: branch master updated: system: image: Define correct docker image arch when cross building
Date: Fri, 04 Nov 2022 03:47:15 -0400

This is an automated email from the git hooks/post-receive script.

mothacehe pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new a75deb8844 system: image: Define correct docker image arch when cross 
building
a75deb8844 is described below

commit a75deb884468db0ce2c35e23a61f1a14c9be958e
Author: Thiago Jung Bauermann <bauermann@kolabnow.com>
AuthorDate: Thu Nov 3 22:54:56 2022 -0300

    system: image: Define correct docker image arch when cross building
    
    Cross-building a docker image with:
    
      $ guix system image --image-type=docker --target=aarch64-linux-gnu os.scm
    
    results in an image where the architecture declared in its config.json is
    the host architecture rather than the target one.  The binaries are
    correctly cross-compiled, so the image can be loaded and used despite the
    warning message shown by docker:
    
      $ docker load -i vcal7bvsqcijchifhqdvprpd1niqh8sk-docker-image.tar.gz
      Loaded image: guix:latest
      $ docker create guix:latest
      WARNING: The requested image's platform (linux/amd64) does not match the
      detected host platform (linux/arm64/v8) and no specific platform was
      requested
      40f06aa869ed690489c4a3824a7f7721bd4bf453b85f25ac7199266939fe2fba
      $ echo $?
      0
    
    This is fixed by passing the correct triplet to the build-docker-image
    function.
    
    * gnu/system/image.scm (system-docker-image) Add ‘image-target’ variable.
    [builder]: Pass ‘#:system’ argument to ‘build-docker-image’.
    
    Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
---
 gnu/system/image.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index 5fc0d55d9a..f07a4a5217 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -652,6 +652,8 @@ output file."
                shared-network?)
               (list boot-program)))
          (substitutable? (image-substitutable? image))
+         (image-target (or (%current-target-system)
+                           (nix-system->gnu-triplet)))
          (register-closures? (has-guix-service-type? os))
          (schema (and register-closures?
                       (local-file (search-path %load-path
@@ -705,6 +707,7 @@ output file."
                  #:entry-point '(#$boot-program #$os)
                  #:compressor '(#+(file-append gzip "/bin/gzip") "-9n")
                  #:creation-time (make-time time-utc 0 1)
+                 #:system #$image-target
                  #:transformations `((,image-root -> ""))))))))
 
     (computed-file name builder



reply via email to

[Prev in Thread] Current Thread [Next in Thread]