From 024a6bfba906742c136a47b4099f06880f1d3f15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludovic.courtes@inria.fr>
Date: Fri, 8 Feb 2019 09:29:39 +0100
Subject: [PATCH] guix build: '--with-branch' & co. fetch submodules.

* guix/scripts/build.scm (transform-package-source-branch)[replace]: Add
'recursive?' field to the new package.
---
 doc/guix.texi          | 3 ++-
 guix/scripts/build.scm | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 53c133804d7..69b6985051f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -7289,7 +7289,8 @@ care!
 Build @var{package} from the latest commit of @var{branch}.  The @code{source}
 field of @var{package} must be an origin with the @code{git-fetch} method
 (@pxref{origin Reference}) or a @code{git-checkout} object; the repository URL
-is taken from that @code{source}.
+is taken from that @code{source}.  Git sub-modules of the repository are
+fetched, recursively.
 
 For instance, the following command builds @code{guile-sqlite3} from the
 latest commit of its @code{master} branch, and then builds @code{guix} (which
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 5a158799ae8..fb7e04904dd 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -308,7 +308,8 @@ (define (replace old url branch)
     (package
       (inherit old)
       (version (string-append "git." branch))
-      (source (git-checkout (url url) (branch branch)))))
+      (source (git-checkout (url url) (branch branch)
+                            (recursive? #t)))))
 
   (let* ((replacements (evaluate-git-replacement-specs replacement-specs
                                                        replace))
-- 
GitLab