aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludovic.courtes@inria.fr>2019-02-08 09:29:39 +0100
committerLudovic Courtès <ludo@gnu.org>2019-02-08 10:41:13 +0100
commit024a6bfba906742c136a47b4099f06880f1d3f15 (patch)
tree92f9ff01ab8822da80a877843873661ba02852c9
parent06fff484cec2abc1702e2131d963ed086c5e0b29 (diff)
downloadgnu-guix-024a6bfba906742c136a47b4099f06880f1d3f15.tar
gnu-guix-024a6bfba906742c136a47b4099f06880f1d3f15.tar.gz
guix build: '--with-branch' & co. fetch submodules.
* guix/scripts/build.scm (transform-package-source-branch)[replace]: Add 'recursive?' field to the new package.
-rw-r--r--doc/guix.texi3
-rw-r--r--guix/scripts/build.scm3
2 files changed, 4 insertions, 2 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 53c133804d..69b6985051 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 5a158799ae..fb7e04904d 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -308,7 +308,8 @@ strings like \"guile-next=stable-3.0\" meaning that packages are built using
(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))