From a02917d9da89456905947cf1ed5444bc7a4c3be2 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 25 Apr 2023 22:28:23 +0300 Subject: [PATCH 1/2] darwin.dtrace: get rid of darling --- .../darwin/apple-source-releases/dtrace/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix b/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix index 3b51022d59be..afff7897488e 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix @@ -1,9 +1,9 @@ { appleDerivation, xcbuildHook, CoreSymbolication, apple_sdk -, xnu, bison, flex, darling, stdenv, fixDarwinDylibNames }: +, xnu, bison, flex, stdenv, fixDarwinDylibNames }: appleDerivation { nativeBuildInputs = [ xcbuildHook flex bison fixDarwinDylibNames ]; - buildInputs = [ CoreSymbolication apple_sdk.frameworks.CoreSymbolication darling xnu ]; + buildInputs = [ CoreSymbolication apple_sdk.frameworks.CoreSymbolication xnu ]; # -fcommon: workaround build failure on -fno-common toolchains: # duplicate symbol '_kCSRegionMachHeaderName' in: libproc.o dt_module_apple.o env.NIX_CFLAGS_COMPILE = "-DCTF_OLD_VERSIONS -DPRIVATE -DYYDEBUG=1 -I${xnu}/Library/Frameworks/System.framework/Headers -Wno-error=implicit-function-declaration -fcommon"; @@ -21,6 +21,8 @@ appleDerivation { --replace /usr/bin/ld ${stdenv.cc.bintools.bintools}/bin/ld \ --replace /usr/lib/dtrace/dt_cpp.h $out/include/dt_cpp.h \ --replace /usr/lib/dtrace $out/lib/dtrace + substituteInPlace libproc/libproc.c \ + --replace "#include " "" ''; # hack to handle xcbuild's broken lex handling From 12b91012e550a0935b0a842802875f3c86fe7fca Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 25 Apr 2023 22:45:59 +0300 Subject: [PATCH 2/2] darwin.darling: drop --- .../Libsystem/default.nix | 28 +++++++++- pkgs/os-specific/darwin/darling/default.nix | 51 ------------------- pkgs/top-level/darwin-packages.nix | 2 - 3 files changed, 26 insertions(+), 55 deletions(-) delete mode 100644 pkgs/os-specific/darwin/darling/default.nix diff --git a/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix b/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix index 6f8124dbac4c..aa93a32c5621 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix @@ -1,12 +1,36 @@ -{ lib, stdenv, buildPackages +{ lib, stdenv, buildPackages, fetchzip , appleDerivation', xnu, Libc, Libm, libdispatch, Libinfo , dyld, Csu, architecture, libclosure, CarbonHeaders, ncurses, CommonCrypto , copyfile, removefile, libresolvHeaders, libresolv, Libnotify, libplatform, libpthread -, mDNSResponder, launchd, libutilHeaders, hfsHeaders, darling, darwin-stubs +, mDNSResponder, launchd, libutilHeaders, hfsHeaders, darwin-stubs , headersOnly ? false , withLibresolv ? !headersOnly }: +let + darling.src = fetchzip { + url = "https://github.com/darlinghq/darling/archive/d2cc5fa748003aaa70ad4180fff0a9a85dc65e9b.tar.gz"; + sha256 = "11b51fw47nl505h63bgx5kqiyhf3glhp1q6jkpb6nqfislnzzkrf"; + postFetch = '' + # The archive contains both `src/opendirectory` and `src/OpenDirectory`, + # pre-create the directory to choose the canonical case on + # case-insensitive filesystems. + mkdir -p $out/src/OpenDirectory + + cd $out + tar -xzf $downloadedFile --strip-components=1 + rm -r $out/src/libm + + # If `src/opendirectory` and `src/OpenDirectory` refer to different + # things, then combine them into `src/OpenDirectory` to match the result + # on case-insensitive filesystems. + if [ "$(stat -c %i src/opendirectory)" != "$(stat -c %i src/OpenDirectory)" ]; then + mv src/opendirectory/* src/OpenDirectory/ + rmdir src/opendirectory + fi + ''; + }; +in appleDerivation' stdenv { dontBuild = true; dontFixup = true; diff --git a/pkgs/os-specific/darwin/darling/default.nix b/pkgs/os-specific/darwin/darling/default.nix deleted file mode 100644 index 22fb6d3b07c6..000000000000 --- a/pkgs/os-specific/darwin/darling/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{stdenv, lib, fetchzip}: - -stdenv.mkDerivation rec { - pname = "darling"; - name = pname; - - src = fetchzip { - url = "https://github.com/darlinghq/darling/archive/d2cc5fa748003aaa70ad4180fff0a9a85dc65e9b.tar.gz"; - sha256 = "11b51fw47nl505h63bgx5kqiyhf3glhp1q6jkpb6nqfislnzzkrf"; - postFetch = '' - # The archive contains both `src/opendirectory` and `src/OpenDirectory`, - # pre-create the directory to choose the canonical case on - # case-insensitive filesystems. - mkdir -p $out/src/OpenDirectory - - cd $out - tar -xzf $downloadedFile --strip-components=1 - rm -r $out/src/libm - - # If `src/opendirectory` and `src/OpenDirectory` refer to different - # things, then combine them into `src/OpenDirectory` to match the result - # on case-insensitive filesystems. - if [ "$(stat -c %i src/opendirectory)" != "$(stat -c %i src/OpenDirectory)" ]; then - mv src/opendirectory/* src/OpenDirectory/ - rmdir src/opendirectory - fi - ''; - }; - - # only packaging sandbox for now - buildPhase = '' - cc -c src/sandbox/sandbox.c -o src/sandbox/sandbox.o - cc -dynamiclib -flat_namespace src/sandbox/sandbox.o -o libsystem_sandbox.dylib - ''; - - installPhase = '' - mkdir -p $out/lib - cp -rL src/sandbox/include/ $out/ - cp libsystem_sandbox.dylib $out/lib/ - - mkdir -p $out/include - cp src/libaks/include/* $out/include - ''; - - meta = with lib; { - maintainers = with maintainers; [ matthewbauer ]; - license = licenses.gpl3; - description = "Darwin/macOS emulation layer for Linux"; - platforms = platforms.darwin; - }; -} diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix index 68b50fa9ab08..732b0404040e 100644 --- a/pkgs/top-level/darwin-packages.nix +++ b/pkgs/top-level/darwin-packages.nix @@ -216,8 +216,6 @@ impure-cmds // appleSourcePackages // chooseLibs // { # As the name says, this is broken, but I don't want to lose it since it's a direction we want to go in # libdispatch-broken = callPackage ../os-specific/darwin/swift-corelibs/libdispatch.nix { }; - darling = callPackage ../os-specific/darwin/darling/default.nix { }; - libtapi = callPackage ../os-specific/darwin/libtapi {}; ios-deploy = callPackage ../os-specific/darwin/ios-deploy {};