about summary refs log tree commit diff
path: root/third_party/nix
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 /third_party/nix
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)
Diffstat (limited to 'third_party/nix')
-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 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
   '';