Merge pull request #43040 from matthewbauer/darwin-closure-reductions

Darwin stdenv tweaks
This commit is contained in:
Matthew Bauer 2018-07-05 14:34:54 -04:00 committed by GitHub
commit f513d580b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 14 deletions

View File

@ -1,5 +1,4 @@
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, pkgconfig { stdenv, lib, fetchpatch, fetchFromGitHub, autoconf, automake, libtool, pkgconfig }:
, ApplicationServices, CoreServices }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.21.0"; version = "1.21.0";
@ -12,6 +11,13 @@ stdenv.mkDerivation rec {
sha256 = "1jjg34ppnlrnb634q9mla7whl7rm9xmjgnzckrznqcycwzir074b"; sha256 = "1jjg34ppnlrnb634q9mla7whl7rm9xmjgnzckrznqcycwzir074b";
}; };
patches = [
(fetchpatch {
url = "https://github.com/libuv/libuv/pull/1909.patch";
sha256 = "1s2692h4dvqnzwwicrkpj0zph1i2bhv39w31z5vh7ssgvykaradj";
})
];
postPatch = let postPatch = let
toDisable = [ toDisable = [
"getnameinfo_basic" "udp_send_hang_loop" # probably network-dependent "getnameinfo_basic" "udp_send_hang_loop" # probably network-dependent
@ -19,15 +25,28 @@ stdenv.mkDerivation rec {
"getaddrinfo_fail" "getaddrinfo_fail_sync" "getaddrinfo_fail" "getaddrinfo_fail_sync"
"threadpool_multiple_event_loops" # times out on slow machines "threadpool_multiple_event_loops" # times out on slow machines
] ]
# sometimes: timeout (no output), failed uv_listen # Sometimes: timeout (no output), failed uv_listen. Someone
++ stdenv.lib.optionals stdenv.isDarwin [ "process_title" "emfile" ]; # should report these failures to libuv team. There tests should
# be much more robust.
++ stdenv.lib.optionals stdenv.isDarwin [
"process_title" "emfile" "poll_duplex" "poll_unidirectional"
"ipc_listen_before_write" "ipc_listen_after_write" "ipc_tcp_connection"
"tcp_alloc_cb_fail" "tcp_ping_pong" "tcp_ref3" "tcp_ref4"
"tcp_bind6_error_inval" "tcp_bind6_error_addrinuse" "tcp_read_stop"
"tcp_unexpected_read" "tcp_write_to_half_open_connection"
"tcp_oob" "tcp_close_accept" "tcp_create_early_accept"
"tcp_create_early" "tcp_close" "tcp_bind_error_inval"
"tcp_bind_error_addrinuse" "tcp_shutdown_after_write"
"tcp_open" "tcp_write_queue_order" "tcp_try_write" "tcp_writealot"
"multiple_listen" "delayed_accept"
"shutdown_close_tcp" "shutdown_eof" "shutdown_twice" "callback_stack"
];
tdRegexp = lib.concatStringsSep "\\|" toDisable; tdRegexp = lib.concatStringsSep "\\|" toDisable;
in lib.optionalString doCheck '' in lib.optionalString doCheck ''
sed '/${tdRegexp}/d' -i test/test-list.h sed '/${tdRegexp}/d' -i test/test-list.h
''; '';
nativeBuildInputs = [ automake autoconf libtool pkgconfig ]; nativeBuildInputs = [ automake autoconf libtool pkgconfig ];
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices CoreServices ];
preConfigure = '' preConfigure = ''
LIBTOOLIZE=libtoolize ./autogen.sh LIBTOOLIZE=libtoolize ./autogen.sh
@ -35,10 +54,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
# These should be turned back on, but see https://github.com/NixOS/nixpkgs/issues/23651 doCheck = true;
# For now the tests are just breaking large swaths of the nixpkgs binary cache for Darwin,
# and I'd rather have everything else work at all than have stronger assurance here.
doCheck = !stdenv.isDarwin;
meta = with lib; { meta = with lib; {
description = "A multi-platform support library with a focus on asynchronous I/O"; description = "A multi-platform support library with a focus on asynchronous I/O";

View File

@ -71,6 +71,8 @@ let
# because we copy files from the system # because we copy files from the system
preferLocalBuild = true; preferLocalBuild = true;
disallowedRequisites = [ sdk ];
installPhase = '' installPhase = ''
linkFramework() { linkFramework() {
local path="$1" local path="$1"

View File

@ -86,7 +86,6 @@ with frameworks; with libs; {
QTKit = [ CoreMediaIO CoreMedia MediaToolbox QuickTime VideoToolbox ]; QTKit = [ CoreMediaIO CoreMedia MediaToolbox QuickTime VideoToolbox ];
QuickLook = [ ApplicationServices CF ]; QuickLook = [ ApplicationServices CF ];
QuickTime = [ ApplicationServices AudioUnit Carbon CoreAudio CoreServices OpenGL QuartzCore ]; QuickTime = [ ApplicationServices AudioUnit Carbon CoreAudio CoreServices OpenGL QuartzCore ];
Ruby = [];
SceneKit = []; SceneKit = [];
ScreenSaver = []; ScreenSaver = [];
Scripting = []; Scripting = [];

View File

@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
sha256 = "0apcz4vy2z5645jhrs60wj3w27mncjjqv42h5lln36g6qs2n9113"; sha256 = "0apcz4vy2z5645jhrs60wj3w27mncjjqv42h5lln36g6qs2n9113";
}; };
disallowedRequisites = [ apple_sdk.sdk ];
patchPhase = '' patchPhase = ''
# copied from libsecurity_generic # copied from libsecurity_generic
cp -R ${osx_private_sdk}/include/SecurityPrivateHeaders Security cp -R ${osx_private_sdk}/include/SecurityPrivateHeaders Security
@ -97,4 +99,3 @@ stdenv.mkDerivation rec {
license = licenses.apsl20; license = licenses.apsl20;
}; };
} }

View File

@ -10683,9 +10683,7 @@ with pkgs;
then darwin.libunwind then darwin.libunwind
else callPackage ../development/libraries/libunwind { }; else callPackage ../development/libraries/libunwind { };
libuv = callPackage ../development/libraries/libuv { libuv = callPackage ../development/libraries/libuv { };
inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
};
libv4l = lowPrio (v4l_utils.override { libv4l = lowPrio (v4l_utils.override {
withUtils = false; withUtils = false;