From: Christopher Larson Date: Mon, 30 Jul 2012 16:08:46 +0000 (-0700) Subject: scripts/bitbake: unbreak the git version comparison X-Git-Tag: 2015-4~9722 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=f28f6267271edbbef16caec323e9ba76e2216723;p=openembedded-core.git 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. Signed-off-by: Christopher Larson Signed-off-by: Richard Purdie --- diff --git a/scripts/bitbake b/scripts/bitbake index 580f377a61..09f8a86240 100755 --- a/scripts/bitbake +++ b/scripts/bitbake @@ -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"