toaster.bbclass: fix toaster error caused by tabs in BBLAYERS

Users may unknowingly put tabs in BBLAYERS instead of spaces, and this is
interpreted as a literal "\t" at the start of the filepath which causes
_get_layer_dict() function to fail at finding the filepath.

Instead of using split(" "), which restricts it to split on just spaces
replace with split() as this handles spaces, tabs and newlines.

Min steps to reproduce:
- Clone the poky repo:
    git clone git://git.yoctoproject.org/poky
    cd poky
    source oe-init-build-env
- Insert tabs in the BBLAYERS variable in bblayers.conf
  - Note: tab needs to be in the recipe that is being built for the error to be observed
  - Ex: `	/home/<user>/src/poky/meta-skeleton \`
- Start toaster
  source toaster start
  bitbake hello

Error message:
FileNotFoundError: [Errno 2] No such file or directory: '\t/home/<user>/src/poky/meta-skeleton’

Fix by using split() instead of split(" ").

Suggested-by: Anakin Childerhose <anakin.childerhose@savoirfairelinux.com>
CC: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: 5ef1adca618cbf2d3e9ad2e5d504728b91d15e85)

Signed-off-by: Osose Itua <osose.itua@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Osose Itua
2025-06-11 11:24:22 -04:00
committed by Richard Purdie
parent d3b7eb9fa5
commit 6ed03701e3

View File

@@ -84,7 +84,7 @@ python toaster_layerinfo_dumpdata() {
llayerinfo = {}
for layer in { l for l in bblayers.strip().split(" ") if len(l) }:
for layer in { l for l in bblayers.strip().split() if len(l) }:
llayerinfo[layer] = _get_layer_dict(layer)