compiler-rt,libcxx: Use clang for native-libcxx and gcc for compiler-rt-native
compiler-rt configure calls for c++ compiler which can cause C++ runtime to
not be detected on some Yocto autobuilder workers running ubuntu 24.04
therefore let it use gcc for native version
Set TOOLCHAIN_NATIVE for using clang for libcxx
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kernelsrc/perf: clean up package version while using kernel source
If recipe inherits bbclass kernelsrc to use kernel sources,
the recipe should explicitly set ${KERNEL_VERSION} to ${PKGV}
in task do_package, otherwise package version (${PV} is usually
default 1.0) is not consistent with kernel source.
For example, there are 5 recipes in meta-openembedded to inherit
kernelsrc, but 4 recipes explicitly set PKGV.
This commit clean up the setting of PKGV, move it to kernelsrc.bbclass
for common use, the recipe (such as intel-speed-select) that inherited
kernelsrc will not be required to explicitly set ${PKGV} with
${KERNEL_VERSION}
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Hongxu Jia [Mon, 30 Jun 2025 12:17:08 +0000 (20:17 +0800)]
kernel-devsrc: make package version consistent with kernel source
The package version of kernel-devsrc is 1.0 which is not consistent
with kernel source
$ bitbake kernel-devsrc
$ ls tmp/work/qemux86_64-poky-linux/kernel-devsrc/1.0/deploy-rpms/qemux86_64/kernel-devsrc-*
tmp/work/qemux86_64-poky-linux/kernel-devsrc/1.0/deploy-rpms/qemux86_64/kernel-devsrc-1.0-r0.qemux86_64.rpm
tmp/work/qemux86_64-poky-linux/kernel-devsrc/1.0/deploy-rpms/qemux86_64/kernel-devsrc-dbg-1.0-r0.qemux86_64.rpm
tmp/work/qemux86_64-poky-linux/kernel-devsrc/1.0/deploy-rpms/qemux86_64/kernel-devsrc-dev-1.0-r0.qemux86_64.rpm
After commit [kernelsrc.bbclass/perf: make package version consistent
with kernel source] applied, it moved the setting of PKGV to
kernelsrc.bbclass for common use. And bbclass kernelsrc has already
inherited linux-kernel-base, this commit uses bbclass kernelsrc to
instead of linux-kernel-base, and remove duplicated settings.
After applying this commit:
$ ls tmp/work/qemux86_64-poky-linux/kernel-devsrc/1.0/deploy-rpms/qemux86_64/kernel-devsrc-*
tmp/work/qemux86_64-poky-linux/kernel-devsrc/1.0/deploy-rpms/qemux86_64/kernel-devsrc-6.12.31-r0.qemux86_64.rpm
tmp/work/qemux86_64-poky-linux/kernel-devsrc/1.0/deploy-rpms/qemux86_64/kernel-devsrc-dbg-6.12.31-r0.qemux86_64.rpm
tmp/work/qemux86_64-poky-linux/kernel-devsrc/1.0/deploy-rpms/qemux86_64/kernel-devsrc-dev-6.12.31-r0.qemux86_64.rpm
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jon Mason [Tue, 1 Jul 2025 13:27:23 +0000 (09:27 -0400)]
libucontext: use hard/soft float
When building for qemuarm-secureboot in meta-arn with musl and clang,
the following compile error is seen:
- | ../sources/libucontext-1.3.2/arch/arm/swapcontext.S:23:11: error: unknown token in expression
- | ldr r4, =#0x56465001
- | ^
This is happening because 1.3 added ifdefs for assembly code for both
hard and soft float, and bcause neither is being defined, it is taking
this path with the issue.
Since we can tell if soft or hard float is being used via the TARGET_FPU
variable, use that and set the relevant makefile flag.
Signed-off-by: Jon Mason <jon.mason@arm.com> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Thomas Perrot [Tue, 1 Jul 2025 14:42:50 +0000 (16:42 +0200)]
opensbi: bump to 1.7
This release has:
- New parameter in top-level Makefile for reproducible builds
- Added MIPS P8700 platform support
- Allow arbitrary path in LLVM parameter of top-level Makefile
- Improved SBI v3.0 extensions to match frozen specification
- Emulate AMO instructions when Zaamo is not available
- Stop the harts waiting for HSM start from supervisor software
- Improved generic platform overrides to use common fdt_driver helpers
- Improved SBI MPXY framework to use per-domain data
- Added support for control transfer records (CTR) ISA extension
- Use LR and SC when Zaamo ISA extension is not available
- Added PXA UART support
- Added support for double-trap ISA extensions
- Optimized hartid and scratch lookup
- Added unit tests for bitwise operations
- Added unit tests for SBI ecall functionality
- Constify various FDT driver definitions
- Added MPXY RPMI mailbox driver for System MSI service group
- Improved RPMI drivers to match frozen specifications
- Initialize miscellaneous early drivers in one pass
- Use fdt_driver helpers for irqchip driver framework
- Allow adding SSE events dynamically at boot-time
- Simple singly linked list implementation
Overall, this release adds more ISA extensions and does many device driver
improvements.
Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
spdx30: Allow VEX Justification to be configurable
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.
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Wang Mingyu [Tue, 1 Jul 2025 23:24:35 +0000 (07:24 +0800)]
libproxy: upgrade 0.5.9 -> 0.5.10
Changelog:
==========
- kde: Support Proxy Config Script value without scheme
- Create codeql.yml
- Add MATE and Cinnamon check to gnome plugin
- Support -M option for Solaris/illumos ld
- Fix symbol versioning with LLD
- Create SECURITY.md
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Wang Mingyu [Tue, 1 Jul 2025 23:24:34 +0000 (07:24 +0800)]
libmodulemd: upgrade 2.15.1 -> 2.15.2
Fixes:
-----------
module_index test now passes if RPM library is built without bzip2 or xz
compression support and libmodulemd is configured to support decompression
using the RPM library.
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
clang-native: Add class to use clang as native compiler
Some recipes demand full clang/llvm builds e.g. chromium we need to use
clang as native toolchain. This class collects all needed bits to enable
OE built clang to provide the clang native toolchain
Setting
TOOLCHAIN_NATIVE = "clang"
in recipe will chose clang for native toolchain
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changqing Li [Mon, 30 Jun 2025 07:44:42 +0000 (15:44 +0800)]
mingetty: fix do_package warning
Reproduce steps(Under the same project dir):
1. enable DISTRO_FEATURES usrmerge, bitbake mingetty
2. disable DISTRO_FEATURES usrmerge, bitbake mingetty
Result in step 2:
WARNING: mingetty-1.08-r3 do_package: mingetty: NOT adding alternative provide /usr/sbin/getty: /usr/sbin/mingetty does not exist
WARNING: mingetty-1.08-r3 do_package: QA Issue: mingetty: Files/directories were installed but not shipped in any package:
/sbin
/usr/sbin
In step1, Line SBINDIR=/sbin is replaced to SBINDIR=/usr/sbin, in step2,
since do_fetch does not rerun, Makefile still has SBINDIR=/usr/sbin, so
sed not works as expected, SBINDIR still equal to /usr/sbin when disable
usrmerge. And cause above two warnings.
Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mikko Rapeli [Tue, 1 Jul 2025 07:33:54 +0000 (10:33 +0300)]
oeqa/runtime: set self.runner and handle None
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.
Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yi Zhao [Wed, 2 Jul 2025 07:28:52 +0000 (15:28 +0800)]
gnupg: drop -unknown suffix from version number
For gnupg and related packages, if autogen.sh is run outside of a git
repo, the find-version function always assumes that the package is a
beta version and adds the suffix '-unknown' to the version number.
Add drop-unknow-suffix.inc file that can be included by gnupg and other
recipes. This file is used to modify autogen.sh:
1. Replace beta=yes with beta=no.
2. Replace tmp="-unknown" with tmp=""
Also remove 0004-autogen.sh-fix-find-version-for-beta-checking.patch as
it is no longer needed.
Befor the fix:
$ gpg --version
gpg (GnuPG) 2.5.5-unknown
After the fix:
$ gpg --version
gpg (GnuPG) 2.5.5
Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 1 Jul 2025 21:44:02 +0000 (22:44 +0100)]
sanity: Reference gcc/g++ directly
BUILD_CC and BUILD_CXX can be overridden on a per recipe context now so
these tests don't make sense in this form any more. They assume gcc/g++
so lets just use those directly.
This fixes things to work with toolchain selection for the native
case.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 27 Jun 2025 09:25:00 +0000 (10:25 +0100)]
bitbake.conf/sstate: Introduce OE_SHARED_UMASK to standarise shared area umask
Currently, the "shared" directory permissions of sstate are hardcoded. Since
multiple areas of the code reference this, separate it out to a variable to
allow the behaviour to be configurable. Initially this applies to SSTATE_DIR.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Add python3-packaging to RDEPENDS
* Enable ptest:
- Add to ptest-packagelists.inc PTESTS_FAST
- inherit ptest-python-pytest
- Add python3-setuptools to ptest RDEPENDS
- One test is skipped, but it requires the "full" python3-flit,
not just python3-flit-core.
Comparing changes since 0.45.1:
https://github.com/pypa/wheel/compare/0.45.1...0.46.1
Release notes [1]:
0.46.1 (2025-04-08)
* Temporarily restored the wheel.macosx_libfile module (#659)
0.46.0 (2025-04-03)
* Dropped support for Python 3.8
* Removed the bdist_wheel setuptools command implementation and entry
point. The wheel.bdist_wheel module is now just an alias to
setuptools.command.bdist_wheel, emitting a deprecation warning on import.
* Removed vendored packaging in favor of a run-time dependency on it
* Made the wheel.metadata module private (with a deprecation warning if
it’s imported
* Made the wheel.cli package private (no deprecation warning)
* Fixed an exception when calling the convert command with an empty
description field
Moritz Haase [Fri, 27 Jun 2025 06:13:46 +0000 (08:13 +0200)]
json-c: Remove icecc specific comment
6481e8b209b ("json-c: fix icecc compilation") disabled '-Werror' unconditionally
for all compilers. We want to keep it disabled to reduce efforts when updating
or adding support for new toolchains (see [0]), but since support for icecc has
been removed via ba4fd5229893 ("classes/recipes-devtools: Drop icecc from
OE-Core") recently, we can drop the comment referencing it.
Randy MacLeod [Thu, 26 Jun 2025 21:28:02 +0000 (17:28 -0400)]
ninja: upgrade 1.12.1 -> 1.13.0
Changelog:
==========
- Ninja now automatically joins a GNU Make jobserver as a client
(version 4.4 on non-Windows systems required for "fifo" style) #1139
- Print exit code of failed subcommands #1507
- ninja -t compdb accepts a target #1544
- Support for ANSI (color) escape codes in NINJA_STATUS #713
See:
https://github.com/ninja-build/ninja/milestone/8?closed=1
for a complete list of changes.
Add tag to SRC_URI as is now required.
Also line-wrap the DESCRIPTION.
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Thune Tran [Thu, 26 Jun 2025 20:57:21 +0000 (20:57 +0000)]
oeqa/sdk: Simplify test specification and discovery
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.
Ross Burton [Fri, 27 Jun 2025 13:48:49 +0000 (14:48 +0100)]
oeqa/sefltest/devtool: improve assignment matching in _test_recipe_contents
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.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Fri, 27 Jun 2025 13:48:47 +0000 (14:48 +0100)]
classes/go-mod-update-modules: add class to generate module list
Almost entirely based on the create_go.py module for recipetool by
Christian Lindeberg <christian.lindeberg@axis.com>, this instead has the
logic inside a class that can be used to update the list of Go modules
that are used, both SRC_URI and LICENSE.
Integration with devtool upgrade will come shortly, but it needs a bit
more work.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Fri, 27 Jun 2025 13:48:44 +0000 (14:48 +0100)]
recipetool: allow recipe create handlers to specify bitbake tasks to run
When creating a recipe there can be cases where there is a class that
does some of the recipe creation (such as cargo-update-recipe-crates).
To avoid duplication of code, look for run_task assignments in the
extravalues dictionary returned by the handler, and if it is set then
call that task after writing the recipe.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ricardo Simoes [Fri, 27 Jun 2025 12:21:58 +0000 (14:21 +0200)]
dosfstools: Use standard fsck exit codes
This commit brings in `dosfstools` patches to make `fsck.vfat` exit
codes adhere to the standard exit codes defined by `fsck`. See [1].
These will fix the interaction of `fsck.vfat` with other tools like
`systemd-fsck` which expect the exit codes to be in line with the
standard [2].
However, as of today the dosfstools maintainer(s) are invisible for over
a year [3]. Thus, if upstream ever becomes active again, these patches
should be reassessed.
Signed-off-by: Ricardo Simoes <ricardo.simoes@pt.bosch.com> Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Antonin Godard [Thu, 26 Jun 2025 15:15:43 +0000 (17:15 +0200)]
python3-sphinx-argparse: add recipe
This Sphinx extension can be used to autogenerate documentation for any
python module returning an argument parser from argparse. It can used in
places of the documentation where the --help output is currently
hardcoded, and generate formatted documentation instead.
Support to override it by setting SPDX_PACKAGE_VERSION, such as
set SPDX_PACKAGE_VERSION = "${EXTENDPKGV}" in local.conf to append
PR to versionInfo in SBOM 2
$ echo 'SPDX_PACKAGE_VERSION = "${EXTENDPKGV}"' >> conf/local.conf
$ bitbake acl
$ jq . tmp/deploy/spdx/2.2/core2-64/recipes/recipe-acl.spdx.json
...
"name": "acl",
"summary": "Utilities for managing POSIX Access Control Lists",
"supplier": "Organization: OpenEmbedded ()",
"versionInfo": "2.3.2-r0"
},
...
Khem Raj [Tue, 3 Jun 2025 16:11:35 +0000 (09:11 -0700)]
tcf-agent: Add $@ to RANLIB
tcf-agent calls RANLIB ( if defined ) after calling AR to
create the archive [1], when RANLIB is set to gcc-ranlib this goes
unnoticed, since calling gcc-ranlib without any arguments silenlty
does nothing and exits with return code 0, however, calling binutils
ranlib or llvm-ranlib does demand library name as commandline option
and since it is not there it exits with code 1
OPTIONS:
-h --help - Display available options
-V --version - Display the version of this program
-D - Use zero for timestamps and uids/gids (default)
-U - Use actual timestamps and uids/gids
-X{32|64|32_64|any} - Specify which archive symbol tables should be
generated if they do not already exist (AIX OS only)
aarch64-poky-linux-musl-llvm-ranlib: error: an archive name must be
specified
make: *** [Makefile:53: obj/GNU/Linux/a64/Debug/libtcf.a] Error 1
When we add $@, to RANLIB then it becomes the make variable,
$@ - An automatic Makefile variable that expands to the target name (the
file being built)
so the makefile target now rightly adds the .a filename to RANLIB call.
Liu Yiding [Wed, 21 May 2025 03:14:12 +0000 (11:14 +0800)]
clang: multilib-header fix for llvm/Config/llvm-config.h and clang/Config/config.h
Error: Transaction test error:
file /usr/include/clang/Config/config.h conflicts between attempted installs of
lib32-clang-dev-20.1.4-r0.core2_32 and clang-dev-20.1.4-r0.core2_64
file /usr/include/llvm/Config/llvm-config.h conflicts between attempted
installs of lib32-clang-dev-20.1.4-r0.core2_32 and clang-dev-20.1.4-r0.core2_64
reproduce steps:
1. Add in local.conf the following lines:
Jimmy Ho [Tue, 24 Jun 2025 00:14:21 +0000 (08:14 +0800)]
nfsrootfs: disable warning message if bootargs root parameter have not been defined
we have case that don't define root in bootargs,
if [ ${bootparam_root} != "/dev/nfs" ] will output warning "/init.d/85-nfsrootfs: line 4: [: !=: unary operator expected"
let variable expension result become string to solve this problem
Signed-off-by: Jimmy Ho <jimmy.ho@sifive.com> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Hongxu Jia [Fri, 20 Jun 2025 05:44:53 +0000 (13:44 +0800)]
image-live.bbclass: support disable isohybrid for EFI-only boot
While NO PCBIOS and EFI only for ISO 9660 image, burn the image
to SandDisk USB stick, plug it into laptop, then boot laptop and
enter UEFI mode, there are two boot options in UEFI system.
Boot laptop and entery UEFI mode
...
Boot mode is set to: UEFI
UEFI BOOT:
UEFI: SanDisk
UEFI: SanDisk 2
...
In this case, PCBIOS is not used, calling isohybrid for ISO 9660 image
is not necessary, and do not call isohybrid for ISO 9660 image could
remove duplicated boot option in UEFI mode.
According to [1][2], use `[ "${PCBIOS}" != "1" ] && [ "${EFI}" = "1" ]' as the
EFI-only condition, the revert condition is `[ "${PCBIOS}" = "1" ] || [ "${EFI}" != "1" ]'
Tim Orling [Tue, 24 Jun 2025 23:13:56 +0000 (16:13 -0700)]
python3-pytest-subtests: upgrade 0.14.1 -> 0.14.2
Highlights from commit logs:
* Bump pypa/gh-action-pypi-publish from 1.12.2 to 1.12.3 (#177)
* Bump hynek/build-and-inspect-python-package from 2.10 to 2.11 (#178)
* Consistently use raw strings for line-matching regexes (#180)
* Ensure advertised pytest 7.4 compatibility (#182)
* Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 (#185)
* Bump hynek/build-and-inspect-python-package from 2.11 to 2.12 (#186)
* Print output "dots" for successful unittest subtests (#164) (#190)
* Improve reporting in case of xfail (#194)
Comparing changes from 0.14.1 -> 0.14.2:
https://github.com/pytest-dev/pytest-subtests/compare/v0.14.1...v0.14.2
Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tim Orling [Tue, 24 Jun 2025 23:13:55 +0000 (16:13 -0700)]
python3-certifi: upgrade 2025.4.26 -> 2025.6.15
* Switch to PEP-517 backend with inherit python_setuptools_build_meta
Commit log highlights:
* Declare setuptools as the build backend in pyproject.toml (#350)
* remove code that's no longer required that 3.7 is our minimum (#351)
Comparing changes from 2025.4.26 -> 2025.6.15:
https://github.com/certifi/python-certifi/compare/2025.04.26...2025.06.15
Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
45.0.4 - 2025-06-09
Fixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not
considered secure, and is supported only for backwards compatibility.)
Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tim Orling [Tue, 24 Jun 2025 23:13:53 +0000 (16:13 -0700)]
python3-maturin: upgrade 1.8.7 -> 1.9.0
* Update crates
1.9.0
* Add full PEP 639 support for project.license and project.license-files
in #2647.
* Add --compatiblity pypi to only build wheels with platform tags that can
also be uploaded to PyPI. This blocks e.g. building for riscv64, which is
supported by manylinux, but not by PyPI.
Comparing changes from v1.8.7 -> v1.9.0:
https://github.com/pyo3/maturin/compare/v1.8.7...v1.9.0
Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
1.8.7
Allow specifying compression method and level, in both build and develop modes, in #2625.
Fix Windows free-threaded builds on Python 3.14 in #2632
Comparing changes from v1.8.6 to v1.8.7:
https://github.com/PyO3/maturin/compare/v1.8.6...v1.8.7
Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There are multiple problems with the sstate creation tests. They currently both execute
twice, once to check one set of files, then another. We can do this together in one
test which makes the code easier to follow.
The common test function also has parameters which were always the same value, so
those can be simplified.
We can use the umask context manager from bb.utils to simplfy the umask code.
The badperms test was actually broken, it was detecting bad permissions, then
ignoring them. This patch fixes that regression too and allows the check to
operate (relying on a separate fix to sstate umask handling).
The result should be an easier to understand couple of test cases which should
also function correctly and be more reliable.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 25 Jun 2025 13:39:30 +0000 (14:39 +0100)]
oeqa/sstatetests: Fix NATIVELSBSTRING handling
The NATIVELSBSTRING variable changes value once a BuildStarted event occurs in a build
directory. This meant running some of the tests directly in a fresh build directory
would fail but they'd pass when run as a group of tests. This is clearly suboptimal.
Move the NATIVELSBSTRING handling to a location where the value is consistent
and a comment about the interesting behaviour of the variable so it hopefully doesn't
catch out others in future.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
sstate: apply proper umask when fetching from SSTATE_MIRROR
Currently, files and directories created under ${SSTATE_DIR} when
fetching from an sstate mirror are not created with group write,
unlike when the sstate artifacts are generated locally. That's
inconsistent, and problematic when the local sstate dir is shared
among multiple users.
Wrap the fetching in a bb.utils.umask() context manager, and for simplicity
move the mkdir of SSTATE_DIR inside that.
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yash Shinde [Wed, 25 Jun 2025 10:20:13 +0000 (03:20 -0700)]
rust: Upgrade 1.86.0 -> 1.87.0
Rust stable version updated to 1.87.0.
https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/
* Update LLVM data-layout for arm64.
LLVM requires matching data layouts and
the aarch64 llvm data-layout was updated to to allow using
32-bit signed/unsigned pointers when building 64-bit targets
using 270, 271 and 272 address spaces.
* Two tests from the `ui` and `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.
* Backport triagebot.patch to skip tidy linkcheck when triagebot.toml
is not present. Distribution tarballs won't include triagebot.toml,
which causes tidy checks to fail.
This backport ensures tidy checks can still run successfully
even when the file is missing.
* During rust installation, some binaries were installed from
'stage2-tools' built path to '${D}${bindir}'. However, from
v1.87 the stage2-tools are no longer built by default.
Update logic to install from `stage1-tools` instead.
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yash Shinde [Wed, 25 Jun 2025 10:20:12 +0000 (03:20 -0700)]
rust: Drop obsolete rust-lld and extended tools dependencies
Some dependencies introduced during the v1.86 upgrade
were needed only for rust-lld and certain LLVM extended tools,
not for the Rust compiler itself.
Since rust-lld and the extended tools are now disabled, these
dependencies have become obsolete. Additionally, related tasks
such as packaging zsh files and removing cargo binaries are no longer relevant.
They can be re-enabled later if needed.
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Victor Kamensky [Tue, 17 Jun 2025 05:25:40 +0000 (22:25 -0700)]
oeqa/runtime/stap: fix script logic problem
Looks as a typo introduced by "6cf4d23a2d26c2767edd93f2eb317ff759b5a992
(oeqa/runtime/stap: improve systemtap test)" - when original command was
split into two parts 'self.target.run' was missed for the second part.
Note this and previos commit issues were masked because mentioned
commit has try/except around tests, so failures that normally are
reported when test assertEqual throw an exception never reached oeqa
infra.
Effectively, this test was broken for the last 3 years. I will leave
blanket try/except around test for now, so this test will pass all
the time as long as dmesg is working. But at least with the fixes
one can inspect log.do_testimage output and check that all steps
are successful or not.
Signed-off-by: Victor Kamensky <victor.kamensky7@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Systemtap refuses modules names like stap-hello, it says:
> ERROR: Safety pattern mismatch for -m parameter ('stap-hello' vs. '^[a-z0-9_]+$') rc=1
'stap-hello' was introduced by: 6cf4d23a2d26c2767edd93f2eb317ff759b5a992 (oeqa/runtime/stap: improve systemtap test)
and '-m parameter' regexp check was in SystemTap from 2010,
not sure how this test case ever passed after mentioned change.
Signed-off-by: Victor Kamensky <victor.kamensky7@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Victor Kamensky [Tue, 17 Jun 2025 05:25:38 +0000 (22:25 -0700)]
systemtap: upgrade 5.2 -> 5.3
* fixed patch fuzz issue
[RP: Set tag in SRC_URI to match version] Signed-off-by: Victor Kamensky <victor.kamensky7@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de> CC: richard.purdie@linuxfoundation.org Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Moritz Haase [Mon, 23 Jun 2025 09:56:01 +0000 (11:56 +0200)]
json-c: Don't build unneeded apps to unblock builds with CMake 4+
Disable build of the apps, as we don't seem to package them (upstream says they
aren't ready, see [0]). They are the only part of the code that doesn't build
yet with CMake 4+. One alternative would be to apply [1], but the PR hasn't been
merged yet by upstream, so we keep it simple.
Hongxu Jia [Mon, 23 Jun 2025 08:03:06 +0000 (16:03 +0800)]
wic-image-minimal, oeqa/selftest/wic: run 'wic ls/cp/rm' in bitbake task
Due to commit [2255f28b57 wic: add WIC_SECTOR_SIZE variable][1] applied,
call `wic ls|cp|rm|write' in bitbake task will hung, but we have no scenario
case to cover it
After commit [scripts/wic: fix calling wic ls|cp|rm|write hung in bitbake task] applied,
this commit run `wic cp|ls|rm' in case wic.Wic2.test_wic_image_type and wic.Wic2.test_qemu,
at post function of with do_image_wic in image wic-image-minimal, and
check if file is there
$ echo 'SANITY_TESTED_DISTROS = ""' >> conf/local.conf
$ oe-selftest -r wic.Wic2.test_wic_image_type wic.Wic2.test_qemu
...
2025-06-23 15:46:22,157 - oe-selftest - INFO - Adding: "include selftest.inc" in /buildarea5/hjia/poky/build-st/conf/local.conf
2025-06-23 15:46:22,157 - oe-selftest - INFO - Adding: "include bblayers.inc" in bblayers.conf
2025-06-23 15:46:22,157 - oe-selftest - INFO - test_qemu (wic.Wic2)
The variable 'TEST_RUNQEMUPARAMS' is not defined
2025-06-23 15:56:46,319 - oe-selftest - INFO - ... ok
2025-06-23 15:56:46,324 - oe-selftest - INFO - test_wic_image_type (wic.Wic2)
2025-06-23 15:57:17,780 - oe-selftest - INFO - ... ok
2025-06-23 15:57:17,781 - oe-selftest - INFO - ----------------------------------------------------------------------
2025-06-23 15:57:17,781 - oe-selftest - INFO - Ran 2 tests in 655.792s
2025-06-23 15:57:17,781 - oe-selftest - INFO - OK
2025-06-23 15:57:25,743 - oe-selftest - INFO - RESULTS:
2025-06-23 15:57:25,743 - oe-selftest - INFO - RESULTS - wic.Wic2.test_qemu: PASSED (624.16s)
2025-06-23 15:57:25,744 - oe-selftest - INFO - RESULTS - wic.Wic2.test_wic_image_type: PASSED (31.46s)
2025-06-23 15:57:25,746 - oe-selftest - INFO - SUMMARY:
2025-06-23 15:57:25,746 - oe-selftest - INFO - oe-selftest () - Ran 2 tests in 655.793s
2025-06-23 15:57:25,746 - oe-selftest - INFO - oe-selftest - OK - All required tests passed (successes=2, skipped=0, failures=0, errors=0)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Hongxu Jia [Mon, 16 Jun 2025 08:12:45 +0000 (16:12 +0800)]
scripts/wic: fix calling wic ls|cp|rm|write hung in bitbake task
While calling wic ls/cp/rm/write in bitbake task along with do_image_wic,
it hung without return.
Due to commit [2255f28b57 wic: add WIC_SECTOR_SIZE variable][1] applied,
It calls get_bitbake_var in `wic ls|cp|rm|write' to define sector size.
By default, get_bitbake_var starts a `bitbake -e' to get variables which
triggers nested bitbake in this situation
Refer `wic create', adds option --vars and --image-name to support to
read bitbake variables from <image>.env files
NOTE: This commit does not add -e for `wic write' to avoid confliction
with existed option -e/--expand
Richard Purdie [Wed, 15 Jan 2025 15:31:49 +0000 (15:31 +0000)]
buildhistory: Drop BUILDHISTORY_RESET due to reliability issues
The implementation of BUILDHISTORY_RESET is problematic, particlarly given that
people are trying to create an API with it alongside BUILDHISTORY_PRESERVE
which simply doesn't exist and can't work reliably. Worse, the code paths with
this bolted on implementation are convoluted and near impossible to follow.
BUILDHISTORY_PRESERVE is effectively internal API, used to stop buildhistory
removing some files which are needed for data, or are created at different
parts of the build. Add a comment to explain what it is doing and why these files
are listed.
Commit 9f68a45aa238ae5fcdfaca71ba0e7015e9cb720e tried to "fix" preserve support
with the reset functionality but it didn't fully work and has just exposed futher
issues. There is a further fix however I can brely follow the code and in reviewing
it, I've concluded we shouldn't be doing this at all.
Due to the way BUILDHISTORY_RESET was implemented, horrible races were introduced
making it unclear what happens to the data if builds fail for example, or how sstate
interacts with the build since things get reset but stamps do not and tasks may not
rerun. It also interacts badly with any additions to the preserve list, due to
misunderstandings on what that variable does.
Having stared long and hard at the code, and really struggled to understand it, I',
of the view that "reset" for CI purposes should be done by the CI itself. The CI can
choose to remove some files or all files and decide how to handle failures. It has
to handle the buildhistory directory anyway.
Therefore drop BUILDHISTORY_RESET support, allowing the "old" codepaths to be dropped.
BUILDHISTORY_PRESERVE is better documented to hint that it is internal API and to
show what it is really for.
If we really do want some functionality list this, it needs to be implemented in a
way you can follow the code, and have tests.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 23 Jun 2025 14:23:51 +0000 (15:23 +0100)]
image_types_wic: Fix file-checksums for missing files in search path
When we tell bitbake about file-checksums, we need to tell it both the files
we look at that exist, but also the ones we looked for but aren't present.
This means that if files appear earlier in the search path, bitbake can then
do the correct things like updating the taskhash and re-running the recipe/task.
In this case, wic was only signalling file presence. This patch adds in the
files it looked at but didn't find too.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Dmitry Baryshkov [Fri, 20 Jun 2025 19:14:55 +0000 (22:14 +0300)]
libglvnd: migrate from meta-oe
libglvnd is a vendor-neutral approach to handling OpenGL / OpenGL ES /
EGL / GLX libraries. It has been proposed and initially implemented by
NVIDIA in order to simplify coinstallation of GL drivers provided by
different vendors. Major Linux distributions (Debian, Ubuntu, Fedora,
etc.) have already switched to libglvnd.
Having libglvnd in OE-Core simplifies integration of this ABI into
distro and BSP layers (e.g. it will help meta-tegra, which currently
provides its own version of the recipe).
Import recipe for libglvnd from the meta-oe layer (changes: fix virtual
package names, add add the SUMMARY data, drop git@ from SRC_URI, require
glvnd DISTRO_FEATURE).
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>