forked from lix-project/lix
Fix using restricted mode with chroots
This commit is contained in:
parent
1e4a4a2e9f
commit
035aeb9547
|
@ -292,6 +292,11 @@ Path EvalState::checkSourcePath(const Path & path_)
|
||||||
if (path == i.second || isInDir(path, i.second))
|
if (path == i.second || isInDir(path, i.second))
|
||||||
return path;
|
return path;
|
||||||
|
|
||||||
|
/* Hack to support the chroot dependencies of corepkgs (see
|
||||||
|
corepkgs/config.nix.in). */
|
||||||
|
if (path == settings.nixPrefix && isStorePath(settings.nixPrefix))
|
||||||
|
return path;
|
||||||
|
|
||||||
throw RestrictedPathError(format("access to path ‘%1%’ is forbidden in restricted mode") % path_);
|
throw RestrictedPathError(format("access to path ‘%1%’ is forbidden in restricted mode") % path_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,6 +67,7 @@ Settings::Settings()
|
||||||
|
|
||||||
void Settings::processEnvironment()
|
void Settings::processEnvironment()
|
||||||
{
|
{
|
||||||
|
nixPrefix = NIX_PREFIX;
|
||||||
nixStore = canonPath(getEnv("NIX_STORE_DIR", getEnv("NIX_STORE", NIX_STORE_DIR)));
|
nixStore = canonPath(getEnv("NIX_STORE_DIR", getEnv("NIX_STORE", NIX_STORE_DIR)));
|
||||||
nixDataDir = canonPath(getEnv("NIX_DATA_DIR", NIX_DATA_DIR));
|
nixDataDir = canonPath(getEnv("NIX_DATA_DIR", NIX_DATA_DIR));
|
||||||
nixLogDir = canonPath(getEnv("NIX_LOG_DIR", NIX_LOG_DIR));
|
nixLogDir = canonPath(getEnv("NIX_LOG_DIR", NIX_LOG_DIR));
|
||||||
|
|
|
@ -42,6 +42,8 @@ struct Settings {
|
||||||
|
|
||||||
Path nixDataDir; /* !!! fix */
|
Path nixDataDir; /* !!! fix */
|
||||||
|
|
||||||
|
Path nixPrefix;
|
||||||
|
|
||||||
/* The directory where we log various operations. */
|
/* The directory where we log various operations. */
|
||||||
Path nixLogDir;
|
Path nixLogDir;
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ ifeq ($(OS), SunOS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libstore_CXXFLAGS = \
|
libstore_CXXFLAGS = \
|
||||||
|
-DNIX_PREFIX=\"$(prefix)\" \
|
||||||
-DNIX_STORE_DIR=\"$(storedir)\" \
|
-DNIX_STORE_DIR=\"$(storedir)\" \
|
||||||
-DNIX_DATA_DIR=\"$(datadir)\" \
|
-DNIX_DATA_DIR=\"$(datadir)\" \
|
||||||
-DNIX_STATE_DIR=\"$(localstatedir)/nix\" \
|
-DNIX_STATE_DIR=\"$(localstatedir)/nix\" \
|
||||||
|
|
Loading…
Reference in a new issue