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>
With snapshot enabled, no change on rootfs will be saved after qemu
shutdown. Since this is not what a user might expect, print the snapshot
mode state and its consequence in console at runqemu start.
(From OE-Core rev: 57fe8538a87ff1f69f274d9692f038caed6cb5cd)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When using a .wic.zst image, its fstype is detected by default as
".zst" which prevent booting correctly.
Fix this by adding wictypes (and vmtypes while at it) to the list of
known fstypes. After this fix, the initial fstype is correctly ".wic.zst".
(From OE-Core rev: 26b0922977d1bfcf47bbccf624be86e9e2b8815a)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>
Enhance runqemu to detect and decompress .zst-compressed rootfs images
(e.g. ext4.zst, wic.zst) automatically. If a decompressed image already
exists in the original directory, it will be reused to avoid overwriting
build artifacts. Otherwise, the image is decompressed and removed after
the QEMU session ends.
This allows runqemu to be used seamlessly with compressed image formats
generated by the build system or during releases.
Note: support for .zst images is only available when snapshot mode is
enabled
IMPORTANT:
This patch assumes that the original directory of the .zst-compressed
image is writable. If, for some reason, the path passed from CI or
another system to the script is read-only, the decompression step will
fail when trying to write the uncompressed image to the same directory.
(From OE-Core rev: e069fe2480c871c649b83f6278564a553cc3dd58)
Signed-off-by: Lamine REHAHLIA <lamine.rehahlia@smile.fr>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* GCC 12.1 or later is now required to build the GNU C Library.
* GNU Binutils 2.39 or later is now required to build the GNU C Library.
* Support for lightweight stack guard pages via madvise and the
MADV_GUARD_INSTALL flag has been added to pthread_create.
* This is major release, changelog [1]
[1] https://sourceware.org/pipermail/libc-announce/2025/000048.html
(From OE-Core rev: 7c55e2da96f40ee0e40f6fd534573ce64013145c)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
'cross' dependencies are hard, the code currently handles adding MLPREFIX
in these cases but may not in future depending upon implementation.
Add the correct value explictly.
(From OE-Core rev: 8393be1792cee0fbe76d75fd20a97dda41134880)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The lld linker is a standalone project under the LLVM umbrella that just
depends on libLLVM and nothing else, such as clang.
To reduce the build time of clang if lld is not being used, split it out
into a separate recipe.
To ensure that lld is present if needed, the clang-cross recipe will
depend on lld-native if ld-is-lld is enable.
(From OE-Core rev: 5212b69f892af8c9b080fee2c21533a2bbdd2755)
Signed-off-by: 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>
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>
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>
The removal of the Red Hat initscript has been redundant since 2017[1].
The test directory is not installed, so there's no need to remove it.
(From OE-Core rev: 904b6967ad4730ae32aad785d6b53ca3f5af2cd4)
Signed-off-by: Ross Burton <ross.burton@arm.com>
[1] dbus: 708a44d0 ("Remove distribution-specific init-scripts")
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is actually only used in a single test that we don't build, so
explicitly disable DBus instead of offering a PACKAGECONFIG that doesn't
do what you might expect (enable some systemd/dbus integration).
This doesn't change behaviour as this option wasn't enabled by default.
(From OE-Core rev: bed605e7cd095f210e24f1e07dab6f814d0bbb59)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Removed c11 flag, as it seems to build fine now with default flags.
ptests passed:
All 38 tests were successful.
DURATION: 11
END: /usr/lib/gdbm/ptest
2025-08-01T18:37
STOP: ptest-runner
TOTAL: 1 FAIL: 0
Changelog:
1.26:
- Fixed build with musl libc
- Fixed build on MacOS
- Improved testsuite
1.25:
- New function: gdbm_open_ext
This function provides a general-purpose interface for opening and
creating GDBM files. It combines the possibilities of gdbm_open and
gdbm_fd_open and provides detailed control over database file locking.
- New gdbmtool command: collisions
The command prints the collision chains for the current bucket, or for
buckets identified by its arguments.
- Pipelines in gdbmtool
The output of a gdbmtool command can be connected to the input of a
shell command using the traditional pipeline syntax.
- Fix a bug in block coalescing code
(From OE-Core rev: 5f4c806ba9fe2385891b46098b313a858daf8103)
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This started to fail with rust 1.88, due to rust libc
upgrade
(From OE-Core rev: f9145bc8bec77e1f454f80c4e5576567daa99ac8)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LLDB Uses SWIG to generate python bindings, however
LLDB is no longer part of clang anymore, its a
separate recipe.
(From OE-Core rev: deda1e227dbdcb04c7bfb0ad0afef6ff05674c4f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
None of these recipes need a native build of Python as they don't depend
on native Python modules, nor build Python modules against the target.
(From OE-Core rev: e0da53fca5ec30d883216bfb0be7d96ad597aa69)
Signed-off-by: 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>
Now that lldb has been split out of the clang recipe, there's no need
for the clang recipe to have Python integration beyond the current
Python major version for installing the libclang bindings, which can be
done by simply inheriting python3-dir.
The installation of six.py was done by lldb, and was removed in LLVM 16.
(From OE-Core rev: 5cbe58c604233a0d367e1bb1e3fce0492ae0e836)
Signed-off-by: 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>
Specifically, c-index-test is a 35MB binary which isn't needed if we're
not running the tests.
(From OE-Core rev: a61c3ab08039d382ec2216b8a5deaf256d7bf9c5)
Signed-off-by: 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>
This was added by a certain Mr Burton back in 2016[1] to avoid needing
to depend on perl-native or python3-native, and use the host perl and
python.
However, perl is no longer needed and python3-native is depended on
because the Python bindings are build, so this is now redundant.
[1] meta-clang: 2e003cc ("clang: don't depend on native perl or python")
(From OE-Core rev: 540b02e0fb168fade2afc1d657463c7e0248ae94)
Signed-off-by: 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>
As a single clang-native build is a cross-compiler for all targets, this
recipe should simply create target-prefixed symlinks.
As such, it doesn't need to pull in the common clang include files, or
set TOOLCHAIN.
Unsetting PACKAGES isn't needed as cross inherits nopackages.
The sysroot preprocessing is used to stage bindir, but cross recipes
already stage this directory.
There doesn't appear to be a need to copy clang, so these are now linked
too.
SSTATE_SCAN_FILES only works on actual files not symlinks, so setting it
is pointless.
(From OE-Core rev: 5d96ed55acf7b9a908241222097ad809355de7cf)
Signed-off-by: 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>
This file can be used for nativesdk builds, which if they are using the
clang toolchain will also need compiler-rt and libcxx.
(From OE-Core rev: 24c32edb1b29a0746bb4470fea11e87b8027d9f9)
Signed-off-by: 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>
At the moment we don't allow ccache for native recipes to avoid the
dependency loop of native recipes needing ccache-native which then
depends on itself.
One way to avoid this dependency loop is to just provide a host ccache,
so enable ccache globally if ccache is in HOSTTOOLS. This isn't set
out of the box, but does work.
(From OE-Core rev: cc91a0f6500e88dd96a56307226fcfd16c60c342)
Signed-off-by: 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>
License-Update: the code that was ZPL-licensed has been removed[1].
Explicitly set a non-GPLv3 LICENSE on the output package as we don't
actually ship the GPLv3 file.
This fixes the incorrect hashbangs, so we can remove the manual seds.
(From OE-Core rev: b2a105d753310eda94ccf22ec89c276fd2b30dd9)
Signed-off-by: Ross Burton <ross.burton@arm.com>
[1] https://sourceforge.net/p/docutils/code/9977/
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of using the setuptoools class but not using setuptools, use the
new python_pdm class.
(From OE-Core rev: 8f8e4c3e49254853e90080494f2a77b7bdb14921)
Signed-off-by: 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>
Instead of using the setuptoools class but not using setuptools, use the
new python_pdm class.
(From OE-Core rev: bfd94bb972e5a1a4054891694c1b4e674eeb2bb8)
Signed-off-by: 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>
Instead of using the setuptoools class but not using setuptools, use the
new python_pdm class.
(From OE-Core rev: 70510190463df42db0424d44ebf96d42f4ba4add)
Signed-off-by: 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>
This package uses flit, not setuptools.
Also there's no need for it to depend on python3-cryptography.
(From OE-Core rev: 926935eb872408da733103c1d632a901acfd6e69)
Signed-off-by: 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>
There's no need to pull in python_setuptools_build_meta as maturin is a
build system of its own.
(From OE-Core rev: ea639b83816ae89c0da0a0695ac80f4d678b33db)
Signed-off-by: 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>
For the build process to actually work some inherits are always needed:
- python3native for the python that is actually running build.
- setuptools3-base (badly named) defines how to build extensions and
where to put modules.
Instead of inheriting these in every class, inherit them once in the
python_pep517 class.
(From OE-Core rev: 449b226aca6a5db378dc5576dde47499925dfb26)
Signed-off-by: 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>
When crypto is not in tune features then add +nocryto to
-mcpu explicitly. This makes the behavior between clang
and gcc match. Currently -mcpu=cortex-a72 has different
behavior in clang and gcc in terms of what features are
considered default. Clang enables different set of common
features than gcc on other hand. For example clang
enables crypto with default set but gcc
does not, gcc recommends to disable unavailable extensions
in -mcpu [1] explicitly. crypto is optional on cortex-a53
and cortex-a72. This is not as common but Broadcom
SOCs in raspberrypi3/4 have dropped crypto for cost
reasons [2]. This results in illegal instruction
traps [3] [4] when building components e.g. chromium,
qtwebengine, weston etc. with clang using -mcpu=cortex-a72
for rpi4 target.
Adding +nocrypto makes clang behave like gcc does today. We
do have separate tune if crypto enabled cortex-a72 cores
are to be targeted (cortexa72-cryto) as DEFAULTTUNE
They are added to default feature file since crypto extension
is available in multiple arm architecture versions e.g. armv8,
armv9. It is optional extension as per spec [5]
Extensions can be enabled and disabled with -mcpu using the same
syntax as with -march, and have same effect thats why it is
intrumented via TUNE_CCARGS_MARCH_OPTS
[1] https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#index-mcpu-2
[2] https://forums.raspberrypi.com/viewtopic.php?f=63&t=207888#p1332960
[3] https://github.com/llvm/llvm-project/issues/85699
[4] https://github.com/llvm/llvm-project/issues/90365
[5] https://developer.arm.com/documentation/109697/2025_06/Feature-descriptions/The-Armv9-0-architecture-extension
(From OE-Core rev: db1b355b2b15ba57bd89c2dfb88c2c667551863e)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Quentin Schulz <quentin.schulz@cherry.de>
Acked-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When parsing failures occur, trap KeyError to avoid these kinds
of tracebacks (from a parsing error in meta-ti).
bb.parse.ParseError: ParseError at /srv/pokybuild/yocto-worker/check-layer-nightly/build/meta-ti/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline_git.bb:6: Could not inherit file classes/${KERNEL_BASE_CLASS}.bbclass
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/srv/pokybuild/yocto-worker/check-layer-nightly/build/lib/bb/command.py", line 123, in runAsyncCommand
self.cooker.updateCache()
File "/srv/pokybuild/yocto-worker/check-layer-nightly/build/lib/bb/cooker.py", line 1639, in updateCache
if not self.parser.parse_next():
File "/srv/pokybuild/yocto-worker/check-layer-nightly/build/lib/bb/cooker.py", line 2314, in parse_next
self.shutdown(clean=False, eventmsg=str(exc))
File "/srv/pokybuild/yocto-worker/check-layer-nightly/build/lib/bb/cooker.py", line 2209, in shutdown
read_results()
File "/srv/pokybuild/yocto-worker/check-layer-nightly/build/lib/bb/cooker.py", line 2195, in read_results
self.result_queue.get(timeout=0.25)
File "/usr/lib/python3.10/multiprocessing/queues.py", line 122, in get
return _ForkingPickler.loads(res)
File "/srv/pokybuild/yocto-worker/check-layer-nightly/build/lib/bb/cache.py", line 338, in __setstate__
setattr(self, key, self._restore(state[key], pid))
File "/srv/pokybuild/yocto-worker/check-layer-nightly/build/lib/bb/cache.py", line 318, in _restore
ret[dep] = map[mapnum]
KeyError: 156
(Bitbake rev: 750c68ee7ee3f3d4518348e4c948243504880770)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There was duplication between qa-checks.rst and the doc for the insane
class, so move all of the QA checks in this qa-checks.rst. Remove the
documentation for these checks from classes.rst and link to the
qa-checks.rst document from there.
For QA checks that were only documented only in classes.rst, add them to
qa-checks.rst.
Also sort qa-checks by their names in qa-checks.rst.
(From yocto-docs rev: dc984e5f54c38748603243053fde8b4d078ba586)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was dropped by commit 452e605b55ad ("cve-check: annotate CVEs
during analysis").
(From yocto-docs rev: 55aedec94dce3e3c0541ffaea666cff02d63a708)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Document the new classes under classes/toolchain as well as
PREFERRED_TOOLCHAIN* and TOOLCHAIN variables, which allow selecting the
toolchain. For now there's "gcc" and "clang" as available toolchain.
(From yocto-docs rev: 69a9568f8bd7ed57efddab507a4294ad3408f4dd)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The tar packaging format was removed some time ago. Also, add some
minor grammatical tweaking.
(From yocto-docs rev: 8e9fd1ca232f3c1e8be51cb881a68b4745ee548a)
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>