about summary refs log tree commit diff
path: root/nixos/modules
diff options
context:
space:
mode:
authorMatthew Justin Bauer <mjbauer95@gmail.com>2018-05-31 11:03:04 -0400
committerGitHub <noreply@github.com>2018-05-31 11:03:04 -0400
commite754f60fd9dccc65c0034092be6255d604675b05 (patch)
treee049a291bc845eb85583263a64680d21a33b9ac1 /nixos/modules
parentcf5a5b82d4e42ae8b178fe2da4fcf2b6a3e4883b (diff)
parent4fe289860888668956b7e79e24efeb101c2f51d1 (diff)
downloadnixlib-e754f60fd9dccc65c0034092be6255d604675b05.tar
nixlib-e754f60fd9dccc65c0034092be6255d604675b05.tar.gz
nixlib-e754f60fd9dccc65c0034092be6255d604675b05.tar.bz2
nixlib-e754f60fd9dccc65c0034092be6255d604675b05.tar.lz
nixlib-e754f60fd9dccc65c0034092be6255d604675b05.tar.xz
nixlib-e754f60fd9dccc65c0034092be6255d604675b05.tar.zst
nixlib-e754f60fd9dccc65c0034092be6255d604675b05.zip
Merge pull request #40708 from obsidiansystems/nixos-nixpkgs-defaults
nixpkgs module: Fix defaulting of `localSystem` and `system`
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/misc/nixpkgs.nix13
1 files changed, 8 insertions, 5 deletions
diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix
index 8fbe218b232a..29019ed3d552 100644
--- a/nixos/modules/misc/nixpkgs.nix
+++ b/nixos/modules/misc/nixpkgs.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, options, lib, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.nixpkgs;
+  opts = options.nixpgs;
 
   isConfig = x:
     builtins.isAttrs x || lib.isFunction x;
@@ -62,12 +63,11 @@ in
     pkgs = mkOption {
       defaultText = literalExample
         ''import "''${nixos}/.." {
-            inherit (config.nixpkgs) config overlays localSystem crossSystem;
+            inherit (cfg) config overlays localSystem crossSystem;
           }
         '';
       default = import ../../.. {
-        localSystem = { inherit (cfg) system; } // cfg.localSystem;
-        inherit (cfg) config overlays crossSystem;
+        inherit (cfg) config overlays localSystem crossSystem;
       };
       type = pkgsType;
       example = literalExample ''import <nixpkgs> {}'';
@@ -140,7 +140,7 @@ in
 
     localSystem = mkOption {
       type = types.attrs; # TODO utilize lib.systems.parsedPlatform
-      default = { system = builtins.currentSystem; };
+      default = { system = cfg.system or builtins.currentSystem; };
       example = { system = "aarch64-linux"; config = "aarch64-unknown-linux-gnu"; };
       defaultText = literalExample
         ''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
@@ -179,6 +179,8 @@ in
 
     system = mkOption {
       type = types.str;
+      default = cfg.localSystem.system
+        or opts.localSystem.default.system;
       example = "i686-linux";
       description = ''
         Specifies the Nix platform type on which NixOS should be built.
@@ -196,6 +198,7 @@ in
         </programlisting>
         See <code>nixpkgs.localSystem</code> for more information.
 
+        Ignored when <code>nixpkgs.localSystem</code> is set.
         Ignored when <code>nixpkgs.pkgs</code> is set.
       '';
     };