mirror of
https://github.com/NixOS/nix.git
synced 2025-11-12 13:36:02 +01:00
Merge pull request #124 from DeterminateSystems/sync-2.29.1
Sync 2.29.1
This commit is contained in:
commit
5dea62be29
4 changed files with 22 additions and 5 deletions
2
.version
2
.version
|
|
@ -1 +1 @@
|
||||||
2.29.0
|
2.29.1
|
||||||
|
|
|
||||||
|
|
@ -554,7 +554,7 @@ LockedFlake lockFlake(
|
||||||
|
|
||||||
/* Get the input flake, resolve 'path:./...'
|
/* Get the input flake, resolve 'path:./...'
|
||||||
flakerefs relative to the parent flake. */
|
flakerefs relative to the parent flake. */
|
||||||
auto getInputFlake = [&](const FlakeRef & ref)
|
auto getInputFlake = [&](const FlakeRef & ref, const fetchers::UseRegistries useRegistries)
|
||||||
{
|
{
|
||||||
if (auto resolvedPath = resolveRelativePath()) {
|
if (auto resolvedPath = resolveRelativePath()) {
|
||||||
return readFlake(state, ref, ref, ref, *resolvedPath, inputAttrPath);
|
return readFlake(state, ref, ref, ref, *resolvedPath, inputAttrPath);
|
||||||
|
|
@ -645,7 +645,7 @@ LockedFlake lockFlake(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mustRefetch) {
|
if (mustRefetch) {
|
||||||
auto inputFlake = getInputFlake(oldLock->lockedRef);
|
auto inputFlake = getInputFlake(oldLock->lockedRef, useRegistriesInputs);
|
||||||
nodePaths.emplace(childNode, inputFlake.path.parent());
|
nodePaths.emplace(childNode, inputFlake.path.parent());
|
||||||
computeLocks(inputFlake.inputs, childNode, inputAttrPath, oldLock, followsPrefix,
|
computeLocks(inputFlake.inputs, childNode, inputAttrPath, oldLock, followsPrefix,
|
||||||
inputFlake.path, false);
|
inputFlake.path, false);
|
||||||
|
|
@ -670,7 +670,8 @@ LockedFlake lockFlake(
|
||||||
nuked the next time we update the lock
|
nuked the next time we update the lock
|
||||||
file. That is, overrides are sticky unless you
|
file. That is, overrides are sticky unless you
|
||||||
use --no-write-lock-file. */
|
use --no-write-lock-file. */
|
||||||
auto ref = (input2.ref && explicitCliOverrides.contains(inputAttrPath)) ? *input2.ref : *input.ref;
|
auto inputIsOverride = explicitCliOverrides.contains(inputAttrPath);
|
||||||
|
auto ref = (input2.ref && inputIsOverride) ? *input2.ref : *input.ref;
|
||||||
|
|
||||||
/* Warn against the use of indirect flakerefs
|
/* Warn against the use of indirect flakerefs
|
||||||
(but only at top-level since we don't want
|
(but only at top-level since we don't want
|
||||||
|
|
@ -696,7 +697,7 @@ LockedFlake lockFlake(
|
||||||
};
|
};
|
||||||
|
|
||||||
if (input.isFlake) {
|
if (input.isFlake) {
|
||||||
auto inputFlake = getInputFlake(*input.ref);
|
auto inputFlake = getInputFlake(*input.ref, inputIsOverride ? fetchers::UseRegistries::All : useRegistriesInputs);
|
||||||
|
|
||||||
auto childNode = make_ref<LockedNode>(
|
auto childNode = make_ref<LockedNode>(
|
||||||
inputFlake.lockedRef,
|
inputFlake.lockedRef,
|
||||||
|
|
|
||||||
|
|
@ -187,6 +187,10 @@ void MemorySink::createSymlink(const CanonPath & path, const std::string & targe
|
||||||
ref<SourceAccessor> makeEmptySourceAccessor()
|
ref<SourceAccessor> makeEmptySourceAccessor()
|
||||||
{
|
{
|
||||||
static auto empty = make_ref<MemorySourceAccessor>().cast<SourceAccessor>();
|
static auto empty = make_ref<MemorySourceAccessor>().cast<SourceAccessor>();
|
||||||
|
/* Don't forget to clear the display prefix, as the default constructed
|
||||||
|
SourceAccessor has the «unknown» prefix. Since this accessor is supposed
|
||||||
|
to mimic an empty root directory the prefix needs to be empty. */
|
||||||
|
empty->setPathDisplay("");
|
||||||
return empty;
|
return empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,3 +34,15 @@ rm -rf $TEST_ROOT/eval-out
|
||||||
(! nix eval --store dummy:// --write-to $TEST_ROOT/eval-out --expr '{ "." = "bla"; }')
|
(! nix eval --store dummy:// --write-to $TEST_ROOT/eval-out --expr '{ "." = "bla"; }')
|
||||||
|
|
||||||
(! nix eval --expr '~/foo')
|
(! nix eval --expr '~/foo')
|
||||||
|
|
||||||
|
expectStderr 0 nix eval --expr "/some/absolute/path" \
|
||||||
|
| grepQuiet "/some/absolute/path"
|
||||||
|
|
||||||
|
expectStderr 0 nix eval --expr "/some/absolute/path" --impure \
|
||||||
|
| grepQuiet "/some/absolute/path"
|
||||||
|
|
||||||
|
expectStderr 0 nix eval --expr "some/relative/path" \
|
||||||
|
| grepQuiet "$PWD/some/relative/path"
|
||||||
|
|
||||||
|
expectStderr 0 nix eval --expr "some/relative/path" --impure \
|
||||||
|
| grepQuiet "$PWD/some/relative/path"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue