adding NIX_CONTINUE_DOWNLOADS feature, see mkdir comment
svn path=/nixpkgs/trunk/; revision=16401
This commit is contained in:
parent
a20dba3aec
commit
10f6c2592c
@ -23,8 +23,19 @@ tryDownload() {
|
|||||||
echo
|
echo
|
||||||
header "trying $url"
|
header "trying $url"
|
||||||
success=
|
success=
|
||||||
if $curl --fail "$url" --output "$out"; then
|
cache_file="/var/nix-downloads/$outputHash"
|
||||||
success=1
|
if { test -n "$NIX_CONTINUE_DOWNLOADS" && touch "$cache_file";}; then
|
||||||
|
chmod g+w $cache_file # ensure another nixbld user can continue!
|
||||||
|
# no locking is taking place. I think nix builder locking is enough
|
||||||
|
if $curl --fail "$url" -C - --output "$cache_file"; then
|
||||||
|
mv "$cache_file" "$out"
|
||||||
|
chmod g-w $out # ensure another nixbld user can continue!
|
||||||
|
success=1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if $curl --fail "$url" --output "$out"; then
|
||||||
|
success=1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
stopNest
|
stopNest
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Argh, this thing is duplicated (more-or-less) in Nix (in corepkgs).
|
# Argh, this thing is duplicated (more-or-less) in Nix (in corepkgs).
|
||||||
# Need to find a way to combine them.
|
# Need to find a way to combine them.
|
||||||
|
|
||||||
{stdenv, curl}: # Note that `curl' may be `null', in case of the native stdenv.
|
{stdenv, curl, getConfig ? (x: y : "")}: # Note that `curl' may be `null', in case of the native stdenv.
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
@ -86,6 +86,18 @@ stdenv.mkDerivation {
|
|||||||
if sha256 != "" then "sha256" else if sha1 != "" then "sha1" else "md5";
|
if sha256 != "" then "sha256" else if sha1 != "" then "sha1" else "md5";
|
||||||
outputHash = if outputHash != "" then outputHash else
|
outputHash = if outputHash != "" then outputHash else
|
||||||
if sha256 != "" then sha256 else if sha1 != "" then sha1 else md5;
|
if sha256 != "" then sha256 else if sha1 != "" then sha1 else md5;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# set this to any value to make nix dowload into /var/nix-downloads/$hash
|
||||||
|
# so that it can continue a half finished download after a shudown,
|
||||||
|
# susupend to disk, shutdown etc
|
||||||
|
# for this to work you have to run
|
||||||
|
# d=/var/nix-downloads; mkdir $d; chgrp nixbld $d; chmod g+x $d;
|
||||||
|
# once
|
||||||
|
# defaulting to enabled because continuing takes place only if $d exists
|
||||||
|
# and has proper permissions
|
||||||
|
NIX_CONTINUE_DOWNLOADS = getConfig ["NIX_CONTINUE_DOWNLOADS"] "1";
|
||||||
|
|
||||||
impureEnvVars = [
|
impureEnvVars = [
|
||||||
# We borrow these environment variables from the caller to allow
|
# We borrow these environment variables from the caller to allow
|
||||||
|
@ -282,7 +282,7 @@ let
|
|||||||
# from being built.
|
# from being built.
|
||||||
fetchurl = useFromStdenv "fetchurl"
|
fetchurl = useFromStdenv "fetchurl"
|
||||||
(import ../build-support/fetchurl {
|
(import ../build-support/fetchurl {
|
||||||
inherit curl stdenv;
|
inherit curl stdenv getConfig;
|
||||||
});
|
});
|
||||||
|
|
||||||
# fetchurlBoot is used for curl and its dependencies in order to
|
# fetchurlBoot is used for curl and its dependencies in order to
|
||||||
|
Loading…
Reference in New Issue
Block a user