diff options
author | Ludovic Courtès <ludovic.courtes@inria.fr> | 2019-10-22 18:05:51 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-10-27 23:05:01 +0100 |
commit | 49af34cfac89d384c46269bfd9388b2c73b1220a (patch) | |
tree | 80bb5ae532370b3e679b51feafd7949e060e2c4e | |
parent | b74ed90916dce6239dbe6842548f82e22fc8c249 (diff) | |
download | patches-49af34cfac89d384c46269bfd9388b2c73b1220a.tar patches-49af34cfac89d384c46269bfd9388b2c73b1220a.tar.gz |
pull: Honor '/etc/guix/channels.scm'.
* guix/scripts/pull.scm (channel-list)[global-file]: New variable.
[channels]: Honor it.
* doc/guix.texi (Invoking guix pull): Document it.
-rw-r--r-- | doc/guix.texi | 18 | ||||
-rw-r--r-- | guix/scripts/pull.scm | 5 |
2 files changed, 22 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index a934626e5a..7cc33c6e22 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3666,6 +3666,21 @@ descriptions, and deploys it. Source code is downloaded from a @uref{https://git-scm.com, Git} repository, by default the official GNU@tie{}Guix repository, though this can be customized. +Specifically, @command{guix pull} downloads code from the @dfn{channels} +(@pxref{Channels}) specified by one of the followings, in this order: + +@enumerate +@item +the @option{--channels} option; +@item +the user's @file{~/.config/guix/channels.scm} file; +@item +the system-wide @file{/etc/guix/channels.scm} file; +@item +the built-in default channels specified in the @code{%default-channels} +variable. +@end enumerate + On completion, @command{guix package} will use packages and package versions from this just-retrieved copy of Guix. Not only that, but all the Guix commands and Scheme modules will also be taken from that latest @@ -3763,7 +3778,8 @@ configuration in the @file{~/.config/guix/channels.scm} file or using the @item --channels=@var{file} @itemx -C @var{file} Read the list of channels from @var{file} instead of -@file{~/.config/guix/channels.scm}. @var{file} must contain Scheme code that +@file{~/.config/guix/channels.scm} or @file{/etc/guix/channels.scm}. +@var{file} must contain Scheme code that evaluates to a list of channel objects. @xref{Channels}, for more information. diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 7876019eac..80d070652b 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -714,6 +714,9 @@ transformations specified in OPTS (resulting from '--url', '--commit', or (define default-file (string-append (config-directory) "/channels.scm")) + (define global-file + (string-append %sysconfdir "/guix/channels.scm")) + (define (load-channels file) (let ((result (load* file (make-user-module '((guix channels)))))) (if (and (list? result) (every channel? result)) @@ -725,6 +728,8 @@ transformations specified in OPTS (resulting from '--url', '--commit', or (load-channels file)) ((file-exists? default-file) (load-channels default-file)) + ((file-exists? global-file) + (load-channels global-file)) (else %default-channels))) |