diff options
| author | Peter Kjellerstedt <peter.kjellerstedt@axis.com> | 2025-09-16 23:19:33 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-10-06 17:01:09 +0100 |
| commit | e99ec6a90846a0c7530bf6e43b3af32ba54dec4c (patch) | |
| tree | c564eac2d3126abfa7c3dd060b6c536031c057e5 | |
| parent | a7c8099fec5aa361523c66065c0c50d44e4372b6 (diff) | |
| download | poky-e99ec6a90846a0c7530bf6e43b3af32ba54dec4c.tar.gz | |
bitbake: parse: Make include_all support empty variable expansions
include and require support empty variable expansions, typically used
with conditional expansions. However, include_all does not, and instead
reports an error for the first path in BBPATH.
Rewrite include_all so that its behavior matches include and require.
(Bitbake rev: 010928ceac48b20e6ab530f8e256b72201b778ec)
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | bitbake/lib/bb/parse/ast.py | 5 | ||||
| -rw-r--r-- | bitbake/lib/bb/parse/parse_py/ConfHandler.py | 8 | ||||
| -rw-r--r-- | bitbake/lib/bb/tests/parse.py | 1 |
3 files changed, 9 insertions, 5 deletions
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index 49a0788038..3250211e60 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py | |||
| @@ -53,10 +53,9 @@ class IncludeAllNode(AstNode): | |||
| 53 | Include the file and evaluate the statements | 53 | Include the file and evaluate the statements |
| 54 | """ | 54 | """ |
| 55 | s = data.expand(self.what_file) | 55 | s = data.expand(self.what_file) |
| 56 | logger.debug2("CONF %s:%s: including %s", self.filename, self.lineno, s) | 56 | logger.debug2("CONF %s:%s: including all %s", self.filename, self.lineno, s) |
| 57 | 57 | ||
| 58 | for path in data.getVar("BBPATH").split(":"): | 58 | bb.parse.ConfHandler.include(self.filename, s, self.lineno, data, False, all=True) |
| 59 | bb.parse.ConfHandler.include(self.filename, os.path.join(path, s), self.lineno, data, False) | ||
| 60 | 59 | ||
| 61 | class ExportNode(AstNode): | 60 | class ExportNode(AstNode): |
| 62 | def __init__(self, filename, lineno, var): | 61 | def __init__(self, filename, lineno, var): |
diff --git a/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/bitbake/lib/bb/parse/parse_py/ConfHandler.py index 9ddbae123d..af3af2ccee 100644 --- a/bitbake/lib/bb/parse/parse_py/ConfHandler.py +++ b/bitbake/lib/bb/parse/parse_py/ConfHandler.py | |||
| @@ -56,7 +56,7 @@ def init(data): | |||
| 56 | def supports(fn, d): | 56 | def supports(fn, d): |
| 57 | return fn[-5:] == ".conf" | 57 | return fn[-5:] == ".conf" |
| 58 | 58 | ||
| 59 | def include(parentfn, fns, lineno, data, error_out): | 59 | def include(parentfn, fns, lineno, data, error_out, all=False): |
| 60 | """ | 60 | """ |
| 61 | error_out: A string indicating the verb (e.g. "include", "inherit") to be | 61 | error_out: A string indicating the verb (e.g. "include", "inherit") to be |
| 62 | used in a ParseError that will be raised if the file to be included could | 62 | used in a ParseError that will be raised if the file to be included could |
| @@ -67,7 +67,11 @@ def include(parentfn, fns, lineno, data, error_out): | |||
| 67 | 67 | ||
| 68 | # "include" or "require" accept zero to n space-separated file names to include. | 68 | # "include" or "require" accept zero to n space-separated file names to include. |
| 69 | for fn in fns.split(): | 69 | for fn in fns.split(): |
| 70 | include_single_file(parentfn, fn, lineno, data, error_out) | 70 | if all: |
| 71 | for path in data.getVar("BBPATH").split(":"): | ||
| 72 | include_single_file(parentfn, os.path.join(path, fn), lineno, data, error_out) | ||
| 73 | else: | ||
| 74 | include_single_file(parentfn, fn, lineno, data, error_out) | ||
| 71 | 75 | ||
| 72 | def include_single_file(parentfn, fn, lineno, data, error_out): | 76 | def include_single_file(parentfn, fn, lineno, data, error_out): |
| 73 | """ | 77 | """ |
diff --git a/bitbake/lib/bb/tests/parse.py b/bitbake/lib/bb/tests/parse.py index d3867ece98..2f77c90f60 100644 --- a/bitbake/lib/bb/tests/parse.py +++ b/bitbake/lib/bb/tests/parse.py | |||
| @@ -499,6 +499,7 @@ EXTRA_OECONF:append = " foobar" | |||
| 499 | test_helper("include_all some.conf", " foo bar") | 499 | test_helper("include_all some.conf", " foo bar") |
| 500 | test_helper("include_all someother.conf", None) | 500 | test_helper("include_all someother.conf", None) |
| 501 | test_helper("include_all some3.conf", " foobar") | 501 | test_helper("include_all some3.conf", " foobar") |
| 502 | test_helper("include_all ${@''}", None) | ||
| 502 | 503 | ||
| 503 | self.d.setVar("BBPATH", tempdir + "/conf2" + ":" + tempdir + "/conf1") | 504 | self.d.setVar("BBPATH", tempdir + "/conf2" + ":" + tempdir + "/conf1") |
| 504 | 505 | ||
