diff --git a/lix/legacy/nix-build.cc b/lix/legacy/nix-build.cc index f45ce460e..71bf426e1 100644 --- a/lix/legacy/nix-build.cc +++ b/lix/legacy/nix-build.cc @@ -190,8 +190,8 @@ static int main_nix_build(AsyncIoRoot & aio, std::string programName, Strings ar if (packages && fromArgs) throw UsageError("'-p' and '-E' are mutually exclusive"); - AutoDelete tmpDir(createTempDir("", myName)); - AutoDelete buildTopTmpDir(createTempDir(tmpDir, "build-top")); + AutoDelete tmpDir(createTempDir(myName)); + AutoDelete buildTopTmpDir(createTempSubdir(tmpDir, "build-top")); if (outLink.empty()) outLink = (Path) tmpDir + "/result"; diff --git a/lix/libstore/build/local-derivation-goal.cc b/lix/libstore/build/local-derivation-goal.cc index d6ef42d48..e82e93ebd 100644 --- a/lix/libstore/build/local-derivation-goal.cc +++ b/lix/libstore/build/local-derivation-goal.cc @@ -457,7 +457,7 @@ try { /* Create a temporary directory where the build will take place. */ tmpDirRoot = - createTempDir(buildDir, "nix-build-" + std::string(drvPath.name()), 0700); + createTempSubdir(buildDir, "nix-build-" + std::string(drvPath.name()), 0700); } catch (SysError & e) { /* * Fallback to the global tmpdir and create a safe space there @@ -475,16 +475,14 @@ try { #else constexpr int toplevelDirMode = 0700; #endif - auto nixBuildsTmp = createTempDir( - "", fmt("nix-builds-%s", geteuid()), toplevelDirMode - ); + auto nixBuildsTmp = createTempDir(fmt("nix-builds-%s", geteuid()), toplevelDirMode); printTaggedWarning( "Failed to use the system-wide build directory '%s', falling back to a temporary " "directory inside '%s'", settings.buildDir.get(), nixBuildsTmp ); - tmpDirRoot = createTempDir( + tmpDirRoot = createTempSubdir( nixBuildsTmp, "nix-build-" + std::string(drvPath.name()), 0700 ); worker.buildDirOverride = nixBuildsTmp; diff --git a/lix/libstore/local-store.cc b/lix/libstore/local-store.cc index 2f0259961..f01b4efa1 100644 --- a/lix/libstore/local-store.cc +++ b/lix/libstore/local-store.cc @@ -1415,7 +1415,7 @@ std::pair LocalStore::createTempDirInStore() /* There is a slight possibility that `tmpDir' gets deleted by the GC between createTempDir() and when we acquire a lock on it. We'll repeat until 'tmpDir' exists and we've locked it. */ - tmpDirFn = createTempDir(config_.realStoreDir, "tmp"); + tmpDirFn = createTempSubdir(config_.realStoreDir, "tmp"); tmpDirFd = sys::open(tmpDirFn, O_RDONLY | O_DIRECTORY); if (tmpDirFd.get() < 0) { continue; diff --git a/lix/libstore/ssh.cc b/lix/libstore/ssh.cc index 09cf01fad..b93b3cff2 100644 --- a/lix/libstore/ssh.cc +++ b/lix/libstore/ssh.cc @@ -26,7 +26,7 @@ SSH::SSH(const std::string & host, const std::optional port, const std throw Error("invalid SSH host name '%s'", host); auto state(state_.lock()); - state->tmpDir = std::make_unique(createTempDir("", "nix", 0700)); + state->tmpDir = std::make_unique(createTempDir("nix", 0700)); } void SSH::addCommonSSHOpts(Strings & args) diff --git a/lix/libstore/temporary-dir.cc b/lix/libstore/temporary-dir.cc index 5ec97324f..384d064b0 100644 --- a/lix/libstore/temporary-dir.cc +++ b/lix/libstore/temporary-dir.cc @@ -6,9 +6,9 @@ namespace nix { -Path createTempDir(const Path & tmpRoot, const Path & prefix, mode_t mode) +Path createTempDir(const Path & prefix, mode_t mode) { - return createTempSubdir(tmpRoot.empty() ? defaultTempDir() : tmpRoot, prefix, mode); + return createTempSubdir(defaultTempDir(), prefix, mode); } std::pair createTempFile(const Path & prefix) diff --git a/lix/libstore/temporary-dir.hh b/lix/libstore/temporary-dir.hh index 9bc4df9c4..a2a8a0d18 100644 --- a/lix/libstore/temporary-dir.hh +++ b/lix/libstore/temporary-dir.hh @@ -8,7 +8,7 @@ namespace nix { /** * Create a temporary directory. */ -Path createTempDir(const Path & tmpRoot = "", const Path & prefix = "nix", mode_t mode = 0755); +Path createTempDir(const Path & prefix = "nix", mode_t mode = 0755); /** * Create a temporary file, returning a file handle and its path. diff --git a/lix/nix/develop.cc b/lix/nix/develop.cc index eb81529b8..202d5fdbb 100644 --- a/lix/nix/develop.cc +++ b/lix/nix/develop.cc @@ -574,7 +574,7 @@ struct CmdDevelop : Common, MixEnvironment auto [rcFileFd, rcFilePath] = createTempFile("nix-shell"); - AutoDelete tmpDir(createTempDir("", "nix-develop"), true); + AutoDelete tmpDir(createTempDir("nix-develop"), true); auto script = makeRcScript(*state, store, buildEnvironment, (Path) tmpDir); @@ -714,7 +714,7 @@ struct CmdPrintDevEnv : Common, MixJSON if (json) { logger->writeToStdout(buildEnvironment.toJSON()); } else { - AutoDelete tmpDir(createTempDir("", "nix-dev-env"), true); + AutoDelete tmpDir(createTempDir("nix-dev-env"), true); logger->writeToStdout(makeRcScript(*state, store, buildEnvironment, tmpDir)); } }