From 47c0f92c37dc7d50d9d4598ce5b91c4cdfec6ed1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 31 Jan 2016 23:22:18 +0100 Subject: guix build: Add '--with-input'. * guix/scripts/build.scm (transform-package-inputs): New procedure. (%transformations): Add it. (%transformation-options, show-transformation-options-help): Add --with-input. * tests/scripts-build.scm ("options->transformation, with-input"): ("options->transformation, with-input, no matches"): New tests. * tests/guix-build.sh: Add tests. * doc/guix.texi (Package Transformation Options): Document it. --- doc/guix.texi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'doc') diff --git a/doc/guix.texi b/doc/guix.texi index dcced797f..11664f46f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3995,6 +3995,25 @@ $ git clone git://git.sv.gnu.org/guix.git $ guix build guix --with-source=./guix @end example +@item --with-input=@var{package}=@var{replacement} +Replace dependency on @var{package} by a dependency on +@var{replacement}. @var{package} must be a package name, and +@var{replacement} must be a package specification such as @code{guile} +or @code{guile@@1.8}. + +For instance, the following command builds Guix but replaces its +dependency on the current stable version of Guile with a dependency on +the development version of Guile, @code{guile-next}: + +@example +guix build --with-input=guile=guile-next guix +@end example + +This is a recursive, deep replacement. So in this example, both +@code{guix} and its dependency @code{guile-json} (which also depends on +@code{guile}) get rebuilt against @code{guile-next}. + +However, implicit inputs are left unchanged. @end table @node Additional Build Options -- cgit v1.3