From 2f6505f0e795b6c8cad641a6918739c3faac1f99 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Thu, 7 Apr 2011 17:38:17 +0800 Subject: sstate: ensure an ordered mapping between SSTATETASKS and SSTATETASKNAMES Fix [YOCTO #964] A recent commit 25a6e5f9(sstate: use only unique set of SSTATETASK) breaks the ordered mapping between SSTATETASKS and SSTATETASKNAMES. As a result, in sstate_cleanall, the line taskname = tasks[namemap.index(name)] gets an incorrect result, and "bitbake -c cleanall" doesn't really remove the files populalted by do_populate_sysroot. Signed-off-by: Dexuan Cui --- meta/classes/sstate.bbclass | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'meta/classes') diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index cc0b8665f6..be650c4af4 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -39,8 +39,10 @@ python () { scan_cmd = "grep -Irl ${STAGING_DIR} ${SSTATE_BUILDDIR}" bb.data.setVar('SSTATE_SCAN_CMD', scan_cmd, d) + unique_tasks = set((bb.data.getVar('SSTATETASKS', d, True) or "").split()) + d.setVar('SSTATETASKS', " ".join(unique_tasks)) namemap = [] - for task in set((bb.data.getVar('SSTATETASKS', d, True) or "").split()): + for task in unique_tasks: namemap.append(bb.data.getVarFlag(task, 'sstate-name', d)) funcs = bb.data.getVarFlag(task, 'prefuncs', d) or "" funcs = "sstate_task_prefunc " + funcs @@ -200,7 +202,7 @@ def sstate_clean_cachefile(ss, d): oe.path.remove(sstatepkgfile) def sstate_clean_cachefiles(d): - for task in set((bb.data.getVar('SSTATETASKS', d, True) or "").split()): + for task in (bb.data.getVar('SSTATETASKS', d, True) or "").split(): ss = sstate_state_fromvars(d, task[3:]) sstate_clean_cachefile(ss, d) -- cgit v1.2.3