scripts/bitbake sanity.bbclass: Migrate tests for git and tar versions

Migrate tests for correct git and tar versions from the wrapper script
to the sanity class.

This sets the scene to allow us to remove the bitbake wrapper script.

(From OE-Core rev: 7b370e23594da5dcb53cd5507ec289c3ef2d9fb5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2013-06-07 18:16:03 +01:00
parent 9d18a291a6
commit cfbd13ff22
2 changed files with 32 additions and 41 deletions

View File

@ -359,6 +359,28 @@ def check_gcc_march(sanity_data):
return result
# Tar version 1.24 and onwards handle overwriting symlinks correctly
# but earlier versions do not; this needs to work properly for sstate
def check_tar_version(sanity_data, loosever):
status, result = oe.utils.getstatusoutput("tar --version")
if status != 0:
return "Unable to execute tar --version, exit code %s\n" % status
version = result.split()[3]
if loosever(version) < loosever("1.24"):
return "Your version of tar is older than 1.24 and has bugs which will break builds. Please install a newer version of tar.\n"
return None
# We use git parameters and functionality only found in 1.7.5 or later
def check_git_version(sanity_data, loosever):
status, result = oe.utils.getstatusoutput("git --version 2> /dev/null")
if status != 0:
return "Unable to execute git --version, exit code %s\n" % status
version = result.split()[2]
if loosever(version) < loosever("1.7.5"):
return "Your version of git is older than 1.7.5 and has bugs which will break builds. Please install a newer version of git.\n"
return None
def check_sanity(sanity_data):
import subprocess
@ -409,6 +431,15 @@ def check_sanity(sanity_data):
messages = messages + 'Please set a MACHINE in your local.conf or environment\n'
machinevalid = False
tarmsg = check_tar_version(sanity_data, LooseVersion)
if tarmsg:
messages = messages + tarmsg
gitmsg = check_git_version(sanity_data, LooseVersion)
if gitmsg:
messages = messages + gitmsg
# Check we are using a valid local.conf
current_conf = sanity_data.getVar('CONF_VERSION', True)
conf_version = sanity_data.getVar('LOCALCONF_VERSION', True)

View File

@ -57,26 +57,6 @@ elif [ -z "$BUILDDIR" ] ; then
BUILDDIR="`pwd`"
fi
needtar="1"
needgit="1"
TARVERSION=`tar --version | head -n 1 | cut -d ' ' -f 4`
GITVERSION=`git --version 2> /dev/null | cut -d ' ' -f 3`
float_test() {
echo | awk 'END { exit ( !( '"$1"')); }'
}
version_compare() {
python -c "from distutils.version import LooseVersion; import sys; sys.exit(not (LooseVersion('$1') $2 LooseVersion('$3')))"
}
# Tar version 1.24 and onwards handle overwriting symlinks correctly
# but earlier versions do not; this needs to work properly for sstate
float_test "$TARVERSION > 1.23" && needtar="0"
if [ ! -z $GITVERSION ]; then
# Need git >= 1.7.5 for git-remote --mirror=xxx syntax
version_compare $GITVERSION ">=" 1.7.5 && needgit="0"
fi
buildpseudo="1"
if [ $needpseudo = "1" ]; then
if [ -e "$BUILDDIR/pseudodone" ]; then
@ -103,14 +83,6 @@ if [ $needpseudo = "1" ]; then
fi
fi
# If tar is already built, we don't want to do it again...
if [ -e "$PSEUDOBINDIR/tar" -a "$needtar" = "1" ]; then
needtar="0"
fi
# If git is already built, we don't want to do it again...
if [ -e "$PSEUDOBINDIR/git" -a "$needgit" = "1" ]; then
needgit="0"
fi
if [ $needpseudo = "0" ]; then
buildpseudo="0"
@ -133,14 +105,6 @@ if [ $buildpseudo -gt 0 ]; then
[ $buildpseudo -eq 2 ] && echo "Pseudo may be out of date, rebuilding pseudo before the main build"
[ $buildpseudo -eq 3 ] && echo "Building pseudo-native before main build"
export PSEUDO_BUILD=1
TARTARGET="tar-replacement-native"
if [ $needtar = "0" ]; then
TARTARGET=""
fi
GITTARGET="git-replacement-native"
if [ $needgit = "0" ]; then
GITTARGET=""
fi
# Pass through debug options
additionalopts=""
@ -154,11 +118,7 @@ if [ $buildpseudo -gt 0 ]; then
done
done
if [ $needtar = "1" ]; then
bitbake $TARTARGET -c populate_sysroot
fi
bitbake pseudo-native $GITTARGET $additionalopts -c populate_sysroot
bitbake pseudo-native $additionalopts -c populate_sysroot
ret=$?
if [ "$ret" != "0" ]; then
exit 1