lib: prev: let # Removing recurseForDerivation prevents derivations of aliased attribute # set to appear while listing all the packages available. removeRecurseForDerivations = alias: if alias.recurseForDerivations or false then lib.removeAttrs alias ["recurseForDerivations"] else alias; # Disabling distribution prevents top-level aliases for non-recursed package # sets from building on Hydra. removeDistribute = alias: if lib.isDerivation alias then lib.dontDistribute alias else alias; # Make sure that we are not shadowing something from # writers. checkInPkgs = n: alias: if builtins.hasAttr n prev then throw "Alias ${n} is still in writers" else alias; mapAliases = aliases: lib.mapAttrs (n: alias: removeDistribute (removeRecurseForDerivations (checkInPkgs n alias))) aliases; in mapAliases ({ /* Cleanup before 22.05, Added 2021-12-11 */ writePython2 = "Python 2 is EOL and the use of writers.writePython2 is deprecated."; writePython2Bin = "Python 2 is EOL and the use of writers.writePython2Bin is deprecated."; })