On Wed, 2016-06-01 at 13:35 +0100, Richard Purdie wrote: > 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. > > Signed-off-by: Richard Purdie <[email protected]> > --- > scripts/oe-buildenv-internal | 38 +++++++++++++++++++++----------------- > 1 file changed, 21 insertions(+), 17 deletions(-) > > diff --git a/scripts/oe-buildenv-internal b/scripts/oe-buildenv-internal > index 81ee784..56d3419 100755 > --- a/scripts/oe-buildenv-internal > +++ b/scripts/oe-buildenv-internal > @@ -29,27 +29,31 @@ if [ -z "$OE_SKIP_SDK_CHECK" ] && [ -n > "$OECORE_SDK_VERSION" ]; then > return 1 > fi > > -# Make sure we're not using python v3.x. This check can't go into > -# sanity.bbclass because bitbake's source code doesn't even pass > -# parsing stage when used with python v3, so we catch it here so we > -# can offer a meaningful error message. > -py_v3_check=$(/usr/bin/env python --version 2>&1 | grep "Python 3") > -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" > +# Make sure we're not using python v3.x as 'python', we don't support it. > +py_v2_check=$(/usr/bin/env python --version 2>&1 | grep "Python 3") > +if [ -n "$py_v2_check" ]; then > + echo >&2 "OpenEmbedded requires 'python' to be python v2 (>= 2.7.3), not > python v3." > + echo >&2 "Please set up python v2 as your default 'python' interpreter." > return 1 > fi > -unset py_v3_check > - > -# Similarly, we now 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_v26_check=$(python -c 'import sys; print sys.version_info >= (2,7,3)') > -if [ "$py_v26_check" != "True" ]; then > - echo >&2 "BitBake requires Python 2.7.3 or later" > +unset py_v2_check > + > +py_v27_check=$(python -c 'import sys; print sys.version_info >= (2,7,3)') > +if [ "$py_v27_check" != "True" ]; then > + echo >&2 "OpenEmbedded requires 'python' to be python v2 (>= 2.7.3), not > python v3." > + echo >&2 "Please upgrade your python v2." > +fi > +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 > fi > -unset py_v26_check > +unset py_v34_check > > if [ -z "$BDIR" ]; then > if [ -z "$1" ]; then > -- > 2.5.0
It seems to me the comment about older Python versions should remain before the 2.7.3 check so that it applies to both the 2.7.3 and 3.4.0 checks. -Bill -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
