summary refs log tree commit diff
diff options
context:
space:
mode:
authoradisbladis <adisbladis@gmail.com>2020-11-20 11:57:56 +0100
committeradisbladis <adisbladis@gmail.com>2020-11-20 12:57:58 +0100
commitb7b22c5814471e783fbba057cd2e7bb136b88260 (patch)
tree7f4c716ba1311fe4614fa3a469208d1a572e1f36
parent31c3d39866016d73c8905d61e99f18f1891e332a (diff)
downloadnixpkgs-b7b22c5814471e783fbba057cd2e7bb136b88260.tar
nixpkgs-b7b22c5814471e783fbba057cd2e7bb136b88260.tar.gz
nixpkgs-b7b22c5814471e783fbba057cd2e7bb136b88260.tar.bz2
nixpkgs-b7b22c5814471e783fbba057cd2e7bb136b88260.tar.lz
nixpkgs-b7b22c5814471e783fbba057cd2e7bb136b88260.tar.xz
nixpkgs-b7b22c5814471e783fbba057cd2e7bb136b88260.tar.zst
nixpkgs-b7b22c5814471e783fbba057cd2e7bb136b88260.zip
dockerTools: Always cross compile for another arch in the cross example
The example fails to build on aarch64, so lets cross build for gnu64.
-rw-r--r--nixos/tests/docker-tools.nix6
-rw-r--r--pkgs/build-support/docker/examples.nix9
2 files changed, 10 insertions, 5 deletions
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix
index a20a08fc90d..8e0e82d64cc 100644
--- a/nixos/tests/docker-tools.nix
+++ b/nixos/tests/docker-tools.nix
@@ -237,14 +237,14 @@ import ./make-test-python.nix ({ pkgs, ... }: {
 
     with subtest("Ensure cross compiled image can be loaded and has correct arch."):
         docker.succeed(
-            "docker load --input='${pkgs.dockerTools.examples.cross-aarch64}'",
+            "docker load --input='${pkgs.dockerTools.examples.cross}'",
         )
         assert (
             docker.succeed(
-                "docker inspect ${pkgs.dockerTools.examples.cross-aarch64.imageName} "
+                "docker inspect ${pkgs.dockerTools.examples.cross.imageName} "
                 + "| ${pkgs.jq}/bin/jq -r .[].Architecture"
             ).strip()
-            == "arm64v8"
+            == "${if pkgs.system == "aarch64-linux" then "amd64" else "arm64v8"}"
         )
   '';
 })
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index cd91c721241..3f30f1a2adb 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -408,10 +408,15 @@ rec {
     };
 
   # basic example, with cross compilation
-  cross-aarch64 = pkgsCross.aarch64-multiplatform.dockerTools.buildImage {
+  cross = let
+    # Cross compile for x86_64 if on aarch64
+    crossPkgs =
+      if pkgs.system == "aarch64-linux" then pkgsCross.gnu64
+      else pkgsCross.aarch64-multiplatform;
+  in crossPkgs.dockerTools.buildImage {
     name = "hello-cross";
     tag = "latest";
-    contents = pkgsCross.aarch64-multiplatform.hello;
+    contents = crossPkgs.hello;
   };
 
 }