Subject: [bug#37869] [PATCH] pull: Honor '/etc/guix/channels.scm'.

From: Oleg Pykhalov <[email-masked]>
Date: Mon, 28 Oct 2019 23:30:24 +0300

Hello,

Ludovic Courtès <[email-masked]> writes:

[…]

>> From: Ludovic Courtès <[email-masked]>
>>
>> * guix/scripts/pull.scm (channel-list)[global-file]: New variable.
>> [channels]: Honor it.
>> * doc/guix.texi (Invoking guix pull): Document it.
>
> Pushed as 49af34cfac89d384c46269bfd9388b2c73b1220a.

I got an error during the guix pull:
--8<---------------cut here---------------start------------->8---
oleg@guixsd ~$ guix pull
News for channel 'guix'
Backtrace:
In guix/ui.scm:
  1730:12 19 (run-guix-command _ . _)
In ice-9/boot-9.scm:
    829:9 18 (catch _ _ #<procedure 7f289995e018 at guix/ui.scm:642…> …)
    829:9 17 (catch _ _ #<procedure 7f289995e030 at guix/ui.scm:765…> …)
    829:9 16 (catch _ _ #<procedure 7f2896e85828 at guix/scripts/pu…> …)
In guix/store.scm:
   623:10 15 (call-with-store _)
In guix/status.scm:
    768:4 14 (call-with-status-report _ _)
In guix/scripts/pull.scm:
   804:24 13 (_)
In guix/store.scm:
  1815:24 12 (run-with-store #<store-connection 256.99 7f288e2ff3c0> …)
In guix/scripts/pull.scm:
   393:28 11 (_ #<store-connection 256.99 7f288a4366c0>)
   356:15 10 (display-channel-news-headlines _)
In srfi/srfi-1.scm:
   592:29  9 (map1 _)
   592:17  8 (map1 ((#<<channel> name: guix url: "https://git.sa…> …)))
In guix/scripts/pull.scm:
   283:11  7 (display-channel-specific-news _ _ #:port _ #:concise? _)
In srfi/srfi-1.scm:
    640:9  6 (for-each #<procedure 7f2888451060 at guix/scripts/pul…> …)
In guix/scripts/pull.scm:
   241:12  5 (display-news-entry-title _ _ #<output: file /dev/pts/13>)
In guix/ui.scm:
  1210:23  4 (texi->plain-text _)
In texinfo.scm:
  1131:22  3 (parse _)
   979:31  2 (loop #<input: string 7f289890b930> (*fragment*) _ _ _)
   910:31  1 (loop #<input: string 7f289890b930> #f #<procedure ide…> …)
   745:27  0 (_ #<input: string 7f289890b930> #f #f #<procedure 7f2…> …)

texinfo.scm:745:27: Throw to key `parser-error' with args `(#<input: string 7f289890b930> "EOF while reading a token " "reading char data")'.
--8<---------------cut here---------------end--------------->8---

Here is a backtrace from guix repl:
--8<---------------cut here---------------start------------->8---
oleg@guixsd ~$ guix repl
scheme@(guix scripts pull)> (display-channel-news "/gnu/store/36kli1qk27gshy9zfszs1w08jgyigmp0-profile" "/gnu/store/89rwy7mnpwwd7gnnpz4lq8gxd66pnd1a-profile")

News for channel 'guix'
texinfo.scm:745:27: Throw to key `parser-error' with args `(#<input: string 7f79cd794930> "EOF while reading a token " "reading char data")'.

scheme@(guix scripts pull) [1]> ,backtrace #:width 1000
In srfi/srfi-1.scm:
    640:9  9 (for-each #<procedure 7f79d830a6e0 at guix/scripts/pull.scm:324:23 (expr)> _)
In guix/scripts/pull.scm:
   283:11  8 (display-channel-specific-news _ _ #:port _ #:concise? _)
In srfi/srfi-1.scm:
    640:9  7 (for-each #<procedure 7f79ca0d9560 at guix/scripts/pull.scm:285:25 (t-136e29f79df174e1-14e9)> (#<<channel-news-entry> commit: "49af34cfac89d384c46269bfd9388b2c73b1220a" tag: #f title: (("en" . "@command{guix pull} now honors\n@file{/etc/guix/channels.scm") ("fr" . "@command{guix pull} lit maintenant\n@file{/etc/guix/channels.scm}")) body: (("en" . "The @command{guix pull} command will now read the\n@file{/etc/guix/channels.scm} file if it exists and if the per-user\n@file{~/.config/guix/channels.scm} is not present.  This allows administrators\nof multi-user systems to define site-wide defaults.") ("fr" . "La commande @command{guix pull} lira maintenant le fichier\n@file{/etc/guix/channels.scm} s'il existe et si le fichier\n@file{~/.config/guix/channels.scm} par utilisateur·rice n'est pas présent.\nCela permet aux personnes administrant des systèmes multi-utilisateurs de\ndéfinir les canaux par défaut."))>))
In guix/scripts/pull.scm:
    251:2  6 (display-news-entry #<<channel-news-entry> commit: "49af34cfac89d384c46269bfd9388b2c73b1220a" tag: #f title: (("en" . "@command{guix pull} now honors\n@file{/etc/guix/channels.scm") ("fr" . "@command{guix pull} lit maintenant\n@file{/etc/guix/channels.scm}")) body: (("en" . "The @command{guix pull} command will now read the\n@file{/etc/guix/channels.scm} file if it exists and if the per-user\n@file{~/.config/guix/channels.scm} is not present.  This allows administrators\nof multi-user systems to define site-wide defaults.") ("fr" . "La commande @command{guix pull} lira maintenant le fichier\n@file{/etc/guix/channels.scm} s'il existe et si le fichier\n@file{~/.config/guix/channels.scm} par utilisateur·rice n'est pas présent.\nCela permet aux personnes administrant des systèmes multi-utilisateurs de\ndéfinir les canaux par défaut."))> "en" #<output: file /dev/pts/17>)
   241:12  5 (display-news-entry-title _ _ #<output: file /dev/pts/17>)
In guix/ui.scm:
  1210:23  4 (texi->plain-text _)
In texinfo.scm:
  1131:22  3 (parse _)
   979:31  2 (loop #<input: string 7f79cdf555b0> (*fragment*) _ _ _)
   910:31  1 (loop #<input: string 7f79cdf555b0> #f #<procedure identity (x)> #f ())
   745:27  0 (_ #<input: string 7f79cdf555b0> #f #f #<procedure 7f79d9fd1ec0 at texinfo.scm:1068:3 (string1 string2 seed)> _)
--8<---------------cut here---------------end--------------->8---

Regards,
Oleg.