diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/staging.bbclass | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass index 1b618fbc50..cc7767ae3a 100644 --- a/meta/classes/staging.bbclass +++ b/meta/classes/staging.bbclass | |||
@@ -490,6 +490,18 @@ python extend_recipe_sysroot() { | |||
490 | fixme['native'] = [] | 490 | fixme['native'] = [] |
491 | postinsts = [] | 491 | postinsts = [] |
492 | multilibs = {} | 492 | multilibs = {} |
493 | manifests = {} | ||
494 | |||
495 | for f in os.listdir(depdir): | ||
496 | if not f.endswith(".complete"): | ||
497 | continue | ||
498 | f = depdir + "/" + f | ||
499 | if os.path.islink(f) and not os.path.exists(f): | ||
500 | bb.note("%s no longer exists, removing from sysroot" % f) | ||
501 | lnk = os.readlink(f.replace(".complete", "")) | ||
502 | sstate_clean_manifest(depdir + "/" + lnk, d, workdir) | ||
503 | os.unlink(f) | ||
504 | os.unlink(f.replace(".complete", "")) | ||
493 | 505 | ||
494 | for dep in configuredeps: | 506 | for dep in configuredeps: |
495 | c = setscenedeps[dep][0] | 507 | c = setscenedeps[dep][0] |
@@ -547,6 +559,7 @@ python extend_recipe_sysroot() { | |||
547 | bb.warn("Manifest %s not found?" % manifest) | 559 | bb.warn("Manifest %s not found?" % manifest) |
548 | else: | 560 | else: |
549 | with open(manifest, "r") as f, open(taskmanifest, 'w') as m: | 561 | with open(manifest, "r") as f, open(taskmanifest, 'w') as m: |
562 | manifests[dep] = manifest | ||
550 | for l in f: | 563 | for l in f: |
551 | l = l.strip() | 564 | l = l.strip() |
552 | if l.endswith("/"): | 565 | if l.endswith("/"): |
@@ -573,9 +586,9 @@ python extend_recipe_sysroot() { | |||
573 | for p in postinsts: | 586 | for p in postinsts: |
574 | subprocess.check_output(p, shell=True) | 587 | subprocess.check_output(p, shell=True) |
575 | 588 | ||
576 | for dep in configuredeps: | 589 | for dep in manifests: |
577 | c = setscenedeps[dep][0] | 590 | c = setscenedeps[dep][0] |
578 | open(depdir + "/" + c + ".complete", "w").close() | 591 | os.symlink(manifests[dep], depdir + "/" + c + ".complete") |
579 | 592 | ||
580 | bb.utils.unlockfile(lock) | 593 | bb.utils.unlockfile(lock) |
581 | } | 594 | } |