[OE-core] [patch]oe-init-build-env: Find and use python2 as default python

NiQingliang niqingliang at insigma.com.cn
Thu Jul 21 06:26:41 UTC 2011


thanks your guide, I have read the link, but it looks like only show the
rule with result without generating process. my mean is how to generate
one patch.
setp 1 ... step 2 ... step3 ...

so after made other patch mail as reference, I got that (`git diff -p
--stat` after a new clean clone) (and sorry for that if still mistake):

oe-init-build-env: Find and use python2 as default python

most Linux distribution use python 2.x as the default as bitbake
expected, but some use python 3.x as the default (like archlinux).

if the default python is 2.x, it will do nothing. or it will search it
in /usr/bin and /bin. if found, then make a soft link in the build dir,
and add the build dir into the env var PATH.
  
Signed-off-by: Ni Qingliang <niqingliang at insigma.com.cn>
---
 oe-init-build-env |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/oe-init-build-env b/oe-init-build-env
index 77332a7..a11a4c4 100755
--- a/oe-init-build-env
+++ b/oe-init-build-env
@@ -39,6 +39,34 @@ else
    $OEROOT/scripts/oe-setup-builddir
    unset OEROOT
    unset BBPATH
+
+   # find the python 2.x, if the default python is not.
+   # NOTE:
+   #    the 'python -V' need redirect to stdout
+   #    once we can ensure every distribution has 'python2' (currently,
except
+   #    ubuntu), we should change bitbake's shebang to '/usr/bin/env
python2',
+   #    and remove this patch.
+   # precondition:
+   #    $BUILDDIR is not NULL, but I doubt when it will be NULL.
+   #    user have not made the file $BUILDDIR/python by himself.
+   if [ -z "`/usr/bin/env python -V 2>&1|grep '^Python 2\.'`" ]; then
+      PYTHON2_BIN=""
+      for PY_BIN in `find /{usr/,}bin -regex '.*/python\(\|2\|2\.[0-9]*
\)'`; do
+         if [ -n "`$PY_BIN -V 2>&1|grep '^Python 2\.'`" ]; then
+            PYTHON2_BIN=$PY_BIN
+            break
+         fi
+      done
+      if [ -n "$PYTHON2_BIN" ]; then
+         ln -sf $PY_BIN $BUILDDIR/python
+         export PATH="$BUILDDIR:$PATH"
+         echo "NOTE: BitBake will use '$PY_BIN' to execute python
code."
+      else
+         echo "ERROR: unable to find Python 2.x, BitBake requires
Python 2.6 or 2.7."
+      fi
+      unset PYTHON2_BIN
+   fi
+
    [ -n "$BUILDDIR" ] && cd $BUILDDIR
 fi
 
On Thu, 2011-07-21 at 05:28 +0800, Saul Wold wrote:
> oe-init-build-env: Find and use python2 as default python
-- 
倪庆亮
TEL:    13588371863
E-MAIL: niqingliang at insigma.com.cn
BLOG:   http://niqingliang2003.wordpress.com






More information about the Openembedded-core mailing list