diff options
author | edef <edef@edef.eu> | 2020-01-02T23·41+0000 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2020-05-31T18·20+0100 |
commit | 48f08e8cc029e946056c01c3f48607712ff054f1 (patch) | |
tree | e83346f7bf78e20f1f27a98840ec505be86a3f19 /third_party | |
parent | 7cc7fdacbe166878079d583b5c337967742a6276 (diff) |
fix(3p/nix): passAsFile: leave out the hash prefix r/876
Having a colon in the path may cause issues, and having the hash function indicated isn't actually necessary. We now verify the path format in the tests to prevent regressions. (cherry picked from commit c65a6fa86aef7bdf51fb4fba7bd31d265619ba3f)
Diffstat (limited to 'third_party')
-rw-r--r-- | third_party/nix/src/libstore/build.cc | 2 | ||||
-rw-r--r-- | third_party/nix/tests/pass-as-file.sh | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/third_party/nix/src/libstore/build.cc b/third_party/nix/src/libstore/build.cc index e7a9ea45e6..dcc3c7edc7 100644 --- a/third_party/nix/src/libstore/build.cc +++ b/third_party/nix/src/libstore/build.cc @@ -2490,7 +2490,7 @@ void DerivationGoal::initTmpDir() { env[i.first] = i.second; } else { auto hash = hashString(htSHA256, i.first); - std::string fn = ".attr-" + hash.to_string(); + std::string fn = ".attr-" + hash.to_string(Base32, false); Path p = tmpDir + "/" + fn; writeFile(p, rewriteStrings(i.second, inputRewrites)); chownToBuilder(p); diff --git a/third_party/nix/tests/pass-as-file.sh b/third_party/nix/tests/pass-as-file.sh index 3dfe10baa2..2c0bc5031a 100644 --- a/third_party/nix/tests/pass-as-file.sh +++ b/third_party/nix/tests/pass-as-file.sh @@ -10,6 +10,7 @@ mkDerivation { passAsFile = [ \"foo\" ]; foo = [ \"xyzzy\" ]; builder = builtins.toFile \"builder.sh\" '' + [ \"\$(basename \$fooPath)\" = .attr-1bp7cri8hplaz6hbz0v4f0nl44rl84q1sg25kgwqzipzd1mv89ic ] [ \"\$(cat \$fooPath)\" = xyzzy ] touch \$out ''; |