oe-buildenv-internal: Update to python3

Check that 'python' is a python v2 since that is what we assume everywhere
and upstream python devs recommend. We can need both python2 and python3
available since we don't control the software we might download and run.

Also check that python 3 is >= 3.4.0, our minimum version for bitbake.

(From OE-Core rev: 3dd26cd6b3d731f7698f6fbcd1947969f360cdc4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2016-06-01 13:17:23 +01:00
parent 3c42280b8a
commit c77e7b86aa

View File

@ -29,27 +29,31 @@ if [ -z "$OE_SKIP_SDK_CHECK" ] && [ -n "$OECORE_SDK_VERSION" ]; then
return 1 return 1
fi fi
# Make sure we're not using python v3.x. This check can't go into # Make sure we're not using python v3.x as 'python', we don't support it.
# sanity.bbclass because bitbake's source code doesn't even pass py_v2_check=$(/usr/bin/env python --version 2>&1 | grep "Python 3")
# parsing stage when used with python v3, so we catch it here so we if [ -n "$py_v2_check" ]; then
# can offer a meaningful error message. echo >&2 "OpenEmbedded requires 'python' to be python v2 (>= 2.7.3), not python v3."
py_v3_check=$(/usr/bin/env python --version 2>&1 | grep "Python 3") echo >&2 "Please set up python v2 as your default 'python' interpreter."
if [ -n "$py_v3_check" ]; then
echo >&2 "Bitbake is not compatible with python v3"
echo >&2 "Please set up python v2 as your default python interpreter"
return 1 return 1
fi fi
unset py_v3_check unset py_v2_check
# Similarly, we now have code that doesn't parse correctly with older py_v27_check=$(python -c 'import sys; print sys.version_info >= (2,7,3)')
# versions of Python, and rather than fixing that and being eternally if [ "$py_v27_check" != "True" ]; then
# vigilant for any other new feature use, just check the version here. echo >&2 "OpenEmbedded requires 'python' to be python v2 (>= 2.7.3), not python v3."
py_v26_check=$(python -c 'import sys; print sys.version_info >= (2,7,3)') echo >&2 "Please upgrade your python v2."
if [ "$py_v26_check" != "True" ]; then fi
echo >&2 "BitBake requires Python 2.7.3 or later" unset py_v27_check
# We potentially have code that doesn't parse correctly with older versions
# of Python, and rather than fixing that and being eternally vigilant for
# any other new feature use, just check the version here.
py_v34_check=$(python3 -c 'import sys; print(sys.version_info >= (3,4,0))')
if [ "$py_v34_check" != "True" ]; then
echo >&2 "BitBake requires Python 3.4.0 or later as 'python3'"
return 1 return 1
fi fi
unset py_v26_check unset py_v34_check
if [ -z "$BDIR" ]; then if [ -z "$BDIR" ]; then
if [ -z "$1" ]; then if [ -z "$1" ]; then