Files
nixpkgs/pkgs/top-level/darwin-packages.nix

210 lines
5.6 KiB
Nix
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
let
autoCalledPackages = import ./by-name-overlay.nix ../os-specific/darwin/by-name;
in
{
lib,
buildEnv,
cctools,
generateSplicesForMkScope,
libc,
llvmPackages,
makeScopeWithSplicing',
pkgs,
preLibcHeaders,
stdenv,
targetPackages,
wrapBintoolsWith,
config,
}:
let
aliases =
final: prev:
lib.optionalAttrs config.allowAliases (import ../top-level/darwin-aliases.nix lib final prev pkgs);
autoCalledPackagesWithAliases = lib.composeManyExtensions [
autoCalledPackages
aliases
];
mkBootstrapStdenv =
stdenv:
stdenv.override (old: {
extraBuildInputs = map (
pkg:
if lib.isDerivation pkg && lib.getName pkg == "apple-sdk" then
pkg.override { enableBootstrap = true; }
else
pkg
) (old.extraBuildInputs or [ ]);
});
in
makeScopeWithSplicing' {
otherSplices = generateSplicesForMkScope "darwin";
extra = self: {
inherit (llvmPackages) clang-unwrapped;
# This is an internal helper for building source-release packages.
# Its not intended for use outside of the Darwin package set.
mkAppleDerivation = self.callPackage ../os-specific/darwin/mk-apple-derivation { };
};
f = lib.extends autoCalledPackagesWithAliases (
self:
lib.recurseIntoAttrs {
inherit (self.adv_cmds) ps;
# Removes propagated packages from the stdenv, so those packages can be built without depending upon themselves.
bootstrapStdenv = mkBootstrapStdenv stdenv;
# Note: Not in `package.nix` because it messes up the overrides.
binutils = wrapBintoolsWith {
libc = targetPackages.libc or libc;
bintools = self.binutils-unwrapped;
};
binutilsNoLibc = wrapBintoolsWith {
libc = targetPackages.preLibcHeaders or preLibcHeaders;
bintools = self.binutils-unwrapped;
};
sourceRelease = self.callPackage ../os-specific/darwin/sourceRelease { };
inherit (self.file_cmds) xattr;
# Note: Not in `packages.nix` because its a package set not a derivation.
inherit (self.callPackage ../os-specific/darwin/xcode { })
xcode_8_1
xcode_8_2
xcode_9_1
xcode_9_2
xcode_9_3
xcode_9_4
xcode_9_4_1
xcode_10_1
xcode_10_2
xcode_10_2_1
xcode_10_3
xcode_11
xcode_11_1
xcode_11_2
xcode_11_3_1
xcode_11_4
xcode_11_5
xcode_11_6
xcode_11_7
xcode_12
xcode_12_0_1
xcode_12_1
xcode_12_2
xcode_12_3
xcode_12_4
xcode_12_5
xcode_12_5_1
xcode_13
xcode_13_1
xcode_13_2
xcode_13_3
xcode_13_3_1
xcode_13_4
xcode_13_4_1
xcode_14
xcode_14_1
xcode_15
xcode_15_0_1
xcode_15_1
xcode_15_2
xcode_15_3
xcode_15_4
xcode_16
xcode_16_1
xcode_16_2
xcode_16_3
xcode_16_4
xcode_26
xcode_26_Apple_silicon
xcode_26_0_1
xcode_26_0_1_Apple_silicon
xcode_26_1
xcode_26_1_Apple_silicon
xcode_26_1_1
xcode_26_1_1_Apple_silicon
xcode_26_2
xcode_26_2_Apple_silicon
xcode_26_3
xcode_26_3_Apple_silicon
xcode_26_4
xcode_26_4_Apple_silicon
xcode_26_4_1
xcode_26_4_1_Apple_silicon
xcode_26_5
xcode_26_5_Apple_silicon
xcode_26_6
xcode_26_6_Apple_silicon
xcode
requireXcode
;
# Note: Not in `package.nix` because it references files outside of the package.
# See doc/packages/darwin-builder.section.md
linux-builder = lib.makeOverridable (
{ modules }:
let
toGuest = builtins.replaceStrings [ "darwin" ] [ "linux" ];
nixos = import ../../nixos {
configuration = {
imports = [
../../nixos/modules/profiles/nix-builder-vm.nix
]
++ modules;
# If you need to override this, consider starting with the right Nixpkgs
# in the first place, ie change `pkgs` in `pkgs.darwin.linux-builder`.
# or if you're creating new wiring that's not `pkgs`-centric, perhaps use the
# macos-builder profile directly.
virtualisation.host = { inherit pkgs; };
nixpkgs.hostPlatform = lib.mkDefault (toGuest stdenv.hostPlatform.system);
};
system = null;
};
in
nixos.config.system.build.macos-builder-installer
) { modules = [ ]; };
linux-builder-x86_64 = self.linux-builder.override {
modules = [ { nixpkgs.hostPlatform = "x86_64-linux"; } ];
};
# Like `linux-builder`, but runs the guest on Apple's Virtualization.framework
# via `vzvm`, translating x86_64-linux builds with Rosetta instead of emulating
# them. See doc/packages/darwin-builder.section.md
linux-builder-vz = lib.makeOverridable (
{ modules }:
let
nixos = import ../../nixos {
configuration = {
imports = [
../../nixos/modules/profiles/nix-builder-vz-vm.nix
]
++ modules;
virtualisation.host = { inherit pkgs; };
# aarch64-darwin is the only supported host, so the guest is fixed too.
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
};
system = null;
};
in
nixos.config.system.build.macos-builder-installer
) { modules = [ ]; };
}
);
}