diff options
| author | Yueh-Shun Li <shamrocklee@posteo.net> | 2025-11-22 06:14:29 +0800 |
|---|---|---|
| committer | Yueh-Shun Li <shamrocklee@posteo.net> | 2025-12-10 01:07:13 +0800 |
| commit | 4e37d03ba265234fe56a7da1e07251d3ec2867d5 (patch) | |
| tree | d4c0277cc3d4edcb4e194e38d7bac240b8a138ee /pkgs/build-support/fetchgit | |
| parent | fetchurl: reference outputHash from finalAttrs.hash (diff) | |
| download | nixpkgs-4e37d03ba265234fe56a7da1e07251d3ec2867d5.tar.gz | |
fetchgit: reference hash from finalAttrs.hash
Diffstat (limited to 'pkgs/build-support/fetchgit')
| -rw-r--r-- | pkgs/build-support/fetchgit/default.nix | 22 |
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 = |
