From c63ca0a431a7a3bdf2aaae05b2acca86d8c1e7bd Mon Sep 17 00:00:00 2001 From: Jan Malakhovski Date: Wed, 5 Sep 2018 01:08:14 +0000 Subject: [PATCH 1/3] stdenv: implement enableParallelChecking option Works similarly to `enableParallelBuilding`, but is set by default when `enableParallelBuilding` is set. In my experience most packages that build fine in parallel also check fine in parallel. --- pkgs/stdenv/generic/make-derivation.nix | 2 ++ pkgs/stdenv/generic/setup.sh | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index e1ce3200e8c..3f35dce2eb2 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -227,6 +227,8 @@ rec { inherit doCheck doInstallCheck; inherit outputs; + } // lib.optionalAttrs (attrs.enableParallelBuilding or false) { + enableParallelChecking = attrs.enableParallelChecking or true; } // lib.optionalAttrs (hardeningDisable != [] || hardeningEnable != []) { NIX_HARDENING_ENABLE = enabledHardeningOptions; } // lib.optionalAttrs (stdenv.buildPlatform.isDarwin) { diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 141e94c5ed4..e51dc1f1a0a 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -1044,7 +1044,7 @@ checkPhase() { # Old bash empty array hack # shellcheck disable=SC2086 local flagsArray=( - ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} + ${enableParallelChecking:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"} ${checkFlags:-VERBOSE=y} ${checkFlagsArray+"${checkFlagsArray[@]}"} ${checkTarget} @@ -1176,7 +1176,7 @@ installCheckPhase() { # Old bash empty array hack # shellcheck disable=SC2086 local flagsArray=( - ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} + ${enableParallelChecking:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"} $installCheckFlags ${installCheckFlagsArray+"${installCheckFlagsArray[@]}"} ${installCheckTarget:-installcheck} From 20106e1066f8174ebb3c018966699181d1cf3706 Mon Sep 17 00:00:00 2001 From: Jan Malakhovski Date: Wed, 5 Sep 2018 01:12:48 +0000 Subject: [PATCH 2/3] gettext: disable parallel checking --- pkgs/development/libraries/gettext/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix index 4531a5a01d4..1b2f6bbc222 100644 --- a/pkgs/development/libraries/gettext/default.nix +++ b/pkgs/development/libraries/gettext/default.nix @@ -51,6 +51,7 @@ stdenv.mkDerivation rec { gettextNeedsLdflags = stdenv.hostPlatform.libc != "glibc" && !stdenv.hostPlatform.isMusl; enableParallelBuilding = true; + enableParallelChecking = false; # fails sometimes meta = with lib; { description = "Well integrated set of translation tools and documentation"; From e48f2d02268fe926ef16cbd8b2a87391bea739c4 Mon Sep 17 00:00:00 2001 From: Jan Malakhovski Date: Wed, 5 Sep 2018 01:13:16 +0000 Subject: [PATCH 3/3] tor: disable parallel checking --- pkgs/tools/security/tor/default.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix index bb49e478910..b03c753b0a3 100644 --- a/pkgs/tools/security/tor/default.nix +++ b/pkgs/tools/security/tor/default.nix @@ -23,8 +23,6 @@ stdenv.mkDerivation rec { outputs = [ "out" "geoip" ]; - enableParallelBuilding = true; - nativeBuildInputs = [ pkgconfig ]; buildInputs = [ libevent openssl zlib ] ++ stdenv.lib.optionals stdenv.isLinux [ libseccomp systemd libcap ]; @@ -37,14 +35,17 @@ stdenv.mkDerivation rec { --replace 'exec torsocks' 'exec ${torsocks}/bin/torsocks' ''; + enableParallelBuilding = true; + enableParallelChecking = false; # 4 tests fail randomly + + doCheck = true; + postInstall = '' mkdir -p $geoip/share/tor mv $out/share/tor/geoip{,6} $geoip/share/tor rm -rf $out/share/tor ''; - doCheck = true; - passthru.updateScript = import ./update.nix { inherit (stdenv) lib; inherit