diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-07-02 23:37:29 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-07-03 00:30:55 +0200 |
commit | 322eeb87d0e5bb608ae1c176611a50297c93cbe8 (patch) | |
tree | ecc0c32c8365b66021be9a26b77a084efc179be3 /nix/libutil | |
parent | d2cef629fd5856540f6e1edf8f9d2131ec7a6942 (diff) |
Merge branch 'nix'.
This is a squashed commit of the following:
commit 0dccab9f417b406f5d4aedc81900fc7b2f16c9f6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 2 00:30:16 2015 +0200
Typo
commit 2cd28517b13524c242c7758783b0b2d8250fdded
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed Jul 1 14:56:34 2015 +0200
Preserve supplementary groups of build users
The following patch is an attempt to address this bug (see
<http://bugs.gnu.org/18994>) by preserving the supplementary groups of
build users in the build environment.
In practice, I would expect that supplementary groups would contain only
one or two groups: the build users group, and possibly the “kvm” group.
[Changed &at(0) to data() and removed tabs - Eelco]
commit 6e38685ef65284093df79ebe7378bac33b0e7e5d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jun 30 21:41:26 2015 +0200
GC: Handle ENOSPC creating/moving to the trash directory
Issue #564.
commit 5e0a9ae2e25a1016389f4893a6ed6682aadcf51d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jun 22 15:54:55 2015 +0200
Use posix_fallocate to create /nix/var/nix/db/reserved
commit 4e5ab98d6d14f8b0e3bd1d77b2f4f2354e7a49a8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jun 22 15:47:40 2015 +0200
Make /nix/var/nix/db/reserved bigger
Issue #564.
commit 60bda60fc06135aa97a93301b1a9e2270768f5b3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jun 10 16:17:06 2015 +0200
Export outputPaths function
This is useful for the new hydra-queue-runner.
commit 5dfea34048aa8541f20aeb2fbcd163561b609a49
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 2 22:51:33 2015 +0200
Use std::vector::data()
commit 2459458bc8257734ca78cb7a2db3df20bd730ec0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 4 16:04:41 2015 +0200
Allow substitutes for builds that have preferLocalBuild set
Not substituting builds with "preferLocalBuild = true" was a bad idea,
because it didn't take the cost of dependencies into account. For
instance, if we can't substitute a fetchgit call, then we have to
download/build git and all its dependencies.
Partially reverts 5558652709f27e8a887580b77b93c705659d7a4b and adds a
new derivation attribute "allowSubstitutes" to specify whether a
derivation may be substituted.
Diffstat (limited to 'nix/libutil')
-rw-r--r-- | nix/libutil/util.cc | 11 | ||||
-rw-r--r-- | nix/libutil/util.hh | 2 |
2 files changed, 6 insertions, 7 deletions
diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc index dab4235b04..14026ab829 100644 --- a/nix/libutil/util.cc +++ b/nix/libutil/util.cc @@ -897,10 +897,10 @@ pid_t startProcess(std::function<void()> fun, } -std::vector<const char *> stringsToCharPtrs(const Strings & ss) +std::vector<char *> stringsToCharPtrs(const Strings & ss) { - std::vector<const char *> res; - for (auto & s : ss) res.push_back(s.c_str()); + std::vector<char *> res; + for (auto & s : ss) res.push_back((char *) s.c_str()); res.push_back(0); return res; } @@ -921,12 +921,11 @@ string runProgram(Path program, bool searchPath, const Strings & args) Strings args_(args); args_.push_front(program); - auto cargs = stringsToCharPtrs(args_); if (searchPath) - execvp(program.c_str(), (char * *) &cargs[0]); + execvp(program.c_str(), stringsToCharPtrs(args_).data()); else - execv(program.c_str(), (char * *) &cargs[0]); + execv(program.c_str(), stringsToCharPtrs(args_).data()); throw SysError(format("executing `%1%'") % program); }); diff --git a/nix/libutil/util.hh b/nix/libutil/util.hh index 6a84ed8851..24e16ba36a 100644 --- a/nix/libutil/util.hh +++ b/nix/libutil/util.hh @@ -284,7 +284,7 @@ MakeError(ExecError, Error) /* Convert a list of strings to a null-terminated vector of char *'s. The result must not be accessed beyond the lifetime of the list of strings. */ -std::vector<const char *> stringsToCharPtrs(const Strings & ss); +std::vector<char *> stringsToCharPtrs(const Strings & ss); /* Close all file descriptors except stdin, stdout, stderr, and those listed in the given set. Good practice in child processes. */ |