nixpkgs module: Fix defaulting of localSystem and system#46341
Merged
grahamc merged 1 commit intoNixOS:masterfrom Sep 8, 2018
Merged
nixpkgs module: Fix defaulting of localSystem and system#46341grahamc merged 1 commit intoNixOS:masterfrom
localSystem and system#46341grahamc merged 1 commit intoNixOS:masterfrom
Conversation
Take two of NixOS#40708 (4fe2898). That PR attempted to bidirectionally default `config.nixpkgs.system` and `config.nixpkgs.localSystem.system` to each be updated by the other. But this is not possible with the way the module system works. Divergence in certain cases in inevitable. This PR is more conservative and just has `system` default `localSystem` and `localSystem` make the final call as-is. This solves a number of issues. - `localSystem` completely overrides `system`, just like with nixpkgs proper. There is no need to specify `localSystem.system` to clobber the old system. - `config.nixpkgs.localSystem` is exactly what is passed to nixpkgs. No spooky steps. - `config.nixpkgs.localSystem` is elaborated just as nixpkgs would so that all attributes are available, not just the ones the user specified. The remaining issue is just that `config.nixpkgs.system` doesn't update based on `config.nixpkgs.localSystem.system`. It should never be referred to lest it is a bogus stale value because `config.nixpkgs.localSystem` overwrites it. Fixes NixOS#46320
Member
|
I'd like a confirmation: is this affecting 18.09 too, thus needing a backport? Since #38485 was merged April 19th, and pointed as being at fault, I assume so. I additionally assume so since #46320 was marked as blocking 18.09. (So yeah, this basically means: please backport or ask appropriately on resolution. :)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Take two of #40708 (4fe2898).
That PR attempted to bidirectionally default
config.nixpkgs.systemandconfig.nixpkgs.localSystem.systemto each be updated by the other. But this is not possible with the way the module system works. Divergence in certain cases in inevitable.This PR is more conservative and just has
systemdefaultlocalSystemandlocalSystemmake the final call as-is. This solves a number of issues.localSystemcompletely overridessystem, just like with nixpkgs proper. There is no need to specifylocalSystem.systemto clobber the old system.config.nixpkgs.localSystemis exactly what is passed to nixpkgs. No spooky steps.config.nixpkgs.localSystemis elaborated just as nixpkgs would so that all attributes are available, not just the ones the user specified.The remaining issue is just that
config.nixpkgs.systemdoesn't update based onconfig.nixpkgs.localSystem.system. It should never be referred to lest it is a bogus stale value becauseconfig.nixpkgs.localSystemoverwrites it.Fixes #46320
Backport: #46343