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)

(From OE-Core rev: 3969c068bc9557b405a5ad61c10c402ec93bd932)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a6631eed6fc70b305e769998d6f22f345e37decc)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
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 8329bfd156
commit 911146122c
1 changed files with 6 additions and 5 deletions

View File

@ -497,8 +497,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)
@ -514,11 +514,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]