core/pkgs/build-support/writers/aliases.nix

39 lines
1.1 KiB
Nix
Raw Normal View History

2024-05-02 00:46:19 +00:00
lib: prev:
let
# Removing recurseForDerivation prevents derivations of aliased attribute
# set to appear while listing all the packages available.
2024-05-13 21:24:10 +00:00
removeRecurseForDerivations = alias:
with lib;
2024-05-02 00:46:19 +00:00
if alias.recurseForDerivations or false then
2024-05-13 21:24:10 +00:00
removeAttrs alias [ "recurseForDerivations" ]
else
alias;
2024-05-02 00:46:19 +00:00
# Disabling distribution prevents top-level aliases for non-recursed package
# sets from building on Hydra.
2024-05-13 21:24:10 +00:00
removeDistribute = alias:
with lib;
if isDerivation alias then dontDistribute alias else alias;
2024-05-02 00:46:19 +00:00
# Make sure that we are not shadowing something from
# writers.
2024-05-13 21:24:10 +00:00
checkInPkgs = n: alias:
if builtins.hasAttr n prev then
throw "Alias ${n} is still in writers"
else
alias;
2024-05-02 00:46:19 +00:00
mapAliases = aliases:
2024-05-13 21:24:10 +00:00
lib.mapAttrs (n: alias:
removeDistribute (removeRecurseForDerivations (checkInPkgs n alias)))
aliases;
2024-05-02 00:46:19 +00:00
2024-05-13 21:24:10 +00:00
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.";
2024-05-02 00:46:19 +00:00
})