summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-09-11 14:08:34 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-09-12 02:01:35 -0400
commit71e746cc63a932afea0d41652c8c297d796bccf7 (patch)
treeb7f48aa101d6a0243098992f6433fc5b70ac7e07 /doc
parent8ed0c56725b2198b6276dd457a2319416ef4bda1 (diff)
downloadguix-71e746cc63a932afea0d41652c8c297d796bccf7.tar.gz
doc: Document the use of snippets vs phases.
* doc/contributing.texi (Snippets versus phases): New section.
Diffstat (limited to 'doc')
-rw-r--r--doc/contributing.texi15
1 files changed, 15 insertions, 0 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi
index aedcb334c4..b18ffa1e57 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -369,6 +369,7 @@ needed is to review and apply the patch.
 * Package Naming::              What's in a name?
 * Version Numbers::             When the name is not enough.
 * Synopses and Descriptions::   Helping users find the right package.
+* Snippets versus Phases::      Whether to use a snippet, or a build phase.
 * Python Modules::              A touch of British comedy.
 * Perl Modules::                Little pearls.
 * Java Packages::               Coffee break.
@@ -599,6 +600,20 @@ Gettext}):
 for the X11 resize-and-rotate (RandR) extension. @dots{}")
 @end example
 
+@node Snippets versus Phases
+@subsection Snippets versus Phases
+
+@cindex snippets, when to use
+The boundary between using an origin snippet versus a build phase to
+modify the sources of a package can be elusive.  Origin snippets are
+typically used to remove unwanted files such as bundled libraries,
+nonfree sources, or to apply simple substitutions.  The source derived
+from an origin should produce a source that can be used to build the
+package on any system that the upstream package supports (i.e., act as
+the corresponding source).  In particular, origin snippets must not
+embed store items in the sources; such patching should rather be done
+using build phases.  Refer to the @code{origin} record documentation for
+more information (@pxref{origin Reference}).
 
 @node Python Modules
 @subsection Python Modules