bug#66705: ‘guix shell -CW’ provides a Guix command without extra channels
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’.
bug#66705: ‘guix shell -CW’ provides a Guix command without extra channels
Hi, On Mon, 23 Oct 2023 at 18:52, Ludovic Courtès wrote: > Actually, the original profile, which contains ‘guix’ and its channels, > *is* available in the environment: > > --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 > [env]$ readlink -f $(type -P guix) > /gnu/store/42731vcvzl6nrwa584mziwhpvp4xs72r-guix-command > [env]$ type -P guix > /gnu/store/ca142m4lm0grxmsjqrcqpfl5qb5i1rka-profile/bin/guix > [env]$ readlink $(type -P guix) > /gnu/store/j5g09kjd7pv1b6919vbsnjs160xfw9md-profile/bin/guix > [env]$ /gnu/store/j5g09kjd7pv1b6919vbsnjs160xfw9md-profile/bin/guix describe > guix cbd20d6 > repository URL: https://git.savannah.gnu.org/git/guix.git > branch: master > commit: > ]8;;https://git.savannah.gnu.org/cgit/guix.git/commit/?id=cbd20d627497053871db863970c07d93c7081786\cbd20d627497053871db863970c07d93c7081786]8;;\ > guix-hpc 887d76a > repository URL: https://gitlab.inria.fr/guix-hpc/guix-hpc.git > branch: master > commit: > ]8;;https://gitlab.inria.fr/guix-hpc/guix-hpc/commit/887d76a8e1d0f35d615c613b28b9b871f39a997e\887d76a8e1d0f35d615c613b28b9b871f39a997e]8;;\ > --8<---cut here---end--->8--- > > The problem is the extra profile layer that confuses > ‘current-channel-entries’ in (guix describe). Oh. Naive remarks. The ’guix’ in the manifest points to the correct one with both channels. --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 [env]$ cat $GUIX_ENVIRONMENT/manifest ;; This file was automatically generated and is for internal use only. ;; It cannot be passed to the '--manifest' option. ;; Run 'guix package --export-manifest' if you want to export a file ;; suitable for '--manifest'. (manifest (version 4) (packages (("coreutils" "9.1" "out" "/gnu/store/d4rqw481nwvrzs09nd8ad647nczgm9k1-coreutils-9.1") ("guix" "cbd20d627497053871db863970c07d93c7081786" "out" "/gnu/store/vrmfn5142771vzma3nzivb8j3zx9780v-profile" (search-paths (("GUIX_EXTENSIONS_PATH" ("share/guix/extensions") ":" directory #f) ("SSL_CERT_DIR" ("etc/ssl/certs") #f directory #f))) [env]$ /gnu/store/vrmfn5142771vzma3nzivb8j3zx9780v-profile/bin/guix describe guix cbd20d6 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: ]8;;https://git.savannah.gnu.org/cgit/guix.git/commit/?id=cbd20d627497053871db863970c07d93c7081786\cbd20d627497053871db863970c07d93c7081786]8;;\ guix-hpc ef21e73 repository URL: https://gitlab.inria.fr/guix-hpc/guix-hpc.git branch: master commit: ]8;;https://gitlab.inria.fr/guix-hpc/guix-hpc/commit/ef21e73d09e792c3ed18b2483a6290b8309bd929\ef21e73d09e792c3ed18b2483a6290b8309bd929]8;;\ --8<---cut here---end--->8--- Well, what appears to me weird is that the ’guix’ I type is incorrect but points to a correct one. --8<---cut here---start->8--- [env]$ ls -l $(type -P guix) lrwxrwxrwx 1 65534 overflow 60 Jan 1 1970 /gnu/store/519kyqhl1n5r6cj0jbpkc77v4mnf6ip9-profile/bin/guix -> /gnu/store/vrmfn5142771vzma3nzivb8j3zx9780v-profile/bin/guix [env]$ /gnu/store/519kyqhl1n5r6cj0jbpkc77v4mnf6ip9-profile/bin/guix describe guix cbd20d6 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: ]8;;https://git.savannah.gnu.org/cgit/guix.git/commit/?id=cbd20d627497053871db863970c07d93c7081786\cbd20d627497053871db863970c07d93c7081786]8;;\ [env]$ /gnu/store/vrmfn5142771vzma3nzivb8j3zx9780v-profile/bin/guix describe guix cbd20d6 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: ]8;;https://git.savannah.gnu.org/cgit/guix.git/commit/?id=cbd20d627497053871db863970c07d93c7081786\cbd20d627497053871db863970c07d93c7081786]8;;\ guix-hpc ef21e73 repository URL: https://gitlab.inria.fr/guix-hpc/guix-hpc.git branch: master commit: ]8;;https://gitlab.inria.fr/guix-hpc/guix-hpc/commit/ef21e73d09e792c3ed18b2483a6290b8309bd929\ef21e73d09e792c3ed18b2483a6290b8309bd929]8;;\ --8<---cut here---end--->8--- Well, another way to express, 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). is to note that the manifest file is incorrect and does not contain the outer manifest file, right? --8<---cut
bug#66705: ‘guix shell -CW’ provides a Guix command without extra channels
Ludovic Courtès skribis: > 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). Actually, the original profile, which contains ‘guix’ and its channels, *is* available in the environment: --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 [env]$ readlink -f $(type -P guix) /gnu/store/42731vcvzl6nrwa584mziwhpvp4xs72r-guix-command [env]$ type -P guix /gnu/store/ca142m4lm0grxmsjqrcqpfl5qb5i1rka-profile/bin/guix [env]$ readlink $(type -P guix) /gnu/store/j5g09kjd7pv1b6919vbsnjs160xfw9md-profile/bin/guix [env]$ /gnu/store/j5g09kjd7pv1b6919vbsnjs160xfw9md-profile/bin/guix describe guix cbd20d6 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: ]8;;https://git.savannah.gnu.org/cgit/guix.git/commit/?id=cbd20d627497053871db863970c07d93c7081786\cbd20d627497053871db863970c07d93c7081786]8;;\ guix-hpc 887d76a repository URL: https://gitlab.inria.fr/guix-hpc/guix-hpc.git branch: master commit: ]8;;https://gitlab.inria.fr/guix-hpc/guix-hpc/commit/887d76a8e1d0f35d615c613b28b9b871f39a997e\887d76a8e1d0f35d615c613b28b9b871f39a997e]8;;\ --8<---cut here---end--->8--- The problem is the extra profile layer that confuses ‘current-channel-entries’ in (guix describe). Ludo’.
bug#66705: ‘guix shell -CW’ provides a Guix command without extra channels
‘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’.