about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--configure.ac7
-rw-r--r--corepkgs/channels/unpack.sh.in12
-rw-r--r--corepkgs/fetchurl/builder.sh.in4
-rw-r--r--corepkgs/nar/nar.sh.in7
-rw-r--r--substitute.mk2
5 files changed, 17 insertions, 15 deletions
diff --git a/configure.ac b/configure.ac
index 103e3e37ae38..77f76e122c26 100644
--- a/configure.ac
+++ b/configure.ac
@@ -81,6 +81,13 @@ AC_PATH_PROG(xsltproc, xsltproc, false)
 AC_PATH_PROG(flex, flex, false)
 AC_PATH_PROG(bison, bison, false)
 NEED_PROG(perl, perl)
+NEED_PROG(tar, tar)
+                
+AC_PATH_PROG(mkdir, mkdir, false)
+AC_ARG_WITH(coreutils-bin, AC_HELP_STRING([--with-coreutils-bin=PATH],
+  [path of mkdir, etc.]),
+  coreutils=$withval, coreutils=$(dirname $mkdir))
+AC_SUBST(coreutils)
 
 AC_ARG_WITH(docbook-catalog, AC_HELP_STRING([--with-docbook-catalog=PATH],
   [path of the DocBook XML DTD]),
diff --git a/corepkgs/channels/unpack.sh.in b/corepkgs/channels/unpack.sh.in
index f349f3da3862..332877b9eca5 100644
--- a/corepkgs/channels/unpack.sh.in
+++ b/corepkgs/channels/unpack.sh.in
@@ -1,9 +1,7 @@
 #! @shell@ -e
 
-export PATH=/bin:/usr/bin # !!! impure
-
-mkdir $out
-mkdir $out/tmp
+@coreutils@/mkdir $out
+@coreutils@/mkdir $out/tmp
 cd $out/tmp
 
 expr=$out/default.nix
@@ -12,8 +10,8 @@ echo '[' > $expr
 nr=0
 for i in $inputs; do
     echo "unpacking $i"
-    @bunzip2@ < $i | tar xvf -
-    mv * ../$nr # !!! hacky
+    @bunzip2@ < $i | @tar@ xvf -
+    @coreutils@/mv * ../$nr # !!! hacky
     echo "(import ./$nr)" >> $expr
     nr=$(($nr + 1))
 done
@@ -21,4 +19,4 @@ done
 echo ']' >> $expr
 
 cd ..
-rmdir tmp
\ No newline at end of file
+@coreutils@/rmdir tmp
diff --git a/corepkgs/fetchurl/builder.sh.in b/corepkgs/fetchurl/builder.sh.in
index aaba65d6d26c..92b87465261d 100644
--- a/corepkgs/fetchurl/builder.sh.in
+++ b/corepkgs/fetchurl/builder.sh.in
@@ -1,13 +1,11 @@
 #! @shell@ -e
 
-export PATH=/bin:/usr/bin
-
 echo "downloading $url into $out"
 
 prefetch=@storedir@/nix-prefetch-url-$outputHash
 if test -f "$prefetch"; then
     echo "using prefetched $prefetch";
-    mv $prefetch $out
+    @coreutils@/mv $prefetch $out
 else
     @curl@ --fail --location --max-redirs 20 "$url" > "$out"
 fi
diff --git a/corepkgs/nar/nar.sh.in b/corepkgs/nar/nar.sh.in
index 1a7c33ab26dd..caa960877b4b 100644
--- a/corepkgs/nar/nar.sh.in
+++ b/corepkgs/nar/nar.sh.in
@@ -1,10 +1,7 @@
 #! @shell@ -e
 
-# !!! impure; fix this
-export PATH=/bin:/usr/bin
-
 echo "packing $path into $out..."
-mkdir $out
+@coreutils@/mkdir $out
 dst=$out/tmp.nar.bz2
 @bindir@/nix-store --dump "$path" > tmp
 
@@ -14,4 +11,4 @@ dst=$out/tmp.nar.bz2
 
 @bindir@/nix-hash --flat --type $hashAlgo --base32 $dst > $out/narbz2-hash
 
-mv $out/tmp.nar.bz2 $out/$(cat $out/narbz2-hash).nar.bz2
+@coreutils@/mv $out/tmp.nar.bz2 $out/$(@coreutils@/cat $out/narbz2-hash).nar.bz2
diff --git a/substitute.mk b/substitute.mk
index 7d3f6d863c95..5f9204929b75 100644
--- a/substitute.mk
+++ b/substitute.mk
@@ -14,6 +14,8 @@
 	 -e "s^@bzip2\@^$(bzip2)^g" \
 	 -e "s^@bunzip2\@^$(bunzip2)^g" \
 	 -e "s^@perl\@^$(perl)^g" \
+	 -e "s^@coreutils\@^$(coreutils)^g" \
+	 -e "s^@tar\@^$(tar)^g" \
 	 -e "s^@version\@^$(VERSION)^g" \
 	 < $< > $@ || rm $@
 	if test -x $<; then chmod +x $@; fi