Subject: Re: bug#40125: Problem with guix offload: Remote channel closed

From: Marius Bakke <[email-masked]>
Date: Mon, 23 Mar 2020 00:40:53 +0100

Mikael Djurfeldt <[email-masked]> writes:

> Just as a test, I enabled user specified environments in sshd_config (such
> that ssh reads .ssh/environment) and added the following there:
>
> PATH=/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/bin:/home/guix/.guix-profile/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
> GUILE_LOAD_COMPILED_PATH=/gnu/store/nkh7c4ygaivfxdq3zhccl4a5qxrn6s88-guix-module-union/lib/guile/3.0/site-ccache:/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/lib/guile/3.0/ccache
> GUILE_LOAD_PATH=/gnu/store/nkh7c4ygaivfxdq3zhccl4a5qxrn6s88-guix-module-union/share/guile/site/3.0:/gnu/store/0awhym5h0m890n0wq87y0dxznh14rk88-guile-next-3.0.1/share/guile/3.0
> GUIX_PROFILE=/home/guix/.guix-profile
> GUIX_LOCPATH=/home/guix/.guix-profile/lib/locale
>
> This made the offload test work.
>
> Crucial here is the PATH to guile 3.0.1 as well as the GUILE_LOAD_* paths.
>
> But how are these *supposed* to be setup on the build host???

Installing 'guile' and 'guix' (or their Guile 3.0 equivalents) into the
user profile is the simplest solution.  Then you can just source
~/.guix-profile/etc/profile early in .bashrc, because it will contain
all the relevant variables.

Otherwise manipulating PATH and GUILE_LOAD_PATH directly seems like a
fine solution to me, but you should refer to
~/.config/guix/current/share/guile and friends instead of
/gnu/store/...guix-module-union/share/guile because the latter is prone
to being garbage collected.

Does that make sense?  It might be useful to create a dedicated user
account for this to avoid clobbering your regular dotfiles/profiles.

I don't think there is an established practice here, so your feedback on
this is very valuable!  Offloading to a Guix System will just work, of
course.