From 366da9e70f46bd42a62bdcd9a0aa7b891c54760d Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Wed, 1 Apr 2015 15:02:07 +0100 Subject: [PATCH] fetchhg: add option to fetch hg subrepos --- pkgs/build-support/fetchhg/builder.sh | 2 +- pkgs/build-support/fetchhg/default.nix | 6 ++++-- pkgs/build-support/fetchhg/nix-prefetch-hg | 8 +++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/build-support/fetchhg/builder.sh b/pkgs/build-support/fetchhg/builder.sh index 0b51ef79b235..847f18fa5975 100644 --- a/pkgs/build-support/fetchhg/builder.sh +++ b/pkgs/build-support/fetchhg/builder.sh @@ -3,7 +3,7 @@ header "getting $url${rev:+ ($rev)} into $out" hg clone --insecure "$url" hg-clone -hg archive -q -y ${rev:+-r "$rev"} --cwd hg-clone $out +hg archive -q$subrepoClause -y ${rev:+-r "$rev"} --cwd hg-clone $out rm -f $out/.hg_archival.txt stopNest diff --git a/pkgs/build-support/fetchhg/default.nix b/pkgs/build-support/fetchhg/default.nix index 4675cbe6ec80..afff9d368833 100644 --- a/pkgs/build-support/fetchhg/default.nix +++ b/pkgs/build-support/fetchhg/default.nix @@ -1,4 +1,4 @@ -{stdenv, mercurial, nix}: {name ? null, url, rev ? null, md5 ? null, sha256 ? null}: +{stdenv, mercurial, nix}: {name ? null, url, rev ? null, md5 ? null, sha256 ? null, fetchSubrepos ? false}: # TODO: statically check if mercurial as the https support if the url starts woth https. stdenv.mkDerivation { @@ -9,10 +9,12 @@ stdenv.mkDerivation { # Nix <= 0.7 compatibility. id = md5; + subrepoClause = if fetchSubrepos then "S" else ""; + outputHashAlgo = if md5 != null then "md5" else "sha256"; outputHashMode = "recursive"; outputHash = if md5 != null then md5 else sha256; - + inherit url rev; preferLocalBuild = true; } diff --git a/pkgs/build-support/fetchhg/nix-prefetch-hg b/pkgs/build-support/fetchhg/nix-prefetch-hg index a8916176f8af..a877b217125f 100755 --- a/pkgs/build-support/fetchhg/nix-prefetch-hg +++ b/pkgs/build-support/fetchhg/nix-prefetch-hg @@ -17,6 +17,12 @@ if test -z "$url"; then exit 1 fi +if test "$fetchSubrepos" == 1; then + subrepoClause=S +else + subrepoClause= +fi + test -n "$rev" || rev="tip" @@ -47,7 +53,7 @@ if test -z "$finalPath"; then else tmpClone=$url fi - hg archive -q -y -r "$rev" --cwd $tmpClone $tmpArchive + hg archive -q$subrepoClause -y -r "$rev" --cwd $tmpClone $tmpArchive rm -f $tmpArchive/.hg_archival.txt echo "hg revision is $(cd $tmpClone; hg id -r "$rev" -i)"