diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2019-01-22 15:59:42 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2019-01-22 15:59:42 +0100 |
commit | 3fe32b675e1605cbc830fa52c0593747fa4dd7e2 (patch) | |
tree | e0b31e2df8f0734290232b1b0d61d0716731e296 /pkgs/build-support | |
parent | a903c60c627f42461d3e6f9780d26a80f8e51470 (diff) | |
parent | b7d4a356be49501ea046b28db28dc2807f5fccdb (diff) | |
download | nixpkgs-3fe32b675e1605cbc830fa52c0593747fa4dd7e2.tar nixpkgs-3fe32b675e1605cbc830fa52c0593747fa4dd7e2.tar.gz nixpkgs-3fe32b675e1605cbc830fa52c0593747fa4dd7e2.tar.bz2 nixpkgs-3fe32b675e1605cbc830fa52c0593747fa4dd7e2.tar.lz nixpkgs-3fe32b675e1605cbc830fa52c0593747fa4dd7e2.tar.xz nixpkgs-3fe32b675e1605cbc830fa52c0593747fa4dd7e2.tar.zst nixpkgs-3fe32b675e1605cbc830fa52c0593747fa4dd7e2.zip |
Merge branch 'master' into staging
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/docker/default.nix | 9 | ||||
-rw-r--r-- | pkgs/build-support/fetchgit/default.nix | 3 | ||||
-rw-r--r-- | pkgs/build-support/fetchhg/default.nix | 11 | ||||
-rw-r--r-- | pkgs/build-support/fetchipfs/default.nix | 8 | ||||
-rw-r--r-- | pkgs/build-support/fetchsvn/default.nix | 7 | ||||
-rw-r--r-- | pkgs/build-support/fetchurl/default.nix | 7 | ||||
-rw-r--r-- | pkgs/build-support/prefer-remote-fetch/default.nix | 19 |
7 files changed, 49 insertions, 15 deletions
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index 6de38821baf..372c567a7e7 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -551,14 +551,19 @@ rec { buildInputs = [ jshon pigz coreutils findutils jq ]; # Image name and tag must be lowercase imageName = lib.toLower name; - imageTag = if tag == null then "" else lib.toLower tag; baseJson = configJson; + passthru.imageTag = + if tag == null + then lib.head (lib.splitString "-" (lib.last (lib.splitString "/" result))) + else lib.toLower tag; } '' - ${lib.optionalString (tag == null) '' + ${if (tag == null) then '' outName="$(basename "$out")" outHash=$(echo "$outName" | cut -d - -f 1) imageTag=$outHash + '' else '' + imageTag="${tag}" ''} find ${bulkLayers} -mindepth 1 -maxdepth 1 | sort -t/ -k5 -n > layer-list diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix index 9fccc27ef63..256c86748d2 100644 --- a/pkgs/build-support/fetchgit/default.nix +++ b/pkgs/build-support/fetchgit/default.nix @@ -19,6 +19,7 @@ in , # Shell code executed after the file has been fetched # successfully. This can do things like check or transform the file. postFetch ? "" +, preferLocalBuild ? true }: /* NOTE: @@ -66,5 +67,5 @@ stdenvNoCC.mkDerivation { "GIT_PROXY_COMMAND" "SOCKS_SERVER" ]; - preferLocalBuild = true; + inherit preferLocalBuild; } diff --git a/pkgs/build-support/fetchhg/default.nix b/pkgs/build-support/fetchhg/default.nix index 40ead021cdb..41eff1f9c0c 100644 --- a/pkgs/build-support/fetchhg/default.nix +++ b/pkgs/build-support/fetchhg/default.nix @@ -1,4 +1,11 @@ -{stdenvNoCC, mercurial}: {name ? null, url, rev ? null, md5 ? null, sha256 ? null, fetchSubrepos ? false}: +{ stdenvNoCC, mercurial }: +{ name ? null +, url +, rev ? null +, md5 ? null +, sha256 ? null +, fetchSubrepos ? false +, preferLocalBuild ? true }: if md5 != null then throw "fetchhg does not support md5 anymore, please use sha256" @@ -18,5 +25,5 @@ stdenvNoCC.mkDerivation { outputHash = sha256; inherit url rev; - preferLocalBuild = true; + inherit preferLocalBuild; } diff --git a/pkgs/build-support/fetchipfs/default.nix b/pkgs/build-support/fetchipfs/default.nix index dc894979422..7a66999ec56 100644 --- a/pkgs/build-support/fetchipfs/default.nix +++ b/pkgs/build-support/fetchipfs/default.nix @@ -14,6 +14,7 @@ , meta ? {} , port ? "8080" , postFetch ? "" +, preferLocalBuild ? true }: assert sha512 != "" -> builtins.compareVersions "1.11" builtins.nixVersion <= 0; @@ -42,11 +43,10 @@ if (!hasHash) then throw "Specify sha for fetchipfs fixed-output derivation" els postFetch ipfs url - port; + port + meta; # Doing the download on a remote machine just duplicates network # traffic, so don't do that. - preferLocalBuild = true; - - inherit meta; + inherit preferLocalBuild; } diff --git a/pkgs/build-support/fetchsvn/default.nix b/pkgs/build-support/fetchsvn/default.nix index da57d581dad..194ce3b39b1 100644 --- a/pkgs/build-support/fetchsvn/default.nix +++ b/pkgs/build-support/fetchsvn/default.nix @@ -1,6 +1,7 @@ {stdenvNoCC, subversion, glibcLocales, sshSupport ? false, openssh ? null}: -{url, rev ? "HEAD", md5 ? "", sha256 ? "", - ignoreExternals ? false, ignoreKeywords ? false, name ? null}: +{url, rev ? "HEAD", md5 ? "", sha256 ? "" +, ignoreExternals ? false, ignoreKeywords ? false, name ? null +, preferLocalBuild ? true }: let repoName = with stdenvNoCC.lib; @@ -40,5 +41,5 @@ stdenvNoCC.mkDerivation { inherit url rev sshSupport openssh ignoreExternals ignoreKeywords; impureEnvVars = stdenvNoCC.lib.fetchers.proxyImpureEnvVars; - preferLocalBuild = true; + inherit preferLocalBuild; } diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix index 5f0c1384c79..3ce90cbeab3 100644 --- a/pkgs/build-support/fetchurl/default.nix +++ b/pkgs/build-support/fetchurl/default.nix @@ -87,6 +87,9 @@ in # Passthru information, if any. , passthru ? {} + # Doing the download on a remote machine just duplicates network + # traffic, so don't do that by default +, preferLocalBuild ? true }: assert sha512 != "" -> builtins.compareVersions "1.11" builtins.nixVersion <= 0; @@ -135,9 +138,7 @@ stdenvNoCC.mkDerivation { nixpkgsVersion = lib.trivial.release; - # Doing the download on a remote machine just duplicates network - # traffic, so don't do that. - preferLocalBuild = true; + inherit preferLocalBuild; postHook = if netrcPhase == null then null else '' ${netrcPhase} diff --git a/pkgs/build-support/prefer-remote-fetch/default.nix b/pkgs/build-support/prefer-remote-fetch/default.nix new file mode 100644 index 00000000000..2e55e370742 --- /dev/null +++ b/pkgs/build-support/prefer-remote-fetch/default.nix @@ -0,0 +1,19 @@ +# An overlay that download sources on remote builder. +# This is useful when the evaluating machine has a slow +# upload while the builder can fetch faster directly from the source. +# Usage: Put the following snippet in your usual overlay definition: +# +# self: super: +# (super.prefer-remote-fetch self super) +# Full configuration example for your own account: +# +# $ mkdir ~/.config/nixpkgs/overlays/ +# $ echo 'self: super: super.prefer-remote-fetch self super' > ~/.config/nixpkgs/overlays/prefer-remote-fetch.nix +# +self: super: { + fetchurl = args: super.fetchurl (args // { preferLocalBuild = false; }); + fetchgit = args: super.fetchgit (args // { preferLocalBuild = false; }); + fetchhg = args: super.fetchhg (args // { preferLocalBuild = false; }); + fetchsvn = args: super.fetchsvn (args // { preferLocalBuild = false; }); + fetchipfs = args: super.fetchipfs (args // { preferLocalBuild = false; }); +} |