]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
spdx30: test the existence of directory before walking
authorhongxu <hongxu.jia@eng.windriver.com>
Tue, 18 Mar 2025 11:32:54 +0000 (19:32 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 19 Mar 2025 09:47:35 +0000 (09:47 +0000)
Due to commit [spdx30: Improve os.walk() handling][1] applied,
it reported an error if walk directory failed

While SPDX_INCLUDE_SOURCES = "1", if recipe does not provide sysroots,
the walk in function add_package_files is broken

$ echo 'SPDX_INCLUDE_SOURCES = "1"' >> conf/local.conf
$ bitbake packagegroup-core-boot
|DEBUG: Adding sysroot files to SPDX
|ERROR: packagegroup-core-boot-1.0-r0 do_create_spdx: ERROR walking tmp/sysroots-components/intel_x86_64/packagegroup-core-boot: [Errno 2]
| No such file or directory: 'tmp/sysroots-components/intel_x86_64/packagegroup-core-boot'

Test the existence of directory before walking

[1] https://git.openembedded.org/openembedded-core/commit/?id=86b581e80637cd8136ce7a7e95db94d9553d2f60

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oe/spdx30_tasks.py

index 3d80f05612fd835e6990f31a70a9dd99da5bb31b..0618f2f139ddd3c2202795732396da23af7f5976 100644 (file)
@@ -152,6 +152,10 @@ def add_package_files(
     spdx_files = set()
 
     file_counter = 1
+    if not os.path.exists(topdir):
+        bb.note(f"Skip {topdir}")
+        return spdx_files
+
     for subdir, dirs, files in os.walk(topdir, onerror=walk_error):
         dirs[:] = [d for d in dirs if d not in ignore_dirs]
         if subdir == str(topdir):