diff --git a/pkgs/build-support/fetchgit/builder.sh b/pkgs/build-support/fetchgit/builder.sh index 704f14598dea..b4c2f67830b1 100644 --- a/pkgs/build-support/fetchgit/builder.sh +++ b/pkgs/build-support/fetchgit/builder.sh @@ -4,6 +4,8 @@ # - revision specified and remote without HEAD # +source "$NIX_ATTRS_SH_FILE" + echo "exporting $url (rev $rev) into $out" runHook preFetch diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix index 2a175a71ccd2..72a8c449262b 100644 --- a/pkgs/build-support/fetchgit/default.nix +++ b/pkgs/build-support/fetchgit/default.nix @@ -138,6 +138,8 @@ lib.makeOverridable ( derivationArgs // { + __structuredAttrs = true; + inherit name; builder = ./builder.sh; @@ -243,7 +245,11 @@ lib.makeOverridable ( "FETCHGIT_HTTP_PROXIES" ]; - inherit preferLocalBuild meta allowedRequisites; + outputChecks.out = { + ${if allowedRequisites != null then "allowedRequisites" else null} = allowedRequisites; + }; + + inherit preferLocalBuild meta; passthru = { gitRepoUrl = url; diff --git a/pkgs/build-support/fetchurl/builder.sh b/pkgs/build-support/fetchurl/builder.sh index 560b912d414f..44ac80737bc0 100644 --- a/pkgs/build-support/fetchurl/builder.sh +++ b/pkgs/build-support/fetchurl/builder.sh @@ -1,3 +1,4 @@ +source "$NIX_ATTRS_SH_FILE" source $mirrorsFile curlVersion=$(curl -V | head -1 | cut -d' ' -f2) @@ -22,10 +23,10 @@ if ! [ -f "$SSL_CERT_FILE" ]; then curl+=(--insecure) fi -eval "curl+=($curlOptsList)" +curl+=("${curlOptsList[@]}") curl+=( - $curlOpts + ${curlOpts[*]} $NIX_CURL_FLAGS ) diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix index 4d0f525a15c5..8d3283039f11 100644 --- a/pkgs/build-support/fetchurl/default.nix +++ b/pkgs/build-support/fetchurl/default.nix @@ -135,6 +135,7 @@ lib.extendMkDerivation { # 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, @@ -240,6 +241,8 @@ lib.extendMkDerivation { derivationArgs // { + __structuredAttrs = true; + name = if finalAttrs.pname or null != null && finalAttrs.version or null != null then "${finalAttrs.pname}-${finalAttrs.version}" @@ -315,14 +318,13 @@ lib.extendMkDerivation { '' ) curlOpts; - curlOptsList = lib.escapeShellArgs curlOptsList; - inherit - showURLs - mirrorsFile - postFetch + curlOptsList downloadToTemp executable + mirrorsFile + postFetch + showURLs ; impureEnvVars = impureEnvVars ++ netrcImpureEnvVars;