summaryrefslogtreecommitdiffstats
path: root/meta/lib
Commit message (Collapse)AuthorAgeFilesLines
* package_manager/ipk: give out useful reason about an unmatched packageChen Qi2025-09-151-2/+14
| | | | | | | | | | | | | | | | | | | | | Give out useful information when a package could not be matched. Before the change: error: opkg_solver_install: No candidates to install catch2 (null)! With this patch: error: opkg_solver_install: No candidates to install catch2 (null)! ... catch2 is a recipe. Its generated packages are: ['catch2-src', 'catch2-dbg', 'catch2-staticdev', 'catch2-dev', 'catch2-doc'] Either specify a generated package or set ALLOW_EMPTY:${PN} = "1" in catch2 recipe (From OE-Core rev: 4bcb97ab4d7622d04dbf71930ea1784c8d57c136) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager/deb: give out useful reason about an unmatched packageChen Qi2025-09-151-2/+12
| | | | | | | | | | | | | | | | | | | | Give out useful information when a package could not be matched. Before the change: E: Package 'catch2' has no installation candidate With this patch: E: Package 'catch2' has no installation candidate catch2 is a recipe. Its generated packages are: ['catch2-src', 'catch2-dbg', 'catch2-staticdev', 'catch2-dev', 'catch2-doc'] Either specify a generated package or set ALLOW_EMPTY:${PN} = "1" in catch2 recipe (From OE-Core rev: ca6c1dd0148c4776bd556fccfd71153fc72d2e3d) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager/rpm: give out useful reason about unmatched packagesChen Qi2025-09-151-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | Unmatched package error is a common error at rootfs. We want to give out more useful information to user. Before this change, if some user specifiy IMAGE_INSTALL += "catch2", the error message will be like: No match for argument: catch2 Error: Unable to find a match: catch2 With this patch, the error message will be like: No match for argument: catch2 Error: Unable to find a match: catch2 catch2 is a recipe. Its generated packages are: ['catch2-src', 'catch2-dbg', 'catch2-staticdev', 'catch2-dev', 'catch2-doc'] Either specify a generated package or set ALLOW_EMPTY:${PN} = "1" in catch2 recipe (From OE-Core rev: 00f871cd07d7f44788124510a75b7160fdc60bb5) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager/__init__.py: add function to give user reason about a ↵Chen Qi2025-09-151-0/+22
| | | | | | | | | | | | | | | | | | | missing package When users specify some package in IMAGE_INSTALL, but get some error at rootfs time, the user might be confusing. This usually happens when the user puts a recipe name in IMAGE_INSTALL. To helper user understand more about what's going on, add a common function here which makes use of pkgdata data to give the possible reason about a missing package. This function is expected to be used by package backends such as rpm. (From OE-Core rev: 4c1f63a7618c5eef1684ecc52af50821a49e2e91) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: preserve debugfs tarball with checksum fstypeManuel Leonhardt2025-09-111-5/+8
| | | | | | | | | | | | | | | Previously, when adding checksum fstypes to IMAGE_FSTYPES_DEBUGFS, e.g. IMAGE_FSTYPES_DEBUGFS = "tar.bz2 tar.bz2.sha256sum", only the checksum file remained in DEPLOY_DIR while the tarball file was removed. The underlying issue was that inside gen_conversion_cmds, removing the debugfs_ prefix from type broke the comparison with alltypes where the prefix was expected. (From OE-Core rev: 560c7676b81fb344b7db538d65973a49807ab140) Signed-off-by: Manuel Leonhardt <mleonhardt@arri.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager/__init__.py: remove obsolete codes related to ↵Chen Qi2025-09-081-4/+1
| | | | | | | | | | | | | packagefeed-stability The packagefeed-stability.bbclass has been removed. The codes related to it are also obsolete. Remove them. (From OE-Core rev: e3bf1c4a40e64acadbf3f905d898d81db762d8f4) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/bblayers.py: add a test case for bitbake-config-build show-fragmentAntonin Godard2025-09-081-0/+26
| | | | | | | | | | | Add a test case for 'bitbake-config-build show-fragment' and use 'bitbake-config-build list-fragments' to get the path to the fragment. (From OE-Core rev: 09468f352994a05b59911b2fe7412d3540cdb3cb) Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/configfragments: add a show-fragments commandAntonin Godard2025-09-081-0/+15
| | | | | | | | | | | | | | | | | | | | | | | We can print information on fragments (name, location, description, etc.), but not their content. Add a show-fragment command to do that. It can be used as follows: $ bitbake-config-build show-fragment core/yocto/sstate-mirror-cdn And prints: .../meta/conf/fragments/yocto/sstate-mirror-cdn.conf: BB_CONF_FRAGMENT_SUMMARY = "Use prebuilt sstate artifacts for standard Yocto build configurations." BB_CONF_FRAGMENT_DESCRIPTION = "The Yocto Project has prebuilt artefacts available for standard build configurations. \ ... (From OE-Core rev: 71cd1ae6a8367f2135855a2904e8b8d4967efd99) Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* pinentry: upgrade 1.3.1 -> 1.3.2Gyorgy Sarvari2025-09-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Shortlog: -qt: Replace icons for dark mode with 16x16 icons -qt,qt5: Ensure that input field is large enough for generated password -qt5: Add dark mode icon variants and detection -Make Show/Hide Password functionality accessible -qt5: Make Show/Hide Password functionality accessible -m4: Update libassuan.m4. -build: Remove defining GPG_ERR_ENABLE_ERRNO_MACROS. -build: Fix warning about obsolete pinentry-emacs. -curses: Factor out dialog release to separate function. -qt: Add dark mode icon variants and detection -m4: Update gpg-error.m4 and libassuan.m4. Also: Simplify patch to find gpg-error with pkg-config (From OE-Core rev: afa8d2becc9c53a92d29f413d9eec737d7e12601) Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Cc: Ross Burton <ross.burton@arm.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* apt: upgrade 2.6.1 -> 3.0.3Gyorgy Sarvari2025-09-081-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changelog: https://metadata.ftp-master.debian.org/changelogs/main/a/apt/apt_3.0.3_changelog Dropped patches which are included in this release, or became obsolete: 0001-Fix-compilation-error-with-clang-libc-18.patch - included in this release 0001-Fix-musl-build.patch - included in this release 0001-Raise-cmake_minimum_required-to-3.13-to-avoid-warnin.patch - included in this release 0001-Remove-using-std-binary_function.patch - became obsolete, fixed upstream 0001-aptwebserver.cc-Include-array.patch - became obsolete, fixed upstream 0001-strutl-Add-missing-include-cstdint-gcc-15.patch - included in this release Added a new patch to avoid compilation error with musl: error: 'basename' was not declared in this scope; did you mean 'rename'? Adapted DEPENDS list - gnutls and gcrypt dependencies were dropped in favor of openssl in version 2.9.19. Added a new PACKAGECONFIG, 'usrmerge', which displays a gentle warning if the system isn't a usrmerge system during package installation. Added new COMMON_ARCH CMake argument - if it is not defined, CMake is trying to determine the value of this variable by running dpkg, which is usually a futile endeavour. It is used in config creation, and to print some system info. Also adapt a self test: the apt-key command has been deprecated since a while, and in this release it was completely removed. Instead sources.list file contains the signature data, on a per-repository basis. (From OE-Core rev: 1413a6144679a8347a3487f1950612ee20ff382c) Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: rename wks flag --extra-space to --extra-filesystem-spacePierre-Loup GOSSE2025-09-081-2/+2
| | | | | | | | | | | | | Makes a clear distinction with --extra-partition-space flag. (From OE-Core rev: 39d10137b86ebb6d1f20c36ae50a7771e6c76251) Signed-off-by: Pierre-Loup GOSSE <pierre-loup.gosse@smile.fr> CC: Alexander Kanavin <alex.kanavin@gmail.com> CC: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: add --extra-partition-space option to set unused spacePierre-Loup GOSSE2025-09-081-2/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, the content of the partition is filled by the filesystem without leaving any unused free space. The --extra-space flag adds extra space to the filesystem size, not to the partition. Unused free space after the filesystem can be useful for some cases, such as encrypting a partition at runtime. With --extra-partition-space 32M, we ensure that the last 32M of the partition is unused: this space does not contain filesystem data and can store the LUKS2 header. The implementation sets a difference between the partition and filesystem size: - With --fixed-size, the extra part space is removed from the filesystem size. - Otherwise (with or without --size flag), the extra part space is added to the partition size. (From OE-Core rev: 22fd1702aedf40257aa53963b62b5ef1bbd2818a) Signed-off-by: Pierre-Loup GOSSE <pierre-loup.gosse@smile.fr> CC: Alexander Kanavin <alex.kanavin@gmail.com> CC: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe/license_finder: Add find_licenses_up functionChristian Lindeberg2025-09-081-1/+26
| | | | | | | | | | | Add a function for finding licenses in a directory or upwards but not above a top directory. (From OE-Core rev: c5c3f7397e62e6e4be6b6fe611317a2f5f853a04) Signed-off-by: Christian Lindeberg <christian.lindeberg@axis.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/cases/gcc.py: add libitm to default installed packages.Harish Sadineni2025-09-081-1/+1
| | | | | | | | | | | | | | | When running oe-selftest few libitm tests were getting failed due to below error: /tmp/runtest.923959/alloc-1.exe: error while loading shared libraries: libitm.so.1: cannot open shared object file: No such file or directory Adding libitm to default installed packages to fix this issue. (From OE-Core rev: 0bc2cc9589b5cd3e11cbba1bb588785845db4faa) Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.py: drop visit_StrMartin Jansa2025-09-011-6/+0
| | | | | | | | | | | | | | | | | In https://git.openembedded.org/openembedded-core/commit/?h=kirkstone&id=abc93390a3f19bc4cc159c5690a478b9e2270906 visit_Constant was added for compatibility with Python 3.8 and newer, but visit_Str was kept, because at that time bitbake did require Python 3.6. Now latest bitbake requires 3.9 and even version 2.4 used in mickledore builds requires 3.8 since: https://git.openembedded.org/bitbake/commit/?h=2.4&id=744310f360d2288ac2ef07745abc86852126b5b9 so we can safely remove these. (From OE-Core rev: 6d3da37adbcaf5a7a3dade08f9d052571b195249) Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* default-distrovars.inc: Fix CONNECTIVITY_CHECK_URIS redirect issueDeepak Rathore2025-08-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The default CONNECTIVITY_CHECK_URIS uses "https://yoctoproject.org/connectivity.html" which redirect to "https://www.yoctoproject.org/connectivity.html". Some network configurations with proxies or restricted internet access don't handle HTTP redirects properly during the sanity check phase, causing build failures with: ERROR: OE-core's config sanity checker detected a potential misconfiguration. Either fix the cause of this error or at your own risk disable the checker (see sanity.conf). Following is the list of potential problems / advisories: Fetcher failure for URL: 'https://yoctoproject.org/connectivity.html'. URL doesn't work. Updated the default URL to use the final destination directly to avoid redirect-related connectivity check failures. Also updated SDK test cases in https.py to use the corrected URL for consistency. (From OE-Core rev: 60cdf960a3560f391babd559737f1afb31fb2c5c) Signed-off-by: Deepak Rathore <deeratho@cisco.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.88.0 -> 1.89.0Jayasurya Maganuru2025-08-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rust stable version upgraded to 1.89.0 https://blog.rust-lang.org/2025/08/07/Rust-1.89.0/ * Drop merged patches with rust v1.89.0. - 0001-Disable-libunwind-cross-architecture-unwinding.patch - triagebot.patch * Update and rebase existing patches with rust v1.89.0. - revert-link-std-statically-in-rustc_driver-feature.patch - rust-oe-selftest.patch - 0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch - 0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch (To fix build failures for riscv with musl, this patch adds aliases for plain syscalls to their time64 variants in libc-0.2.174, These changes are in addition to similar fixes already applied to libc-0.2.172) - 0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch (Changes for libc-0.2.170 are no longer needed, as that version is not present in rust v1.89.0 vendor sources) * OE-selftests: - Doc-tests fail in 55 crates,test-float-parse tests also fail. These tests are excluded to ensure the overall test suite passes. Test Results Summary: +-----------+--------+---------+ | Machine | Passed | Ignored | +-----------+--------+---------+ | arm-32 | 29,239 | 1,468 | | arm-64 | 29,329 | 1,412 | | x86-32 | 29,231 | 1,449 | | x86-64 | 29,484 | 1,225 | | riscv-64 | 29,304 | 1,436 | +-----------+--------+---------+ (From OE-Core rev: fca454a188592c9fa854e93ff1a9c3e70a681e23) Signed-off-by: Jayasurya Maganuru <Maganuru.Jayasurya@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/cases/gcc.py: Increase QEMU RAM to 4GBHarish Sadineni2025-08-251-1/+2
| | | | | | | | | | | The test pr61599-1.c fails because it requires more than 3GB of RAM. This change increases the allocated RAM to 4GB to prevent test failures. (From OE-Core rev: 745eedb1afcb4f8e28ca560ae41d3297bb63cdd4) Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.py: avoid deprecated ast.StrMartin Jansa2025-08-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | * it's deprecated since python-3.12 and removed in 3.14 causing: openembedded-core/meta/lib/oe/license.py', lineno: 176, function: visit 0172: 0173: LicenseVisitor.__init__(self) 0174: 0175: def visit(self, node): *** 0176: if isinstance(node, ast.Str): 0177: lic = node.s 0178: 0179: if license_ok(self._canonical_license(self._d, lic), 0180: self._dont_want_licenses) == True: Exception: AttributeError: module 'ast' has no attribute 'Str' (From OE-Core rev: 1eb2137324202107baa5cadcfdd682629a9cc269) Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* spdx30_tasks: Change package license to declaredJoshua Watt2025-08-211-1/+1
| | | | | | | | | | | | | | Per discussion with SPDX licensing group, the package license statements classify as declared licenses, not concluded licenses. Note that this is the same as a change made to the recipe licenses, just for packages. (From OE-Core rev: 61ba0ef1400a2fa3729473e496e8459cbbba73ad) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: add wic.Wic.test_grub_install_pcbiosVincent Davis Jr2025-08-141-0/+41
| | | | | | | | | | | | | | | | | wic.Wic.test_grub_install_pcbios test Test updates to the bootimg_pcbios plugin that enables support for installing grub directly to the resulting wic image. The test checks to see if the wics plugin generates a wic image. Then see's if normal.mod and grub.cfg are located in the boot partition. (From OE-Core rev: 23b2a406c7d83f7b81aed85819b4643b93978ac9) Signed-off-by: Vincent Davis Jr <vince@underview.tech> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest/devtool: add devtool upgrade selftest for recipes with git submodulesTobias Pistora2025-08-141-3/+7
| | | | | | | | | | | | | | Tests [YOCTO #15943] Move code from test_devtool_upgrade_git() into separate, local function. Add a test_devtool_upgrade_gitsm() selftest for devtool. Add recipes for testing gitsm components. (From OE-Core rev: c996801af3a22f50955ed4e47220461d6d243a3b) Signed-off-by: Tobias Pistora <pistora.tobias@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/utils: use multiprocessing from bbMartin Jansa2025-08-141-1/+1
| | | | | | | | | | | | | | | | Fixes build with python-3.14 It was added to bitbake in 62be9113d98fccb347c6aa0a10d5c4ee2857f8b6 and oe-core now requires latest bitbake already, so we can use this. [YOCTO #15858] (From OE-Core rev: 75b39bf4b0cbf0884ce5c7209f3ae9420a86316e) Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Reviewed-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/lib: Switch classextend to use new filter APIRichard Purdie2025-08-122-138/+119
| | | | | | | | | | | | | | | | | | Currently, class extensions are implmented using shadow variables and access indirection which is horribly ineffient and ugly. Switch to using the new bitbake filter API, which allows a translation of the variable before the expanded value is returned. This allows us to drop the shadow variable accesses. It also avoids the need to iterate PACKAGES and make many variable changes since a filter against RDEPENDS applies to RDEPENDS:${PN} and all of it's other overridden values. Since data expansion happens at access, it also avoids many of the race conditions this code has tranditionally been plagued with. (From OE-Core rev: 24a9858a8927e91d499ee342ed93a0dbb44d83bc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: fix parallel make settingsPeter Marko2025-08-115-5/+25
| | | | | | | | | | | | | These testcases are running with make or cmake "-j" without number, which means that the build will spawn unlimited number of compiler processes which may lead to oomkills and general build machine cpu overload. (From OE-Core rev: c7afa4fcdcf4409dcc7c2bf9cba34d30b7d42a39) Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: rename variable dirs to opts is cases with parallel makePeter Marko2025-08-113-32/+32
| | | | | | | | | | | | | | This is a refactoring commit so that next commit which is fixing parallel make settings is readable. Rename makes sense as the variable will contain not only directories but also parallel make settings afterwards. (From OE-Core rev: a13fc7b6f813ce7bd9991aed8f03351bdf5596f2) Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe/utils: extract method for parallel_make without d contextPeter Marko2025-08-111-8/+18
| | | | | | | | | | | | | | | oeqa does not have general access to d variable context and needs to determine parallel make settings. Extract the code from parallel_make into reusable parallel_make_value. Also correct function description of return value from None to empty string. (From OE-Core rev: c8670e9c7db565401412dad979c2ee53a586b59d) Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake/conf: Default to zstd compressed image outputRichard Purdie2025-08-062-0/+7
| | | | | | | | | | | | Switch our default qemu images to use .zst compressed images by default since this is the output format we release during the release process and is the one that users would prefer to download. This makes the release process use the actual generated output from the system and avoids post processing. (From OE-Core rev: aa5f60d1fcb716a2b2174dffcaf35442bff1f1fb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/runqemu: Use snapshot mode for image testingRichard Purdie2025-08-061-3/+3
| | | | | | | | | We don't need to preserve changes to these images so use snapshot mode so we don't save writes to them. (From OE-Core rev: da939d122fc77c86f13a087a387edaa8d39d9dbb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/qemu: Add compressed image types that are now supportedRichard Purdie2025-08-062-2/+2
| | | | | | | | | Add compressed image types that are now supported to the supported fstypes list. (From OE-Core rev: 2e2406213347ad294e301de45ff5be59292bdc3b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* selftest: runqemu: add tests for booting zst compressed imageYoann Congal2025-08-061-1/+20
| | | | | | | | | | Add a simple tests booting a compressed image given to runqemu as path and as image recipe name. (From OE-Core rev: b5f8c3e02980df0e8e44de32ed8b3b869a1fcd83) Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: do not fail when sdk package is not availablePeter Marko2025-08-041-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Prior to commits: * 11277efd057685558a744e98082b5709e849dd2a * d0e8b83d05957b1f22d08582e364afa4b522801e the tests were skipped if package was not available. Now the code calls function ensure_host_package which says "try to sdk-install missing dependencies", however in fact for sdkext it causes a failure if the installation is not available. Since maturin is not installed in any image, it cannot be installed unless it's downloaded from sstate-cache mirror populated by a world build. These builds are however now not done for powerpc and mips. IT also does not work in local builds without sstate-cache mirror. Fix this by skipping the test if the package cannot be installed to match the original behavior before those commits. (From OE-Core rev: bd2096c89a4a00927a52d07145aad528dc86b81c) Signed-off-by: Peter Marko <peter.marko@siemens.com> Cc: Ross Burton <ross.burton@arm.com> Cc: Khem Raj <raj.khem@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa: fix OETestCalledProcessError for check_output methodPeter Marko2025-08-041-1/+3
| | | | | | | | | | | | | | | | | | Per documentation, subprocess.CalledProcessError exception has stderr filled out only for run method, it's None for check_output method. So serialize it only if it's not None. Avoids: File "<poky-dir>/meta/lib/oeqa/utils/subprocesstweak.py", line 15, in __str__ s = s + "\nStandard Error: " + strify(self.stderr) ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ TypeError: can only concatenate str (not "NoneType") to str (From OE-Core rev: d13f444468b4b10f913b3cf01d7d13ef9d42838e) Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime/ltp: Drop ipc that is moved into syscalls in new versionLiu Yiding2025-07-311-1/+1
| | | | | | | | | | | ipc has been moved into syscalls upstream commit: https://github.com/linux-test-project/ltp/commit/80fd2d673bc0fd8514190a061219c24933b6f03f (From OE-Core rev: 9abe5ae443b9f3855475572a3e11c191d15039e4) Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.87.0 -> 1.88.0Jayasurya Maganuru2025-07-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rust stable version updated to 1.88.0. https://blog.rust-lang.org/2025/06/26/Rust-1.88.0/ * Rebase existing patches with v1.88.0 * Exclude tidy and coverage-dump from OE self-tests due to test failures Although the build completes successfully, OE self-tests fail: tools/coverage-dump panics during test execution. tools/tidy fails due to a mismatched GCC submodule commit. These tests are excluded to allow successful OE self-test runs. * Two tests from the`codegen` modules now fail only on riscv64. Enable them on arm32/64 and x86-32/64 targets, while restricting them on riscv64 via `only-<target_arch>` tags. Bugzilla link - https://bugzilla.yoctoproject.org/show_bug.cgi?id=15944 Test Results Summary: +-----------+--------+---------+ | Machine | Passed | Ignored | +-----------+--------+---------+ | arm-32 | 28,664 | 1,451 | | arm-64 | 28,748 | 1,396 | | x86-32 | 28,657 | 1,432 | | x86-64 | 28,904 | 1,213 | | riscv-64 | 28,722 | 1,421 | +-----------+--------+---------+ (From OE-Core rev: 5afc9bdbabfdbcb784ceb637926111e6c7648f41) Signed-off-by: Jayasurya Maganuru <Maganuru.Jayasurya@windriver.com> Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: upgrade 3.31.6 -> 4.0.3Moritz Haase2025-07-172-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the first major release bump for CMake since 3.0 was released in 2014. Compatibility with versions of CMake older than 3.5 has been removed. Full release notes are available at [0]. Obsolete patches have been removed and the few remaining ones have been refreshed. We can now build cmake without patches, only cmake-native requires two that are not suitable for upstreaming. The main license file has been renamed from Copyright.txt to LICENSE.rst in [1]. References to the file have been updated, causing changes to the licensing header in 'cmake.h' (see [2]). Additionally, the '1996 - 2024' copyright statement in (cm)curl's COPYING was updated to '1996 - 2025' in [3]. [0]: https://cmake.org/cmake/help/v4.0/release/4.0.html [1]: https://gitlab.kitware.com/cmake/cmake/-/commit/2d42a5444f859891b6598c76ea5d51510013565e [2]: https://gitlab.kitware.com/cmake/cmake/-/commit/de273b2e115974a012a6204ffee046dc9ce77586 [3]: https://gitlab.kitware.com/cmake/cmake/-/commit/48b13baebc7f99442c3b872f202efd2fb92d6d7f License-Update: License file renamed; copyright years updated (From OE-Core rev: fc7aafb30bc5fe83f8d2ed451cb6b4d68b131fb5) Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de> CC: alex.kanavin@gmail.com Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/utils/command: simplify tap detectionAdrian Freihofer2025-07-141-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplify the code by removing the fallback to ifconfig if the ip command is not available. ip commands are nowadays available on all host machines. The transition from ifconfig to ip has taken place long time ago e.g. for the runqemu-gen-tapdevs script. This also fixes the detection of tap devices if the tap devices are not named tap0, tap1, etc. but have a different name, e.g. foo0, foo1 which is the case if the OE_TAP_NAME environment variable is set. Some examples: $ ip tuntap show mode tap $ sudo ./scripts/runqemu-gen-tapdevs 1000 2 Creating 2 tap devices for GID: 1000... Creating tap0 Creating tap1 ... $ ip tuntap show mode tap tap0: tap persist group 1000 tap1: tap persist group 1000 $ sudo ./scripts/runqemu-gen-tapdevs 1000 0 Note: Destroying pre-existing tap interface tap0... Note: Destroying pre-existing tap interface tap1... $ ip tuntap show mode tap $ sudo OE_TAP_NAME=foo ./scripts/runqemu-gen-tapdevs 1000 2 Creating 2 tap devices for GID: 1000... Creating foo0 Creating foo1 ... $ ip tuntap show mode tap foo0: tap persist group 1000 foo1: tap persist group 1000 $ sudo OE_TAP_NAME=foo ./scripts/runqemu-gen-tapdevs 1000 0 Note: Destroying pre-existing tap interface foo0... Note: Destroying pre-existing tap interface foo1... $ ip tuntap show mode tap (From OE-Core rev: 6459ea7c019bcb7a486d286dd964eeeeab99c37d) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: devtool: split tap detection into functionAdrian Freihofer2025-07-142-12/+18
| | | | | | | | | | Make the check for tap devices available as a function which can be used by other tests as well. (From OE-Core rev: ad8f3a8d959a245301118cf7b850f1a0ab567f01) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: devtool: run without pokyAdrian Freihofer2025-07-141-1/+2
| | | | | | | | | | | | If DISTRO is set to poky, the ptest DISTRO_FEATURE is enable. However, without meta-poky layer, ptest packages are not compiled and the tests fail with: ERROR: Nothing RPROVIDES 'cmake-example-ptest'... (From OE-Core rev: 7b5b0908a6acf43384a13f2e6801e014a61b8e8f) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-selftest: devtool deploy-target test --strip optionAdrian Freihofer2025-07-141-30/+33
| | | | | | | | | | | Extend the devtool deploy-target test to test with and without the --strip option. The --strip code path recently broke unnoticed because of changes in pseudo. (From OE-Core rev: 4c586320e15d8d8b5b85e2da0b900dcc6a0fff3d) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa context.py: use TEST_SUITES if setMikko Rapeli2025-07-071-0/+7
| | | | | | | | | | | | | If build target has set TEST_SUITES, then that should be the default test modules to execute. Fixes testexport.bbclass to run same tests as testimage.bbclass which already uses TEST_SUITES. (From OE-Core rev: c66b1dc0a2f973a84dc38b7cc27ae823e0f0a916) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* spdx30: Allow VEX Justification to be configurableJoshua Watt2025-07-031-17/+16
| | | | | | | | | | | | | | | Instead of hard coding the VEX justifications for "Ignored" CVE status, add a map that configures what justification should be used for each status. This allows other justifications to be easily added, and also ensures that status fields added externally (by downstream) can set an appropriate justification if necessary. (From OE-Core rev: c0fa3d92cefa74fa57c6c48c94acc64aa454e781) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/runtime: set self.runner and handle NoneMikko Rapeli2025-07-032-0/+3
| | | | | | | | | | | | Set default self.runner to None. qemu target sets the runner to qemu. Then handle self.runner None in run_network_serialdebug(). This way ssh runner and failing ping or ssh tests handle the error cases. (From OE-Core rev: 39f72147ef402bea54a66abf984315c1f93aa141) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity/utils: Directly use gcc, not BUILD_CCRichard Purdie2025-07-031-11/+6
| | | | | | | | | The test/helper is written assuming gcc, so just call that and stop accessing BUILD_CC which may be set to clang. (From OE-Core rev: 0a165a93693a293f08cb0d7e2dfa1016803a917a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uninative/utils: Drop workarounds for gcc 4.8/4.9Richard Purdie2025-07-031-26/+0
| | | | | | | | | We require at least gcc 8.0 in sanity.bbclass so drop the 4.8/4.9 special case handling in uninative. (From OE-Core rev: 552e037bf598ac523f35b69d2dafc99e5ba59c5f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/sdk: Simplify test specification and discoveryThune Tran2025-07-018-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplify how tests are specified and discovered for different SDK configurations to allow per-layer customization. * Introduce `TESTSDK_CASE_DIRS` variable to specify test directory types, replacing the need to modify the default_cases class member * Discover tests from configured layers using a common discovery pattern (`<LAYER_DIR>/lib/oeqa/<dirname>/cases`) where `<dirname>` is specified in `TESTSDK_CASE_DIRS` * The buildtools directories were renamed to follow the common discovery pattern (`<LAYER_DIR>/lib/oeqa/<dirname>/cases`) for consistency across all SDK configurations. meta/lib/oeqa/ ├── sdk/cases/ # Standard SDK: dirname="sdk" ├── buildtools/cases/ # Buildtools: dirname="buildtools" └── buildtools-docs/cases/ # Buildtools-docs: dirname="buildtools-docs" meta-mingw/lib/oeqa/ └── sdkmingw/cases/ # MinGW: dirname="sdkmingw" meta-foo/lib/oeqa/ └── sdk/cases/ # Standard SDK: dirname="sdk" Tested by: 1. Adding new tests using the default discovery pattern `<LAYER_DIR>/lib/oeqa/sdk/cases` and verifying they are discovered and executed. 2. Verifying existing SDK configuration tests work (requires -c populate_sdk first): * Standard SDK: `bitbake core-image-minimal -c testsdk` * Buildtools tarball: `bitbake buildtools-tarball -c testsdk` * Buildtools docs tarball: `bitbake buildtools-docs-tarball -c testsdk` * Mingw SDK: (SDKMACHINE = "x86_64-mingw32") `bitbake core-image-minimal -c testsdk` (From OE-Core rev: bde94c128c0b4e7e1ebea40f582b4dd6dcc965ff) Signed-off-by: Thune Tran <thune.a.tran@boeing.com> Signed-off-by: Chuck Wolber <chuck.wolber@boeing.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/devtool: update create_go test to match the new behaviourRoss Burton2025-07-011-23/+10
| | | | | | | | | Update the test now that the recipe uses go-mod-update-modules. (From OE-Core rev: 1030223a43aa4500c0d4ebd9dfacf60b44239481) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/sefltest/devtool: improve assignment matching in _test_recipe_contentsRoss Burton2025-07-011-1/+1
| | | | | | | | | | | | | This function assumed that all assignments are done with just "=". However, being able to check += or ?= is also useful, so use a regex to split the line and be more flexible about what an assignment operator looks like. (From OE-Core rev: bee528f38d39ed1f91319201e8a99c0b65c9f975) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe/licenses: move tidy_licenses from recipetoolRoss Burton2025-07-011-0/+15
| | | | | | | | | | This function, to tidy a license string, is useful outside of recipetool so move it to oe.license. (From OE-Core rev: 9d57b53169bc60b281510c49e54123941a17a8f5) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* spdx30_tasks: Change recipe license to declaredJoshua Watt2025-06-261-1/+1
| | | | | | | | | | | Per discussion with the SPDX licensing group, recipe LICENSE statements classify as a declared license, not a concluded license. (From OE-Core rev: 561447c7cc1485366dbf41cfbf8dcc1cbf29d043) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>