diff options
-rw-r--r-- | pkgs/build-support/fetchhg/builder.sh | 2 | ||||
-rw-r--r-- | pkgs/build-support/fetchhg/default.nix | 4 | ||||
-rwxr-xr-x | pkgs/build-support/fetchhg/nix-prefetch-hg | 8 |
3 files changed, 11 insertions, 3 deletions
diff --git a/pkgs/build-support/fetchhg/builder.sh b/pkgs/build-support/fetchhg/builder.sh index 0b51ef79b235f..847f18fa59759 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 26426ce7d83ec..214e9b1387b6f 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 { @@ -13,6 +13,8 @@ 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; diff --git a/pkgs/build-support/fetchhg/nix-prefetch-hg b/pkgs/build-support/fetchhg/nix-prefetch-hg index a8916176f8afa..a877b217125f4 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)" |