diff --git a/pkgs/top-level/darwin-aliases.nix b/pkgs/top-level/darwin-aliases.nix new file mode 100644 index 000000000000..9c4147b8cc71 --- /dev/null +++ b/pkgs/top-level/darwin-aliases.nix @@ -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 ### ### + +# 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 ({ +}) diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix index a6c98831eee6..724ef8972a8f 100644 --- a/pkgs/top-level/darwin-packages.nix +++ b/pkgs/top-level/darwin-packages.nix @@ -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.