guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

10/11: pull: Honor '/etc/guix/channels.scm'.


From: guix-commits
Subject: 10/11: pull: Honor '/etc/guix/channels.scm'.
Date: Sun, 27 Oct 2019 18:13:09 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 49af34cfac89d384c46269bfd9388b2c73b1220a
Author: Ludovic Courtès <address@hidden>
Date:   Tue Oct 22 18:05:51 2019 +0200

    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.
---
 doc/guix.texi         | 18 +++++++++++++++++-
 guix/scripts/pull.scm |  5 +++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index a934626..7cc33c6 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 7876019..80d0706 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)))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]