about summary refs log tree commit diff
path: root/pkgs/os-specific/darwin
diff options
context:
space:
mode:
authorRandy Eckenrode <randy@largeandhighquality.com>2023-10-01 21:31:22 -0400
committerRandy Eckenrode <randy@largeandhighquality.com>2024-03-16 22:46:03 -0400
commitb55261221775d99deaea5f67be80c45171120b38 (patch)
tree15a468b6fe83af9dc96ec076ca11b839632fbcb6 /pkgs/os-specific/darwin
parent0fb285678db687d8768ccc282a0b6110a57d1544 (diff)
darwin.CoreSymbolication: build as a framework
`zlog` in darwin.system_cmds requires the CoreSymbolication framework.

This change does two things:

- Adds a patch with the required missing symbols; and
- Uses the stubs to create `CoreSymbolication.framework`.

Co-authored-by: a-n-n-a-l-e-e <150648636+a-n-n-a-l-e-e@users.noreply.github.com>
Diffstat (limited to 'pkgs/os-specific/darwin')
-rw-r--r--pkgs/os-specific/darwin/CoreSymbolication/default.nix46
1 files changed, 36 insertions, 10 deletions
diff --git a/pkgs/os-specific/darwin/CoreSymbolication/default.nix b/pkgs/os-specific/darwin/CoreSymbolication/default.nix
index d9a2b378134a2..f6b0e2b79c3d3 100644
--- a/pkgs/os-specific/darwin/CoreSymbolication/default.nix
+++ b/pkgs/os-specific/darwin/CoreSymbolication/default.nix
@@ -1,8 +1,14 @@
-{ lib, fetchFromGitHub, fetchpatch, stdenv }:
+{
+  lib,
+  fetchFromGitHub,
+  fetchpatch,
+  stdenvNoCC,
+  darwin-stubs,
+}:
 
-stdenv.mkDerivation {
-  pname = "core-symbolication";
-  version = "unstable-2018-06-17";
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "CoreSymbolication";
+  inherit (darwin-stubs) version;
 
   src = fetchFromGitHub {
     repo = "CoreSymbolication";
@@ -12,15 +18,35 @@ stdenv.mkDerivation {
   };
 
   patches = [
-    # C99 compilation fix
-    # https://github.com/matthewbauer/CoreSymbolication/pull/1
+    # Add missing symbol definitions needed to build `zlog` in system_cmds.
+    # https://github.com/matthewbauer/CoreSymbolication/pull/2
     (fetchpatch {
-      url = "https://github.com/boltzmannrain/CoreSymbolication/commit/1c26cc93f260bda9230a93e91585284e80aa231f.patch";
-      hash = "sha256-d/ieDEnvZ9kVOjBVUdJzGmdvC1AF3Jk4fbwp04Q6l/I=";
+      url = "https://github.com/matthewbauer/CoreSymbolication/commit/ae7ac6a7043dbae8e63d6ce5e63dfaf02b5977fe.patch";
+      hash = "sha256-IuXGMsaR1LIGs+BpDU1b4YlznKm9VhK5DQ+Dthtb1mI=";
+    })
+    (fetchpatch {
+      url = "https://github.com/matthewbauer/CoreSymbolication/commit/6531da946949a94643e6d8424236174ae64fe0ca.patch";
+      hash = "sha256-+nDX04yY92yVT9KxiAFY2LxKcS7P8JpU539K+YVRqV4=";
     })
   ];
 
-  makeFlags = [ "PREFIX=$(out)" "CC=${stdenv.cc.targetPrefix}cc" ];
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/Library/Frameworks/CoreSymbolication.framework/Versions/A/Headers
+
+    ln -s A $out/Library/Frameworks/CoreSymbolication.framework/Versions/Current
+    ln -s Versions/Current/Headers $out/Library/Frameworks/CoreSymbolication.framework/Headers
+    ln -s Versions/Current/CoreSymbolication.tbd $out/Library/Frameworks/CoreSymbolication.framework/CoreSymbolication.tbd
+
+    cp *.h $out/Library/Frameworks/CoreSymbolication.framework/Versions/A/Headers
+    cp ${darwin-stubs}/System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication.tbd \
+      $out/Library/Frameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication.tbd
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Reverse engineered headers for Apple's CoreSymbolication framework";
@@ -29,4 +55,4 @@ stdenv.mkDerivation {
     platforms = platforms.darwin;
     maintainers = with maintainers; [ matthewbauer ];
   };
-}
+})