LnL7 / nix-darwin

nix modules for darwin
MIT License
3.19k stars 456 forks source link

linux-builder: make compatible with cross-arch builder package #974

Closed nicknovitski closed 5 months ago

nicknovitski commented 5 months ago

Before this commit, aarch64 users building the following configuration would end up with an aarch64-linux builder, while after it, they get the x86_64-linux builder they expect:

 nix.linux-builder = {
  enable = true;
  package = pkgs.darwin.linux-builder-x86_64;
};

Before, in order to get an x86_64-linux builder, they would have needed to use this configuration instead:

 nix.linux-builder = {
  enable = true;
  config.nixpkgs.hostPlatform = "x86_64-linux";
  systems = ["x86_64-linux"];
};

The reason for this is that the linux-builder module calls override on the package option, and the linux-builder-x86_64 package is also defined using override:

linux-builder-x86_64 = linux-builder.override {
  modules = [ { nixpkgs.hostPlatform = "x86_64-linux"; } ];
};

The module was effectively discarding the nixpkgs.hostPlatform option.

Example issue: https://github.com/NixOS/nixpkgs/issues/313784