mirror of
https://github.com/NixOS/nix
synced 2025-06-25 14:51:16 +02:00
Merge pull request #63 from DeterminateSystems/eelcodolstra/fh-806-lock-files-no-longer-contain-nar-hashes
Fix emitting narHash in lock files when lazy trees are disabled
This commit is contained in:
commit
f2214a5da5
4 changed files with 5 additions and 2 deletions
|
@ -77,7 +77,7 @@ StorePath EvalState::mountInput(
|
||||||
|
|
||||||
storeFS->mount(CanonPath(store->printStorePath(storePath)), accessor);
|
storeFS->mount(CanonPath(store->printStorePath(storePath)), accessor);
|
||||||
|
|
||||||
if (requireLockable && !input.isLocked() && !input.getNarHash()) {
|
if (requireLockable && (!settings.lazyTrees || !input.isLocked()) && !input.getNarHash()) {
|
||||||
auto narHash = accessor->hashPath(CanonPath::root);
|
auto narHash = accessor->hashPath(CanonPath::root);
|
||||||
input.attrs.insert_or_assign("narHash", narHash.to_string(HashFormat::SRI, true));
|
input.attrs.insert_or_assign("narHash", narHash.to_string(HashFormat::SRI, true));
|
||||||
}
|
}
|
||||||
|
|
|
@ -292,7 +292,7 @@ path11=$(nix eval --impure --raw --expr "(builtins.fetchGit ./.).outPath")
|
||||||
empty="$TEST_ROOT/empty"
|
empty="$TEST_ROOT/empty"
|
||||||
git init "$empty"
|
git init "$empty"
|
||||||
|
|
||||||
emptyAttrs='{ lastModified = 0; lastModifiedDate = "19700101000000"; rev = "0000000000000000000000000000000000000000"; revCount = 0; shortRev = "0000000"; submodules = false; }'
|
emptyAttrs='{ lastModified = 0; lastModifiedDate = "19700101000000"; narHash = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo="; rev = "0000000000000000000000000000000000000000"; revCount = 0; shortRev = "0000000"; submodules = false; }'
|
||||||
|
|
||||||
[[ $(nix eval --impure --expr "builtins.removeAttrs (builtins.fetchGit $empty) [\"outPath\"]") = $emptyAttrs ]]
|
[[ $(nix eval --impure --expr "builtins.removeAttrs (builtins.fetchGit $empty) [\"outPath\"]") = $emptyAttrs ]]
|
||||||
|
|
||||||
|
|
|
@ -161,6 +161,7 @@ expect 1 nix build -o "$TEST_ROOT/result" "$flake2Dir#bar" --no-update-lock-file
|
||||||
nix build -o "$TEST_ROOT/result" "$flake2Dir#bar" --commit-lock-file
|
nix build -o "$TEST_ROOT/result" "$flake2Dir#bar" --commit-lock-file
|
||||||
[[ -e "$flake2Dir/flake.lock" ]]
|
[[ -e "$flake2Dir/flake.lock" ]]
|
||||||
[[ -z $(git -C "$flake2Dir" diff main || echo failed) ]]
|
[[ -z $(git -C "$flake2Dir" diff main || echo failed) ]]
|
||||||
|
[[ $(jq --indent 0 . < "$flake2Dir/flake.lock") =~ ^'{"nodes":{"flake1":{"locked":{"lastModified":'.*',"narHash":"sha256-'.*'","ref":"refs/heads/master","rev":"'.*'","revCount":2,"type":"git","url":"file:///'.*'"},"original":{"id":"flake1","type":"indirect"}},"root":{"inputs":{"flake1":"flake1"}}},"root":"root","version":7}'$ ]]
|
||||||
|
|
||||||
# Rerunning the build should not change the lockfile.
|
# Rerunning the build should not change the lockfile.
|
||||||
nix build -o "$TEST_ROOT/result" "$flake2Dir#bar"
|
nix build -o "$TEST_ROOT/result" "$flake2Dir#bar"
|
||||||
|
|
|
@ -69,6 +69,8 @@ git -C "$rootFlake" add flake.nix sub2/flake.nix
|
||||||
git -C "$rootFlake" add sub2/flake.lock
|
git -C "$rootFlake" add sub2/flake.lock
|
||||||
[[ $(nix eval "$subflake2#y") = 15 ]]
|
[[ $(nix eval "$subflake2#y") = 15 ]]
|
||||||
|
|
||||||
|
[[ $(jq --indent 0 . < "$subflake2/flake.lock") =~ ^'{"nodes":{"root":{"inputs":{"root":"root_2","sub1":"sub1"}},"root_2":{"inputs":{"sub0":"sub0"},"locked":{"path":"..","type":"path"},"original":{"path":"..","type":"path"},"parent":[]},"root_3":{"inputs":{"sub0":"sub0_2"},"locked":{"path":"../","type":"path"},"original":{"path":"../","type":"path"},"parent":["sub1"]},"sub0":{"locked":{"path":"sub0","type":"path"},"original":{"path":"sub0","type":"path"},"parent":["root"]},"sub0_2":{"locked":{"path":"sub0","type":"path"},"original":{"path":"sub0","type":"path"},"parent":["sub1","root"]},"sub1":{"inputs":{"root":"root_3"},"locked":{"path":"../sub1","type":"path"},"original":{"path":"../sub1","type":"path"},"parent":[]}},"root":"root","version":7}'$ ]]
|
||||||
|
|
||||||
# Make sure there are no content locks for relative path flakes.
|
# Make sure there are no content locks for relative path flakes.
|
||||||
(! grep "$TEST_ROOT" "$subflake2/flake.lock")
|
(! grep "$TEST_ROOT" "$subflake2/flake.lock")
|
||||||
if ! isTestOnNixOS; then
|
if ! isTestOnNixOS; then
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue