diff --git a/lix/legacy/nix-build.cc b/lix/legacy/nix-build.cc index fa6a75d9b..90dd8d73e 100644 --- a/lix/legacy/nix-build.cc +++ b/lix/legacy/nix-build.cc @@ -187,8 +187,8 @@ static void main_nix_build(AsyncIoRoot & aio, std::string programName, Strings a 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 53847b856..ec5ac3e4d 100644 --- a/lix/libstore/build/local-derivation-goal.cc +++ b/lix/libstore/build/local-derivation-goal.cc @@ -498,7 +498,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 @@ -516,14 +516,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); warn( "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 753a86a0d..f2320a7bc 100644 --- a/lix/libstore/local-store.cc +++ b/lix/libstore/local-store.cc @@ -1629,7 +1629,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 = AutoCloseFD{open(tmpDirFn.c_str(), O_RDONLY | O_DIRECTORY)}; if (tmpDirFd.get() < 0) { continue; diff --git a/lix/libstore/ssh.cc b/lix/libstore/ssh.cc index 5f773527a..1346ae871 100644 --- a/lix/libstore/ssh.cc +++ b/lix/libstore/ssh.cc @@ -22,7 +22,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 2e601e34c..795e55d29 100644 --- a/lix/libstore/temporary-dir.cc +++ b/lix/libstore/temporary-dir.cc @@ -5,9 +5,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 f6d4f79c6..4b3dee50b 100644 --- a/lix/nix/develop.cc +++ b/lix/nix/develop.cc @@ -578,7 +578,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); @@ -715,7 +715,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)); } }