Subject: [bug#68498] [PATCH] guix-install.sh: Make Guix modules available too.

From: Janneke Nieuwenhuizen <[email-masked]>
Date: Fri, 19 Apr 2024 16:58:38 +0200

Maxim Cournoyer writes:

Hi Maxim,

> Janneke Nieuwenhuizen <[email-masked]> writes:
>
>> Janneke Nieuwenhuizen writes:
>>
>> Hello,
>>
>>>> Maxim Cournoyer <[email-masked]> skribis:
>>>>
>>>>> Ludovic Courtès <[email-masked]> writes:
[..]

>> Nice as it is that on Guix System you have Guix' modules available to
>> Guile by default, I stumbled onto another (obvious?) UX issue.
>
>> After doing `guix pull' (and no guix system reconfigure), you have a new
>> guix!  With new modules.  You can play with them in `guix repl'.  Only,
>> when you start the guile, these new modules are not available; guile can
>> only see the (stale) system's guix modules.  I'm not even sure how to
>> make them available to guile, other than `guix system reconfigure'.
>
> Even then, the modules available are not that of the latest pulled Guix;
> they are those of the guix package known by that guix, which was used to
> run the guix-daemon service.

Ah, right.  They're only available to ~/.config/guix/current/bin/guix,
and thus also to its repl.

>> "guix shell guile" doesn't make guix's modules available, of course, and
>> "guix shell guix guile will get you the previous guix, not the new
>> version made available by pull.  The only thing I could think of, is to
>> provide a `guile' binary in ~/.config/guix/current/bin/guile.  Hmm.
>
> I'm not sure how providing a Guile from there would help?

Maybe I'm confusing things.  Guile will only set its GUILE_*_LOAD_PATHS
if installed in the same profile; I thought the toplevel `guile' we
build in guix is a hack to do just that.  But I'm a bit out of my depth
here.

>> Hopefully there's an easier solution but if we cannot (or don't want to)
>> change/fix this, I'd possibly even rather not have guix modules
>> available to guile by default.  WDYT?
>
> Perhaps we should treat the Guix library as a first class citizen, and
> expose them to the Guile load path by default?  This would need to be
> done in some config file such as .bashrc, and could be automated in the
> guix-install. script, I believe.

That would be nice, I think.

> If we do this, we should also change the guix-daemon-service-type to
> avoid leaking 'guix' into the system profile, polluting it with old
> modules.
>
> What do you think?  Is there a better alternative I do not see?

Good questions, who would know such things? ;)

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <[email-masked]>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com