aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac1
-rw-r--r--scripts/nix-prefetch-url.in2
-rw-r--r--src/libstore/build.cc11
-rw-r--r--substitute.mk1
4 files changed, 9 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac
index 2c4567c8d..904957881 100644
--- a/configure.ac
+++ b/configure.ac
@@ -141,6 +141,7 @@ AC_PATH_PROG(w3m, w3m, false)
AC_PATH_PROG(flex, flex, false)
AC_PATH_PROG(bison, bison, false)
NEED_PROG(perl, perl)
+NEED_PROG(sed, sed)
NEED_PROG(tar, tar)
AC_PATH_PROG(dot, dot)
AC_PATH_PROG(dblatex, dblatex)
diff --git a/scripts/nix-prefetch-url.in b/scripts/nix-prefetch-url.in
index 7d8bd93a4..31170fa95 100644
--- a/scripts/nix-prefetch-url.in
+++ b/scripts/nix-prefetch-url.in
@@ -24,7 +24,7 @@ fi
# Handle escaped characters in the URI. `+', `=' and `?' are the only
# characters that are valid in Nix store path names but have a special
# meaning in URIs.
-name=$(basename "$url" | sed -e 's/%2b/+/g' -e 's/%3d/=/g' -e 's/%3f/\?/g')
+name=$(basename "$url" | @sed@ -e 's/%2b/+/g' -e 's/%3d/=/g' -e 's/%3f/\?/g')
if test -z "$name"; then echo "invalid url"; exit 1; fi
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index f4478a4db..d0d051f08 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -1566,16 +1566,17 @@ void DerivationGoal::startBuilder()
createDirs(chrootTmpDir);
chmod(chrootTmpDir, 01777);
- /* Create a /etc/passwd with entries for the build user and
- the nobody account. The latter is kind of a hack to
- support Samba-in-QEMU. */
+ /* Create a /etc/passwd with entries for the build user and the
+ nobody account. The latter is kind of a hack to support
+ Samba-in-QEMU. */
createDirs(chrootRootDir + "/etc");
writeFile(chrootRootDir + "/etc/passwd",
(format(
- "nixbld:x:%1%:65534:Nix build user:/:/noshell\n"
+ "nixbld:x:%1%:%2%:Nix build user:/:/noshell\n"
"nobody:x:65534:65534:Nobody:/:/noshell\n")
- % (buildUser.enabled() ? buildUser.getUID() : getuid())).str());
+ % (buildUser.enabled() ? buildUser.getUID() : getuid())
+ % (buildUser.enabled() ? buildUser.getGID() : getgid())).str());
/* Bind-mount a user-configurable set of directories from the
host file system. The `/dev/pts' directory must be mounted
diff --git a/substitute.mk b/substitute.mk
index 430af16bf..a6e00aaba 100644
--- a/substitute.mk
+++ b/substitute.mk
@@ -16,6 +16,7 @@
-e "s^@bzip2_bin_test\@^$(bzip2_bin_test)^g" \
-e "s^@perl\@^$(perl)^g" \
-e "s^@coreutils\@^$(coreutils)^g" \
+ -e "s^@sed\@^$(sed)^g" \
-e "s^@tar\@^$(tar)^g" \
-e "s^@gzip\@^$(gzip)^g" \
-e "s^@tr\@^$(tr)^g" \