GNU bug report logs - #66705
‘guix shell -CW’ provides a Guix command without extra channels

Previous Next

Package: guix;

Reported by: Ludovic Courtès <ludovic.courtes <at> inria.fr>

Date: Mon, 23 Oct 2023 16:28:01 UTC

Severity: important

Done: Ludovic Courtès <ludovic.courtes <at> inria.fr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 66705 in the body.
You can then email your comments to 66705 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#66705; Package guix. (Mon, 23 Oct 2023 16:28:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludovic.courtes <at> inria.fr>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 23 Oct 2023 16:28:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: bug-guix <at> gnu.org
Subject: ‘guix shell -CW’ provides a
 Guix command without extra channels
Date: Mon, 23 Oct 2023 18:26:10 +0200
‘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’.




Information forwarded to bug-guix <at> gnu.org:
bug#66705; Package guix. (Mon, 23 Oct 2023 16:54:01 GMT) Full text and rfc822 format available.

Message #8 received at 66705 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 66705 <at> debbugs.gnu.org
Subject: Re: bug#66705: ‘guix shell -CW’ provides a Guix command without extra channels
Date: Mon, 23 Oct 2023 18:52:44 +0200
Ludovic Courtès <ludovic.courtes <at> inria.fr> 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’.




Information forwarded to bug-guix <at> gnu.org:
bug#66705; Package guix. (Mon, 23 Oct 2023 19:15:02 GMT) Full text and rfc822 format available.

Message #11 received at 66705 <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>, 66705 <at> debbugs.gnu.org
Subject: Re: bug#66705: ‘guix shell -CW’ provides a Guix command without extra channels
Date: Mon, 23 Oct 2023 21:14:08 +0200
Hi,

On Mon, 23 Oct 2023 at 18:52, Ludovic Courtès <ludo <at> gnu.org> 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 here---------------start------------->8---
[env]$ cat /gnu/store/519kyqhl1n5r6cj0jbpkc77v4mnf6ip9-profile/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]$ cat /gnu/store/vrmfn5142771vzma3nzivb8j3zx9780v-profile/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 3)
  (packages
    (("guix"
      "cbd20d6"
      "out"
      "/gnu/store/xhim59kcwjnccsvyjv2cv2sbmid9lxm9-guix-cbd20d627"
      (propagated-inputs ())
      (search-paths ())
      (properties
        (source
          (repository
            (version 0)
            (url "https://git.savannah.gnu.org/git/guix.git")
            (branch "master")
            (commit
              "cbd20d627497053871db863970c07d93c7081786")
            (name guix)
            (introduction
              (channel-introduction
                (version 0)
                (commit
                  "9edb3f66fd807b096b48283debdcddccfea34bad")
                (signer
                  "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA")))))))
     ("guix-hpc"
      "ef21e73"
      "out"
      "/gnu/store/hjjwsjwm3csih0764f2mkbd65h44j7fz-guix-hpc"
      (propagated-inputs ())
      (search-paths ())
      (properties
        (source
          (repository
            (version 0)
            (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git")
            (branch "master")
            (commit
              "ef21e73d09e792c3ed18b2483a6290b8309bd929")
            (name guix-hpc))))))))
--8<---------------cut here---------------end--------------->8---


Cheers,
simon




Severity set to 'important' from 'normal' Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Mon, 23 Oct 2023 19:55:02 GMT) Full text and rfc822 format available.

Reply sent to Ludovic Courtès <ludovic.courtes <at> inria.fr>:
You have taken responsibility. (Tue, 19 Mar 2024 17:41:04 GMT) Full text and rfc822 format available.

Notification sent to Ludovic Courtès <ludovic.courtes <at> inria.fr>:
bug acknowledged by developer. (Tue, 19 Mar 2024 17:41:05 GMT) Full text and rfc822 format available.

Message #18 received at 66705-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: 66705-done <at> debbugs.gnu.org
Subject: Re: bug#66705: ‘guix shell -CW’ provides a Guix command without extra channels
Date: Tue, 19 Mar 2024 18:39:47 +0100
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 archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 17 Apr 2024 11:24:11 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 24 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.