support/dependencies: detect and bailout when PATH contains spaces/TABs
authorYann E. MORIN <yann.morin.1998@free.fr>
Sat, 6 Mar 2021 09:19:30 +0000 (10:19 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 14 Mar 2021 22:29:15 +0000 (23:29 +0100)
commite36974d9e8c30227dc492c03737ef5951452cb29
tree40717d75fa02c06f0598e04f1a8a5659c3cfa501
parent754633fe8c306190c00087662df42f5b740c8754
support/dependencies: detect and bailout when PATH contains spaces/TABs

In Makefiles, variables are split, filtered, and otherwise mangled on
a space as a separator. In a shell, they will also be split on TABs.

We split and filter and iterate on variables in a lot of places, and
most importantly, spaces in PATH is very seldom tested, if at all, so
a lot of packages will not be working properly in such a situation.

For example, the config.guess contains constructs that are not resilient
to a space in PATH:

    PATH=$PATH:/.attbin ; export PATH

Also, our fakedate will iterate over PATH:

    for P in `echo $PATH | tr ':' ' '`; do

Those are only two cases, but the first means basically all
autotools-based packages are susceptible to subtle breakage.

Furthermore, Buildroot itself does not support that the top-level or
output directories are in a path with spaces anyway.

So, instead of chasing all cases that might be potentially broken,
let's just detect the case and bail out, like we already do when PATH
contains a \n, or when it contains the current working directory.

Reported-by: Dan Raymond <draymond@foxvalley.net>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
support/dependencies/dependencies.sh