aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorregnat <rg@regnat.ovh>2020-11-25 18:20:35 +0100
committerregnat <rg@regnat.ovh>2020-11-27 15:39:24 +0100
commit9bd8184f1fb2e91ac4fb7207abe56f2a30a81d97 (patch)
treeba3eb830b77b51e7dd7e1229e416e9f67cbb36bb
parent13c557fe823549db75c3dc24c99c46e1c4e1378e (diff)
Allow fixed-output derivations to depend on (floating) content-addressed ones
Fix an overlook of https://github.com/NixOS/nix/pull/4056
-rw-r--r--src/libstore/build/derivation-goal.cc4
-rw-r--r--tests/content-addressed.nix11
-rw-r--r--tests/content-addressed.sh1
3 files changed, 14 insertions, 2 deletions
diff --git a/src/libstore/build/derivation-goal.cc b/src/libstore/build/derivation-goal.cc
index 0e4504857..76c49f92c 100644
--- a/src/libstore/build/derivation-goal.cc
+++ b/src/libstore/build/derivation-goal.cc
@@ -493,8 +493,8 @@ void DerivationGoal::inputsRealised()
if (useDerivation) {
auto & fullDrv = *dynamic_cast<Derivation *>(drv.get());
- if ((!fullDrv.inputDrvs.empty() &&
- fullDrv.type() == DerivationType::CAFloating) || fullDrv.type() == DerivationType::DeferredInputAddressed) {
+ if ((!fullDrv.inputDrvs.empty() && derivationIsCA(fullDrv.type()))
+ || fullDrv.type() == DerivationType::DeferredInputAddressed) {
/* We are be able to resolve this derivation based on the
now-known results of dependencies. If so, we become a stub goal
aliasing that resolved derivation goal */
diff --git a/tests/content-addressed.nix b/tests/content-addressed.nix
index 985220f48..61079176f 100644
--- a/tests/content-addressed.nix
+++ b/tests/content-addressed.nix
@@ -63,4 +63,15 @@ rec {
echo ${rootCA}/non-ca-hello > $out/dep
'';
};
+ dependentFixedOutput = mkDerivation {
+ name = "dependent-fixed-output";
+ outputHashMode = "recursive";
+ outputHashAlgo = "sha256";
+ outputHash = "sha256-QvtAMbUl/uvi+LCObmqOhvNOapHdA2raiI4xG5zI5pA=";
+ buildCommand = ''
+ cat ${dependentCA}/dep
+ echo foo > $out
+ '';
+
+ };
}
diff --git a/tests/content-addressed.sh b/tests/content-addressed.sh
index bdab09c86..52f7529b5 100644
--- a/tests/content-addressed.sh
+++ b/tests/content-addressed.sh
@@ -40,6 +40,7 @@ testCutoff () {
#testDerivation dependentCA
testCutoffFor transitivelyDependentCA
testCutoffFor dependentNonCA
+ testCutoffFor dependentFixedOutput
}
testGC () {