lol
1lib: prev:
2
3let
4 # Removing recurseForDerivation prevents derivations of aliased attribute
5 # set to appear while listing all the packages available.
6 removeRecurseForDerivations = alias: with lib;
7 if alias.recurseForDerivations or false then
8 removeAttrs alias ["recurseForDerivations"]
9 else alias;
10
11 # Disabling distribution prevents top-level aliases for non-recursed package
12 # sets from building on Hydra.
13 removeDistribute = alias: with lib;
14 if isDerivation alias then
15 dontDistribute alias
16 else alias;
17
18 # Make sure that we are not shadowing something from
19 # writers.
20 checkInPkgs = n: alias: if builtins.hasAttr n prev
21 then throw "Alias ${n} is still in writers"
22 else alias;
23
24 mapAliases = aliases:
25 lib.mapAttrs (n: alias: removeDistribute
26 (removeRecurseForDerivations
27 (checkInPkgs n alias)))
28 aliases;
29
30in
31mapAliases ({
32 /* Cleanup before 22.05, Added 2021-12-11 */
33 writePython2 = "Python 2 is EOL and the use of writers.writePython2 is deprecated.";
34 writePython2Bin = "Python 2 is EOL and the use of writers.writePython2Bin is deprecated.";
35})