Subject: Re: bug#29337: Bash reads system-wide bashrc unconditionally.

From: [email-masked] (Ludovic Courtès)
Date: Fri, 24 Nov 2017 21:51:30 +0100

Roel Janssen <[email-masked]> skribis:

> Ludovic Courtès writes:
>
>> Heya,
>>
>> Roel Janssen <[email-masked]> skribis:
>>
>>> Roel Janssen <[email-masked]> skribis:
>>>
>>>>> On CentOS 7, the following happens (yes, I added the echo-statement to
>>>>> /etc/bashrc on CentOS as well):
>>>>> $ env - bash --init-file <(echo "echo \"Goodbye, world\"") -i
>>>>> Goodbye, world
>>>>>
>>>>> On GuixSD:
>>>>> $ env - bash --init-file <(echo "echo \"Goodbye, world\"") -i
>>>>> Hello, world
>>>>> Goodbye, world
>>
>>> Well it seems that it isn't ignored when it ought to be ignored -> when
>>> specifying --init-file.  This is a difference between how Bash works on
>>> CentOS 7, and how Bash works on Guix(SD).  I can't find a
>>> user-configurable option to make it work the same as on CentOS 7.
>>
>> Now, we’re compiling Bash with "-DSYS_BASHRC='\"/etc/bashrc\"'".  I
>> wonder if removing that flag solves the --init-file case.
>
> It does.  So, I have a custom bash package for my specific use-case.
> I'm not sure how it affects other functionality, but I would like it if
> we could make this change upstream at some point.

Now’s the time to make that change in ‘core-updates’!

I don’t think it breaks things on GuixSD because /etc/profile sources
/etc/bashrc anyway.

Thoughts?

Ludo’.