From 9a24b6b1237c8fd0b413099b2a7ea82262973cac Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Tue, 8 Sep 2015 13:36:40 +0300 Subject: externalsrc.bbclass: better filtering of cleandirs We really do not want our (external) source tree to be removed. There might be multiple values in the 'cleandirs' varflag pointing to our source tree - causing it to be wiped out. This patch improves the filtering of 'cleandirs' by examining the expanded values inside it. Any (expanded) values pointing to our source tree get removed. (From OE-Core rev: eec871fe405e140a1919999fe2f4cf24f1839e5d) Signed-off-by: Markus Lehtonen Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/classes/externalsrc.bbclass | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'meta/classes/externalsrc.bbclass') diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass index 37c6320fca..0fa5817d9a 100644 --- a/meta/classes/externalsrc.bbclass +++ b/meta/classes/externalsrc.bbclass @@ -62,18 +62,14 @@ python () { d.appendVarFlag(task, "lockfiles", " ${S}/singletask.lock") # We do not want our source to be wiped out, ever (kernel.bbclass does this for do_clean) - cleandirs = d.getVarFlag(task, 'cleandirs', False) - if cleandirs: - cleandirs = cleandirs.split() - setvalue = False - if '${S}' in cleandirs: - cleandirs.remove('${S}') + cleandirs = (d.getVarFlag(task, 'cleandirs', False) or '').split() + setvalue = False + for cleandir in cleandirs[:]: + if d.expand(cleandir) == externalsrc: + cleandirs.remove(cleandir) setvalue = True - if externalsrcbuild == externalsrc and '${B}' in cleandirs: - cleandirs.remove('${B}') - setvalue = True - if setvalue: - d.setVarFlag(task, 'cleandirs', ' '.join(cleandirs)) + if setvalue: + d.setVarFlag(task, 'cleandirs', ' '.join(cleandirs)) fetch_tasks = ['do_fetch', 'do_unpack'] # If we deltask do_patch, there's no dependency to ensure do_unpack gets run, so add one -- cgit v1.2.3-54-g00ecf