mirror of
https://git.yoctoproject.org/poky
synced 2026-04-17 09:32:12 +02:00
classes/externalsrc: ensure cleandirs code handles non-absolute paths
It's possible that a trailing or extra slash somewhere in the external source path could result in the directory not being removed from cleandirs; it's also possible that a cleandirs entry is somewhere underneath the source tree and that tree should never have parts of it deleted by the build system. Use oe.path.is_path_parent() (which makes paths absolute before checking them) to find out if any path in cleandirs is anywhere underneath the external source path, and drop it if it is. (From OE-Core rev: 87ec0fb470274d980f8553a85f778809c269c5d7) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
eb37cdd890
commit
5e6ffb2adb
@@ -54,6 +54,7 @@ python () {
|
||||
|
||||
if externalsrc:
|
||||
import oe.recipeutils
|
||||
import oe.path
|
||||
|
||||
d.setVar('S', externalsrc)
|
||||
if externalsrcbuild:
|
||||
@@ -90,7 +91,7 @@ python () {
|
||||
cleandirs = oe.recipeutils.split_var_value(d.getVarFlag(task, 'cleandirs', False) or '')
|
||||
setvalue = False
|
||||
for cleandir in cleandirs[:]:
|
||||
if d.expand(cleandir) == externalsrc:
|
||||
if oe.path.is_path_parent(externalsrc, d.expand(cleandir)):
|
||||
cleandirs.remove(cleandir)
|
||||
setvalue = True
|
||||
if setvalue:
|
||||
|
||||
Reference in New Issue
Block a user