Subject: bug#66705: closed (Re: bug#66705: ‘guix shell-CW’ provides a Guix command without extra channels)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 19 Mar 2024 17:41:05 +0000

Your bug report

#66705: ‘guix shell -CW’ provides a Guix command without extra channels

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
66705: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66705
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#66705: ‘guix shell -CW’ provides a Guix command without extra channels
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Date: Tue, 19 Mar 2024 18:39:47 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello!

I’m glad to report that this bug is fixed by
c90a4e8dcd6ac650392ffcc039273baf145aa3cc.

In these examples, you can see that all my channels are present, both in
a bare-bones ‘shell -CW’ (where bin/ is a direct symlink to the ‘guix
pull’ profile) and in ‘shell -CW coreutils’ (where bin/ fuses that of
coreutils and that of guix):

--8<---------------cut here---------------start------------->8---
$ guix time-machine -- shell -CW -- guix describe
  shepherd 33bcc05
    repository URL: https://git.savannah.gnu.org/git/shepherd.git
    branch: devel
    commit: 33bcc0517c0036589aeb55633d3b8e40a7157973
  guile 54c4753
    repository URL: https://git.savannah.gnu.org/git/guile.git
    branch: main
    commit: 54c4753dd3f7506bee2778b36d7263b613ffd579
  guix b7eb1a8
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: b7eb1a8116b2caee7acf26fb963ae998fbdb4253
$ guix time-machine -- shell -CW coreutils -- guix describe
  shepherd 33bcc05
    repository URL: https://git.savannah.gnu.org/git/shepherd.git
    branch: devel
    commit: 33bcc0517c0036589aeb55633d3b8e40a7157973
  guile 54c4753
    repository URL: https://git.savannah.gnu.org/git/guile.git
    branch: main
    commit: 54c4753dd3f7506bee2778b36d7263b613ffd579
  guix b7eb1a8
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: b7eb1a8116b2caee7acf26fb963ae998fbdb4253
--8<---------------cut here---------------end--------------->8---

And of course, packages from these channels are now found:

--8<---------------cut here---------------start------------->8---
$ guix time-machine -- shell -CW -- guix build shepherd guile -n
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://guix.bordeaux.inria.fr'... 100.0%
The following files would be downloaded:
  /gnu/store/d3kc0pww2ff9p06w0g30l0yag68ygns1-shepherd-0.10.99-tarball
  /gnu/store/k0jnqjxs43ra248rb0hqbb31yjbvb9jy-guile-3.0.99-git-debug
  /gnu/store/21q3cm08gda1yd9pi0vwrksvhgjk3qx8-guile-3.0.99-git
$ guix time-machine -- shell -CW coreutils -- guix build shepherd guile -n
The following files would be downloaded:
  /gnu/store/d3kc0pww2ff9p06w0g30l0yag68ygns1-shepherd-0.10.99-tarball
  /gnu/store/k0jnqjxs43ra248rb0hqbb31yjbvb9jy-guile-3.0.99-git-debug
  /gnu/store/21q3cm08gda1yd9pi0vwrksvhgjk3qx8-guile-3.0.99-git
--8<---------------cut here---------------end--------------->8---

Ludo’.

Subject: ‘guix shell -CW’ provides a Guix command without extra channels
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Date: Mon, 23 Oct 2023 18:26:10 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

‘guix shell -CW’ dismisses extra channels available in the original
Guix, as illustrated by this example:

--8<---------------cut here---------------start------------->8---
$ guix time-machine -C <(echo '(cons (channel (name (quote guix-hpc)) (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git")) %default-channels)') -- shell -CW coreutils -- guix describe
  guix cbd20d6
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: cbd20d627497053871db863970c07d93c7081786

$ guix time-machine -C <(echo '(cons (channel (name (quote guix-hpc)) (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git")) %default-channels)') -- describe
  guix cbd20d6
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: cbd20d627497053871db863970c07d93c7081786
  guix-hpc 887d76a
    repository URL: https://gitlab.inria.fr/guix-hpc/guix-hpc.git
    branch: master
    commit: 887d76a8e1d0f35d615c613b28b9b871f39a997e
--8<---------------cut here---------------end--------------->8---

This is due to the fact that ‘-W’ (‘--nesting’) is implemented by adding
the outer ‘guix’ to the container’s profile, without also adding its
companion profile entries (those that provide channels).

Ludo’.