darwin.cctools-apple: init at 973.0.1-609

+133
+118
pkgs/os-specific/darwin/cctools/apple.nix
··· 1 + { lib, stdenv, fetchurl, symlinkJoin, xcbuildHook, tcsh, libobjc, libtapi, libunwind, llvm, memstreamHook, xar }: 2 + 3 + let 4 + 5 + cctools = stdenv.mkDerivation rec { 6 + pname = "cctools"; 7 + version = "973.0.1"; 8 + 9 + src = fetchurl { 10 + url = "https://opensource.apple.com/tarballs/cctools/cctools-${version}.tar.gz"; 11 + hash = "sha256-r/6tsyyfi3R/0cLl+lN/B9ZaOaVF+Z7vJ6xj4LzSgiQ="; 12 + }; 13 + 14 + patches = [ 15 + ./cctools-add-missing-vtool-libstuff-dep.patch 16 + ]; 17 + 18 + postPatch = '' 19 + for file in libstuff/writeout.c misc/libtool.c misc/lipo.c; do 20 + substituteInPlace "$file" \ 21 + --replace '__builtin_available(macOS 10.12, *)' '0' 22 + done 23 + substituteInPlace libmacho/swap.c \ 24 + --replace '#ifndef RLD' '#if 1' 25 + ''; 26 + 27 + nativeBuildInputs = [ xcbuildHook memstreamHook ]; 28 + buildInputs = [ libobjc llvm ]; 29 + 30 + xcbuildFlags = [ 31 + "MACOSX_DEPLOYMENT_TARGET=10.12" 32 + ]; 33 + 34 + doCheck = true; 35 + checkPhase = '' 36 + runHook preCheck 37 + 38 + Products/Release/libstuff_test 39 + rm Products/Release/libstuff_test 40 + 41 + runHook postCheck 42 + ''; 43 + 44 + installPhase = '' 45 + runHook preInstall 46 + 47 + rm -rf "$out/usr" 48 + mkdir -p "$out/bin" 49 + find Products/Release -maxdepth 1 -type f -perm 755 -exec cp {} "$out/bin/" \; 50 + cp -r include "$out/" 51 + 52 + ln -s ./nm-classic "$out"/bin/nm 53 + ln -s ./otool-classic "$out"/bin/otool 54 + 55 + runHook postInstall 56 + ''; 57 + }; 58 + 59 + ld64 = stdenv.mkDerivation rec { 60 + pname = "ld64"; 61 + version = "609"; 62 + 63 + src = fetchurl { 64 + url = "https://opensource.apple.com/tarballs/ld64/ld64-${version}.tar.gz"; 65 + hash = "sha256-SqQ7SqmK+uOPijzxOTqtkEu3qYmcth6H7rrQ03R1Q+4="; 66 + }; 67 + 68 + postPatch = '' 69 + substituteInPlace ld64.xcodeproj/project.pbxproj \ 70 + --replace "/bin/csh" "${tcsh}/bin/tcsh" \ 71 + --replace 'F9E8D4BE07FCAF2A00FD5801 /* PBXBuildRule */,' "" \ 72 + --replace 'F9E8D4BD07FCAF2000FD5801 /* PBXBuildRule */,' "" 73 + 74 + sed -i src/ld/Options.cpp -e '1iconst char ldVersionString[] = "${version}";' 75 + ''; 76 + 77 + nativeBuildInputs = [ xcbuildHook ]; 78 + buildInputs = [ 79 + libtapi 80 + libunwind 81 + llvm 82 + xar 83 + ]; 84 + 85 + installPhase = '' 86 + runHook preInstall 87 + 88 + mkdir -p "$out/bin" 89 + find Products/Release-assert -maxdepth 1 -type f -perm 755 -exec cp {} "$out/bin/" \; 90 + 91 + runHook postInstall 92 + ''; 93 + }; 94 + 95 + in 96 + 97 + symlinkJoin rec { 98 + name = "cctools-${version}"; 99 + version = "${cctools.version}-${ld64.version}"; 100 + 101 + paths = [ 102 + cctools 103 + ld64 104 + ]; 105 + 106 + # workaround for the fetch-tarballs script 107 + passthru = { 108 + inherit (cctools) src; 109 + ld64_src = ld64.src; 110 + }; 111 + 112 + meta = with lib; { 113 + description = "MacOS Compiler Tools"; 114 + homepage = "http://www.opensource.apple.com/source/cctools/"; 115 + license = licenses.apsl20; 116 + platforms = platforms.darwin; 117 + }; 118 + }
+11
pkgs/os-specific/darwin/cctools/cctools-add-missing-vtool-libstuff-dep.patch
··· 1 + diff -ru a/cctools.xcodeproj/project.pbxproj b/cctools.xcodeproj/project.pbxproj 2 + --- a/cctools.xcodeproj/project.pbxproj 2021-02-24 20:30:55.000000000 -0500 3 + +++ b/cctools.xcodeproj/project.pbxproj 2022-01-31 20:01:09.000000000 -0500 4 + @@ -2558,6 +2558,7 @@ 5 + isa = PBXFrameworksBuildPhase; 6 + buildActionMask = 2147483647; 7 + files = ( 8 + + DE97E92421F3B86100C7947D /* libstuff.a in Frameworks */, 9 + ); 10 + runOnlyForDeploymentPostprocessing = 0; 11 + };
+4
pkgs/top-level/darwin-packages.nix
··· 98 98 stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv; 99 99 }; 100 100 101 + cctools-apple = callPackage ../os-specific/darwin/cctools/apple.nix { 102 + stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv; 103 + }; 104 + 101 105 # TODO: remove alias. 102 106 cf-private = self.apple_sdk.frameworks.CoreFoundation; 103 107