about summary refs log tree commit diff
path: root/corepkgs/fetchurl/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'corepkgs/fetchurl/default.nix')
-rw-r--r--corepkgs/fetchurl/default.nix19
1 files changed, 17 insertions, 2 deletions
diff --git a/corepkgs/fetchurl/default.nix b/corepkgs/fetchurl/default.nix
index 8957662eccab..37f01b55eeb0 100644
--- a/corepkgs/fetchurl/default.nix
+++ b/corepkgs/fetchurl/default.nix
@@ -1,8 +1,23 @@
-{system, url, md5}:
+# Argh, this thing is duplicated (more-or-less) in Nixpkgs.  Need to
+# find a way to combine them.
+
+{system, url, outputHash ? "", outputHashAlgo ? "", md5 ? "", sha1 ? "", sha256 ? ""}:
+
+assert (outputHash != "" && outputHashAlgo != "")
+    || md5 != "" || sha1 != "" || sha256 != "";
 
 derivation {
   name = baseNameOf (toString url);
   builder = ./builder.sh;
+
+  # Compatibility with Nix <= 0.7.
   id = md5;
-  inherit system url md5;
+
+  # New-style output content requirements.
+  outputHashAlgo = if outputHashAlgo != "" then outputHashAlgo else
+      if sha256 != "" then "sha256" else if sha1 != "" then "sha1" else "md5";
+  outputHash = if outputHash != "" then outputHash else
+      if sha256 != "" then sha256 else if sha1 != "" then sha1 else md5;
+  
+  inherit system url;
 }