Re: git: dcb65c5a94d4 - main - csh: Remove hardlink /.cshrc

From: Jessica Clarke <jrtc27_at_freebsd.org>
Date: Wed, 05 Jun 2024 05:38:09 UTC
On 5 Jun 2024, at 06:30, Emmanuel Vadot <manu@bidouilliste.com> wrote:
> 
> 
> Hi John,
> 
> On Tue, 4 Jun 2024 16:07:53 -0700
> John Baldwin <jhb@FreeBSD.org> wrote:
> 
>> On 5/29/24 3:57 AM, Emmanuel Vadot wrote:
>>> The branch main has been updated by manu:
>>> 
>>> URL: https://cgit.FreeBSD.org/src/commit/?id=dcb65c5a94d4c622b1d486847dc20488f59974e7
>>> 
>>> commit dcb65c5a94d4c622b1d486847dc20488f59974e7
>>> Author:     Emmanuel Vadot <manu@FreeBSD.org>
>>> AuthorDate: 2024-05-27 13:12:18 +0000
>>> Commit:     Emmanuel Vadot <manu@FreeBSD.org>
>>> CommitDate: 2024-05-29 07:56:58 +0000
>>> 
>>>     csh: Remove hardlink /.cshrc
>>> 
>>>     Remove this historical artifact.
>>>     csh will try to use /.csrch if the user has no home directory defined which
>>>     is rather unlikely (To be exact if the concatenation of $HOME and "/.cshrc"
>>>     fail which is the same thing).
>>> 
>>>     Also, with this change pkg will happily handle 3way merge for /root/.cshrc
>>> 
>>>     Differential Revision:  https://reviews.freebsd.org/D45382
>>>     Reviewed by:            emaste, imp
>>>     Sponsored by:           Beckhoff Automation GmbH & Co. KG
>> 
>> FWIW, this happens anytime you use /bin/csh as root's shell and boot into
>> single user mode.  Similar to /.profile being used for single user mode if
>> root's shell is /bin/sh.  Given we've changed the default shell for root,
>> then it's fine to do this change, but that probably should have been noted
>> in the commit log (in part to serve as a reminder so we don't remove the
>> links for sh).
> 
> I've thought about single user and csh and yes that's a case where csh
> will try to use /.cshrc but root shell doesn't matter here as you need
> to specify /bin/csh as the init prompt for single user mode, the
> default is still /bin/sh no matter what.
> For /.profile, /bin/sh in single-user mode does have $HOME point
> to /root so I think we can remove safely the /.profile hardlink. I
> haven't looked at why /bin/csh doesn't have $HOME set but if someone
> cares about using /bin/csh in single user mode (again nothing to do
> with root shell) they probably wants to do something about setting
> $HOME to /root/.

Are you sure it’s /root before .profile is sourced? root’s .profile
sets and exports HOME itself, so echo $HOME will be misleading at a
single-user prompt for the environment at .profile source time.

Note that root’s .cshrc doesn’t do this, which is likely what you’re
seeing?

Jess