summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/staging.bbclass17
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}