Why does <nixos/lib/eval-config.nix>
not honor modularily set nixpkgs.pkgs
for use in the pkgs
arguments of modules?
Even though
is not set on the caller?
When evaluating a modularily set version of packages with an eval config of a different version, then I get an evaluation conflict, for example here:
giving proof of en environment in which the module’s nixpkgs
is based on the new version while pkgs
is an old version.
If I use eval-config.nix
off the same version, then there is no version mismatch.
I can’t see where eval-config
does this magic (in the case that it’s own pkgs
argument is null
).
Any pointer?
I’m parsing this
https://github.com/NixOS/nixpkgs/blob/9c9eb1ce75c2e956ab7cec4db1b925a3f33b7424/nixos/lib/eval-config.nix#L50
to be evaluated to []
in this case.
Next, I’m parsing that this
https://github.com/NixOS/nixpkgs/blob/9c9eb1ce75c2e956ab7cec4db1b925a3f33b7424/nixos/modules/misc/nixpkgs.nix#L62
would set it to my modularly set pkgs version.
But the error suggests there is at least one instantiation involved with a version mismatch. Why?
Is laziness broken?