diff options
Diffstat (limited to 'nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix')
-rw-r--r-- | nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix index aa93a32c5621..c9cc99a6550e 100644 --- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix +++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix @@ -1,7 +1,7 @@ -{ lib, stdenv, buildPackages, fetchzip +{ lib, stdenv, buildPackages, fetchzip, fetchFromGitHub , appleDerivation', xnu, Libc, Libm, libdispatch, Libinfo , dyld, Csu, architecture, libclosure, CarbonHeaders, ncurses, CommonCrypto -, copyfile, removefile, libresolvHeaders, libresolv, Libnotify, libplatform, libpthread +, copyfile, removefile, libresolvHeaders, libresolv, Libnotify, libmalloc, libplatform, libpthread , mDNSResponder, launchd, libutilHeaders, hfsHeaders, darwin-stubs , headersOnly ? false , withLibresolv ? !headersOnly @@ -30,6 +30,15 @@ let fi ''; }; + + # Libsystem needs `asl.h` from syslog. This is the version corresponding to the 10.12 SDK + # source release, but it hasn’t changed in newer versions. + syslog.src = fetchFromGitHub { + owner = "apple-oss-distributions"; + repo = "syslog"; + rev = "syslog-349.50.5"; + hash = "sha256-tXLW/TNsluhO1X9Rv3FANyzyOe5TE/hZz0gVo7JGvHA="; + }; in appleDerivation' stdenv { dontBuild = true; @@ -57,12 +66,19 @@ appleDerivation' stdenv { ${libclosure} ${CarbonHeaders} ${libdispatch} ${ncurses.dev} \ ${CommonCrypto} ${copyfile} ${removefile} ${libresolvHeaders} \ ${Libnotify} ${libplatform} ${mDNSResponder} ${launchd} \ - ${libutilHeaders} ${libpthread} ${hfsHeaders}; do + ${libutilHeaders} ${libmalloc} ${libpthread} ${hfsHeaders}; do (cd $dep/include && find . -name '*.h' | copyHierarchy $out/include) done (cd ${buildPackages.darwin.cctools.dev}/include/mach-o && find . -name '*.h' | copyHierarchy $out/include/mach-o) + for header in pthread.h pthread_impl.h pthread_spis.h sched.h; do + ln -s "$out/include/pthread/$header" "$out/include/$header" + done + + # Copy `asl.h` from the syslog sources since it is no longer provided as part of Libc. + cp ${syslog.src}/libsystem_asl.tproj/include/asl.h $out/include + mkdir -p $out/include/os cp ${darling.src}/src/libc/os/activity.h $out/include/os |