From 911146122c03738c3ad7862c4c9a097d3a9cd24e Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 1 Sep 2017 15:18:15 +0100 Subject: [PATCH] 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 (cherry picked from commit a6631eed6fc70b305e769998d6f22f345e37decc) Signed-off-by: Armin Kuster Signed-off-by: Richard Purdie --- meta/classes/staging.bbclass | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass index 286d7b7e9e..a90cf43c94 100644 --- a/meta/classes/staging.bbclass +++ b/meta/classes/staging.bbclass @@ -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]