diff options
author | Daniel Peebles <pumpkin@me.com> | 2014-10-04 14:52:39 -0400 |
---|---|---|
committer | Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk> | 2014-10-04 20:21:15 +0100 |
commit | aa7839c145faad0fb78dbe52e6cbd7d21a0e4c6e (patch) | |
tree | cabf31a67784259af6cebee56d35f8b4d711dc97 /pkgs/os-specific | |
parent | ae32accc47a4f17cb730e5327cb001b01b142520 (diff) | |
download | nixlib-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.nix | 66 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/command-line-tools/sdk.nix | 25 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/command-line-tools/tools.nix | 25 |
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; - }; -} |