From 03f1d1ecb5ef69c8c065c83373f9f9f749995c50 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 6 Apr 2004 08:18:51 +0000 Subject: [PATCH] * Switched from wget to curl. * Made the dependencies on bzip2 and the shell explicit. --- configure.ac | 5 ++++- corepkgs/fetchurl/builder.sh.in | 8 ++++---- corepkgs/nar/nar.sh.in | 11 ++++++----- corepkgs/nar/unnar.sh.in | 6 ++---- scripts/nix-collect-garbage.in | 2 +- scripts/nix-install-package.in | 6 +++--- scripts/nix-prefetch-url.in | 18 ++++++++++++------ scripts/nix-pull.in | 6 +++--- scripts/nix-push.in | 14 +++++++------- scripts/readmanifest.pm.in | 2 +- substitute.mk | 5 ++++- 11 files changed, 47 insertions(+), 36 deletions(-) diff --git a/configure.ac b/configure.ac index f07dd6dd7..a2d05707e 100644 --- a/configure.ac +++ b/configure.ac @@ -42,7 +42,10 @@ AC_LANG_PUSH(C++) AC_CHECK_HEADERS([locale]) AC_LANG_POP(C++) -AC_PATH_PROG(wget, wget) +AC_PATH_PROG(curl, curl) +AC_PATH_PROG(bzip2, bzip2) +AC_PATH_PROG(bunzip2, bunzip2) +AC_PATH_PROG(shell, sh) AC_PATH_PROG(xmllint, xmllint) AC_PATH_PROG(xsltproc, xsltproc) AC_PATH_PROG(flex, flex, false) diff --git a/corepkgs/fetchurl/builder.sh.in b/corepkgs/fetchurl/builder.sh.in index a6cc69930..4379b423d 100644 --- a/corepkgs/fetchurl/builder.sh.in +++ b/corepkgs/fetchurl/builder.sh.in @@ -1,15 +1,15 @@ -#! /bin/sh +#! @shell@ -e export PATH=/bin:/usr/bin -echo "downloading $url into $out..." +echo "downloading $url into $out" prefetch=@prefix@/store/nix-prefetch-url-$md5 if test -f "$prefetch"; then echo "using prefetched $prefetch"; - mv $prefetch $out || exit 1 + mv $prefetch $out else - @wget@ --passive-ftp "$url" -O "$out" || exit 1 + @curl@ --fail --location --max-redirs 20 "$url" > "$out" fi actual=$(@bindir@/nix-hash --flat $out) diff --git a/corepkgs/nar/nar.sh.in b/corepkgs/nar/nar.sh.in index 8d3fdb51b..9635d29f4 100644 --- a/corepkgs/nar/nar.sh.in +++ b/corepkgs/nar/nar.sh.in @@ -1,12 +1,13 @@ -#! /bin/sh +#! @shell@ -e +# !!! impure; fix this export PATH=/bin:/usr/bin echo "packing $path into $out..." -mkdir $out || exit 1 -dst=$out/`basename $path`.nar.bz2 -@bindir@/nix-store --dump "$path" | bzip2 > $dst || exit 1 +mkdir $out +dst=$out/$(basename $path).nar.bz2 +@bindir@/nix-store --dump "$path" | @bzip2@ > $dst md5=$(md5sum -b $dst | cut -c1-32) if test $? != 0; then exit 1; fi -echo $md5 > $out/md5 || exit 1 +echo $md5 > $out/md5 diff --git a/corepkgs/nar/unnar.sh.in b/corepkgs/nar/unnar.sh.in index b0b6f9d46..6fab350a1 100644 --- a/corepkgs/nar/unnar.sh.in +++ b/corepkgs/nar/unnar.sh.in @@ -1,6 +1,4 @@ -#! /bin/sh - -export PATH=/bin:/usr/bin +#! @shell@ -e echo "unpacking $narFile to $out..." -bunzip2 < $narFile | @bindir@/nix-store --restore "$out" || exit 1 +@bunzip2@ < $narFile | @bindir@/nix-store --restore "$out" diff --git a/scripts/nix-collect-garbage.in b/scripts/nix-collect-garbage.in index c701ad482..20c6731a1 100755 --- a/scripts/nix-collect-garbage.in +++ b/scripts/nix-collect-garbage.in @@ -34,7 +34,7 @@ foreach my $link (@links) { my $extraarg = ""; if ($keepsuccessors) { $extraarg = "--include-successors"; }; -my $pid = open2(\*READ, \*WRITE, "nix-store --query --requisites $extraarg @roots") +my $pid = open2(\*READ, \*WRITE, "@bindir@/nix-store --query --requisites $extraarg @roots") or die "determining live paths"; close WRITE; while () { diff --git a/scripts/nix-install-package.in b/scripts/nix-install-package.in index 73afead7d..0fcfd4e8f 100644 --- a/scripts/nix-install-package.in +++ b/scripts/nix-install-package.in @@ -17,7 +17,7 @@ system "bunzip2 < $pkgfile | (cd $tmpdir && tar xf -)"; die if $?; print "This package contains the following derivations:\n"; -system "nix-env -qasf $tmpdir/default.nix"; +system "@bindir@/nix-env -qasf $tmpdir/default.nix"; die if $?; print "Do you wish to install these (Y/N)? "; @@ -26,11 +26,11 @@ chomp $reply; exit if (!($reply eq "y")); print "Pulling caches...\n"; -system "nix-pull `cat $tmpdir/caches`"; +system "@bindir@/nix-pull `cat $tmpdir/caches`"; die if $?; print "Installing package...\n"; -system "nix-env -if $tmpdir/default.nix '*'"; +system "@bindir@/nix-env -if $tmpdir/default.nix '*'"; die if $?; print "Installation succeeded! Press Enter to continue.\n"; diff --git a/scripts/nix-prefetch-url.in b/scripts/nix-prefetch-url.in index d921e922b..df6a1c86a 100644 --- a/scripts/nix-prefetch-url.in +++ b/scripts/nix-prefetch-url.in @@ -10,7 +10,7 @@ print "fetching $url...\n"; my $out = "@storedir@/nix-prefetch-url-$$"; -system "@wget@ --passive-ftp '$url' -O '$out'"; +system "@curl@ --fail --location --max-redirs 20 \"$url\" > \"$out\""; $? == 0 or die "unable to fetch $url"; my $hash=`@bindir@/nix-hash --flat $out`; @@ -27,11 +27,12 @@ my $nixexpr = "(import @datadir@/nix/corepkgs/fetchurl) " . "{url = $url; md5 = \"$hash\"; system = \"@system@\";}"; -print "expr: $nixexpr\n"; +#print STDERR "expr: $nixexpr\n"; # Instantiate a Nix expression. -print STDERR "instantiating Nix expression...\n"; -my $pid = open2(\*READ, \*WRITE, "nix-instantiate -") or die "cannot run nix-instantiate"; +#print STDERR "instantiating Nix expression...\n"; +my $pid = open2(\*READ, \*WRITE, "@bindir@/nix-instantiate -") + or die "cannot run nix-instantiate"; print WRITE $nixexpr; close WRITE; @@ -43,8 +44,13 @@ waitpid $pid, 0; $? == 0 or die "nix-instantiate failed"; # Run Nix. -print STDERR "realising store expression $drvpath...\n"; -system "nix-store --realise $drvpath > /dev/null"; +#print STDERR "realising store expression $drvpath...\n"; +system "@bindir@/nix-store --realise $drvpath > /dev/null"; $? == 0 or die "realisation failed"; +my $path = `@bindir@/nix-store -qn $drvpath`; +$? == 0 or die "query failed"; + +print "path is $path"; + unlink $out2; diff --git a/scripts/nix-pull.in b/scripts/nix-pull.in index acb4c0732..6472c7c64 100644 --- a/scripts/nix-pull.in +++ b/scripts/nix-pull.in @@ -65,7 +65,7 @@ $fullexpr .= "]"; # Instantiate store expressions from the Nix expressions we created above. print STDERR "instantiating store expressions...\n"; -my $pid = open2(\*READ, \*WRITE, "nix-instantiate -") or die "cannot run nix-instantiate"; +my $pid = open2(\*READ, \*WRITE, "@bindir@/nix-instantiate -") or die "cannot run nix-instantiate"; print WRITE $fullexpr; close WRITE; @@ -91,7 +91,7 @@ while (scalar @subs > 0) { if ($n > 256) { $n = 256 }; my @subs2 = @subs[0..$n - 1]; @subs = @subs[$n..scalar @subs - 1]; - system "nix-store --substitute @subs2"; + system "@bindir@/nix-store --substitute @subs2"; if ($?) { die "`nix-store --substitute' failed"; } } @@ -104,6 +104,6 @@ while (scalar @sucs > 0) { if ($n > 256) { $n = 256 }; my @sucs2 = @sucs[0..$n - 1]; @sucs = @sucs[$n..scalar @sucs - 1]; - system "nix-store --successor @sucs2"; + system "@bindir@/nix-store --successor @sucs2"; if ($?) { die "`nix-store --successor' failed"; } } diff --git a/scripts/nix-push.in b/scripts/nix-push.in index 167d787b7..57d89d13c 100644 --- a/scripts/nix-push.in +++ b/scripts/nix-push.in @@ -12,7 +12,7 @@ my $manifest = "$tmpdir/MANIFEST"; END { unlink $manifest; unlink $nixfile; rmdir $tmpdir; } -my $curl = "curl --fail --silent"; +my $curl = "@curl@ --fail --silent"; # Parse the command line. @@ -30,10 +30,10 @@ foreach my $storeexpr (@ARGV) { # Get all paths referenced by the normalisation of the given # Nix expression. - system "nix-store --realise $storeexpr > /dev/null"; + system "@bindir@/nix-store --realise $storeexpr > /dev/null"; die if ($?); - open PATHS, "nix-store --query --requisites --include-successors $storeexpr 2> /dev/null |" or die; + open PATHS, "@bindir@/nix-store --query --requisites --include-successors $storeexpr 2> /dev/null |" or die; while () { chomp; die "bad: $_" unless /^\//; @@ -69,7 +69,7 @@ close NIX; # Instantiate store expressions from the Nix expression. my @storeexprs; print STDERR "instantiating store expressions...\n"; -open STOREEXPRS, "nix-instantiate $nixfile |" or die "cannot run nix-instantiate"; +open STOREEXPRS, "@bindir@/nix-instantiate $nixfile |" or die "cannot run nix-instantiate"; while () { chomp; die unless /^\//; @@ -90,10 +90,10 @@ while (scalar @tmp > 0) { my @tmp2 = @tmp[0..$n - 1]; @tmp = @tmp[$n..scalar @tmp - 1]; - system "nix-store --realise -B @tmp2 > /dev/null"; + system "@bindir@/nix-store --realise -B @tmp2 > /dev/null"; if ($?) { die "`nix-store --realise' failed"; } - open NARPATHS, "nix-store --query --list @tmp2 |" or die "cannot run nix"; + open NARPATHS, "@bindir@/nix-store --query --list @tmp2 |" or die "cannot run nix"; while () { chomp; die unless (/^\//); @@ -135,7 +135,7 @@ for (my $n = 0; $n < scalar @storepaths; $n++) { print MANIFEST " MD5: $hash\n"; if ($storepath =~ /\.store$/) { - open PREDS, "nix-store --query --predecessors $storepath |" or die "cannot run nix"; + open PREDS, "@bindir@/nix-store --query --predecessors $storepath |" or die "cannot run nix"; while () { chomp; die unless (/^\//); diff --git a/scripts/readmanifest.pm.in b/scripts/readmanifest.pm.in index 08227a5d7..bca6c4c8a 100644 --- a/scripts/readmanifest.pm.in +++ b/scripts/readmanifest.pm.in @@ -10,7 +10,7 @@ sub processURL { $url =~ s/\/$//; print "obtaining list of Nix archives at $url...\n"; - system("curl --fail --silent --show-error " . + system("@curl@ --fail --silent --show-error --location --max-redirs 20 " . "'$url' > '$manifest' 2> /dev/null") == 0 or die "curl failed: $?"; diff --git a/substitute.mk b/substitute.mk index 73a93963f..848029a02 100644 --- a/substitute.mk +++ b/substitute.mk @@ -8,7 +8,10 @@ -e "s^@libexecdir\@^$(libexecdir)^g" \ -e "s^@storedir\@^$(storedir)^g" \ -e "s^@system\@^$(system)^g" \ - -e "s^@wget\@^$(wget)^g" \ + -e "s^@shell\@^$(shell)^g" \ + -e "s^@curl\@^$(curl)^g" \ + -e "s^@bzip2\@^$(bzip2)^g" \ + -e "s^@bunzip2\@^$(bunzip2)^g" \ -e "s^@perl\@^$(perl)^g" \ -e "s^@version\@^$(VERSION)^g" \ < $< > $@ || rm $@