From 62fe6dc755d83a4d394cb8a3751fc6172715ee37 Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Wed, 29 Sep 2010 12:10:57 +0100 Subject: sstate: list directories in child first order in the manifest file The directory list in the manifest file needs to be sorted such that child directories are deleted first. Fortunately as the list is generated by walking the directory tree achieving this is as simple as reversing the directory list. Fixes [BUGID #269] Signed-off-by: Joshua Lock --- 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 c4d548fe2e..bcac3638e1 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -106,8 +106,10 @@ def sstate_install(ss, d): # We want to ensure that directories appear at the end of the manifest # so that when we test to see if they should be deleted any contents # added by the task will have been removed first. - for dir in shareddirs: - f.write(dir + "\n") + dirs = sorted(shareddirs, key=len) + # Must remove children first, which will have a longer path than the parent + for di in reversed(dirs): + f.write(di + "\n") f.close() for lock in locks: -- cgit v1.2.3