sanity.bbclass: check if PSEUDO_IGNORE_PATHS and ${S} overlap

added a sanity check for when PSEUDO_IGNORE_PATHS and ${S} overlap to avoid random failures generated.

[YOCTO #14193]

(From OE-Core rev: c5a6cc4146402620851e2a1f2b01d69989150ba2)

Signed-off-by: Dorinda Bassey <dorindabassey@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Dorinda
2021-01-27 23:52:57 +01:00
committed by Richard Purdie
parent 3f1c05e148
commit ef208aaf0f

View File

@@ -710,6 +710,14 @@ def check_sanity_version_change(status, d):
if i and workdir.startswith(i):
status.addresult("You are building in a path included in PSEUDO_IGNORE_PATHS " + str(i) + " please locate the build outside this path.\n")
# Check if PSEUDO_IGNORE_PATHS and ${S} overlap
pseudoignorepaths = d.getVar('PSEUDO_IGNORE_PATHS', expand=True).split(",")
sourcefile = d.getVar('S')
for i in pseudoignorepaths:
if i and sourcefile:
if sourcefile.startswith(i) or i.startswith(sourcefile):
status.addresult("a path included in PSEUDO_IGNORE_PATHS " + str(i) + " and ${S} (source files) path " + str(sourcefile) + " are overlapping each other, please set ${S} in your recipe to point to a different directory. \n")
# Some third-party software apparently relies on chmod etc. being suid root (!!)
import stat
suid_check_bins = "chown chmod mknod".split()