On Tue, Jul 21, 2020 at 12:12 PM SZEDER Gábor <szeder.dev@xxxxxxxxx> wrote: > In our test suite, when 'git p4' invokes a Git command as a > subprocesses, then it should run the 'git' binary we are testing. > Unfortunately, this is not the case in the 'linux-clang' and > 'linux-gcc' jobs on Travis CI, where 'git p4' runs the system > '/usr/bin/git' instead. > > Travis CI's default Linux image includes 'pyenv', and all Python > invocations that involve PATH lookup go through 'pyenv', e.g. our > 'PYTHON_PATH=$(which python3)' sets '/opt/pyenv/shims/python3' as > PYTHON_PATH, which in turn will invoke '/usr/bin/python3'. Alas, the > 'pyenv' version included in this image is buggy, and prepends the > directory containing the Python binary to PATH even if that is a > system directory already in PATH near the end. Consequently, 'git p4' > in those jobs ends up with its PATH starting with '/usr/bin', and then > runs '/usr/bin/git'. > > So remove 'pyenv' in Travis CI's Linux jobs to prevet it from s/prevet/prevent/ > interfering with our 'git p4' tests. > > diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh > @@ -36,6 +36,14 @@ linux-clang|linux-gcc) > + > + if test true = "$TRAVIS" && > + pyenv_root=$(pyenv root) > + then > + # pyenv in Travis CI's current default (xenial) Linux > + # image messes up PATH for 'git p4'. I wonder if this comment should give more precise detail about exactly how it "messes up" PATH. > + sudo rm -rf "$pyenv_root" > + fi