diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2018-07-10 15:51:20 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2018-07-10 15:51:20 +0200 |
commit | f8701caafc26f2df17ab44fd4a2511c1dc11f9bf (patch) | |
tree | a63c326409d7795cbb5dd310eb0b882b86724449 /pkgs/stdenv | |
parent | 99afb5d4c73265793680360d67bc3b16b0062610 (diff) | |
parent | 2698bb461fe36069a0bcfeec52d7c99eb476b134 (diff) | |
download | nixlib-f8701caafc26f2df17ab44fd4a2511c1dc11f9bf.tar nixlib-f8701caafc26f2df17ab44fd4a2511c1dc11f9bf.tar.gz nixlib-f8701caafc26f2df17ab44fd4a2511c1dc11f9bf.tar.bz2 nixlib-f8701caafc26f2df17ab44fd4a2511c1dc11f9bf.tar.lz nixlib-f8701caafc26f2df17ab44fd4a2511c1dc11f9bf.tar.xz nixlib-f8701caafc26f2df17ab44fd4a2511c1dc11f9bf.tar.zst nixlib-f8701caafc26f2df17ab44fd4a2511c1dc11f9bf.zip |
Merge master into staging
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/generic/make-derivation.nix | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index dce715a6a53e..778f107f71e1 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -77,8 +77,13 @@ rec { , ... } @ attrs: - # TODO(@Ericson2314): Make this more modular, and not O(n^2). let + fixedOutputDrv = attrs ? outputHash; + noNonNativeDeps = builtins.length (depsBuildTarget ++ depsBuildTargetPropagated + ++ depsHostHost ++ depsHostHostPropagated + ++ buildInputs ++ propagatedBuildInputs + ++ depsTargetTarget ++ depsTargetTargetPropagated) == 0; + runtimeSensativeIfFixedOutput = fixedOutputDrv -> !noNonNativeDeps; supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ]; defaultHardeningFlags = lib.remove "pie" supportedHardeningFlags; enabledHardeningOptions = @@ -168,7 +173,11 @@ 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 validity.handled; name + lib.optionalString - (stdenv.hostPlatform != stdenv.buildPlatform) + # 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.config); builder = attrs.realBuilder or stdenv.shell; |