From d6f41ba895538e848ff5c2390bffd4c8a79ba439 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 17 Oct 2022 15:00:50 +0200 Subject: [PATCH] allAliases: init Allow generic dependency injection code to avoid aliases, e.g. getPkg = name: if ! pkgs?allAliases.${name} then pkgs.${name} else ... --- pkgs/top-level/stage.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix index e78197bd0363c..7cc540d27873e 100644 --- a/pkgs/top-level/stage.nix +++ b/pkgs/top-level/stage.nix @@ -154,7 +154,22 @@ let res self super; in res; - aliases = self: super: lib.optionalAttrs config.allowAliases (import ./aliases.nix lib self super); + aliases = self: super: + if config.allowAliases + then + let aliases = import ./aliases.nix lib self super; + in aliases // { + + /* Allow generic dependency injection code to avoid aliases, e.g. + + getPkg = name: + if ! pkgs?allAliases.${name} + then pkgs.${name} + else ... + */ + allAliases = lib.mapAttrs (k: v: null) aliases; + } + else { allAliases = {}; }; # stdenvOverrides is used to avoid having multiple of versions # of certain dependencies that were used in bootstrapping the