about summary refs log tree commit diff
path: root/pkgs/os-specific/darwin
diff options
context:
space:
mode:
authorDan Peebles <pumpkin@me.com>2016-12-19 19:45:09 -0500
committerDan Peebles <pumpkin@me.com>2016-12-19 19:47:24 -0500
commit377cef8d16c47df74d2653432d9bba968236c8a0 (patch)
tree5a2895450f80780c0fe69de2fecfc5b882725e1b /pkgs/os-specific/darwin
parent405507acac95216e43932147916f1108aa4bd389 (diff)
downloadnixlib-377cef8d16c47df74d2653432d9bba968236c8a0.tar
nixlib-377cef8d16c47df74d2653432d9bba968236c8a0.tar.gz
nixlib-377cef8d16c47df74d2653432d9bba968236c8a0.tar.bz2
nixlib-377cef8d16c47df74d2653432d9bba968236c8a0.tar.lz
nixlib-377cef8d16c47df74d2653432d9bba968236c8a0.tar.xz
nixlib-377cef8d16c47df74d2653432d9bba968236c8a0.tar.zst
nixlib-377cef8d16c47df74d2653432d9bba968236c8a0.zip
apple-sdk: 10.9 -> 10.11
Diffstat (limited to 'pkgs/os-specific/darwin')
-rw-r--r--pkgs/os-specific/darwin/apple-sdk/default.nix26
-rw-r--r--pkgs/os-specific/darwin/apple-sdk/frameworks.nix3
2 files changed, 23 insertions, 6 deletions
diff --git a/pkgs/os-specific/darwin/apple-sdk/default.nix b/pkgs/os-specific/darwin/apple-sdk/default.nix
index c1e09c201114..7f46a3963e04 100644
--- a/pkgs/os-specific/darwin/apple-sdk/default.nix
+++ b/pkgs/os-specific/darwin/apple-sdk/default.nix
@@ -1,29 +1,42 @@
-{ stdenv, fetchurl, xar, gzip, cpio, pkgs }:
+{ stdenv, fetchurl, xar, xz, cpio, pkgs, python }:
 
 let
+  # TODO: make this available to other packages and generalize the unpacking a bit
+  # from https://gist.github.com/pudquick/ff412bcb29c9c1fa4b8d
+  unpbzx = fetchurl {
+    url    = "https://gist.githubusercontent.com/pudquick/ff412bcb29c9c1fa4b8d/raw/24b25538ea8df8d0634a2a6189aa581ccc6a5b4b/parse_pbzx2.py";
+    sha256 = "0jgp6qbfl36i0jlz7as5zk2w20z4ca8wlrhdw49lwsld6wi3rfhc";
+  };
+
   # sadly needs to be exported because security_tool needs it
   sdk = stdenv.mkDerivation rec {
-    version = "10.9";
+    version = "10.11";
     name    = "MacOS_SDK-${version}";
 
+    # This URL comes from https://swscan.apple.com/content/catalogs/others/index-10.11-1.sucatalog, which we found by:
+    #  1. Google: site:swscan.apple.com and look for a name that seems appropriate for your version
+    #  2. In the resulting file, search for a file called DevSDK ending in .pkg
+    #  3. ???
+    #  4. Profit
     src = fetchurl {
-      url    = "http://swcdn.apple.com/content/downloads/27/02/031-06182/xxog8vxu8i6af781ivf4uhy6yt1lslex34/DevSDK_OSX109.pkg";
-      sha256 = "16b7aplha5573yl1d44nl2yxzp0w2hafihbyh7930wrcvba69iy4";
+      url    = "http://swcdn.apple.com/content/downloads/61/58/031-85396/fsu2775ydsciy13wycm3zngxrjcp0eqsl2/DevSDK_OSX1011.pkg";
+      sha256 = "182yh8li653pjrzgk7s2dvsqm7vwkk6ry8n31qqs8c0xr67yrqgl";
     };
 
-    buildInputs = [ xar gzip cpio ];
+    buildInputs = [ xar xz cpio python ];
 
     phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
 
     unpackPhase = ''
       xar -x -f $src
+      python ${unpbzx} Payload
     '';
 
     installPhase = ''
       start="$(pwd)"
       mkdir -p $out
       cd $out
-      cat $start/Payload | gzip -d | cpio -idm
+      cat $start/Payload.*.xz | xz -d | cpio -idm
 
       mv usr/* .
       rmdir usr
@@ -110,6 +123,7 @@ let
         popd >/dev/null
       }
 
+
       linkFramework "${name}.framework"
     '';
 
diff --git a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
index 3ecb35114220..cc99de258b23 100644
--- a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
+++ b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
@@ -52,6 +52,7 @@ with frameworks; with libs; {
   GSS                     = [];
   GameController          = [];
   GameKit                 = [ Foundation ];
+  Hypervisor              = [];
   ICADevices              = [ Carbon CF IOBluetooth ];
   IMServicePlugIn         = [];
   IOBluetoothUI           = [ IOBluetooth ];
@@ -116,4 +117,6 @@ with frameworks; with libs; {
   OpenDirectory       = [];
   Quartz              = [ QuickLook QTKit ];
   QuartzCore          = [ ApplicationServices CF CoreVideo OpenCL ];
+
+  vmnet = [];
 }