staging: Fix a logic error which caused dependency removal

There was a logic error in the dependency cleanup code which meant
it would remove dependencies which other tasks still depended upon.
Fix the path names so the comparisions work as intended.

This fixes dependencies accidentally disappearing from sysroots
under certain reconfiguration situations.

(From OE-Core rev: 1634fe5148b3501f2c1b75cf7fb704a2ef60424e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2017-09-01 15:18:15 +01:00
parent 627d9a71df
commit a6631eed6f

View File

@@ -416,8 +416,8 @@ python extend_recipe_sysroot() {
for l in f:
l = l.strip()
if l not in installed:
l = depdir + "/" + l
if not os.path.exists(l):
fl = depdir + "/" + l
if not os.path.exists(fl):
# Was likely already uninstalled
continue
potential.append(l)
@@ -433,11 +433,12 @@ python extend_recipe_sysroot() {
if l in potential:
potential.remove(l)
for l in potential:
fl = depdir + "/" + l
bb.note("Task %s no longer depends on %s, removing from sysroot" % (mytaskname, l))
lnk = os.readlink(l)
lnk = os.readlink(fl)
sstate_clean_manifest(depdir + "/" + lnk, d, workdir)
os.unlink(l)
os.unlink(l + ".complete")
os.unlink(fl)
os.unlink(fl + ".complete")
for dep in configuredeps:
c = setscenedeps[dep][0]