summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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() {
fixme['native'] = []
postinsts = []
multilibs = {}
+ manifests = {}
+
+ for f in os.listdir(depdir):
+ if not f.endswith(".complete"):
+ continue
+ f = depdir + "/" + f
+ if os.path.islink(f) and not os.path.exists(f):
+ bb.note("%s no longer exists, removing from sysroot" % f)
+ lnk = os.readlink(f.replace(".complete", ""))
+ sstate_clean_manifest(depdir + "/" + lnk, d, workdir)
+ os.unlink(f)
+ os.unlink(f.replace(".complete", ""))
for dep in configuredeps:
c = setscenedeps[dep][0]
@@ -547,6 +559,7 @@ python extend_recipe_sysroot() {
bb.warn("Manifest %s not found?" % manifest)
else:
with open(manifest, "r") as f, open(taskmanifest, 'w') as m:
+ manifests[dep] = manifest
for l in f:
l = l.strip()
if l.endswith("/"):
@@ -573,9 +586,9 @@ python extend_recipe_sysroot() {
for p in postinsts:
subprocess.check_output(p, shell=True)
- for dep in configuredeps:
+ for dep in manifests:
c = setscenedeps[dep][0]
- open(depdir + "/" + c + ".complete", "w").close()
+ os.symlink(manifests[dep], depdir + "/" + c + ".complete")
bb.utils.unlockfile(lock)
}