diff options
Diffstat (limited to 'meta/classes/sanity.bbclass')
| -rw-r--r-- | meta/classes/sanity.bbclass | 31 |
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 | ||
| 364 | def 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 | ||
| 374 | def 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 | |||
| 362 | def check_sanity(sanity_data): | 384 | def 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) |
