On Fri, Jan 26, 2018 at 9:34 AM, Paul Otto <[email protected]> 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.

> This patch specifically checks for when commandname is "source"

This is not how bash behaves. It treats "." and "source" the same.

> and only
> performs the additional PWD search in that case, and only after it has
> neither 1) short-circuited from a /; and 2) not been found somewhere within
> the PATH.

I think this should be made a config option, off by default.
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to