diff --git a/pkgs/os-specific/darwin/xcode/default.nix b/pkgs/os-specific/darwin/xcode/default.nix index d3a9ec012ebf2..7a9aeb8c3b246 100644 --- a/pkgs/os-specific/darwin/xcode/default.nix +++ b/pkgs/os-specific/darwin/xcode/default.nix @@ -1,4 +1,4 @@ -{ stdenv, requireFile, xpwn }: +{ stdenv, requireFile, libdmg-hfsplus }: with stdenv.lib; @@ -17,13 +17,15 @@ in stdenv.mkDerivation rec { phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ]; outputs = [ "out" "toolchain" ]; + nativeBuildInputs = [ libdmg-hfsplus ]; + unpackCmd = let basePath = "Xcode.app/Contents/Developer/Platforms/MacOSX.platform"; sdkPath = "${basePath}/Developer/SDKs"; in '' - ${xpwn}/bin/dmg extract "$curSrc" main.hfs > /dev/null - ${xpwn}/bin/hfsplus main.hfs extractall "${sdkPath}" > /dev/null + dmg extract "$curSrc" main.hfs > /dev/null + hfsplus main.hfs extractall "${sdkPath}" > /dev/null ''; setSourceRoot = "sourceRoot=MacOSX${osxVersion}.sdk"; @@ -38,7 +40,7 @@ in stdenv.mkDerivation rec { mkdir -p "$toolchain" pushd "$toolchain" - ${xpwn}/bin/hfsplus "$(dirs +1)/../main.hfs" extractall \ + hfsplus "$(dirs +1)/../main.hfs" extractall \ Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr \ > /dev/null popd diff --git a/pkgs/tools/filesystems/libdmg-hfsplus/default.nix b/pkgs/tools/filesystems/libdmg-hfsplus/default.nix new file mode 100644 index 0000000000000..6ed0e8ce4beea --- /dev/null +++ b/pkgs/tools/filesystems/libdmg-hfsplus/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchFromGitHub, cmake, zlib, bzip2, libpng, openssl }: + +stdenv.mkDerivation rec { + name = "libdmg-hfsplus-${version}"; + version = "2016-01-31"; + + src = fetchFromGitHub { + owner = "andreas56"; + repo = "libdmg-hfsplus"; + rev = "81dd75fd1549b24bf8af9736ac25518b367e6b63"; + sha256 = "0109zmz7nkydkrka98wmj0bjkskmxghw0k39a60ampywmsdi1vkh"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ zlib bzip2 libpng openssl ]; + + meta = with stdenv.lib; src.meta // { + description = "Portable libraries and utilities that manipulate HFS+ volumes and Apple's DMG images"; + license = licenses.gpl3Plus; + platforms = with platforms; linux ++ darwin; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2539baf3003a9..9a9ff5a98d2c1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3052,6 +3052,8 @@ with pkgs; libcpuid = callPackage ../tools/misc/libcpuid { }; + libdmg-hfsplus = callPackage ../tools/filesystems/libdmg-hfsplus { }; + libscrypt = callPackage ../development/libraries/libscrypt { }; libsmi = callPackage ../development/libraries/libsmi { };