[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