GNU bug report logs - #62448
Inconsistent guile enviornment from guix shell

Previous Next

Package: guix;

Reported by: Skyler <skyvine <at> protonmail.com>

Date: Sat, 25 Mar 2023 19:12:01 UTC

Severity: normal

Tags: patch

Done: Josselin Poiret <dev <at> jpoiret.xyz>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Josselin Poiret <dev <at> jpoiret.xyz>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#62448: closed (Inconsistent guile enviornment from guix shell)
Date: Fri, 25 Aug 2023 16:32:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Fri, 25 Aug 2023 18:30:51 +0200
with message-id <87o7ivt77o.fsf <at> jpoiret.xyz>
and subject line Re: bug#62448: [PATCH] doc: Note that `guix shell` should contain base language packages.
has caused the debbugs.gnu.org bug report #62448,
regarding Inconsistent guile enviornment from guix shell
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
62448: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62448
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Skyler <skyvine <at> protonmail.com>
To: "bug-guix <at> gnu.org" <bug-guix <at> gnu.org>
Subject: Inconsistent guile enviornment from guix shell
Date: Sat, 25 Mar 2023 19:10:04 +0000
[Message part 3 (text/plain, inline)]
Hello,

The modules available in a guile REPL seem to be inconsistent after running the guix shell command, where using the -D flag to create a development environment behaves as expected, but leaving out that flag to add the package itself to the environment does not. I am experiencing this issue with some random code on my machine, but I will use guile-pubstrate defined in guix code (https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/guile-xyz.scm?id=04724e59971b03f86a410285653d24005c62b924#n340) as an example for reproduction. Note that guile-pubstrate lists guile-webutils as a propagated input.

When I use `guix shell -D guile-pubstrate`, I am able to import the `(webutils bytevectors)` module, as I would expect. I am not able to import `(pubstrate apclient)`, also as I would expect. Inspecting GUILE_LOAD_PATH shows that a new profile path was added which contains the dependencies:

$ guix shell -D guile-pubstrate --checkguix shell: checking the environment variables visible from shell '/gnu/store/d99ykvj3axzzidygsmdmzxah4lvxd6hw-bash-5.1.8/bin/bash'...
guix shell: All is good!  The shell gets correct environment variables.
[env]$ guile
GNU Guile 3.0.7
Copyright (C) 1995-2021 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (use-modules (webutils bytevectors))
scheme@(guile-user)> (use-modules (pubstrate apclient))
While compiling expression:
no code for module (pubstrate apclient)
scheme@(guile-user)> ,q
[env]$ echo $GUILE_LOAD_PATH
/gnu/store/pr4vyrz2xsziv25hrdfyim0wy331p4z5-profile/share/guile/site/3.0:/run/current-system/profile/share/guile/site/3.0:/home/skyler/.guix-profile/share/guile/site/3.0
$ ls /gnu/store/pr4vyrz2xsziv25hrdfyim0wy331p4z5-profile/share/guile/site/3.0
8sync      apicheck.scm  config     debugging  fibers      gcrypt    gnutls      graph         io       match-bind.scm  md5.scm  rx      search  sjson.scm  term     text           web
8sync.scm  compat        container  fash.scm   fibers.scm  gdbm.scm  gnutls.scm  htmlprag.scm  logging  math            os       scheme  sjson   string     texinfo  unit-test.scm  webutils

However, when I use guix shell guile-pubstrate, neither (webutils bytevectors) nor (pubstrate apclient) are available. I would expect both of them to be, the former because it is a propagated input and the latter because it is the package that was directly added. If guile was able to locate pubstrate's modules, I would expect loading to fail because its runtime dependencies are not available. Inspecting GUILE_LOAD_PATH shows that nothing was added to it:

$ guix shell guile-pubstrate --check
guix shell: checking the environment variables visible from shell '/gnu/store/d99ykvj3axzzidygsmdmzxah4lvxd6hw-bash-5.1.8/bin/bash'...
guix shell: All is good!  The shell gets correct environment variables.
[env]$ guile
GNU Guile 3.0.9
Copyright (C) 1995-2023 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (use-modules (webutils bytevectors))
While compiling expression:
no code for module (webutils bytevectors)
scheme@(guile-user)> (use-modules (pubstrate apclient))
While compiling expression:
no code for module (pubstrate apclient)
scheme@(guile-user)> ,q
[env]$ echo $GUILE_LOAD_PATH
/run/current-system/profile/share/guile/site/3.0:/home/skyler/.guix-profile/share/guile/site/3.0


This is not an issue with the guile-pubstrate definition in particular, because guix shell guile-webutils also fails to add its modules to my environment:


$ guix shell --check guile-webutilsThe following derivation will be built:
  /gnu/store/ca8gv3yk2khs0h60kc5v682g7gvfqd23-profile.drv

building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
building directory of Info manuals...
building profile with 1 package...
guix shell: checking the environment variables visible from shell '/gnu/store/d99ykvj3axzzidygsmdmzxah4lvxd6hw-bash-5.1.8/bin/bash'...
guix shell: All is good!  The shell gets correct environment variables.
[env]$ guile
GNU Guile 3.0.9
Copyright (C) 1995-2023 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (use-modules (webutils bytevectors))
While compiling expression:
no code for module (webutils bytevectors)

My machine is up-to-date as of today:

Generation 32 Mar 25 2023 11:32:38 (current)  guix 04724e5
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 04724e59971b03f86a410285653d24005c62b924
  rde a7b5944
    repository URL: https://git.sr.ht/~abcdw/rde
    branch: master
    commit: a7b59443405169600a00f0b295a3fb1de360cb0b


Let me know if there is anything I can do to help diagnose or fix this issue.


Thanks,
Skyler
[Message part 4 (text/html, inline)]
[signature.asc (application/pgp-signature, attachment)]
[Message part 6 (message/rfc822, inline)]
From: Josselin Poiret <dev <at> jpoiret.xyz>
To: Simon Tournier <zimon.toutoune <at> gmail.com>, Josselin Poiret via Bug
 reports for GNU Guix <bug-guix <at> gnu.org>, Skyler <skyvine <at> protonmail.com>,
 62448-done <at> debbugs.gnu.org
Subject: Re: bug#62448: [PATCH] doc: Note that `guix shell` should contain
 base language packages.
Date: Fri, 25 Aug 2023 18:30:51 +0200
[Message part 7 (text/plain, inline)]
Hi everyone,

Simon Tournier <zimon.toutoune <at> gmail.com> writes:

> Nitpick: Missing double space for sentences.
>
> Otherwise, LGTM.

Pushed as 9f68a2a9c41166ec5ac24c082bcd96c433dd2ede.

Closing.

Best,
-- 
Josselin Poiret
[signature.asc (application/pgp-signature, inline)]

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

Previous Next


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