bitbake: taskdata: Improve handling of regex in ASSUME_PROVIDED

ASSUME_PROVIDED can take regexs however the current way of handling
this in code is suboptimal. It means that you can add something like:

DEPENDS += "texinfo-nativejunk-that-does-not-exist"

and if texinfo-native is in ASSUME_PROVIDED, no error will occur.

Update the code to only treat something as a regex if a start or end
anchor character is present (which wouldn't be valid in a recipe name).

[YOCTO #13893]

(Bitbake rev: 3d72e23109990970fbb1086923277af752168b4a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-06-25 12:58:57 +01:00
parent 48abe482dd
commit 24a4fa5bad

View File

@@ -21,8 +21,13 @@ def re_match_strings(target, strings):
Whether or not the string 'target' matches
any one string of the strings which can be regular expression string
"""
return any(name == target or re.match(name, target)
for name in strings)
for name in strings:
if name.startswith("^") or name.endswith("$"):
if re.match(name, target):
return True
elif name == target:
return True
return False
class TaskEntry:
def __init__(self):