Merge pull request #6811 from edolstra/fix-auto-chroot

Disable auto-chroot if $NIX_STATE_DIR is set
This commit is contained in:
Eelco Dolstra 2022-07-15 13:11:08 +02:00 committed by GitHub
commit 0621e99414
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1321,7 +1321,12 @@ std::shared_ptr<Store> openFromNonUri(const std::string & uri, const Store::Para
else if (pathExists(settings.nixDaemonSocketFile)) else if (pathExists(settings.nixDaemonSocketFile))
return std::make_shared<UDSRemoteStore>(params); return std::make_shared<UDSRemoteStore>(params);
#if __linux__ #if __linux__
else if (!pathExists(stateDir) && params.empty() && getuid() != 0 && !getEnv("NIX_STORE_DIR").has_value()) { else if (!pathExists(stateDir)
&& params.empty()
&& getuid() != 0
&& !getEnv("NIX_STORE_DIR").has_value()
&& !getEnv("NIX_STATE_DIR").has_value())
{
/* If /nix doesn't exist, there is no daemon socket, and /* If /nix doesn't exist, there is no daemon socket, and
we're not root, then automatically set up a chroot we're not root, then automatically set up a chroot
store in ~/.local/share/nix/root. */ store in ~/.local/share/nix/root. */