diff options
author | Monson Shao <holymonson@gmail.com> | 2021-01-20 02:02:23 +0800 |
---|---|---|
committer | Monson Shao <holymonson@gmail.com> | 2021-01-20 15:19:13 +0800 |
commit | 9d5cece352e815982292993083ea0c3d3a17850e (patch) | |
tree | 5541ce1ac4c644484a8733c404fdf7d5dc62d896 /pkgs/os-specific/darwin/apple-source-releases/default.nix | |
parent | b27f238893cfefe9c6b1b88817a1ddb91a5fa0e2 (diff) | |
download | nixpkgs-9d5cece352e815982292993083ea0c3d3a17850e.tar nixpkgs-9d5cece352e815982292993083ea0c3d3a17850e.tar.gz nixpkgs-9d5cece352e815982292993083ea0c3d3a17850e.tar.bz2 nixpkgs-9d5cece352e815982292993083ea0c3d3a17850e.tar.lz nixpkgs-9d5cece352e815982292993083ea0c3d3a17850e.tar.xz nixpkgs-9d5cece352e815982292993083ea0c3d3a17850e.tar.zst nixpkgs-9d5cece352e815982292993083ea0c3d3a17850e.zip |
darwin: generate apple packages preparing for update macos sdk
Diffstat (limited to 'pkgs/os-specific/darwin/apple-source-releases/default.nix')
-rw-r--r-- | pkgs/os-specific/darwin/apple-source-releases/default.nix | 61 |
1 files changed, 41 insertions, 20 deletions
diff --git a/pkgs/os-specific/darwin/apple-source-releases/default.nix b/pkgs/os-specific/darwin/apple-source-releases/default.nix index 12176fd526c..014904ca24d 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/default.nix @@ -1,6 +1,9 @@ { lib, stdenv, fetchurl, fetchzip, pkgs }: let + macosPackages_11_0_1 = import ./macos-11.0.1.nix { inherit applePackage'; }; + developerToolsPackages_11_3_1 = import ./developer-tools-11.3.1.nix { inherit applePackage'; }; + # This attrset can in theory be computed automatically, but for that to work nicely we need # import-from-derivation to work properly. Currently it's rather ugly when we try to bootstrap # a stdenv out of something like this. With some care we can probably get rid of this, but for @@ -57,6 +60,9 @@ let libplatform = "125"; mDNSResponder = "625.41.2"; + # IOKit contains a set of packages with different versions, so we don't have a general version + IOKit = ""; + libutil = "43"; libunwind = "35.3"; Librpcsvc = "26"; @@ -135,35 +141,47 @@ let }; }; - fetchApple = version: sha256: name: let + fetchApple' = pname: version: sha256: let # When cross-compiling, fetchurl depends on libiconv, resulting # in an infinite recursion without this. It's not clear why this # worked fine when not cross-compiling - fetch = if name == "libiconv" + fetch = if pname == "libiconv" then stdenv.fetchurlBoot else fetchurl; in fetch { - url = "http://www.opensource.apple.com/tarballs/${name}/${name}-${versions.${version}.${name}}.tar.gz"; + url = "http://www.opensource.apple.com/tarballs/${pname}/${pname}-${version}.tar.gz"; inherit sha256; }; - appleDerivation_ = name: version: sha256: attrs: stdenv.mkDerivation ({ - inherit version; - name = "${name}-${version}"; + fetchApple = sdkName: sha256: pname: let + version = versions.${sdkName}.${pname}; + in fetchApple' pname version sha256; + + appleDerivation' = pname: version: sdkName: sha256: attrs: stdenv.mkDerivation ({ + inherit pname; + version = "${version}-${sdkName}"; + + src = if attrs ? srcs then null else (fetchApple' pname version sha256); + enableParallelBuilding = true; - meta = { - platforms = lib.platforms.darwin; - }; - } // (if attrs ? srcs then {} else { - src = fetchApple version sha256 name; - }) // attrs); - applePackage = namePath: version: sha256: - let - name = builtins.elemAt (lib.splitString "/" namePath) 0; - appleDerivation = appleDerivation_ name version sha256; - callPackage = pkgs.newScope (packages // pkgs.darwin // { inherit appleDerivation name version; }); - in callPackage (./. + "/${namePath}"); + } // attrs // { + meta = (with lib; { + platforms = platforms.darwin; + license = licenses.apsl20; + }) // (attrs.meta or {}); + }); + + applePackage' = namePath: version: sdkName: sha256: let + pname = builtins.head (lib.splitString "/" namePath); + appleDerivation = appleDerivation' pname version sdkName sha256; + callPackage = pkgs.newScope (packages // pkgs.darwin // { inherit appleDerivation; }); + in callPackage (./. + "/${namePath}"); + + applePackage = namePath: sdkName: sha256: let + pname = builtins.head (lib.splitString "/" namePath); + version = versions.${sdkName}.${pname}; + in applePackage' namePath version sdkName sha256; IOKitSpecs = { IOAudioFamily = fetchApple "osx-10.10.5" "0ggq7za3iq8g02j16rj67prqhrw828jsw3ah3bxq8a1cvr55aqnq"; @@ -192,7 +210,8 @@ let # Only used for bootstrapping. It’s convenient because it was the last version to come with a real makefile. adv_cmds-boot = applePackage "adv_cmds/boot.nix" "osx-10.5.8" "102ssayxbg9wb35mdmhswbnw0bg7js3pfd8fcbic83c5q3bqa6c6" {}; - packages = { + # TODO: shorten this list, we should cut down to a minimum set of bootstrap or necessary packages here. + stubPackages = { inherit (adv_cmds-boot) ps locale; architecture = applePackage "architecture" "osx-10.11.6" "1pbpjcd7is69hn8y29i98ci0byik826if8gnp824ha92h90w0fq3" {}; bootstrap_cmds = applePackage "bootstrap_cmds" "dev-tools-7.0" "1v5dv2q3af1xwj5kz0a5g54fd5dm6j4c9dd2g66n4kc44ixyrhp3" {}; @@ -254,6 +273,8 @@ let # TODO(matthewbauer): # To be removed, once I figure out how to build a newer Security version. - Security = applePackage "Security/boot.nix" "osx-10.9.5" "1nv0dczf67dhk17hscx52izgdcyacgyy12ag0jh6nl5hmfzsn8yy" {}; + Security = applePackage "Security/boot.nix" "osx-10.9.5" "1nv0dczf67dhk17hscx52izgdcyacgyy12ag0jh6nl5hmfzsn8yy" {}; }; + + packages = developerToolsPackages_11_3_1 // macosPackages_11_0_1 // stubPackages; in packages |