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
, ApplicationServices, CoreServices }:
{ stdenv, lib, fetchpatch, fetchFromGitHub, autoconf, automake, libtool, pkgconfig }:
stdenv.mkDerivation rec {
version = "1.21.0";
@ -12,6 +11,13 @@ stdenv.mkDerivation rec {
sha256 = "1jjg34ppnlrnb634q9mla7whl7rm9xmjgnzckrznqcycwzir074b";
};
patches = [
(fetchpatch {
url = "https://github.com/libuv/libuv/pull/1909.patch";
sha256 = "1s2692h4dvqnzwwicrkpj0zph1i2bhv39w31z5vh7ssgvykaradj";
})
];
postPatch = let
toDisable = [
"getnameinfo_basic" "udp_send_hang_loop" # probably network-dependent
@ -19,15 +25,28 @@ stdenv.mkDerivation rec {
"getaddrinfo_fail" "getaddrinfo_fail_sync"
"threadpool_multiple_event_loops" # times out on slow machines
]
# sometimes: timeout (no output), failed uv_listen
++ stdenv.lib.optionals stdenv.isDarwin [ "process_title" "emfile" ];
# Sometimes: timeout (no output), failed uv_listen. Someone
# 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;
in lib.optionalString doCheck ''
sed '/${tdRegexp}/d' -i test/test-list.h
'';
nativeBuildInputs = [ automake autoconf libtool pkgconfig ];
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices CoreServices ];
preConfigure = ''
LIBTOOLIZE=libtoolize ./autogen.sh
@ -35,10 +54,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
# These should be turned back on, but see https://github.com/NixOS/nixpkgs/issues/23651
# 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;
doCheck = true;
meta = with lib; {
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
preferLocalBuild = true;
disallowedRequisites = [ sdk ];
installPhase = ''
linkFramework() {
local path="$1"

View File

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

View File

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

View File

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