From 87f50db84ded18151b57ee4c924e5ac1553a7b99 Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Tue, 2 Jul 2024 20:22:34 +0100 Subject: [PATCH] modules/nixpkgs: don't set args.lib `lib.evalModules` always includes `lib`, `config`, `options`, & (configured) `specialArgs` in the (final) `specialArgs`[1]. Therefore, setting `_module.args.lib` has no effect. [1]: https://github.com/NixOS/nixpkgs/blob/329d232802dab627651754f385518928129f399c/lib/modules.nix#L233 --- modules/misc/nixpkgs.nix | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/modules/misc/nixpkgs.nix b/modules/misc/nixpkgs.nix index 00d05275..bb4bb926 100644 --- a/modules/misc/nixpkgs.nix +++ b/modules/misc/nixpkgs.nix @@ -1,24 +1,16 @@ -{ - defaultPkgs, - pkgs, - lib, - ... -}: +{ defaultPkgs, lib, ... }: let # TODO: https://github.com/nix-community/nixvim/issues/1784 finalPackage = defaultPkgs; in { config = { - _module.args = { - # We explicitly set the default override priority, so that we do not need - # to evaluate finalPkgs in case an override is placed on `_module.args.pkgs`. - # After all, to determine a definition priority, we need to evaluate `._type`, - # which is somewhat costly for Nixpkgs. With an explicit priority, we only - # evaluate the wrapper to find out that the priority is lower, and then we - # don't need to evaluate `finalPkgs`. - pkgs = lib.mkOverride lib.modules.defaultOverridePriority finalPackage; - inherit (pkgs) lib; - }; + # We explicitly set the default override priority, so that we do not need + # to evaluate finalPkgs in case an override is placed on `_module.args.pkgs`. + # After all, to determine a definition priority, we need to evaluate `._type`, + # which is somewhat costly for Nixpkgs. With an explicit priority, we only + # evaluate the wrapper to find out that the priority is lower, and then we + # don't need to evaluate `finalPkgs`. + _module.args.pkgs = lib.mkOverride lib.modules.defaultOverridePriority finalPackage; }; }