summaryrefslogtreecommitdiffstats
path: root/meta/classes/sanity.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/sanity.bbclass')
-rw-r--r--meta/classes/sanity.bbclass31
1 files changed, 31 insertions, 0 deletions
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index 1c45b5baac..9a29f328f6 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -359,6 +359,28 @@ def check_gcc_march(sanity_data):
359 359
360 return result 360 return result
361 361
362# Tar version 1.24 and onwards handle overwriting symlinks correctly
363# but earlier versions do not; this needs to work properly for sstate
364def check_tar_version(sanity_data, loosever):
365 status, result = oe.utils.getstatusoutput("tar --version")
366 if status != 0:
367 return "Unable to execute tar --version, exit code %s\n" % status
368 version = result.split()[3]
369 if loosever(version) < loosever("1.24"):
370 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"
371 return None
372
373# We use git parameters and functionality only found in 1.7.5 or later
374def check_git_version(sanity_data, loosever):
375 status, result = oe.utils.getstatusoutput("git --version 2> /dev/null")
376 if status != 0:
377 return "Unable to execute git --version, exit code %s\n" % status
378 version = result.split()[2]
379 if loosever(version) < loosever("1.7.5"):
380 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"
381 return None
382
383
362def check_sanity(sanity_data): 384def check_sanity(sanity_data):
363 import subprocess 385 import subprocess
364 386
@@ -409,6 +431,15 @@ def check_sanity(sanity_data):
409 messages = messages + 'Please set a MACHINE in your local.conf or environment\n' 431 messages = messages + 'Please set a MACHINE in your local.conf or environment\n'
410 machinevalid = False 432 machinevalid = False
411 433
434 tarmsg = check_tar_version(sanity_data, LooseVersion)
435 if tarmsg:
436 messages = messages + tarmsg
437
438 gitmsg = check_git_version(sanity_data, LooseVersion)
439 if gitmsg:
440 messages = messages + gitmsg
441
442
412 # Check we are using a valid local.conf 443 # Check we are using a valid local.conf
413 current_conf = sanity_data.getVar('CONF_VERSION', True) 444 current_conf = sanity_data.getVar('CONF_VERSION', True)
414 conf_version = sanity_data.getVar('LOCALCONF_VERSION', True) 445 conf_version = sanity_data.getVar('LOCALCONF_VERSION', True)