summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2018-08-27 14:39:58 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-09-06 08:33:51 -0400
commit773233ca771a359e63328a57216f57fd45092e60 (patch)
tree09645bb87a96e23674eff2efd979aac9696f39e3
parente51f736076548459f36a1250de4bf6867f880b66 (diff)
downloadnixpkgs-773233ca771a359e63328a57216f57fd45092e60.tar
nixpkgs-773233ca771a359e63328a57216f57fd45092e60.tar.gz
nixpkgs-773233ca771a359e63328a57216f57fd45092e60.tar.bz2
nixpkgs-773233ca771a359e63328a57216f57fd45092e60.tar.lz
nixpkgs-773233ca771a359e63328a57216f57fd45092e60.tar.xz
nixpkgs-773233ca771a359e63328a57216f57fd45092e60.tar.zst
nixpkgs-773233ca771a359e63328a57216f57fd45092e60.zip
top-level, stdenv: Make `system` and `stdenv.system` describe the hostPlatform.
Intuitively, one cares mainly about the host platform: Platforms differ
in meaningful ways but compilation is morally a pure process and
probably doesn't care, or those difference are already abstracted away.
@Dezgeg also empirically confirmed that > 95% of checks are indeed of
the host platform.

Yet these attributes in the old cross infrastructure were defined to be
the build platform, for expediency. And this was never before changed.
(For native builds build and host coincide, so it isn't clear what the
intention was.)

Fixing this doesn't affect native builds, since again they coincide. It
also doesn't affect cross builds of anything in Nixpkgs, as these are no
longer used. It could affect external cross builds, but I deem that
unlikely as anyone thinking about cross would use more explicit
attributes for clarity, all the more so because the rarity of inspecting
the build platform.
-rw-r--r--pkgs/stdenv/generic/default.nix3
-rw-r--r--pkgs/top-level/stage.nix2
2 files changed, 4 insertions, 1 deletions
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index ac727034b8e..be9d38f9780 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -127,6 +127,9 @@ let
         "`stdenv.isArm` is deprecated after 18.03. Please use `stdenv.isAarch32` instead"
         hostPlatform.isAarch32;
 
+      # The derivation's `system` is `buildPlatform.system`.
+      inherit (buildPlatform) system;
+
       # Whether we should run paxctl to pax-mark binaries.
       needsPax = isLinux;
 
diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix
index 5ca8b72b8b8..ff09fa5ad1f 100644
--- a/pkgs/top-level/stage.nix
+++ b/pkgs/top-level/stage.nix
@@ -89,7 +89,7 @@ let
     targetPlatform = lib.warn
       "top-level `targetPlatform` is deprecated since 18.09. Please use `stdenv.targetPlatform`."
       super.stdenv.targetPlatform;
-    inherit (super.stdenv.buildPlatform) system;
+    inherit (super.stdenv.hostPlatform) system;
   };
 
   splice = self: super: import ./splice.nix lib self (buildPackages != null);