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

From: Roel Janssen <[email-masked]>
Date: Mon, 11 Dec 2017 12:35:22 +0100

Ludovic Courtès writes:

> 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?

I don't think it'll break things.  So I guess I'm too late for the
core-updates cycle.  Should I push this change to core-updates for the
next cycle?

Kind regards,
Roel Janssen