diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix index fd267fe34de8a..42e449059a6d1 100644 --- a/pkgs/build-support/fetchgit/default.nix +++ b/pkgs/build-support/fetchgit/default.nix @@ -33,6 +33,7 @@ lib.makeOverridable (lib.fetchers.withNormalizedHash { } ( , # Impure env vars (https://nixos.org/nix/manual/#sec-advanced-attributes) # needed for netrcPhase netrcImpureEnvVars ? [] +, passthru ? {} , meta ? {} , allowedRequisites ? null }: @@ -121,6 +122,6 @@ stdenvNoCC.mkDerivation { passthru = { gitRepoUrl = url; inherit tag; - }; + } // passthru; } )) diff --git a/pkgs/build-support/fetchgithub/default.nix b/pkgs/build-support/fetchgithub/default.nix index 6d580b2e06566..cbb3b987c24fa 100644 --- a/pkgs/build-support/fetchgithub/default.nix +++ b/pkgs/build-support/fetchgithub/default.nix @@ -10,6 +10,7 @@ lib.makeOverridable ( , fetchLFS ? false , sparseCheckout ? [] , githubBase ? "github.com", varPrefix ? null +, passthru ? { } , meta ? { } , ... # For hash agility }@args: @@ -26,6 +27,9 @@ let builtins.unsafeGetAttrPos "rev" args ); baseUrl = "https://${githubBase}/${owner}/${repo}"; + newPassthru = { + inherit owner repo; + } // passthru; newMeta = meta // { homepage = meta.homepage or baseUrl; } // lib.optionalAttrs (position != null) { @@ -63,17 +67,25 @@ let fetcherArgs = (if useFetchGit then { - inherit tag rev deepClone fetchSubmodules sparseCheckout fetchLFS; url = gitRepoUrl; + inherit tag rev deepClone fetchSubmodules sparseCheckout fetchLFS; + url = gitRepoUrl; + passthru = newPassthru; } // lib.optionalAttrs (leaveDotGit != null) { inherit leaveDotGit; } else { url = "${baseUrl}/archive/${revWithTag}.tar.gz"; passthru = { - inherit gitRepoUrl; - }; + inherit + gitRepoUrl + tag + ; + rev = revWithTag; + } // newPassthru; } - ) // privateAttrs // passthruAttrs // { inherit name; }; + ) // privateAttrs // passthruAttrs // { + inherit name; + meta = newMeta; + }; in -fetcher fetcherArgs // { meta = newMeta; inherit owner repo tag; rev = revWithTag; } -) +fetcher fetcherArgs)