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 | |
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)
-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 e7a9ea45e6eb..dcc3c7edc7af 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 3dfe10baa235..2c0bc5031ad7 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 ''; |