about summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-11-29 19:35:55 -0600
committerGitHub <noreply@github.com>2018-11-29 19:35:55 -0600
commite6834171b930f6db3796a16785d7cbb3173541b1 (patch)
tree05aec16ed4888bf40b0a98092c3d09d8dff8e1ec /pkgs/stdenv
parentfe6a9a37b99a89288db055ddda1916ec83ec0d31 (diff)
parenta56fe056ece1d7c0b384a08467408ded507573c7 (diff)
downloadnixlib-e6834171b930f6db3796a16785d7cbb3173541b1.tar
nixlib-e6834171b930f6db3796a16785d7cbb3173541b1.tar.gz
nixlib-e6834171b930f6db3796a16785d7cbb3173541b1.tar.bz2
nixlib-e6834171b930f6db3796a16785d7cbb3173541b1.tar.lz
nixlib-e6834171b930f6db3796a16785d7cbb3173541b1.tar.xz
nixlib-e6834171b930f6db3796a16785d7cbb3173541b1.tar.zst
nixlib-e6834171b930f6db3796a16785d7cbb3173541b1.zip
Merge pull request #51183 from matthewbauer/make-derivation-no-assertions
Fix breaking changes to make-derivation
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix18
1 files changed, 6 insertions, 12 deletions
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 1829531e8959..fa0d4ea405e2 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -81,13 +81,6 @@ rec {
     , ... } @ attrs:
 
     let
-      # Check that the name is consistent with pname and version:
-      selfConsistent = (with attrs; attrs ? "name" ->
-        (lib.assertMsg (attrs ? "version" -> lib.strings.hasInfix version name)
-          "version ${version} does not appear in name ${name}" &&
-        lib.assertMsg (attrs ? "pname" -> lib.strings.hasInfix pname name)
-          "pname ${pname} does not appear in name ${name}"));
-
       computedName = if name != "" then name else "${attrs.pname}-${attrs.version}";
 
       # TODO(@oxij, @Ericson2314): This is here to keep the old semantics, remove when
@@ -95,14 +88,15 @@ rec {
       doCheck' = doCheck && stdenv.hostPlatform == stdenv.buildPlatform;
       doInstallCheck' = doInstallCheck && stdenv.hostPlatform == stdenv.buildPlatform;
 
-      outputs' = outputs ++ lib.optional separateDebugInfo "debug";
+      separateDebugInfo' = separateDebugInfo && stdenv.hostPlatform.isLinux;
+      outputs' = outputs ++ lib.optional separateDebugInfo' "debug";
 
       fixedOutputDrv = attrs ? outputHash;
       noNonNativeDeps = builtins.length (depsBuildTarget ++ depsBuildTargetPropagated
                                       ++ depsHostHost ++ depsHostHostPropagated
                                       ++ buildInputs ++ propagatedBuildInputs
                                       ++ depsTargetTarget ++ depsTargetTargetPropagated) == 0;
-      runtimeSensativeIfFixedOutput = fixedOutputDrv -> !noNonNativeDeps;
+      dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || stdenv.cc == null;
       supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ];
       defaultHardeningFlags = if stdenv.targetPlatform.isMusl
                               then supportedHardeningFlags
@@ -130,7 +124,7 @@ rec {
         [
           (map (drv: drv.__spliced.buildBuild or drv) depsBuildBuild)
           (map (drv: drv.nativeDrv or drv) nativeBuildInputs
-             ++ lib.optional separateDebugInfo ../../build-support/setup-hooks/separate-debug-info.sh
+             ++ lib.optional separateDebugInfo' ../../build-support/setup-hooks/separate-debug-info.sh
              ++ lib.optional stdenv.hostPlatform.isWindows ../../build-support/setup-hooks/win-dll-link.sh)
           (map (drv: drv.__spliced.buildTarget or drv) depsBuildTarget)
         ]
@@ -188,12 +182,12 @@ rec {
         // {
           # A hack to make `nix-env -qa` and `nix search` ignore broken packages.
           # TODO(@oxij): remove this assert when something like NixOS/nix#1771 gets merged into nix.
-          name = assert selfConsistent && validity.handled && (separateDebugInfo -> stdenv.hostPlatform.isLinux); computedName + lib.optionalString
+          name = assert validity.handled; computedName + lib.optionalString
             # Fixed-output derivations like source tarballs shouldn't get a host
             # suffix. But we have some weird ones with run-time deps that are
             # just used for their side-affects. Those might as well since the
             # hash can't be the same. See #32986.
-            (stdenv.hostPlatform != stdenv.buildPlatform && runtimeSensativeIfFixedOutput)
+            (stdenv.hostPlatform != stdenv.buildPlatform && !dontAddHostSuffix)
             ("-" + stdenv.hostPlatform.config);
 
           builder = attrs.realBuilder or stdenv.shell;