diff options
author | Puck Meerburg <puck@puck.moe> | 2020-01-02 17:20:57 +0000 |
---|---|---|
committer | edef <edef@edef.eu> | 2020-01-02 22:56:03 +0000 |
commit | 515c0a263e137a00e82f7d981284dbe54db23247 (patch) | |
tree | 3a1c2d1792dfc4e058667347c89398701d49a956 /src | |
parent | 3469062e7638b07a2ff10638c58a78499f11b2a9 (diff) |
passAsFile: hash the attribute name instead of numbering sequentially
This makes the paths consistent without relying on ordering.
Co-authored-by: edef <edef@edef.eu>
Diffstat (limited to 'src')
-rw-r--r-- | src/libstore/build.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 5d681d279..9ee3b04e3 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -2455,12 +2455,12 @@ void DerivationGoal::initTmpDir() { if (!parsedDrv->getStructuredAttrs()) { StringSet passAsFile = tokenizeString<StringSet>(get(drv->env, "passAsFile").value_or("")); - int fileNr = 0; for (auto & i : drv->env) { if (passAsFile.find(i.first) == passAsFile.end()) { env[i.first] = i.second; } else { - string fn = ".attr-" + std::to_string(fileNr++); + auto hash = hashString(htSHA256, i.first); + string fn = ".attr-" + hash.to_string(); Path p = tmpDir + "/" + fn; writeFile(p, i.second); chownToBuilder(p); |