mirror of
https://github.com/LnL7/nix-darwin.git
synced 2025-03-05 08:17:01 +00:00
linux-builder: make compatible with cross-arch builder package
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 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 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: ```nix 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
This commit is contained in:
parent
315aa649ba
commit
d21ba5a487
1 changed files with 9 additions and 5 deletions
|
@ -7,9 +7,11 @@ let
|
|||
|
||||
cfg = config.nix.linux-builder;
|
||||
|
||||
builderWithOverrides = cfg.package.override {
|
||||
modules = [ cfg.config ];
|
||||
};
|
||||
builderWithOverrides = cfg.package.override (previousArguments: {
|
||||
# the linux-builder packages require a list `modules` argument, so it's
|
||||
# always non-null.
|
||||
modules = previousArguments.modules ++ [ cfg.config ];
|
||||
});
|
||||
|
||||
# create-builder uses TMPDIR to share files with the builder, notably certs.
|
||||
# macOS will clean up files in /tmp automatically that haven't been accessed in 3+ days.
|
||||
|
@ -133,8 +135,10 @@ in
|
|||
|
||||
systems = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "${stdenv.hostPlatform.uname.processor}-linux" ];
|
||||
defaultText = literalExpression ''[ "''${stdenv.hostPlatform.uname.processor}-linux" ]'';
|
||||
default = [ builderWithOverrides.nixosConfig.nixpkgs.hostPlatform.system ];
|
||||
defaultText = ''
|
||||
The `nixpkgs.hostPlatform.system` of the build machine's final NixOS configuration.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
[
|
||||
"x86_64-linux"
|
||||
|
|
Loading…
Add table
Reference in a new issue