diff options
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | scripts/nix-prefetch-url.in | 2 | ||||
-rw-r--r-- | src/libstore/build.cc | 11 | ||||
-rw-r--r-- | substitute.mk | 1 |
4 files changed, 9 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac index 2c4567c8da74..9049578819d3 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 7d8bd93a42d8..31170fa953ea 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 f4478a4db2f0..d0d051f0812e 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 430af16bf4b6..a6e00aaba241 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" \ |