about summary refs log tree commit diff
diff options
context:
space:
mode:
authoredef <edef@edef.eu>2020-01-02T23·41+0000
committerVincent Ambo <tazjin@google.com>2020-05-31T18·20+0100
commit48f08e8cc029e946056c01c3f48607712ff054f1 (patch)
treee83346f7bf78e20f1f27a98840ec505be86a3f19
parent7cc7fdacbe166878079d583b5c337967742a6276 (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.cc2
-rw-r--r--third_party/nix/tests/pass-as-file.sh1
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
   '';