forked from lix-project/lix
parent
2605f4f4e6
commit
3a4623afbb
|
@ -1527,7 +1527,7 @@ void DerivationGoal::startBuilder()
|
||||||
|
|
||||||
/* Create a temporary directory where the build will take
|
/* Create a temporary directory where the build will take
|
||||||
place. */
|
place. */
|
||||||
tmpDir = createTempDir("", "nix-build-" + baseNameOf(drvPath), false, false);
|
tmpDir = createTempDir("", "nix-build-" + baseNameOf(drvPath), false, false, 0700);
|
||||||
|
|
||||||
/* For convenience, set an environment pointing to the top build
|
/* For convenience, set an environment pointing to the top build
|
||||||
directory. */
|
directory. */
|
||||||
|
@ -2178,6 +2178,7 @@ void DerivationGoal::deleteTmpDir(bool force)
|
||||||
% drvPath % tmpDir);
|
% drvPath % tmpDir);
|
||||||
if (buildUser.enabled() && !amPrivileged())
|
if (buildUser.enabled() && !amPrivileged())
|
||||||
getOwnership(tmpDir);
|
getOwnership(tmpDir);
|
||||||
|
chmod(tmpDir.c_str(), 0755);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
deletePathWrapped(tmpDir);
|
deletePathWrapped(tmpDir);
|
||||||
|
|
|
@ -380,7 +380,7 @@ static Path tempName(Path tmpRoot, const Path & prefix, bool includePid,
|
||||||
|
|
||||||
|
|
||||||
Path createTempDir(const Path & tmpRoot, const Path & prefix,
|
Path createTempDir(const Path & tmpRoot, const Path & prefix,
|
||||||
bool includePid, bool useGlobalCounter)
|
bool includePid, bool useGlobalCounter, mode_t mode)
|
||||||
{
|
{
|
||||||
static int globalCounter = 0;
|
static int globalCounter = 0;
|
||||||
int localCounter = 0;
|
int localCounter = 0;
|
||||||
|
@ -389,7 +389,7 @@ Path createTempDir(const Path & tmpRoot, const Path & prefix,
|
||||||
while (1) {
|
while (1) {
|
||||||
checkInterrupt();
|
checkInterrupt();
|
||||||
Path tmpDir = tempName(tmpRoot, prefix, includePid, counter);
|
Path tmpDir = tempName(tmpRoot, prefix, includePid, counter);
|
||||||
if (mkdir(tmpDir.c_str(), 0777) == 0) {
|
if (mkdir(tmpDir.c_str(), mode) == 0) {
|
||||||
/* Explicitly set the group of the directory. This is to
|
/* Explicitly set the group of the directory. This is to
|
||||||
work around around problems caused by BSD's group
|
work around around problems caused by BSD's group
|
||||||
ownership semantics (directories inherit the group of
|
ownership semantics (directories inherit the group of
|
||||||
|
|
|
@ -88,7 +88,7 @@ void makePathReadOnly(const Path & path);
|
||||||
|
|
||||||
/* Create a temporary directory. */
|
/* Create a temporary directory. */
|
||||||
Path createTempDir(const Path & tmpRoot = "", const Path & prefix = "nix",
|
Path createTempDir(const Path & tmpRoot = "", const Path & prefix = "nix",
|
||||||
bool includePid = true, bool useGlobalCounter = true);
|
bool includePid = true, bool useGlobalCounter = true, mode_t mode = 0755);
|
||||||
|
|
||||||
/* Create a directory and all its parents, if necessary. Returns the
|
/* Create a directory and all its parents, if necessary. Returns the
|
||||||
list of created directories, in order of creation. */
|
list of created directories, in order of creation. */
|
||||||
|
|
Loading…
Reference in a new issue