Message ID | 1311141365.6973.7.camel@localhost.localdomain |
---|---|
State | New, archived |
Headers | show |
diff --git a/oe-init-build-env b/oe-init-build-env index 77332a7..acf4e96 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: poky 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
NiQingliang, A minor nit regarding the subject of this patch, there are some basic formatting that is used in oe-core, this information can be found at http://wiki.openembedded.org/index.php/Commit_Patch_Message_Guidelines Key thing is to include the name of the file (or functionality group) you are patching along with a good summary in the subject such as: oe-init-build-env: Find and use python2 as default python You also need to include a Signed-off-by: in your commit message. I still need to test this further with a machine with and with out python2 / python3. Also this did not apply cleanly, please rebase. Thanks for your efforts on this patch. Sau! On 07/19/2011 10:56 PM, NiQingliang wrote: > most Linux distribution use python 2.x as the default as bitbake > expected, but some use python 3.x as the default (like archlinux), so > this patch come. > > if the default python is 2.x, it will do nothing. > or it will search the python 2.x in /usr/bin and /bin. > if find it out, then make a soft link in the build dir, and add the > build dir into the env var PATH. > > diff --git a/oe-init-build-env b/oe-init-build-env > index 77332a7..acf4e96 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: poky will use '$PY_BIN' to execute python code." Probably should not mention poky here, should be bitbake or ... > + 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 > >