summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorregnat <rg@regnat.ovh>2021-04-23 10:54:38 +0200
committerregnat <rg@regnat.ovh>2021-04-23 10:54:38 +0200
commitcc5b30c6ac03273cfd76975ba83744a210f1704d (patch)
tree7a56b4dd1d5bf7ab4a22420ab6e1fb0a020f65c9 /pkgs/stdenv
parent2f4562567398e145083e8df79e839f9f2728e4e8 (diff)
downloadnixpkgs-cc5b30c6ac03273cfd76975ba83744a210f1704d.tar
nixpkgs-cc5b30c6ac03273cfd76975ba83744a210f1704d.tar.gz
nixpkgs-cc5b30c6ac03273cfd76975ba83744a210f1704d.tar.bz2
nixpkgs-cc5b30c6ac03273cfd76975ba83744a210f1704d.tar.lz
nixpkgs-cc5b30c6ac03273cfd76975ba83744a210f1704d.tar.xz
nixpkgs-cc5b30c6ac03273cfd76975ba83744a210f1704d.tar.zst
nixpkgs-cc5b30c6ac03273cfd76975ba83744a210f1704d.zip
Make it easy to build everything as content-addressed
Add a config field `contentAddressedByDefault` and an associated
environment variable `NIXPKGS_CA_BY_DEFAULT` to make every nixpkgs
derivation content-addressed by default
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix5
1 files changed, 4 insertions, 1 deletions
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 5b446b11826..2bceb9e4333 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -89,7 +89,10 @@ in rec {
 
     , patches ? []
 
-    , __contentAddressed ? false
+    , __contentAddressed ?
+      (! attrs ? outputHash) # Fixed-output drvs can't be content addressed too
+      && (config.contentAddressedByDefault or false
+          || builtins.getEnv "NIXPKGS_CA_BY_DEFAULT" == "1")
 
     , ... } @ attrs: