diff --git a/pkgs/build-support/fetchdarcs/builder.sh b/pkgs/build-support/fetchdarcs/builder.sh index ce5537f46f40..75b9066dba6f 100644 --- a/pkgs/build-support/fetchdarcs/builder.sh +++ b/pkgs/build-support/fetchdarcs/builder.sh @@ -3,11 +3,15 @@ source $stdenv/setup tagtext="" tagflags="" -if test -n "$rev"; then - tagtext="(tag $rev) " +# Darcs hashes are sha1 (120 bits, 40-character hex) +if [[ "$rev" =~ [a-fA-F0-9]{40} ]]; then + tagtext="(hash $rev)" + tagflags="--to-hash=$rev" +elif test -n "$rev"; then + tagtext="(tag $rev)" tagflags="--tag=$rev" elif test -n "$context"; then - tagtext="(context) " + tagtext="(context)" tagflags="--context=$context" fi diff --git a/pkgs/build-support/fetchdarcs/default.nix b/pkgs/build-support/fetchdarcs/default.nix index 02777c9900dc..ae38edee4fdf 100644 --- a/pkgs/build-support/fetchdarcs/default.nix +++ b/pkgs/build-support/fetchdarcs/default.nix @@ -1,12 +1,17 @@ {stdenvNoCC, darcs, cacert}: -{url, rev ? null, context ? null, md5 ? "", sha256 ? ""}: +{ url +, rev ? null +, context ? null +, md5 ? "" +, sha256 ? "" +, name ? "fetchdarcs" +}: if md5 != "" then throw "fetchdarcs does not support md5 anymore, please use sha256" else stdenvNoCC.mkDerivation { - name = "fetchdarcs"; builder = ./builder.sh; nativeBuildInputs = [cacert darcs]; @@ -14,5 +19,5 @@ stdenvNoCC.mkDerivation { outputHashMode = "recursive"; outputHash = sha256; - inherit url rev context; + inherit url rev context name; }