support/dependencies: check that PATH does not contain CWD
PATCH 1/1 support/dependencies: check that PATH does not contain CWD
... and simplify the test code for PATH and LD_LIBRARY_PATH.
Signed-off-by "Yann E. MORIN" <[email protected]>
Cc Thomas Petazzoni <[email protected]>
--- support/dependencies/dependencies.sh | 59 ++++++++++++++---------------------- 1 file changed, 23 insertions(+), 36 deletions(-)
support/dependencies/dependencies.sh +23 -36
@@ -11,27 +11,30 @@ if test $? != 0 ; then exit 1 fi -# sanity check for CWD in LD_LIBRARY_PATH -# try not to rely on egrep.. -if test -n "$LD_LIBRARY_PATH" ; then - echo TRiGGER_start"$LD_LIBRARY_PATH"TRiGGER_end | grep '::' >/dev/null 2>&1 || - echo TRiGGER_start"$LD_LIBRARY_PATH"TRiGGER_end | grep ':\.:' >/dev/null 2>&1 || - echo TRiGGER_start"$LD_LIBRARY_PATH"TRiGGER_end | grep 'TRiGGER_start:' >/dev/null 2>&1 || - echo TRiGGER_start"$LD_LIBRARY_PATH"TRiGGER_end | grep 'TRiGGER_start\.:' >/dev/null 2>&1 || - echo TRiGGER_start"$LD_LIBRARY_PATH"TRiGGER_end | grep ':TRiGGER_end' >/dev/null 2>&1 || - echo TRiGGER_start"$LD_LIBRARY_PATH"TRiGGER_end | grep ':\.TRiGGER_end' >/dev/null 2>&1 || - echo TRiGGER_start"$LD_LIBRARY_PATH"TRiGGER_end | grep 'TRiGGER_start\.TRiGGER_end' >/dev/null 2>&1 - if test $? = 0; then - echo - echo "You seem to have the current working directory in your" - echo "LD_LIBRARY_PATH environment variable. This doesn't work." - exit 1; - fi -fi; +# Sanity check for CWD in LD_LIBRARY_PATH +case ":${LD_LIBRARY_PATH:-unset}:" in +(*::*|*:.:*) + echo + echo "You seem to have the current working directory in your" + echo "LD_LIBRARY_PATH environment variable. This doesn't work." + exit 1 + ;; +esac -# PATH should not contain a newline, otherwise it fails in spectacular ways -# as soon as PATH is referenced in a package rule -case "${PATH}" in +# Sanity check for CWD in PATH. Having the current working directory +# in the PATH makes various packages (e.g. toolchain, coreutils...) +# build process break. +# PATH should not contain a newline, otherwise it fails in spectacular +# ways as soon as PATH is referenced in a package rule +# An empty PATH is technically possible, but in practice we would not +# even arrive here if that was the case. +case ":${PATH:-unset}:" in +(*::*|*:.:*) + echo + echo "You seem to have the current working directory in your" + echo "PATH environment variable. This doesn't work." + exit 1 + ;; (*" "*) printf "\n" # Break the '\n' sequence, or a \n is printed (which is not what we want).
@@ -41,22 +44,6 @@ case "${PATH}" in ;; esac -# sanity check for CWD in PATH. Having the current working directory -# in the PATH makes the toolchain build process break. -# try not to rely on egrep.. -if test -n "$PATH" ; then - echo TRiGGER_start"$PATH"TRiGGER_end | grep ':\.:' >/dev/null 2>&1 || - echo TRiGGER_start"$PATH"TRiGGER_end | grep 'TRiGGER_start\.:' >/dev/null 2>&1 || - echo TRiGGER_start"$PATH"TRiGGER_end | grep ':\.TRiGGER_end' >/dev/null 2>&1 || - echo TRiGGER_start"$PATH"TRiGGER_end | grep 'TRiGGER_start\.TRiGGER_end' >/dev/null 2>&1 - if test $? = 0; then - echo - echo "You seem to have the current working directory in your" - echo "PATH environment variable. This doesn't work." - exit 1; - fi -fi; - if test -n "$PERL_MM_OPT" ; then echo echo "You have PERL_MM_OPT defined because Perl local::lib"
Signature · 1 line
2.14.1
PATCH 1/1 support/dependencies: check that PATH does not contain CWD
Hello,
Quoted 7 lines · Yann E. MORIN
... and simplify the test code for PATH and
LD_LIBRARY_PATH.Signed-off-by "Yann E. MORIN" <[email protected]>Cc Thomas Petazzoni <[email protected]>--- support/dependencies/dependencies.sh | 59 ++++++++++++++---------------------- 1 file changed, 23 insertions(+), 36 deletions(-)
This commit log was a bit terse, and didn't give any details about the specific bug report we had on IRC that lead to this bug fix. So I've extended the commit log quite a bit, and applied to master. Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH 1/1 support/dependencies: check that PATH does not contain CWD
In reply to Yann E. MORINQuoted 5 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Yann" == Yann E MORIN <[email protected]> writes:
... and simplify the test code for PATH and
LD_LIBRARY_PATH.Signed-off-by "Yann E. MORIN" <[email protected]>Cc Thomas Petazzoni <[email protected]>
Committed to 2018.02.x, thanks.
Signature · 1 line
Bye, Peter Korsgaard