| Submitter | NiQingliang |
|---|---|
| Date | July 20, 2011, 5:56 a.m. |
| Message ID | <1311141365.6973.7.camel@localhost.localdomain> |
| Download | mbox | patch |
| Permalink | /patch/7943/ |
| State | New, archived |
| Headers | show |
Comments
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 > >
Patch
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
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. + [ -n "$BUILDDIR" ] && cd $BUILDDIR fi