Subject: bug#20255: 'search-paths' should respect both user and system profile.

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 28 Jun 2021 00:48:03 -0400

Hi Alex,

Alex Kost <[email-masked]> writes:

> Maxim Cournoyer (2021-06-25 22:37 -0400) wrote:
>
> [...]
>> Do you still have a vetted interest in the issue at hand?  This is a
>> serious usability problem that's been in limbo for 6 years, apparently
>> for reasons of purity (not wanting to run a command in /etc/profile).
>> While I share the sentiment that /etc/profile would better be 'inert' or
>> static, it seems we haven't been able to come up with a better solution
>> than calling 'guix package --search-paths'.  Like Ludovic, I also don't
>> find the idea of allowing users to override /etc/profile very appealing;
>> even if undocumented, its mere presence in the operating-system field
>> would be an invitation for problems.  An environment variable to disable
>> such basic functionality also seems backward to me.
>>
>> I would personally be in favor of committing the fix as-is.  If < 1 s of
>> wasted time on boot is an issue, I suggest to look into GNU Shepherd to
>> offset it; optimization opportunities should abound :-).
>
> I can modify /etc/profile with any "normal" linux distribution but I
> cannot do it with the Guix System.  And I find it awful that you think
> it should stay like that.  I am for providing as much freedom for a user
> (to configure their system) as possible.
> The current /etc/profile is bearable for me, but if you add a "guix ..."
> call there without providing a way to modify that file, I will probably
> stop using the Guix System.
>
> Or maybe there is a hacky way to change /etc/profile ?  If so, please
> share a code how this can be done.  (Then I will not complain anymore)

Thanks for the reply!  I just wanted to make sure the extra energy to be
spent on the search & implementation of a better solution would not be
in vain; now I that know that it won't!

I like the idea proposed by Leo Prikler; the one about giving the
possibility to users to override the list of default profiles considered
under a file such as ~/.config/guix/default-profiles.

The default would be to load both combine the environment variables of
the system and user profiles using 'guix package --search-paths', but a
user could opt-out of that by providing an empty file, or customize the
list of profiles the way they'd like.

Would that be an acceptable solution from your point of view?

Thank you,

Maxim