root: use pure CoreSymbolication on Darwin

The current build works by linking against CoreSymbolication in
/System/Library/PrivateFrameworks. This is impure and doesn't work in
newer versions of macOS.

See https://github.com/NixOS/nixpkgs/issues/128576

(cherry picked from commit 55dcd998597257714c4a5362c14845a9363dde66)
This commit is contained in:
Andrew Childs
2021-07-01 13:56:15 -07:00
committed by Jonathan Ringer
parent 3866043a12
commit f77d176ec6
3 changed files with 8 additions and 4 deletions
@@ -2,7 +2,7 @@
, libX11, libXpm, libXft, libXext, libGLU, libGL, libxml2, lz4, xz, pcre
, pkg-config, python, xxHash, zlib, zstd
, libAfterImage, giflib, libjpeg, libtiff, libpng
, Cocoa, OpenGL, noSplash ? false }:
, Cocoa, CoreSymbolication, OpenGL, noSplash ? false }:
stdenv.mkDerivation rec {
pname = "root";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ makeWrapper cmake pkg-config llvm_5.dev ];
buildInputs = [ ftgl gl2ps glew pcre zlib zstd llvm_5 libxml2 lz4 xz gsl xxHash libAfterImage giflib libjpeg libtiff libpng python.pkgs.numpy ]
++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
++ lib.optionals (stdenv.isDarwin) [ Cocoa CoreSymbolication OpenGL ]
;
patches = [
@@ -31,6 +31,10 @@ stdenv.mkDerivation rec {
patchShebangs build/unix/
'' + lib.optionalString noSplash ''
substituteInPlace rootx/src/rootx.cxx --replace "gNoLogo = false" "gNoLogo = true"
'' + lib.optionalString stdenv.isDarwin ''
# Eliminate impure reference to /System/Library/PrivateFrameworks
substituteInPlace core/CMakeLists.txt \
--replace "-F/System/Library/PrivateFrameworks" ""
'';
cmakeFlags = [