summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Malakhovski <oxij@oxij.org>2018-03-15 00:00:04 +0000
committerJan Malakhovski <oxij@oxij.org>2018-04-26 20:15:47 +0000
commitd834ba6654fc5fa79c6cc8b0d5cdaa5d8f85fd0e (patch)
tree24b529ab3c3c7e029b6575a6fef37e038a8ac91e
parent50af975d8595c7fce05bc8bbd9db93e3c4cece25 (diff)
downloadnixlib-d834ba6654fc5fa79c6cc8b0d5cdaa5d8f85fd0e.tar
nixlib-d834ba6654fc5fa79c6cc8b0d5cdaa5d8f85fd0e.tar.gz
nixlib-d834ba6654fc5fa79c6cc8b0d5cdaa5d8f85fd0e.tar.bz2
nixlib-d834ba6654fc5fa79c6cc8b0d5cdaa5d8f85fd0e.tar.lz
nixlib-d834ba6654fc5fa79c6cc8b0d5cdaa5d8f85fd0e.tar.xz
nixlib-d834ba6654fc5fa79c6cc8b0d5cdaa5d8f85fd0e.tar.zst
nixlib-d834ba6654fc5fa79c6cc8b0d5cdaa5d8f85fd0e.zip
stdenv: introduce and use `config.doCheckByDefault` option
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix22
1 files changed, 14 insertions, 8 deletions
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 7b5f9f7d6b0b..c7a991572e9c 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -46,11 +46,13 @@ rec {
         (stdenv.hostPlatform != stdenv.buildPlatform)
         [ "build" "host" ]
 
+    # TODO(@Ericson2314): Make unconditional / resolve #33599
     # Check phase
-    , doCheck ? false
+    , doCheck ? config.doCheckByDefault or false
 
+    # TODO(@Ericson2314): Make unconditional / resolve #33599
     # InstallCheck phase
-    , doInstallCheck ? false
+    , doInstallCheck ? config.doCheckByDefault or false
 
     , crossConfig ? null
     , meta ? {}
@@ -120,6 +122,11 @@ rec {
         ]
       ];
 
+      # TODO(@oxij, @Ericson2314): This is here to keep the old semantics, remove when
+      # no package has `doCheck = true`.
+      doCheck' = doCheck && stdenv.hostPlatform == stdenv.buildPlatform;
+      doInstallCheck' = doInstallCheck && stdenv.hostPlatform == stdenv.buildPlatform;
+
       outputs' =
         outputs ++
         (if separateDebugInfo then assert stdenv.hostPlatform.isLinux; [ "debug" ] else []);
@@ -127,6 +134,7 @@ rec {
       derivationArg =
         (removeAttrs attrs
           ["meta" "passthru" "crossAttrs" "pos"
+           "doCheck" "doInstallCheck"
            "__impureHostDeps" "__propagatedImpureHostDeps"
            "sandboxProfile" "propagatedSandboxProfile"])
         // (let
@@ -202,12 +210,10 @@ rec {
           __propagatedImpureHostDeps = computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps;
         } // lib.optionalAttrs (outputs' != [ "out" ]) {
           outputs = outputs';
-        } // lib.optionalAttrs (attrs ? doCheck) {
-          # TODO(@Ericson2314): Make unconditional / resolve #33599
-          doCheck = doCheck && (stdenv.hostPlatform == stdenv.buildPlatform);
-        } // lib.optionalAttrs (attrs ? doInstallCheck) {
-          # TODO(@Ericson2314): Make unconditional / resolve #33599
-          doInstallCheck = doInstallCheck && (stdenv.hostPlatform == stdenv.buildPlatform);
+        } // lib.optionalAttrs doCheck' {
+          doCheck = true;
+        } // lib.optionalAttrs doInstallCheck' {
+          doInstallCheck = true;
         });
 
       validity = import ./check-meta.nix {