Hello Guix, This patch is intended mostly for discussion. It was brought up again on IRC yesterday the idea of prefetching package source into the store in order to be able to hack on guix offline. A naive approach such as running `guix build -S` on each entry of `guix package --list-available` isn't enough because of build-system-implicit inputs and package origin inputs, as well as non-public bootstrapping source. This patch changes the semantics of `guix build --source` so that it takes an optional argument, one of 'package', 'all' (default), or 'transitive'. `guix build --source=package foo` will build the source derivations for foo's source origin, which is the current behavior. `guix build --source=all foo` will build all of foo's origin's, including any which might be in its inputs (e.g. texlive's texmf-extra-src input). `guix build --source=transitive foo` will build the source origins for all of foo's transitive inputs.