summary refs log tree commit diff
path: root/pkgs/os-specific
diff options
context:
space:
mode:
authorDaniel Peebles <pumpkin@me.com>2014-10-04 14:52:39 -0400
committerMateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>2014-10-04 20:21:15 +0100
commitaa7839c145faad0fb78dbe52e6cbd7d21a0e4c6e (patch)
treecabf31a67784259af6cebee56d35f8b4d711dc97 /pkgs/os-specific
parentae32accc47a4f17cb730e5327cb001b01b142520 (diff)
downloadnixlib-aa7839c145faad0fb78dbe52e6cbd7d21a0e4c6e.tar
nixlib-aa7839c145faad0fb78dbe52e6cbd7d21a0e4c6e.tar.gz
nixlib-aa7839c145faad0fb78dbe52e6cbd7d21a0e4c6e.tar.bz2
nixlib-aa7839c145faad0fb78dbe52e6cbd7d21a0e4c6e.tar.lz
nixlib-aa7839c145faad0fb78dbe52e6cbd7d21a0e4c6e.tar.xz
nixlib-aa7839c145faad0fb78dbe52e6cbd7d21a0e4c6e.tar.zst
nixlib-aa7839c145faad0fb78dbe52e6cbd7d21a0e4c6e.zip
Clean up command-line tools a bit to allow us to use an impure
hdiutil (for an upcoming bootstrapped stdenv for darwin!)

Closes #4382
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r--pkgs/os-specific/darwin/command-line-tools/default.nix66
-rw-r--r--pkgs/os-specific/darwin/command-line-tools/sdk.nix25
-rw-r--r--pkgs/os-specific/darwin/command-line-tools/tools.nix25
3 files changed, 50 insertions, 66 deletions
diff --git a/pkgs/os-specific/darwin/command-line-tools/default.nix b/pkgs/os-specific/darwin/command-line-tools/default.nix
index fa7a5e7f26e4..a4ac20fa0851 100644
--- a/pkgs/os-specific/darwin/command-line-tools/default.nix
+++ b/pkgs/os-specific/darwin/command-line-tools/default.nix
@@ -1,37 +1,71 @@
-{ stdenv, callPackage, fetchadc, xpwn, xar, gzip, cpio }:
+{ stdenv, fetchadc, xar, gzip, cpio }:
 
 let
-  cmdline_packages = stdenv.mkDerivation {
-    name = "osx-10.9-command-line-tools-packages";
+  name = "command-line-tools-mac-os-10.9";
 
-    src = fetchadc {
-      # Isn't this a beautiful path? Note the subtle differences before and after the slash!
-      path   = "Developer_Tools/command_line_tools_os_x_10.9_for_xcode__xcode_6/command_line_tools_for_os_x_10.9_for_xcode_6.dmg";
-      sha256 = "0zrpf73r3kfk9pdh6p6j6w1sbw7s2pp0f8rd83660r5hk1y3j5jc";
+  pkg = { installPhase }: stdenv.mkDerivation {
+    name = "${name}.pkg";
+
+    phases = [ "installPhase" ];
+
+    inherit installPhase;
+
+    meta = with stdenv.lib; {
+      description = "Developer tools .pkg file";
+      maintainers = with maintainers; [ copumpkin ];
+      platforms   = platforms.darwin;
+      license     = licenses.unfree;
     };
+  };
+
+  basic = pkg: stdenv.mkDerivation {
+    inherit name;
 
     phases = [ "unpackPhase" "installPhase" ];
 
-    outputs = [ "devsdk" "cltools" ];
+    outputs = [ "sdk" "tools" ];
 
     unpackPhase = ''
-      ${xpwn}/bin/hdutil $src extract "Command Line Tools (OS X 10.9).pkg" "Command Line Tools (OS X 10.9).pkg"
-      ${xar}/bin/xar -x -f "Command Line Tools (OS X 10.9).pkg"
+      ${xar}/bin/xar -x -f "${pkg}"
     '';
 
     installPhase = ''
-      cp -r DevSDK_OSX109.pkg/ $devsdk
-      cp -r CLTools_Executables.pkg/ $cltools
+      start="$(pwd)"
+      mkdir -p $sdk
+      mkdir -p $tools
+
+      cd $sdk
+      cat $start/DevSDK_OSX109.pkg/Payload | ${gzip}/bin/gzip -d | ${cpio}/bin/cpio -idm
+
+      cd $tools
+      cat $start/CLTools_Executables.pkg/Payload | ${gzip}/bin/gzip -d | ${cpio}/bin/cpio -idm
     '';
 
     meta = with stdenv.lib; {
-      description = "Basis for the Mac OS command-line tools package";
+      description = "Mac OS command-line developer tools and SDK";
       maintainers = with maintainers; [ copumpkin ];
       platforms   = platforms.darwin;
       license     = licenses.unfree;
     };
   };
-in {
-  sdk   = callPackage ./sdk.nix   { inherit cmdline_packages; };
-  tools = callPackage ./tools.nix { inherit cmdline_packages; };
+in rec {
+  dmg = fetchadc {
+    # Isn't this a beautiful path? Note the subtle differences before and after the slash!
+    path   = "Developer_Tools/command_line_tools_os_x_10.9_for_xcode__xcode_6/command_line_tools_for_os_x_10.9_for_xcode_6.dmg";
+    sha256 = "0zrpf73r3kfk9pdh6p6j6w1sbw7s2pp0f8rd83660r5hk1y3j5jc";
+  };
+
+  pure = { xpwn }: basic (pkg {
+    installPhase = ''
+      ${xpwn}/bin/hdutil ${dmg} extract "Command Line Tools (OS X 10.9).pkg" $out
+    '';
+  });
+
+  impure = basic (pkg {
+    installPhase = ''
+      /usr/bin/hdiutil attach ${dmg} -mountpoint clt-mount -nobrowse
+      cp "clt-mount/Command Line Tools (OS X 10.9).pkg" $out
+      /usr/bin/hdiutil unmount clt-mount
+    '';
+  });
 }
diff --git a/pkgs/os-specific/darwin/command-line-tools/sdk.nix b/pkgs/os-specific/darwin/command-line-tools/sdk.nix
deleted file mode 100644
index 618f4f3641da..000000000000
--- a/pkgs/os-specific/darwin/command-line-tools/sdk.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, cpio, gzip, cmdline_packages }:
-
-stdenv.mkDerivation {
-  name = "osx-command-line-sdk-10.9";
-  src  = cmdline_packages.devsdk;
-
-  phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
-
-  unpackPhase = ''
-    cat $src/Payload | ${gzip}/bin/gzip -d | ${cpio}/bin/cpio -idm
-  '';
-
-  installPhase = ''
-    mkdir -p $out
-    cp -r System $out
-    cp -r usr/* $out
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Apple command-line tools SDK (headers and man pages)";
-    maintainers = with maintainers; [ copumpkin ];
-    platforms   = platforms.darwin;
-    license     = licenses.unfree;
-  };
-}
diff --git a/pkgs/os-specific/darwin/command-line-tools/tools.nix b/pkgs/os-specific/darwin/command-line-tools/tools.nix
deleted file mode 100644
index 0c4eb4ab44a0..000000000000
--- a/pkgs/os-specific/darwin/command-line-tools/tools.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, cpio, gzip, cmdline_packages }:
-
-stdenv.mkDerivation {
-  name = "osx-command-line-sdk-10.9";
-  src  = cmdline_packages.cltools;
-
-  phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
-
-  unpackPhase = ''
-    cat $src/Payload | ${gzip}/bin/gzip -d | ${cpio}/bin/cpio -idm
-  '';
-
-  installPhase = ''
-    mkdir -p $out
-    cp -r Library/Developer/CommandLineTools/Library $out
-    cp -r Library/Developer/CommandLineTools/usr/* $out
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Apple command-line developer tools";
-    maintainers = with maintainers; [ copumpkin ];
-    platforms   = platforms.darwin;
-    license     = licenses.unfree;
-  };
-}