Subject: [bug#58339] ’guix shell’ not working with GUIX_EXTENSIONS_PATH

From: Liliana Marie Prikler <[email-masked]>
Date: Fri, 07 Oct 2022 20:21:36 +0200

Am Freitag, dem 07.10.2022 um 10:21 +0200 schrieb zimoun:
> Hi Liliana,
> 
> Thanks for your feedback.
> 
> On jeu., 06 oct. 2022 at 21:58, Liliana Marie Prikler
> <[email-masked]> wrote:
> 
> About this:
> 
> > 2. Testing the extension via `guix shell'
> 
> We need to open another issue because it is not related to the
> current patch (proposal for a simple example of an extensions); this
> point #2 is an issue about all the extensions.
But that's the point.  Simply adding an extension – whether an example
or an actually useful one – doesn't teach users how to use them.  It's
missing this very information among other things.

> For instance, let consider guix-modules [1].  It reads,
> 
> --8<---------------cut here---------------start------------->8---
> $ guix install guix-modules
> $ export GUIX_EXTENSIONS_PATH="$HOME/.guix-
> profile/share/guix/extensions"
> --8<---------------cut here---------------end--------------->8---
> 
> and if instead, one uses a shell, it fails:
> 
> --8<---------------cut here---------------start------------->8---
> $ guix shell guix-modules -- guix module -h
> guix: module: command not found
> Try `guix --help' for more information.
> 
> $ guix shell guix-modules
> [env]$ guix module -h
> guix: module: command not found
> Try `guix --help' for more information.
> --8<---------------cut here---------------end--------------->8---
> 
> Note that the variable GUIX_EXTENSIONS_PATH is listed in etc/profile,
> 
> --8<---------------cut here---------------start------------->8---
> [env]$ cat $GUIX_ENVIRONMENT/etc/profile
> # Source this file to define all the relevant environment variables
> in Bash
> # for this profile.  You may want to define the 'GUIX_PROFILE'
> environment
> # variable to point to the "visible" name of the profile, like this:
> #
> #  GUIX_PROFILE=/path/to/profile ; \
> #  source /path/to/profile/etc/profile
> #
> # When GUIX_PROFILE is undefined, the various environment variables
> refer
> # to this specific profile generation.
> 
> export GUIX_EXTENSIONS_PATH="${GUIX_PROFILE:-
> /gnu/store/qhfy9wwzg98a0j3i88qaxdmy19rvp0s8-
> profile}/share/guix/extensions${GUIX_EXTENSIONS_PATH:+:}$GUIX_EXTENSI
> ONS_PATH"
> --8<---------------cut here---------------end--------------->8---
> 
> Well, another issue with extensions. :-)
In case you really didn't know how to use extensions with guix shell,
it's guix shell guix your-extension -- guix blah, assuming your
extension works with a slightly older guix.

Cheers