diff options
author | Daniel Peebles <copumpkin@users.noreply.github.com> | 2018-06-11 12:49:06 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-11 12:49:06 -0400 |
commit | 363363298c95e83c268f3a80c117818169954389 (patch) | |
tree | 25946add48bf3936fb115566b1900edc2e5ba9a7 /pkgs | |
parent | f550fa4a72951346493666fea7171732496d2d7f (diff) | |
parent | f44012ba10537e1a2a94b2be443a86e4dd0ad38f (diff) | |
download | nixpkgs-363363298c95e83c268f3a80c117818169954389.tar nixpkgs-363363298c95e83c268f3a80c117818169954389.tar.gz nixpkgs-363363298c95e83c268f3a80c117818169954389.tar.bz2 nixpkgs-363363298c95e83c268f3a80c117818169954389.tar.lz nixpkgs-363363298c95e83c268f3a80c117818169954389.tar.xz nixpkgs-363363298c95e83c268f3a80c117818169954389.tar.zst nixpkgs-363363298c95e83c268f3a80c117818169954389.zip |
Merge pull request #17757 from copumpkin/fetchurl-user-agent
fetchurl: add user agent
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/build-support/fetchurl/builder.sh | 26 | ||||
-rw-r--r-- | pkgs/build-support/fetchurl/default.nix | 4 |
2 files changed, 17 insertions, 13 deletions
diff --git a/pkgs/build-support/fetchurl/builder.sh b/pkgs/build-support/fetchurl/builder.sh index 7c2bdf260b4..f9bc8b602f4 100644 --- a/pkgs/build-support/fetchurl/builder.sh +++ b/pkgs/build-support/fetchurl/builder.sh @@ -2,20 +2,24 @@ source $stdenv/setup source $mirrorsFile +curlVersion=$(curl -V | head -1 | cut -d' ' -f2) # Curl flags to handle redirects, not use EPSV, handle cookies for # servers to need them during redirects, and work on SSL without a # certificate (this isn't a security problem because we check the # cryptographic hash of the output anyway). -curl="curl \ - --location --max-redirs 20 \ - --retry 3 \ - --disable-epsv \ - --cookie-jar cookies \ - --insecure \ - $curlOpts \ - $NIX_CURL_FLAGS" - +curl=( + curl + --location + --max-redirs 20 + --retry 3 + --disable-epsv + --cookie-jar cookies + --insecure + --user-agent "curl/$curlVersion Nixpkgs/$nixpkgsVersion" + $curlOpts + $NIX_CURL_FLAGS +) downloadedFile="$out" if [ -n "$downloadToTemp" ]; then downloadedFile="$TMPDIR/file"; fi @@ -32,7 +36,7 @@ tryDownload() { # if we get error code 18, resume partial download while [ $curlexit -eq 18 ]; do # keep this inside an if statement, since on failure it doesn't abort the script - if $curl -C - --fail "$url" --output "$downloadedFile"; then + if "${curl[@]}" -C - --fail "$url" --output "$downloadedFile"; then success=1 break else @@ -61,7 +65,7 @@ tryHashedMirrors() { for mirror in $hashedMirrors; do url="$mirror/$outputHashAlgo/$outputHash" - if $curl --retry 0 --connect-timeout "${NIX_CONNECT_TIMEOUT:-15}" \ + if "${curl[@]}" --retry 0 --connect-timeout "${NIX_CONNECT_TIMEOUT:-15}" \ --fail --silent --show-error --head "$url" \ --write-out "%{http_code}" --output /dev/null > code 2> log; then tryDownload "$url" diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix index 0bf529caa75..5f0c1384c79 100644 --- a/pkgs/build-support/fetchurl/default.nix +++ b/pkgs/build-support/fetchurl/default.nix @@ -92,7 +92,6 @@ in assert sha512 != "" -> builtins.compareVersions "1.11" builtins.nixVersion <= 0; let - urls_ = if urls != [] && url == "" then (if lib.isList urls then urls @@ -107,7 +106,6 @@ let else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; } else if sha1 != "" then { outputHashAlgo = "sha1"; outputHash = sha1; } else throw "fetchurl requires a hash for fixed-output derivation: ${lib.concatStringsSep ", " urls_}"; - in stdenvNoCC.mkDerivation { @@ -135,6 +133,8 @@ stdenvNoCC.mkDerivation { impureEnvVars = impureEnvVars ++ netrcImpureEnvVars; + nixpkgsVersion = lib.trivial.release; + # Doing the download on a remote machine just duplicates network # traffic, so don't do that. preferLocalBuild = true; |