@@ -356,7 +356,11 @@ def canonicalize(paths, sep=','):
# prefixes in sting compares later on, where the slashes then are important.
canonical_paths = []
for path in (paths or '').split(sep):
- if '$' not in path:
+ # Skip empty tokens as well as unexpanded bitbake variables: an
+ # empty path would otherwise reach os.path.realpath(''), which
+ # returns the current working directory, so canonicalize('') or
+ # canonicalize(None) would wrongly produce the cwd instead of ''.
+ if path and '$' not in path:
trailing_slash = path.endswith('/') and '/' or ''
canonical_paths.append(os.path.realpath(path) + trailing_slash)
canonicalize() splits its input on the separator and runs each token through os.path.realpath(). os.path.realpath('') returns the current working directory, so canonicalize('') and canonicalize(None) wrongly produced the cwd instead of an empty string, and a stray separator (for example "a,,b") injected a spurious cwd entry into the result. Skip empty tokens alongside the existing unexpanded-variable skip so only real paths are canonicalized. AI-Generated: codex/claude-opus 4.8 (xhigh) Signed-off-by: Trevor Woerner <twoerner@gmail.com> --- meta/lib/oe/path.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)