[OE-core] [PATCH] base: improve do_unpack[cleandirs] logic

Ross Burton ross.burton at intel.com
Wed Apr 25 13:58:18 UTC 2018


If a recipe sets S to ${WORKDIR}/ then the S != WORKDIR test doesn't work as
expected.  Use os.path.samefile() instead of string comparisons to do the right
thing.

Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 meta/classes/base.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index bb1f4b75336..7ddf70414a1 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -152,7 +152,7 @@ python base_do_fetch() {
 addtask unpack after do_fetch
 do_unpack[dirs] = "${WORKDIR}"
 
-do_unpack[cleandirs] = "${@d.getVar('S') if d.getVar('S') != d.getVar('WORKDIR') else os.path.join('${S}', 'patches')}"
+do_unpack[cleandirs] = "${@os.path.join('${S}', 'patches') if os.path.samefile(d.getVar('S'), d.getVar('WORKDIR')) else d.getVar('S')}"
 
 python base_do_unpack() {
     src_uri = (d.getVar('SRC_URI') or "").split()
-- 
2.11.0




More information about the Openembedded-core mailing list