darwin: add darwin-aliases.nix

This commit is contained in:
Randy Eckenrode 2024-03-26 21:19:39 -04:00
parent 05c97b5ac3
commit 31dc171e97
No known key found for this signature in database
GPG Key ID: 64C1CD4EC2A600D9
2 changed files with 53 additions and 1 deletions

View File

@ -0,0 +1,50 @@
lib: self: super: pkgs:
### Deprecated aliases - for backward compatibility
### Please maintain this list in ASCIIbetical ordering.
### Hint: the "sections" are delimited by ### <letter> ###
# These aliases should not be used within nixpkgs, but exist to improve
# backward compatibility in projects outside of nixpkgs. See the
# documentation for the `allowAliases` option for more background.
# A script to convert old aliases to throws and remove old
# throws can be found in './maintainers/scripts/remove-old-aliases.py'.
# Add 'preserve, reason: reason why' after the date if the alias should not be removed.
# Try to keep them to a minimum.
# valid examples of what to preserve:
# distro aliases such as:
# debian-package-name -> nixos-package-name
# pkgs is provided to allow packages to be moved out of the darwin attrset.
with self;
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 darwin-packages.nix.
checkInPkgs =
n: alias:
if builtins.hasAttr n super then throw "Alias ${n} is still in darwin-packages.nix" else alias;
mapAliases = lib.mapAttrs (
n: alias: removeDistribute (removeRecurseForDerivations (checkInPkgs n alias))
);
in
mapAliases ({
})

View File

@ -18,12 +18,14 @@ let
fetchurlBoot = import ../build-support/fetchurl/boot.nix {
inherit (stdenv) system;
};
aliases = self: super: lib.optionalAttrs config.allowAliases (import ../top-level/darwin-aliases.nix lib self super pkgs);
in
makeScopeWithSplicing' {
otherSplices = generateSplicesForMkScope "darwin";
extra = spliced: spliced.apple_sdk.frameworks;
f = (self: let
f = lib.extends aliases (self: let
inherit (self) mkDerivation callPackage;
# Must use pkgs.callPackage to avoid infinite recursion.