about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRandy Eckenrode <randy@largeandhighquality.com>2024-03-27 07:31:25 -0400
committerGitHub <noreply@github.com>2024-03-27 07:31:25 -0400
commit2944f24f1297a372c19fc815a4ba98ce48ef1340 (patch)
tree0fc3823272e1df6c798a09a8497e45f83803df34
parent0ca930ad59f88e8dc84d5bd090e1286e4e25e6f7 (diff)
parent80186737d03ed394b3d9d932a48700994ac46175 (diff)
downloadnixlib-2944f24f1297a372c19fc815a4ba98ce48ef1340.tar
nixlib-2944f24f1297a372c19fc815a4ba98ce48ef1340.tar.gz
nixlib-2944f24f1297a372c19fc815a4ba98ce48ef1340.tar.bz2
nixlib-2944f24f1297a372c19fc815a4ba98ce48ef1340.tar.lz
nixlib-2944f24f1297a372c19fc815a4ba98ce48ef1340.tar.xz
nixlib-2944f24f1297a372c19fc815a4ba98ce48ef1340.tar.zst
nixlib-2944f24f1297a372c19fc815a4ba98ce48ef1340.zip
Merge pull request #299360 from reckenrode/darwin-aliases
-rw-r--r--pkgs/top-level/darwin-aliases.nix53
-rw-r--r--pkgs/top-level/darwin-packages.nix6
2 files changed, 56 insertions, 3 deletions
diff --git a/pkgs/top-level/darwin-aliases.nix b/pkgs/top-level/darwin-aliases.nix
new file mode 100644
index 000000000000..2466cae23ed8
--- /dev/null
+++ b/pkgs/top-level/darwin-aliases.nix
@@ -0,0 +1,53 @@
+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 ({
+  ### B ###
+
+  builder = throw "'darwin.builder' has been changed and renamed to 'darwin.linux-builder'. The default ssh port is now 31022. Please update your configuration or override the port back to 22. See https://nixos.org/manual/nixpkgs/unstable/#sec-darwin-builder"; # added 2023-07-06
+})
diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix
index a6c98831eee6..1302541234f5 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.
@@ -258,7 +260,5 @@ impure-cmds // appleSourcePackages // chooseLibs // {
     modules = [ { nixpkgs.hostPlatform = "x86_64-linux"; } ];
   };
 
-} // lib.optionalAttrs config.allowAliases {
-  builder = throw "'darwin.builder' has been changed and renamed to 'darwin.linux-builder'. The default ssh port is now 31022. Please update your configuration or override the port back to 22. See https://nixos.org/manual/nixpkgs/unstable/#sec-darwin-builder"; # added 2023-07-06
 });
 }