mirror of
https://git.yoctoproject.org/poky
synced 2026-02-05 16:28:43 +01:00
Make sure we're not using python v3.x. This check can't go into sanity.bbclass because bitbake's source code doesn't even pass parsing stage when used with python v3, so we catch it here so we can offer a meaningful error message. This fixes bug [YOCTO #1128] (From OE-Core rev: 9dd2d6b7ee36af6229eb9e9c448eab3a6895a9c5) Signed-off-by: Scott Garman <scott.a.garman@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
89 lines
2.6 KiB
Bash
Executable File
89 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
export BBFETCH2=True
|
|
export BB_ENV_EXTRAWHITE="PSEUDO_BUILD PSEUDO_DISABLED $BB_ENV_EXTRAWHITE"
|
|
|
|
NO_BUILD_OPTS="--version -h --help -p --parse-only -s --show-versions -e --environment -g --graphviz"
|
|
needpseudo="1"
|
|
for opt in $@; do
|
|
for key in $NO_BUILD_OPTS; do
|
|
if [ $opt = $key ]
|
|
then
|
|
needpseudo="0"
|
|
break
|
|
fi
|
|
done
|
|
[ $needpseudo = "0" ] && break
|
|
done
|
|
|
|
# Make sure we're not using python v3.x. This check can't go into
|
|
# sanity.bbclass because bitbake's source code doesn't even pass
|
|
# parsing stage when used with python v3, so we catch it here so we
|
|
# can offer a meaningful error message.
|
|
py_v3_check=`/usr/bin/env python --version 2>&1 | grep "Python 3"`
|
|
if [ "$py_v3_check" != "" ]; then
|
|
echo "Bitbake is not compatible with python v3"
|
|
echo "Please set up python v2 as your default python interpreter"
|
|
exit 1
|
|
fi
|
|
|
|
needtar="1"
|
|
TARVERSION=`tar --version | head -n 1 | cut -d ' ' -f 4`
|
|
float_test() {
|
|
echo | awk 'END { exit ( !( '"$1"')); }'
|
|
}
|
|
|
|
# Tar version 1.24 and onwards handle symlinks in sstate packages correctly
|
|
# but earlier versions do not
|
|
float_test "$TARVERSION > 1.23" && needtar="0"
|
|
|
|
buildpseudo="1"
|
|
if [ $needpseudo = "1" ] && [ -e "$BUILDDIR/pseudodone" ]; then
|
|
PSEUDOBINDIR=`cat $BUILDDIR/pseudodone`
|
|
if [ -e "$PSEUDOBINDIR/pseudo" -a -e "$PSEUDOBINDIR/tar" -a "$needtar" = "1" ]; then
|
|
buildpseudo="0"
|
|
fi
|
|
if [ -e "$PSEUDOBINDIR/pseudo" -a $needtar = "0" ]; then
|
|
buildpseudo="0"
|
|
fi
|
|
fi
|
|
if [ $needpseudo = "0" ]; then
|
|
buildpseudo="0"
|
|
fi
|
|
|
|
OLDPATH=$PATH
|
|
export PATH=`echo $PATH | sed s#[^:]*/scripts:##`
|
|
if [ $buildpseudo = "1" ]; then
|
|
echo "Pseudo is not present but is required, building this first before the main build"
|
|
export PSEUDO_BUILD=1
|
|
TARTARGET="tar-replacement-native"
|
|
if [ $needtar = "0" ]; then
|
|
TARTARGET=""
|
|
fi
|
|
bitbake pseudo-native $TARTARGET -c populate_sysroot
|
|
ret=$?
|
|
if [ "$ret" != "0" ]; then
|
|
exit 1
|
|
fi
|
|
PSEUDOBINDIR=`bitbake -e | grep STAGING_BINDIR_NATIVE=\" | cut -d '=' -f2 | cut -d '"' -f2`
|
|
ret=$?
|
|
if [ "$ret" != "0" ]; then
|
|
exit 1
|
|
fi
|
|
echo $PSEUDOBINDIR > $BUILDDIR/pseudodone
|
|
# This needs to exist in case pseudo has to log somewhere
|
|
mkdir -p $PSEUDOBINDIR/../../var/pseudo
|
|
fi
|
|
BITBAKE=`which bitbake`
|
|
export PATH=$OLDPATH
|
|
if [ $needpseudo = "1" ]; then
|
|
export PSEUDO_BUILD=2
|
|
PSEUDOBINDIR=`cat $BUILDDIR/pseudodone`
|
|
PSEUDO_BINDIR=$PSEUDOBINDIR PSEUDO_LIBDIR=$PSEUDOBINDIR/../lib/pseudo/lib PSEUDO_PREFIX=$PSEUDOBINDIR/../../ PSEUDO_DISABLED=1 $PSEUDOBINDIR/pseudo $BITBAKE $@
|
|
else
|
|
export PSEUDO_BUILD=0
|
|
$BITBAKE $@
|
|
fi
|
|
ret=$?
|
|
exit $ret
|