summaryrefslogtreecommitdiff
path: root/pkgs/build-support/fetchgit
diff options
context:
space:
mode:
authorYueh-Shun Li <shamrocklee@posteo.net>2025-11-22 06:14:29 +0800
committerYueh-Shun Li <shamrocklee@posteo.net>2025-12-10 01:07:13 +0800
commit4e37d03ba265234fe56a7da1e07251d3ec2867d5 (patch)
treed4c0277cc3d4edcb4e194e38d7bac240b8a138ee /pkgs/build-support/fetchgit
parentfetchurl: reference outputHash from finalAttrs.hash (diff)
downloadnixpkgs-4e37d03ba265234fe56a7da1e07251d3ec2867d5.tar.gz
fetchgit: reference hash from finalAttrs.hash
Diffstat (limited to 'pkgs/build-support/fetchgit')
-rw-r--r--pkgs/build-support/fetchgit/default.nix22
1 files changed, 20 insertions, 2 deletions
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index 7a8f689df439..2a175a71ccd2 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -47,7 +47,7 @@ lib.makeOverridable (
# Hashes, handled by `lib.fetchers.withNormalizedHash`
# whose outputs contain outputHash* attributes.
- "hash"
+ # Use `hash` when overriding with `<pkg>.overrideAttrs`.
"sha256"
];
@@ -131,6 +131,11 @@ lib.makeOverridable (
server admins start using the new version?
*/
+ let
+ finalHashHasColon = lib.hasInfix ":" finalAttrs.hash;
+ finalHashColonMatch = lib.match "([^:]+)[:](.*)" finalAttrs.hash;
+ in
+
derivationArgs
// {
inherit name;
@@ -145,7 +150,20 @@ lib.makeOverridable (
++ lib.optionals fetchLFS [ git-lfs ]
++ nativeBuildInputs;
- inherit outputHash outputHashAlgo;
+ hash =
+ if outputHashAlgo == null || outputHash == "" || lib.hasPrefix outputHashAlgo outputHash then
+ outputHash
+ else
+ "${outputHashAlgo}:${outputHash}";
+
+ outputHash =
+ if finalAttrs.hash == "" then
+ lib.fakeHash
+ else if finalHashHasColon then
+ lib.elemAt finalHashColonMatch 1
+ else
+ finalAttrs.hash;
+ outputHashAlgo = if finalHashHasColon then lib.head finalHashColonMatch else null;
outputHashMode = "recursive";
sparseCheckout =