[PATCH] ash: make bash_source command search current directory after PATH

Denys Vlasenko vda.linux at googlemail.com
Sun Jan 28 18:17:57 UTC 2018


On Fri, Jan 26, 2018 at 7:50 PM, Mike Frysinger <vapier at gentoo.org> wrote:
> On 26 Jan 2018 15:15, Denys Vlasenko wrote:
>> On Fri, Jan 26, 2018 at 9:34 AM, Paul Otto <paul at ottoops.com> wrote:
>> > This patch restores, and improves upon, expected behavior to BASH
>> > compatibility which was lost beginning with 1.27.0. This was pulled into
>> > Alpine 3.7 which, in turn was pulled into official Docker images beginning
>> > with docker:17.12. As a result, a large number of CICD builds that use
>> > "source filename" have broken everywhere.
>> >
>> > According to the BASH documentation, the source command should:
>> > Read and execute commands from filename  in  the  current  shell environment
>> > and return the exit status of the last command executed from filename.  If
>> > filename does not contain a slash, filenames  in  PATH  are used to find the
>> > directory containing filename.  The file searched for in PATH  need  not  be
>> > executable. When  bash  is  not  in  posix  mode,  the  current directory is
>> > searched if no file is found in PATH.
>>
>> I wish bash wouldn't introduce gratuitous standard violations.
>
> bash is its own shell.  why can't it introduce its own extensions as it sees
> fit ?

Because a divergence is not a good thing, especially if it's gratuitous
(i.e. if a particular bashism is not adding any useful functionaluty).

Making bash "source" behavior non-standard had nothing useful in it.


More information about the busybox mailing list