scripts/bitbake: unbreak the git version comparison

With the current code, we're calling awk to do a floating point comparison
between '1.7.0.4' and '1.7.5' (on an ubuntu 10.04 LTS machine). These clearly
aren't proper floating point numbers, and the comparison is incorrect. It's
returning true for 1.7.0.4 >= 1.7.5.

Instead of using a floating point comparison for this, call out to python and
let it do it.

(From OE-Core rev: f28f6267271edbbef16caec323e9ba76e2216723)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Christopher Larson 2012-07-30 09:08:46 -07:00 committed by Richard Purdie
parent 5fe7d0467c
commit 780ba46975
1 changed files with 4 additions and 1 deletions

View File

@ -64,13 +64,16 @@ GITVERSION=`git --version | 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"
# Need git >= 1.7.5 for git-remote --mirror=xxx syntax
float_test "$GITVERSION >= 1.7.5" && needgit="0"
version_compare $GITVERSION ">=" 1.7.5 && needgit="0"
buildpseudo="1"