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

From: [email-masked] (Ludovic Courtès)
Date: Mon, 23 Nov 2015 15:31:12 +0100

Alex Kost <[email-masked]> skribis:

> Ludovic Courtès (2015-11-23 02:04 +0300) wrote:
>
>> Alex Kost <[email-masked]> skribis:
>>
>>> Ludovic Courtès (2015-11-22 13:52 +0300) wrote:
>>
>> [...]
>>
>>> but it suits only the default case of a single user profile.  If I
>>> have several user profiles, it does nothing useful for me, only wastes
>>> the time.
>>
>> I think this is fine.  ~/.guix-profile is treated specially in many
>> ways.  I think users do not expect other profiles to be magically taken
>> into account.
>
> Yes, this is a good default option, all I wanted to say is if I don't
> use Guix in a default way, I would like to change this default option to
> suit my needs.

IMO this is beyond the scope of this discussion: /etc/profile already
sources ~/.guix-profile/etc/profile explicitly, and not anything else.

[...]

>>> … what I suggest now is just to give an option to avoid generating the
>>> default /etc/profile.  What about making an 'operating-system' field for
>>> this file (similar to 'sudoers-file' or 'hosts-file')?  So when such
>>> 'profile-file' is specified, it will be used instead of the default one
>>> (of course, it should be mentioned in the manual that it's only for
>>> those users who are sure what they do).
>>
>> I think we could make an /etc/profile-service that receives snippets
>> meant to be glued together into the final /etc/profile.  Users could
>> specify the top or bottom of the file.
>>
>> There could be a combined-search-paths-service that implements the
>> solution I proposed here.
>>
>> WDYT?
>
> I agree, the more ways to change a default behaviour, the better.
> Although I will not use these things if there will be ‘profile-file’
> field that allows to specify my own "/etc/profile".

[...]

> Great!  So is it OK to send a patch for adding ‘profile-file’ field?

Hmm, I’m not sure if we want to give direct access to /etc/profile like
this.

The problem is that several things in there are here to make the system
work, and to to make it conform to the ‘operating-system’ declaration,
such as:

--8<---------------cut here---------------start------------->8---
export LANG="en_US.utf8"
export TZ="Europe/Paris"
export TZDIR="/gnu/store/rwvf6xqgsyb8bmpi7rwk9fildnwvzrv5-tzdata-2015c/share/zoneinfo"

# Tell 'modprobe' & co. where to look for modules.
export LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules
--8<---------------cut here---------------end--------------->8---

The risk I see with adding a raw ‘profile-file’ option is that newcomers
may end up getting rid of such things without really noticing, and then
getting a broken system.

What about instead giving a way to populate the top and/or bottom of
this file?  Controversial parts, if any, could still be turned on and
off by adding or removing services that add these lines?

I think we should open a separate bug report to discuss this.

>>  But I think it’s also
>> important to discuss the defaults, to make sure they are acceptable to
>> many and that they improve the “user experience.”
>
> I'm probably not the person to discuss the defaults, as very often I
> find defaults inappropriate.

Understood.  I’m sure you’ll understand, though, that it’s in the
interest of the project and its users to provide a good user experience
firsthand.

Thanks for your feedback,
Ludo’.