diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2018-01-19 14:53:34 +0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2018-01-19 15:00:38 +0100 |
commit | 3c4c30eadd879f512ac2075a7ba39c37ff77bf5c (patch) | |
tree | f6588bf8f0c0ab2d117ae27a09ed7cd7c4dd4a8c /src/libstore | |
parent | 2896bb682691e8ce2be055a386bdeef93ae05586 (diff) |
Rewrite builtin derivation environment
Also add a test.
Fixes #1803.
Closes #1805.
Diffstat (limited to 'src/libstore')
-rw-r--r-- | src/libstore/build.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 523d737d9..55066205d 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -2933,8 +2933,13 @@ void DerivationGoal::runChild() if (drv->isBuiltin()) { try { logger = makeJSONLogger(*logger); + + BasicDerivation drv2(*drv); + for (auto & e : drv2.env) + e.second = rewriteStrings(e.second, inputRewrites); + if (drv->builder == "builtin:fetchurl") - builtinFetchurl(*drv, netrcData); + builtinFetchurl(drv2, netrcData); else throw Error(format("unsupported builtin function '%1%'") % string(drv->builder, 8)); _exit(0); |