[yocto] Supporting upcoming distribution releases

NiQingliang niqingliang at insigma.com.cn
Wed Jul 13 18:34:31 PDT 2011


new version

diff --git a/oe-init-build-env b/oe-init-build-env
index 77332a7..0fe1b5e 100755
--- a/oe-init-build-env
+++ b/oe-init-build-env
@@ -39,6 +39,35 @@ 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
+      echo "WARNING: your default python is not 2.x, so autodetect..."
+      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 "WARNING: poky will use '$PY_BIN' to execute python
code."
+      else
+         echo "ERROR: poky can't find python 2.x."
+      fi
+      unset PYTHON2_BIN
+   fi
+
    [ -n "$BUILDDIR" ] && cd $BUILDDIR
 fi



On Thu, 2011-07-14 at 01:01 +0800, Darren Hart wrote:
> 
> On 07/13/2011 01:04 AM, NiQingliang wrote:
> > first sorry about that, indeed I don't know how to commit a patch, so
> > just paste the diff result here.
> >
> > diff --git a/oe-init-build-env b/oe-init-build-env
> > index 77332a7..0da8bc0 100755
> > --- a/oe-init-build-env
> > +++ b/oe-init-build-env
> > @@ -39,6 +39,20 @@ else
> >     $OEROOT/scripts/oe-setup-builddir
> >     unset OEROOT
> >     unset BBPATH
> > +
> 
> Before searching manually, we should attempt to use whatever is set in
> the environment.
> 
> --
> Darren
> 
> > +   # find the python version 2.x
> > +   # the 'python -V' need redirect to stdout
> > +   # precondition:
> > +   #    $BUILDDIR is not NULL, but I doubt when it will be NULL.
> > +   #    user have not made the file $BUILDDIR/python by himself.
> > +   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
> > +         ln -sf $PY_BIN $BUILDDIR/python
> > +         export PATH="$BUILDDIR:$PATH"
> > +         break
> > +      fi
> > +   done
> > +
> >     [ -n "$BUILDDIR" ] && cd $BUILDDIR
> >  fi
> >
> >
> > On Wed, 2011-07-13 at 10:31 +0800, Joshua Lock wrote:
> >> On Wed, 2011-07-13 at 10:19 +0800, NiQingliang wrote:
> >>> /usr/bin/env python2
> >>> /usr/bin/env python2.7
> >>
> >> These are both valid on Fedora 15, iirc before distributions started
> >> shipping Python 3 they were less common though...
> >>
> >>> both of them are ok for archlinux, but I don't know which is ok for
> >>> other distributions, maybe both are not.
> >>>
> >>> maybe we can make a shell script to detect the python version, and make
> >>> a symbollink to the right one in some directory, and add the directory
> >>> into env var "PATH".
> >>
> >> Patches welcome :-)
> >>
> >> I looked at it briefly and the work would require more time than I have
> >> spare right now just to ensure it worked on all required distributions.
> >>
> >> If you'd like to work on a patch I'd be happy to help test and review.
> >>
> >> Cheers,
> >> Joshua
> >> --
> >> Joshua Lock
> >>         Yocto Project "Johannes factotum"
> >>         Intel Open Source Technology Centre
> >>
> >
> 
> --
> Darren Hart
> Intel Open Source Technology Center
> Yocto Project - Linux Kernel

-- 
倪庆亮
TEL:    13588371863
E-MAIL: niqingliang at insigma.com.cn
BLOG:   http://niqingliang2003.wordpress.com





More information about the yocto mailing list