On Thu, Mar 03, 2022 at 07:25:22AM +0100, Maxime Devos wrote: > Leo Famulari schreef op wo 02-03-2022 om 18:50 [-0500]: > > Origin snippets should only be used to remove nonfree things > > from the upstream source code. All other changes should use > > patch files or a build phase. > > Why? If it's a source code change and it fits an origin snippet, > why not an origin snippet? Why would the source in Guix need to match > the source upstream? `guix build --source` is a tool to provide freely licensed source code to be used for any purpose, including building on systems besides Guix. Using the Guix tools, there is no way to access the upstream source code without applying the snippets. The reason for that is that the origin snippet mechanism was introduced specifically to remove non-free components without making it easy to reverse the transformation. Compare that to patch files, which are easily reversed, and build phases, which do not apply to `guix build --source`. So, we have to be careful when using snippets, to ensure that the result of `guix build --source` is useful on any system, not just Guix. More info: https://guix.gnu.org/manual/en/html_node/Snippets-versus-Phases.html Please let me know if these guidelines are still unclear.