Skip to content

Commit

Permalink
Merge pull request NixOS#11695 from DeterminateSystems/override-lastM…
Browse files Browse the repository at this point in the history
…odified

path fetcher: Allow the lastModified attribute to be overriden again
  • Loading branch information
edolstra authored Oct 16, 2024
2 parents de12892 + 781ff76 commit facc502
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/libfetchers/path.cc
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,11 @@ struct PathInputScheme : InputScheme
});
storePath = store->addToStoreFromDump(*src, "source");
}
input.attrs.insert_or_assign("lastModified", uint64_t(mtime));

/* Trust the lastModified value supplied by the user, if
any. It's not a "secure" attribute so we don't care. */
if (!input.getLastModified())
input.attrs.insert_or_assign("lastModified", uint64_t(mtime));

return {makeStorePathAccessor(store, *storePath), std::move(input)};
}
Expand Down
3 changes: 3 additions & 0 deletions tests/functional/fetchPath.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@ touch "$TEST_ROOT/foo" -t 202211111111
# We only check whether 2022-11-1* **:**:** is the last modified date since
# `lastModified` is transformed into UTC in `builtins.fetchTarball`.
[[ "$(nix eval --impure --raw --expr "(builtins.fetchTree \"path://$TEST_ROOT/foo\").lastModifiedDate")" =~ 2022111.* ]]

# Check that we can override lastModified for "path:" inputs.
[[ "$(nix eval --impure --expr "(builtins.fetchTree { type = \"path\"; path = \"$TEST_ROOT/foo\"; lastModified = 123; }).lastModified")" = 123 ]]

0 comments on commit facc502

Please sign in to comment.