diff options
author | Mark H Weaver <mhw@netris.org> | 2016-10-19 10:54:36 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2016-10-19 10:54:36 -0400 |
commit | d2478b4cdd6f1db44f4725b39489aca89d3d9180 (patch) | |
tree | bc4714453fd9b7a2e64fcd5f58c24d371dbb91d8 /doc | |
parent | c9a71c6fdab6914dd648b76c349c3af9018cad35 (diff) | |
parent | 152ffe7cb6ba02915d8645102e0f6dfeb639090d (diff) | |
download | guix-d2478b4cdd6f1db44f4725b39489aca89d3d9180.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'doc')
-rw-r--r-- | doc/guix.texi | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 66316ecd84..eea02172cf 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4513,6 +4513,30 @@ This is a recursive, deep replacement. So in this example, both This is implemented using the @code{package-input-rewriting} Scheme procedure (@pxref{Defining Packages, @code{package-input-rewriting}}). + +@item --with-graft=@var{package}=@var{replacement} +This is similar to @code{--with-input} but with an important difference: +instead of rebuilding all the dependency chain, @var{replacement} is +built and then @dfn{grafted} onto the binaries that were initially +referring to @var{package}. @xref{Security Updates}, for more +information on grafts. + +For example, the command below grafts version 3.5.4 of GnuTLS onto Wget +and all its dependencies, replacing references to the version of GnuTLS +they currently refer to: + +@example +guix build --with-graft=gnutls=gnutls@@3.5.4 wget +@end example + +This has the advantage of being much faster than rebuilding everything. +But there is a caveat: it works if and only if @var{package} and +@var{replacement} are strictly compatible---for example, if they provide +a library, the application binary interface (ABI) of those libraries +must be compatible. If @var{replacement} is somehow incompatible with +@var{package}, then the resulting package may be unusable. Use with +care! + @end table @node Additional Build Options |