Merge remote-tracking branch 'origin/master' into flakes
This commit is contained in:
commit
35f6651735
|
@ -1,9 +1,7 @@
|
||||||
corepkgs_FILES = \
|
corepkgs_FILES = \
|
||||||
buildenv.nix \
|
|
||||||
unpack-channel.nix \
|
unpack-channel.nix \
|
||||||
derivation.nix \
|
derivation.nix \
|
||||||
fetchurl.nix \
|
fetchurl.nix \
|
||||||
imported-drv-to-derivation.nix \
|
|
||||||
call-flake.nix
|
call-flake.nix
|
||||||
|
|
||||||
$(foreach file,config.nix $(corepkgs_FILES),$(eval $(call install-data-in,$(d)/$(file),$(datadir)/nix/corepkgs)))
|
$(foreach file,config.nix $(corepkgs_FILES),$(eval $(call install-data-in,$(d)/$(file),$(datadir)/nix/corepkgs)))
|
||||||
|
|
|
@ -146,8 +146,8 @@ public:
|
||||||
Expr * parseExprFromFile(const Path & path, StaticEnv & staticEnv);
|
Expr * parseExprFromFile(const Path & path, StaticEnv & staticEnv);
|
||||||
|
|
||||||
/* Parse a Nix expression from the specified string. */
|
/* Parse a Nix expression from the specified string. */
|
||||||
Expr * parseExprFromString(const string & s, const Path & basePath, StaticEnv & staticEnv);
|
Expr * parseExprFromString(std::string_view s, const Path & basePath, StaticEnv & staticEnv);
|
||||||
Expr * parseExprFromString(const string & s, const Path & basePath);
|
Expr * parseExprFromString(std::string_view s, const Path & basePath);
|
||||||
|
|
||||||
Expr * parseStdin();
|
Expr * parseStdin();
|
||||||
|
|
||||||
|
|
|
@ -39,3 +39,5 @@ $(eval $(call install-file-in, $(d)/nix-expr.pc, $(prefix)/lib/pkgconfig, 0644))
|
||||||
|
|
||||||
$(foreach i, $(wildcard src/libexpr/flake/*.hh), \
|
$(foreach i, $(wildcard src/libexpr/flake/*.hh), \
|
||||||
$(eval $(call install-file-in, $(i), $(includedir)/nix/flake, 0644)))
|
$(eval $(call install-file-in, $(i), $(includedir)/nix/flake, 0644)))
|
||||||
|
|
||||||
|
$(d)/primops.cc: $(d)/imported-drv-to-derivation.nix.gen.hh
|
||||||
|
|
|
@ -611,13 +611,13 @@ Expr * EvalState::parseExprFromFile(const Path & path, StaticEnv & staticEnv)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Expr * EvalState::parseExprFromString(const string & s, const Path & basePath, StaticEnv & staticEnv)
|
Expr * EvalState::parseExprFromString(std::string_view s, const Path & basePath, StaticEnv & staticEnv)
|
||||||
{
|
{
|
||||||
return parse(s.c_str(), "(string)", basePath, staticEnv);
|
return parse(s.data(), "(string)", basePath, staticEnv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Expr * EvalState::parseExprFromString(const string & s, const Path & basePath)
|
Expr * EvalState::parseExprFromString(std::string_view s, const Path & basePath)
|
||||||
{
|
{
|
||||||
return parseExprFromString(s, basePath, staticBaseEnv);
|
return parseExprFromString(s, basePath, staticBaseEnv);
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,10 +122,17 @@ static void prim_scopedImport(EvalState & state, const Pos & pos, Value * * args
|
||||||
mkString(*(outputsVal->listElems()[outputs_index++]), o.first);
|
mkString(*(outputsVal->listElems()[outputs_index++]), o.first);
|
||||||
}
|
}
|
||||||
w.attrs->sort();
|
w.attrs->sort();
|
||||||
Value fun;
|
|
||||||
state.evalFile(settings.nixDataDir + "/nix/corepkgs/imported-drv-to-derivation.nix", fun);
|
static Value * fun = nullptr;
|
||||||
state.forceFunction(fun, pos);
|
if (!fun) {
|
||||||
mkApp(v, fun, w);
|
fun = state.allocValue();
|
||||||
|
state.eval(state.parseExprFromString(
|
||||||
|
#include "imported-drv-to-derivation.nix.gen.hh"
|
||||||
|
, "/"), *fun);
|
||||||
|
}
|
||||||
|
|
||||||
|
state.forceFunction(*fun, pos);
|
||||||
|
mkApp(v, *fun, w);
|
||||||
state.forceAttrs(v, pos);
|
state.forceAttrs(v, pos);
|
||||||
} else {
|
} else {
|
||||||
state.forceAttrs(*args[0]);
|
state.forceAttrs(*args[0]);
|
||||||
|
|
|
@ -106,7 +106,9 @@ bool createUserEnv(EvalState & state, DrvInfos & elems,
|
||||||
|
|
||||||
/* Get the environment builder expression. */
|
/* Get the environment builder expression. */
|
||||||
Value envBuilder;
|
Value envBuilder;
|
||||||
state.evalFile(state.findFile("nix/buildenv.nix"), envBuilder);
|
state.eval(state.parseExprFromString(
|
||||||
|
#include "buildenv.nix.gen.hh"
|
||||||
|
, "/"), envBuilder);
|
||||||
|
|
||||||
/* Construct a Nix expression that calls the user environment
|
/* Construct a Nix expression that calls the user environment
|
||||||
builder with the manifest as argument. */
|
builder with the manifest as argument. */
|
||||||
|
|
|
@ -24,4 +24,6 @@ $(foreach name, \
|
||||||
$(eval $(call install-symlink, nix, $(bindir)/$(name))))
|
$(eval $(call install-symlink, nix, $(bindir)/$(name))))
|
||||||
$(eval $(call install-symlink, $(bindir)/nix, $(libexecdir)/nix/build-remote))
|
$(eval $(call install-symlink, $(bindir)/nix, $(libexecdir)/nix/build-remote))
|
||||||
|
|
||||||
|
src/nix-env/nix-env.cc: src/nix-env/buildenv.nix.gen.hh
|
||||||
|
|
||||||
$(d)/flake.cc: $(d)/flake-template.nix.gen.hh
|
$(d)/flake.cc: $(d)/flake-template.nix.gen.hh
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
with import ./lib.nix;
|
with import ./lib.nix;
|
||||||
with builtins;
|
with builtins;
|
||||||
|
|
||||||
assert pathExists <nix/buildenv.nix>;
|
assert pathExists <nix/fetchurl.nix>;
|
||||||
|
|
||||||
assert length __nixPath == 6;
|
assert length __nixPath == 6;
|
||||||
assert length (filter (x: x.prefix == "nix") __nixPath) == 1;
|
assert length (filter (x: x.prefix == "nix") __nixPath) == 1;
|
||||||
|
|
Loading…
Reference in a new issue