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

login
register
mail settings
Submitter NiQingliang
Date July 21, 2011, 6:26 a.m.
Message ID <1311229602.13861.17.camel@localhost.localdomain>
Download mbox | patch
Permalink /patch/8131/
State New, archived
Headers show

Comments

NiQingliang - July 21, 2011, 6:26 a.m.
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@insigma.com.cn>
---
 oe-init-build-env |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

+   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
Saul Wold - July 22, 2011, 3:53 p.m.
On 07/20/2011 11:26 PM, NiQingliang wrote:
> 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 ...

Ni (sorry about getting your name wrong last time)

Everyone's work flow is different, I am not sure what your currently is, 
but using git format-patch and git send-email would be the best method 
to send a patch that can then be consumed by git am.

Please resend this as I still had trouble with the merge.

Thanks
	Sau!

>
> 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@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

Patch

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