about summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorTheodore Ni <3806110+tjni@users.noreply.github.com>2023-07-14 18:07:07 -0700
committerTheodore Ni <3806110+tjni@users.noreply.github.com>2023-07-14 18:07:07 -0700
commit4cbdf0d1fc1cde13ba9e99173ee83946a2389d81 (patch)
tree7956147f32573d3341a411dc232658f665c6066e /pkgs/build-support
parent46f3dff2276888a77b3ac849ffa55413d1b177f6 (diff)
fetchsvn: support hash parameter alongside sha256
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/fetchsvn/default.nix13
1 files changed, 10 insertions, 3 deletions
diff --git a/pkgs/build-support/fetchsvn/default.nix b/pkgs/build-support/fetchsvn/default.nix
index 82dececc124a3..1a5764b4f6190 100644
--- a/pkgs/build-support/fetchsvn/default.nix
+++ b/pkgs/build-support/fetchsvn/default.nix
@@ -2,7 +2,7 @@
 , subversion, glibcLocales, sshSupport ? true, openssh ? null
 }:
 
-{ url, rev ? "HEAD", md5 ? "", sha256 ? ""
+{ url, rev ? "HEAD", md5 ? "", sha256 ? "", hash ? ""
 , ignoreExternals ? false, ignoreKeywords ? false, name ? null
 , preferLocalBuild ? true
 }:
@@ -34,6 +34,8 @@ in
 
 if md5 != "" then
   throw "fetchsvn does not support md5 anymore, please use sha256"
+else if hash != "" && sha256 != "" then
+  throw "Only one of sha256 or hash can be set"
 else
 stdenvNoCC.mkDerivation {
   name = name_;
@@ -43,9 +45,14 @@ stdenvNoCC.mkDerivation {
 
   SVN_SSH = if sshSupport then "${buildPackages.openssh}/bin/ssh" else null;
 
-  outputHashAlgo = "sha256";
+  outputHashAlgo = if hash != "" then null else "sha256";
   outputHashMode = "recursive";
-  outputHash = sha256;
+  outputHash = if hash != "" then
+    hash
+  else if sha256 != "" then
+    sha256
+  else
+    lib.fakeSha256;
 
   inherit url rev ignoreExternals ignoreKeywords;