]> code.ossystems Code Review - openembedded-core.git/commitdiff
oe-init-buildenv/base: Relax python version checks in favour of HOSTTOOLS manipulation
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 30 Oct 2018 11:18:54 +0000 (11:18 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 6 Nov 2018 12:14:05 +0000 (12:14 +0000)
Several distros are now shipping "python" as python v3 contra to the original
python guidelines. This causes users confusion/pain in trying to use our tools.

We can just force "python" to "python2" within HOSTTOOLS to avoid this issue
and hide the complexity from the user.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/base.bbclass
meta/conf/bitbake.conf
scripts/oe-buildenv-internal

index df11c8b270e6fdd5d5869342429271835f3c4248..57b69492ce324374c972f415cd6828c1a83e8c86 100644 (file)
@@ -128,6 +128,12 @@ def setup_hosttools_dir(dest, toolsvar, d, fatal=True):
                 os.symlink(srctool, desttool)
             else:
                 notfound.append(tool)
+    # Force "python" -> "python2"
+    desttool = os.path.join(dest, "python")
+    if not os.path.exists(desttool):
+        srctool = "python2"
+        os.symlink(srctool, desttool)
+
     if notfound and fatal:
         bb.fatal("The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:\n  %s" % " ".join(notfound))
 
index 93aee1ae4628ae0ef7b519dd53cb236d8577884e..dcf20078831249f3b0995851e9eb3b39f23b3d16 100644 (file)
@@ -476,12 +476,13 @@ export PATH
 HOSTTOOLS_DIR = "${TMPDIR}/hosttools"
 
 # Tools needed to run builds with OE-Core
+# python is special cased to point at python2
 HOSTTOOLS += " \
     [ ar as awk basename bash bzip2 cat chgrp chmod chown chrpath cmp comm cp cpio \
     cpp cut date dd diff diffstat dirname du echo egrep env expand expr false \
     fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip \
     head hostname id install ld ldd ln ls make makeinfo md5sum mkdir mknod \
-    mktemp mv nm objcopy objdump od patch perl pod2man pr printf pwd python python2 \
+    mktemp mv nm objcopy objdump od patch perl pod2man pr printf pwd python2 \
     python2.7 python3 ranlib readelf readlink rm rmdir rpcgen sed sh sha256sum \
     sleep sort split stat strings strip tail tar tee test touch tr true uname \
     uniq wc wget which xargs \
index 6773872326144bf5a01168ed6486fb88e5900013..52ce32987c01c042c692692da1fb1310f161ca20 100755 (executable)
@@ -40,16 +40,7 @@ if [ -z "$OE_SKIP_SDK_CHECK" ] && [ -n "$OECORE_SDK_VERSION" ]; then
     return 1
 fi
 
-# 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_v2_check
-
-py_v27_check=$(python -c 'import sys; print sys.version_info >= (2,7,3)')
+py_v27_check=$(python2 -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."