diff --git a/lix/libstore/build/local-derivation-goal.cc b/lix/libstore/build/local-derivation-goal.cc index a0adb1541..0fc2deb3a 100644 --- a/lix/libstore/build/local-derivation-goal.cc +++ b/lix/libstore/build/local-derivation-goal.cc @@ -457,6 +457,8 @@ try { throw; } + auto globalTmp = defaultTempDir(); + createDirs(globalTmp); #if __APPLE__ /* macOS filesystem namespacing does not exist, to avoid breaking builds, we need to weaken * the mode bits on the top-level directory. This avoids issues like @@ -466,7 +468,7 @@ try { constexpr int toplevelDirMode = 0700; #endif auto nixBuildsTmp = createTempDir( - "", fmt("nix-builds-%s", geteuid()), false, false, toplevelDirMode + globalTmp, fmt("nix-builds-%s", geteuid()), false, false, toplevelDirMode ); warn( "Failed to use the system-wide build directory '%s', falling back to a temporary " @@ -474,10 +476,10 @@ try { settings.buildDir.get(), nixBuildsTmp ); + worker.buildDirOverride = nixBuildsTmp; tmpDirRoot = createTempDir( nixBuildsTmp, "nix-build-" + std::string(drvPath.name()), false, false, 0700 ); - worker.buildDirOverride = nixBuildsTmp; } /* The TOCTOU between the previous mkdir call and this open call is unavoidable due to * POSIX semantics.*/