]> code.ossystems Code Review - openembedded-core.git/commitdiff
scripts/bitbake: unbreak the git version comparison
authorChristopher Larson <chris_larson@mentor.com>
Mon, 30 Jul 2012 16:08:46 +0000 (09:08 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 31 Jul 2012 10:38:18 +0000 (11:38 +0100)
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 <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
scripts/bitbake

index 580f377a619e703a44fda09f1913cfdec35fc3cf..09f8a86240a26062635deb470a233810b2d01f21 100755 (executable)
@@ -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"