oe-selftest: devtool ide-sdk: add test for ide=none LLDB/clang support
Add test_devtool_ide_sdk_none_cmake_clang to DevtoolIdeSdkTests to
exercise the new LldbServerConfigNone code path in ide_none.py.
The test uses the cmake-example-clang recipe (TOOLCHAIN = "clang") and
runs devtool ide-sdk with --ide=none. It verifies:
- lldb_server_<port>_<binary>_multi script is generated
- lldbinit/lldbinit_<port>_<binary> init file is generated
- lldb_<port>_<binary> wrapper script is generated
- No gdbserver_* script is generated for a clang recipe
- The install_and_deploy script exists
- The oe-scripts symlink inside the source tree is valid
- lldb-server can be started on the target via the generated script
- The pid file written by the start script references the live process
- An lldb --batch session using the generated wrapper reaches main and
can evaluate CppExample::test_string at the breakpoint
- lldb-server stops cleanly via the generated stop script
A new helper _lldb_none_debugging_multi is added alongside the
existing _gdb_cross_debugging_multi, following the same structure.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Add test_devtool_ide_sdk_code_cmake_clang to verify the full devtool
ide-sdk workflow for a cmake recipe built with clang. Unlike the gcc
variant the clang recipe uses lldb-server for remote debugging and
CodeLLDB (vadimcn.vscode-lldb) as the VS Code debug adapter.
The test covers:
- devtool modify + devtool ide-sdk with ide=code
- cmake preset compilation and CTest execution (same as the gcc test)
- extensions.json recommends vadimcn.vscode-lldb
- launch.json uses "type": "lldb" (CodeLLDB) instead of "type": "cppdbg"
- End-to-end lldb --batch remote debugging session via lldb-server
platform mode running on qemu
Supporting changes:
- _write_bb_config: accept optional extra_packages parameter so the
clang test can add lldb-server to IMAGE_INSTALL
- _verify_launch_json_lldb: new helper that validates the CodeLLDB
launch.json structure (type, initCommands, program, cwd, preLaunchTask)
- _lldb_server_debugging_once: new helper that reads the preLaunchTask
SSH command from tasks.json, starts lldb-server on the target, and
runs lldb --batch to verify a breakpoint at main is hit
- _verify_service_running: use pgrep with exact regex (^name$) for exact
process name matching; without that, pgrep would also match
cmake-example-clang (truncated to 'cmake-example-c' in
/proc/pid/comm) when checking for cmake-example, returning two PIDs
and failing the isdigit() assertion
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
meta-selftest: refactor cpp examples into .inc files and add clang variants
Refactor cmake-example.bb and meson-example.bb to extract common
build logic into separate .inc files. Add clang variants of both
examples to enable testing with alternative toolchains.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
devtool: ide-sdk: add LLDB support for ide=none (clang toolchain)
Bring ide=none to feature parity with ide=code for clang recipes by
adding LldbServerConfigNone and dispatching on the toolchain in
IdeNone.setup_modified_recipe.
Three files are generated per binary when toolchain == 'clang':
lldb_server_<port>_<binary>_<mode>
Shell script with start/stop logic (same pattern as the existing
gdbserver_* scripts). Passes the lldb-server SSH command produced
by LldbServerConfig._target_start_cmd, which already includes the
/proc/net/tcp readiness poll for MULTI mode.
lldbinit/lldbinit_<port>_<binary>
Init file sourced by lldb via -s. Sets up the remote platform
connection, source maps, debug-file-search-paths and
exec-search-paths, then creates the target with
"target create --remote-file <target_path> <host_debug_binary>".
lldb_<port>_<binary>
Wrapper script: cd <srctree> && lldb -s <lldbinit> "$@"
Supporting changes:
LldbServerConfig (ide_plugins/__init__.py): add server_script_file /
server_script, which were left as NotImplementedError in the base
class. Required for LldbServerConfigNone to write its start scripts
to the correct paths.
RecipeLldbNative (ide_sdk.py): rename _lldb -> lldb (plain attribute),
matching the RecipeGdbCross.gdb convention so that ide_none.py can
access the host lldb binary path without going through a property.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
devtool: ide-sdk add LLDB support for clang toolchain
Add support for LLDB (CodeLLDB) remote debugging in VSCode when using
the clang toolchain. This includes:
- New LldbServerConfig class for configuring lldb-server on the target
- LldbServerConfigVSCode for VSCode-specific LLDB configuration
- RecipeLldbNative to handle lldb-native (architecture-agnostic) on the
host
- CodeLLDB VSCode extension recommendation for clang toolchain
- Launch configuration generator for LLDB debugging
- Proper handling of source maps and debug symbol paths for LLDB
Meson/ninja invoke the compiler with source paths relative to the build
directory B, rather than absolute paths. -fdebug-prefix-map and
-ffile-prefix-map only rewrite paths that literally start with the
mapped host prefix, so this relative DW_AT_name is never rewritten;
only the absolute DW_AT_comp_dir is. When resolving the compile unit
path, debuggers join comp_dir with the relative name, popping one
component per leading "..". In devtool workspaces the source directory
S is relocated far away from the build directory B (outside WORKDIR),
so DW_AT_name typically contains more ".." components than comp_dir
has path components. Once the join reaches "/", extra ".." are no-ops,
so the resolved path becomes "/" plus the leftover suffix of DW_AT_name
- a suffix of the real absolute source directory, not the
"/usr/src/debug/<pn>/<pv>" prefix that DEBUG_PREFIX_MAP and the
generated sourceMap assume.
Compute this "broken" resolved suffix for the recipe's own source
directory and use it instead of the original comp_dir-based mapping.
Keeping both mappings would point two different debug-info paths at
the same host path, which is ambiguous when CodeLLDB needs to reverse
the mapping (translating a locally opened file back into a debug-info
path to resolve a breakpoint): it picks the first-registered
("normal") mapping, which never matches any real compile unit here,
leaving breakpoints stuck pending with 0 locations.
Also set launch.json's relativePathBase to the build directory B, so
CodeLLDB resolves any source path that is still relative (i.e. not
covered by sourceMap/target.source-map) against B - the compiler's
working directory - instead of the default ${workspaceFolder}, which
does not necessarily match B in devtool workspaces.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
devtool: ide-sdk: wait for gdbserver port before returning
In MULTI mode, gdbserver is started as a background process and the SSH
command returned immediately, leaving a race between the caller
connecting to gdbserver and gdbserver finishing its bind()/listen()
sequence.
The race condition was observed with lldb-server not with gdbserver, but
it is likely to affect both. It might be a fix for gdbserver as well,
but at least it is a preparatory step for adding LLDB support, which is
the next planned item.
There are two possible synchronisation points:
- The pid file: written by the shell immediately after fork(), before
gdbserver has called bind() or listen() — not useful as a readiness
signal.
- /proc/net/tcp: the port entry appears after remote_prepare() completes
socket()+bind()+listen(), which is the earliest point at which
gdbserver will accept a connection.
Replace the pid-file idempotency check with a /proc/net/tcp port check
so that:
- the SSH command doubles as a readiness probe (exits only when
gdbserver is actually listening, or after a 10 s timeout with exit 1)
- re-running the start command while the server is already up is still
a no-op
The VSCode task for MULTI mode is changed accordingly: since the SSH
command now exits as soon as the server is ready, VSCode no longer
needs isBackground + a pattern matcher — a plain task with an empty
problemMatcher suffices.
The pid file is still written so that the stop script can kill the
server by PID.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Refactor the devtool ide-sdk support for remote debugging with
gdbserver. The main goal is to cleanly separate the generation of the
host-side debugger configuration (gdbinit, wrapper scripts) from the
IDE-specific launch/task config generation, and to provide a common
interface for supporting multiple debug server back-ends (gdbserver,
lldb-server) in the future.
Also: skip building gdb-cross for clang-toolchain recipes
(toolchain == 'gcc' guard). Clang recipes will use lldb-server instead
of gdbserver in the future. For gcc recipes the behaviour is unchanged.
Also fix a typo in the GDB configuration generator where the property
was named "is_c_ccp" instead of "is_c_cpp".
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
oe-selftest: devtool ide-sdk: add real debug coverage for meson+code
test_devtool_ide_sdk_code_meson never booted qemu-system (missing
@OETestTag("runqemu") and runqemu()), passed a hardcoded, non-existent
target address (root@192.168.17.17), and only checked _gdb_cross()
(gdb-cross --version). It never validated the generated launch.json
nor performed an actual remote debugging session, unlike its cmake
sibling test_devtool_ide_sdk_code_cmake.
Bring it to parity with test_devtool_ide_sdk_code_cmake: boot
qemu-system, use the real qemu.ip as target address, and call
_verify_launch_json() plus _verify_launch_json_debugging() to exercise
a genuine gdbserver-based debug session through the generated
launch.json/tasks.json. This closes the last gap in the 2x2 matrix of
build system (cmake/meson) x ide mode (code/none): all four
combinations now have real breakpoint-debugging coverage.
_verify_launch_json_debugging() matched the 'once' debug configuration
by looking for "usr-bin-{recipe_name}_once" in its name. But the
config name is derived from the binary's install path, so it is
"usr-bin-{example_exe}_once". This happened to work for cmake-example,
where the binary name equals the recipe name, but not for
meson-example, whose recipe name is 'meson-example' while the
installed binary is 'mesonex'. Match on example_exe instead, and drop
the now-unused recipe_name parameter.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
oe-selftest: devtool ide-sdk: cover breakpoints in exe, header and library
_gdb_debug_cpp_example() already set breakpoints in the executable
(cpp-example.cpp, by file:line) and the library (CppExample::print_json()
in cpp-example-lib.cpp, by symbol), plus a 'list' (not a breakpoint) of
the test_string declaration in the shared header cpp-example-lib.hpp.
There was no actual breakpoint set on code that lives in the header
itself, and no file:line breakpoint set inside the library's own .cpp
file.
Add CppExample::scale_number(), a trivial inline function defined
directly in cpp-example-lib.hpp (not in a .cpp file), and call it from
cpp-example.cpp's std::vector traversal loop. Set a breakpoint on it by
file:line (cpp-example-lib.hpp, conditioned on n == 1 since the loop
calls it once per vector element) and verify it is hit with the
expected value.
Also set a second, file:line breakpoint directly inside the library's
own print_json() body (cpp-example-lib.cpp), in addition to the
existing symbol breakpoint on print_json() itself. A symbol breakpoint
only needs the function's entry address and resolves the same whether
the debugger picks up stale or freshly rebuilt debug info for the
library, since it doesn't rely on the library's own line-to-address
mapping being fresh; a file:line breakpoint does, making it the only
breakpoint in this test that actually exercises solib-search-path debug
info resolution for the library.
The second _gdb_cross_debugging_multi() call (after the code
change/recompile/redeploy cycle) originally reused the exact same
file:line breakpoints as the first call. A stale/incorrect
line-to-address mapping left over from the previous build could in
principle still resolve to a plausible address at the same line
number, without that being noticed. To close that gap, parameterize
the exe, header and library file:line breakpoints
(exe_break_line/exe_list_line/hpp_break_line/lib_break_line) through
_gdb_debug_cpp_example(), _gdb_debug_cpp_example_check() and
_gdb_cross_debugging_multi(). Insert LINE_SHIFT (3) extra lines right
before the targeted statements in cpp-example.cpp,
cpp-example-lib.hpp and cpp-example-lib.cpp as part of the existing
code-change step, and use the shifted line numbers for the second
debug session.
Together, this exercises breakpoint resolution for header-only debug
info, the executable's own file:line breakpoint, the library's symbol
breakpoint and the library's own file:line breakpoint as distinct code
paths, and proves all of them are resolved against the freshly rebuilt
debug info after a recompile/redeploy, rather than a stale/cached
mapping from the previous build.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
devtool: deploy-target: fix run strip under pseudo
Any file modification on pseudo-tracked files must happen inside the
pseudo fakeroot environment so the pseudo database stays in sync with
the real filesystem. Stripping was done outside pseudo, which is
conceptually wrong: tools that replace files (temp+rename) change
inodes, and pseudo loses track of the new inodes, causing the
deployment tar to embed incorrect ownership and permissions.
This probably went unnoticed because GNU strip modifies files in place without
changing their inodes. llvm-strip replaces files via a temp file and
rename, making the ownership corruption visible.
The old code was manually prepending path to the parent process's PATH
so strip_cmd could be found, then restoring it. The new code passes the
strip script to exec_fakeroot_no_d, which already sets PATH = path in
the subprocess's environment — so strip_cmd is findable there without
touching the parent's PATH at all.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Harish Sadineni [Wed, 5 Aug 2026 17:46:39 +0000 (10:46 -0700)]
kernel-yocto-rust: Add clang toolchain check for riscv64
Rust support in the upstream kernel on riscv64 currently requires the
LLVM/Clang toolchain and does not work with gcc [1]. Add a sanity check to skip
the recipe if TOOLCHAIN is not set to "clang" when building a riscv64 kernel with
rust support enabled, point the user to the local.conf change needed to fix it.
Peter Marko [Wed, 5 Aug 2026 18:38:45 +0000 (20:38 +0200)]
libarchive: set status for CVE-2026-4424
New version of sbom-cve-check makes more torough version validation
and version strings with distro specific suffix is no longer accepted,
thus leaving some CVEs without version to compare (no-version-ranges).
These are RedHat CVEs listing version-less or distro versions.
Release 3.8.7 notes [1] contain reference to pull [2] from NVD report.
Peter Marko [Wed, 5 Aug 2026 18:38:44 +0000 (20:38 +0200)]
gnutls: set status for CVE-2026-42010 and CVE-2026-42010
New version of sbom-cve-check makes more torough version validation
and version strings with distro specific suffix is no longer accepted,
thus leaving some CVEs without version to compare (no-version-ranges).
These are RedHat CVEs listing version-less or distro versions.
These CVEs are listed in commit upgrading to 3.8.13.
Also Debian CVE reports link commit in this release.
Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Peter Marko [Wed, 5 Aug 2026 17:28:40 +0000 (19:28 +0200)]
ppp: set status for CVE-2020-15704
New version of sbom-cve-check makes more torough version validation
and version strings with distro specific suffix is no longer accepted,
thus leaving some CVEs without version to compare (no-version-ranges).
Peter Marko [Wed, 5 Aug 2026 17:28:39 +0000 (19:28 +0200)]
openssl: set status for CVE-2015-3216
New version of sbom-cve-check makes more torough version validation
and version strings with distro specific suffix is no longer accepted,
thus leaving some CVEs without version to compare (no-version-ranges).
Peter Marko [Wed, 5 Aug 2026 17:28:37 +0000 (19:28 +0200)]
pulseaudio: set status for CVE-2020-15710 and CVE-2020-16123
New version of sbom-cve-check makes more torough version validation
and version strings with distro specific suffix is no longer accepted,
thus leaving some CVEs without version to compare (no-version-ranges).
Peter Marko [Wed, 5 Aug 2026 17:28:36 +0000 (19:28 +0200)]
ovmf: set status of CVE-2017-5731 and CVE-2019-14584
New version of sbom-cve-check makes more torough version validation
and version strings with distro specific suffix is no longer accepted,
thus leaving some CVEs without version to compare (no-version-ranges).
OVMF has a generic problem that version is encoded in different ways.
Both CVE have their fixed version in NVD CVE reports encoded as
YYYY-MM-DD...
CVE-2017-5731 additionally predates tags in vurrent git repository.
Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Peter Marko [Wed, 5 Aug 2026 17:28:35 +0000 (19:28 +0200)]
glibc: set status for CVE-2011-0536 and CVE-2025-0577
New version of sbom-cve-check makes more torough version validation
and version strings with distro specific suffix is no longer accepted,
thus leaving some CVEs without version to compare (no-version-ranges).
* CVE-2011-0536: CVE desciption says it's related to RedHat patches
* CVE-2025-0577: [1] linked CVE report says it's related to RedHat
patches and no upstream release is impacted
Peter Marko [Wed, 5 Aug 2026 17:28:34 +0000 (19:28 +0200)]
gnutls: set status for CVE-2023-0361
New version of sbom-cve-check makes more torough version validation
and version strings with distro specific suffix is no longer accepted,
thus leaving some CVEs without version to compare (no-version-ranges).
EGLIBC_KNOWN_INTERPRETER_NAMES is assigned in glibc-ld.inc, and then
in do_patch() the magic string OECORE_KNOWN_INTERPRETER_NAMES is replaced
with its value.
OECORE_KNOWN_INTERPRETER_NAMES was removed in the glibc 2.37 upgrade[1]
as the relevant code was removed from glibc[2], so this is now obsolete
and can be removed.
[1] oe-core 1bba40755c8 ("glibc: Upgrade to 2.37 release")
[2] glibc 8ee878592c ("Assume only FLAG_ELF_LIBC6 suport")
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Wed, 5 Aug 2026 16:03:20 +0000 (17:03 +0100)]
glibc: remove obsolete KSHELL assignment
KSHELL was set so that tzselect uses /bin/sh instead of /bin/bash.
This variable doesn't exist in glibc and instead we patch the script in
0019-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch, so we can
remove this assignment.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Tue, 4 Aug 2026 16:57:59 +0000 (17:57 +0100)]
rust: clean up dependencies
The rust recipe inherits cargo_common which now depends on rust-native
and cargo-native, so we can just remove those dependencies in the native
case instead of having to handle target/nativesdk.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Tue, 4 Aug 2026 16:57:58 +0000 (17:57 +0100)]
classes/cargo: consolidate dependencies
Move the dependencies from cargo to cargo_common: if cargo is being used
in any way then you need to depend on cargo-native.
Inherit rust instead of rust-common or rust-target-config: rust inherits
rust-common that inherits rust-target-config, and rust.bbclass simply
adds the dependency on rust-native. This means we can drop the explicit
rust dependencies to avoid duplication.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Tue, 4 Aug 2026 16:57:57 +0000 (17:57 +0100)]
classes/cargo: move general assignments to cargo_common.bbclass
The cargo integration is split into two classes so that recipes can
inherit cargo_common if they can't use cargo directly to build, for
example when using meson+cargo or building rust itself.
However, a number of variables where in cargo.bbclass when they should
really be in cargo_common.bbclass: move the assignments so that the
cargo.bbclass simply inherits cargo_common, sets B, and implements the
compile/install tasks.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Tue, 4 Aug 2026 16:57:56 +0000 (17:57 +0100)]
classes/rust: remove unused variables
RUSTC_ARCHFLAGS is never passed anywhere, remove it.
RUSTC_BUILD_LDFLAGS is commented out, remove it.
HOST_CFLAGS et al are assigned to the CFLAGS for convenience, but are
not used anywhere and the same values are exported in cargo_common's
oe_cargo_fix_env().
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Tue, 4 Aug 2026 16:57:55 +0000 (17:57 +0100)]
classes/cargo_common: move PKG_CONFIG_ALLOW_CROSS export to oe_cargo_fix_env
This export is used to tell the pkg-config-rs crate how to behave, so is
only needed at build time. Move the export to oe_cargo_fix_env() along
with the other variables so that the exports are localised and not
global.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Tue, 4 Aug 2026 15:44:51 +0000 (16:44 +0100)]
libjpeg-turbo: use system zlib instead of bundled copy
The libjpegturbo library bundles a copy of libspng which in turn bundles
a copy of zlib. We don't currently have a libspng recipe but we can
stop it bundling zlib.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Daniel Turull [Tue, 4 Aug 2026 06:02:03 +0000 (08:02 +0200)]
devtool: upgrade: ignore changelogs from 3rd party
Some upstream projects bundle vendored dependencies in their source
tree (e.g. nghttp2 ships third-party/mruby, which has its own
NEWS.md). The changelog extractor could mistake one of these
vendored changelogs for the recipe's own, misattributing unrelated
upstream changes to the package being upgraded.
Exclude paths under common vendoring directory names (third-party,
vendor, external, deps, etc.) from changelog candidates.
AI-Generated: Kiro with Claude Sonnet 5 Signed-off-by: Daniel Turull <daniel.turull@ericsson.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/selftest/clang: Add oe-selftests for Clang/LLVM/LLD test suites
Add three selftest classes (LLVMSelfTestSystemEmulated,
ClangSelfTestSystemEmulated, LLDSelfTestSystemEmulated) that run
the upstream LLVM, Clang, and LLD regression test suites on target
using llvm-lit inside QEMU.
Each test:
- Automatically sets CLANG_ENABLE_TESTSUITE = "1" to enable
testsuite CMake flags and target tool installation
- Builds core-image-minimal with Python3 and LLVM dependencies
- Boots QEMU with 8GB RAM / 4 CPUs (3GB for 32-bit ARM)
- NFS-mounts the host TMPDIR into the guest to access build
artifacts (lit configs, test inputs, and target tools)
- Runs llvm-lit with filters to exclude tests for non-target
architectures and unsupported OS platforms
- Excludes known-failing tests specific to each component
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
clang: Enable cmake flags for llvm, clang, lld tests
Enable the necessary CMake flags to build and run tests
for LLVM, Clang and LLD. Install the LLVM target tools
needed to run tests via llvm-lit inside QEMU only when
CLANG_ENABLE_TESTSUITE = "1".
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
clang-tools-extra tests depend on the llvm-bcanalyzer CMake target, which
exists in LLVM's CMake project but is not visible when Clang is built
separately. To run clang tests, disable clang-tools-extra tests for now.
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Mon, 3 Aug 2026 09:47:17 +0000 (10:47 +0100)]
classes/setuptools_build_meta: clean the build directory in configure
It's not currently possible to set the build tree to be somewhere we
control, but we know it will always be in the build directory alongside
the setup.py so we can [cleandirs] that.
Essentially the same as the previous patch for the setuptools class[1],
but when using the pep517 class.
[1] oe-core f3854f4f608 ("setuptools3: clean the build directory in configure")
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Xiuzhuo Shang [Mon, 3 Aug 2026 03:05:07 +0000 (11:05 +0800)]
bluez5: restrict delta=0 RSSI to proximity filters
When a discovery filter is active (filtered_discovery=true), BlueZ
unconditionally calls device_set_rssi_with_delta(..., delta=0),
causing every BLE advertisement to emit a PropertiesChanged(RSSI)
signal regardless of whether the RSSI value changed.
delta=0 is only needed when a client has expressed explicit proximity
interest by setting an RSSI or pathloss threshold in its discovery
filter. Filters that specify only transport type or UUIDs do not
require per-packet RSSI precision; for those, the standard
RSSI_THRESHOLD=8 rate-limiting is both correct and desirable.
Signed-off-by: Xiuzhuo Shang <xiuzhuo.shang@oss.qualcomm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
cvelistV5 has correct version identification, so CNA (SUSE) has it
correct, too.
NVD however shows non-existing version 21.2.24 (probably from CVE
description), so it's showing up in reports as unfixed.
Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The generated meson.cross references the toolchain c/c++ binaries by
bare name (e.g. "aarch64-poky-linux-clang++"), relying on PATH being
set up by the meson wrapper script at build time. Meson stores that
command exactly as configured in compile_commands.json and
meson-info/intro-compilers.json without resolving it to an absolute
path. cpptools (via the mesonbuild extension) resolves compilerPath
using its own process PATH, which does not include the toolchain
directory, and silently falls back to a host compiler, breaking
IntelliSense.
Real builds are unaffected since the wrapper script sets up PATH at
build time, so leave the recipe's meson.cross untouched. Instead,
layer an extra --cross-file on top that only absolutizes the c/cpp
[binaries] entries, reusing the exact same flags as CC/CXX to avoid
any behavior drift. Meson merges multiple machine files, with later
files overriding matching keys from earlier ones.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
devtool: ide-sdk: fix $@ overwritten by set in install_and_deploy script
The generated install_and_deploy shell script uses 'set $BUILDDIR $BITBAKEDIR'
to pass arguments to oe-init-build-env. This overwrites $@, so the original
command-line arguments (e.g. -t user@host -P 2222) are lost before the
embedded deploy script can read them.
Save the original arguments in $_args before the 'set' call and pass
$_args to the deploy script instead of $@.
Extend the argument-parsing loop in the embedded Python deploy script to
handle -P/--port in addition to -t/--target, so that non-default SSH
ports are forwarded to devtool deploy-target.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
devtool: ide-sdk: fix duplicate -p flag in _target_ssh_args
ssh_port is stored as ['-p', '<port>'] (already includes the flag).
_target_ssh_args was wrapping it in another list with a leading "-p",
producing invalid ssh args like ["-p", ["-p", "2222"]].
Extend ssh_args directly with ssh_port instead of nesting it.
Also pass --port to the install-and-deploy task in the generated VS Code
configuration so the task reaches the target on non-default SSH ports.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 4 Aug 2026 20:18:21 +0000 (21:18 +0100)]
libunwind: Disable cxx exceptions for riscv64
With the newer libtool, libunwind fails to build on riscv64 with an error
about the WCClinker option. Disable those exceptions until a better fix
is identified.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Markus Volk [Mon, 3 Aug 2026 13:49:15 +0000 (15:49 +0200)]
libva: update 2.23.0 -> 2.24.1
version 2.24.1
va: include <unistd.h> for getuid/getgid in secure_getenv fallback
version 2.24.0
va: Add VA_PICTURE_H264_NON_EXISTING flag
va: use secure_getenv instead of getenv in va_x11.c
doc: fix libva av1 link for doxygen
trace: dump input/output data in va_TraceProtectedSessionExecute
trace: Add ProtectedSession Related Log in Trace
Signed-off-by: Markus Volk <f_l_k@t-online.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tim Orling [Mon, 3 Aug 2026 23:26:41 +0000 (16:26 -0700)]
Revert "python3-websockets: enable ptest"
The tests/ are no longer packaged in the sdist and this is intentional:
https://github.com/python-websockets/websockets/issues/1739#issuecomment-5016084799
"You mustn’t rely on the git repository as input. Specifically, you
mustn’t attempt to run the main test suite. It isn’t treated as a
deliverable of the project. It doesn’t do what you think it does. It’s
designed for the needs of developers, not packagers.
On a typical build farm for a distribution, tests that exercise timeouts
will fail randomly. Indeed, the test suite is optimized for running very
fast, with a tolerable level of flakiness, on a high-end laptop without
noisy neighbors. This isn’t your context."
* Restored compatibility of serve_forever() in the asyncio implementation
with third-party event loops such as uvloop.
* Prevented the Trio implementation from crashing when backpressure kicks
in, i.e. when receiving data faster than the application can process it.
* websockets 17.0 requires Python ≥ 3.11.
- websockets 16.1 is the last version supporting Python 3.10.
* Aliases for modules moved or deprecated in 9.0 are removed.
- See the changelog of version 9.0 for details.
* process_request may receive requests using an HTTP method other than
GET or using the HTTP/1.0 protocol.
- Previously, the server closed the connection without returning an HTTP
response. Now, process_request runs and can return an HTTP response.
* Several boolean arguments are now keyword-only.
- If you were passing some of the following as positional arguments, you
must update your code to pass them as keyword arguments.
* send(text=...)
* ping(ack_on_close=...)
* broadcast(raise_exceptions=...)
* Encoding and decoding non-ASCII headers in handshake requests and
responses changed.
- The previous behavior was undocumented, inconsistent, and didn’t match
the HTTP specification. If you relied on the encoding being UTF-8 or
ASCII with surrogate escapes, depending on the context, you must
switch to ISO-8859-1.
* In the threading implementation, the socket argument is renamed to sock.
- The first argument of ClientConnection and ServerConnection is renamed
from socket to sock for consistency with connect() and serve(). The
first argument of Server is also renamed. If you’re passing it as a
keyword argument, you must change your code.
New features
------------
* websockets 17.0 introduces a trio implementation.
- It is an alternative to the asyncio implementation.
- See websockets.trio.client.connect()
and websockets.trio.server.serve() for details.
* Validated compatibility with Python 3.15.
* Added broadcast() to the threading implementation.
* Made the set of active connections available in the Server.connections
property in the threading implementation.
* Closed connections when shutting down the server in the threading
implementation. See shutdown() for details.
* Added the --insecure option to the websockets CLI to disable TLS
certificate validation.
Improvements
------------
* Supported non-ASCII headers consistently in handshake requests and
responses, using ISO-8859-1 encoding.
* Replied with HTTP 405 Method Not Allowed when the handshake request
doesn’t use the GET method, and with HTTP 505 HTTP Version Not
Supported when it doesn’t use HTTP/1.1, instead of closing the
connection.
* Replied with HTTP 414 URI Too Long or 431 Request Header Fields Too
Large when the handshake request exceeds a security limit, instead of
closing the connection.
* Reduced noise in server logs when clients fail to establish a
connection.
* Clarified logs when process_request sends a plain HTTP response, without
attempting to open a WebSocket connection.
* Added the reconnect_delays argument for customizing the delays between
reconnection attempts in connect(), beyond existing WEBSOCKETS_BACKOFF_*
environment variables.
* Added wheels for Windows ARM64 and Linux i686.
Bug fixes
---------
* Restored compatibility of the websockets CLI with Windows.
* Fixed serve_forever() in the asyncio implementation so that canceling
it always closes connections gracefully.
* Fixed a bug that could delay or block the client in the threading
implementation on macOS when the opening handshake fails.
Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tim Orling [Mon, 3 Aug 2026 23:26:39 +0000 (16:26 -0700)]
python3-uv-build: upgrade 0.11.32 -> 0.12.1
No changes to uv-build in git, just tags.
The uv_build package is built from the uv/crates/uv-build
directory.
git log --oneline 0.11.32..0.12.1 crates/uv-build
329541a50 (tag: 0.12.1) Bump version to 0.12.1 (#20867) 43a128899 Bump version to 0.12.0 (#20775) fece32fc5 (tag: 0.11.33) Bump version to 0.11.33 (#20764)
Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
50.0.0 - 2026-07-31
SECURITY ISSUE: pkcs7_decrypt_der() and its PEM and S/MIME variants no
longer expose distinguishable errors or timing when unwrapping a
RecipientInfo’s encryptedKey, which could act as a Bleichenbacher oracle
for callers that decrypt untrusted messages. A random key is now
substituted on failure, as described in RFC 3218. Credit to X1AOxiang
for reporting the issue
Deprecated Diffie-Hellman key exchange over finite fields (FFDH).
Everything FFDH is deprecated, including the types in
cryptography.hazmat.primitives.asymmetric.dh and loading FFDH keys or
parameters with the key loading APIs. Users should migrate to a more
modern key exchange algorithm.
Added xof() class methods to SHAKE128 and SHAKE256 for constructing
algorithm instances configured for use with XOFHash.
The X.509 verification APIs are now considered stable and are subject to
our API stability policy.
Added the Cobblestone (streaming symmetric encryption) recipe, an
implementation of the Cobblestone-128 and Cobblestone-256 instantiations
of the C2SP chunked-encryption specification for streaming authenticated
encryption of large messages.
Parsing a Signed Certificate Timestamp list now rejects encodings that
carry trailing bytes after the list or after an individual SCT, instead
of silently ignoring them.
Added support for using Name as a field type in the ASN.1 module.
Loading a public key or an EC private key now rejects DER where the
subjectPublicKey (or EC publicKey) BIT STRING declares a non-zero number
of unused bits, instead of silently ignoring it.
Parsing a CRL entry’s InvalidityDate extension now rejects a
GeneralizedTime that carries fractional seconds or another non-DER form,
matching the strict encoding already required for every other X.509 time
field.
load_der_ocsp_request() and load_der_ocsp_response() now reject a request
or response whose version field is not v1, the only version defined by
RFC 6960, matching the version validation already performed when loading
certificates, CSRs and CRLs.
XOFHash is now supported when building against AWS-LC.
HMAC (and therefore PBKDF2-HMAC) with SHA-3 hashes is now supported when
building against AWS-LC.
Diffie-Hellman (Diffie-Hellman key exchange) is now supported when
building against AWS-LC.
load_der_public_key() and load_pem_public_key() now reject Diffie-Hellman
public keys whose modulus is smaller than 512 bits, matching the minimum
already enforced when loading DH private keys and when constructing
DHParameterNumbers.
Added MLDSAMuHasher for incrementally computing the ML-DSA mu (message
representative) used by the external-mu signing and verification APIs.
The builtin HashAlgorithm classes and the classes in padding can now be
compared with ==.
CertificateBuilder now supports creating unsigned certificates (RFC 9925)
with the create_unsigned method.
The X.509 verification APIs now permit ML-DSA-44, ML-DSA-65, and ML-DSA-87
(RFC 9881) public keys and signatures by default.
Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Mon, 3 Aug 2026 11:28:41 +0000 (12:28 +0100)]
ruby: upgrade 4.0.5 -> 4.0.6
Bug fixes only, upstream release notes:
- Thread.each_caller_location(1, 1) segfaults when called from a cfunc
- heap-use-after-free in rb_vm_ci_lookup under parallel Ractors
- defined? returns nil for protected methods defined in a module even when callable
- [BUG] should have cvar cache entry
- YJIT misaligns locals when there are > 256 local variables
- GC compaction breaks compare-by-identity sets
- invokesuper from define_method in Ractor can call wrong super method or crash
- Array#sum takes slow path, does not perform compensated summation of Float elements when init argument is a Float
- Float#round(n) returns a wrong result when n is big
- Float#ceil gives incorrect result
- Freeing a mutex locked by a fiber inside fiber scheduler can crash
- Crash when modifying instance variables during inspect or Marshal dump
- ASAN heap-use-after-free in rb_data_free after TypedData dfree frees dynamic rb_data_type_t
- Constant-folded /o regexp crashes with dupstring of a Regexp
- $! stays as the first exception in Ruby Box
- Split the root box into the (newer) root box and the master of copied user boxes
- Segfault caused by ar_find_entry_hint() not checking for conversion to st_table
- error_highlight raises NotImplementedError for ArgumentErrors that get wrapped
- Inconsistencies in type coercion error messages for integers
- IO::Buffer#locked leaves the buffer locked when the block raises
- parse.y regexp crash on invalid encoding
- Stack underflow for partial DCE and loops
- void value missed in parse.y
- Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb
- Unnecessary context-switching, especially bad on multi-core machines.
- Keyword-only method silently accepts a positional argument
- parse.y interpolation inside lambda literal
- SEGV in branch peephole optimization due to label/insn struct aliasing
- Ruby's default SIGINT handling ignores Thread.handle_interrupt masking.
- Enumerator::Lazy#to_enum does not accept method names as strings
- Signal.trap(:EXIT) exception only shown if at_exit also raises
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Mon, 3 Aug 2026 11:28:40 +0000 (12:28 +0100)]
mesa-demos: upgrade to latest revision
- meson: Do not pass multiple dependencies in one dependency call
- eglinfo: support EXT_device_query_name and EXT_device_persistent_id
- eglinfo: move brief mode check into PrintDeviceExtensions()
- util: add a utility function for UUID printing
- eglinfo: fix doExtExplicitDevice() control flow
- eglinfo: fix querying of platforms with explicit devices
- eglinfo: add ability to show only device platforms
- eglinfo: allow platform selection for explicit devices
- vulkan: modernize vk_layer_settings.txt
- vkgears: check for errors while waiting for fences
- vkgears: specify one-time-submit
- vkgears: destroy dsl after updating ds
- vkgears: barrier to transfer-write
- eglut/wsi/wayland: remove a debug fprintf()
- vulkan/wsi/wayland: mirror the libdecor changes in eglut/wayland
- eglut/wayland: Don't leak libdecor frame
- eglut/wayland: Move libdecor context to display struct
- eglut/wayland: Don't finish display when dispatching
- eglut/wsi/wayland: Dispatch wl_display via libdecor
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
v2.1.1
======
* Minimize internal Python API usage for interpreter and thread state
sampling where possible. Avoids breaking ABI change in
Python >= 3.15.0b4. (#269)
Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Leon Anavi [Mon, 3 Aug 2026 10:52:35 +0000 (13:52 +0300)]
python3-numpy: Upgrade 2.5.0 -> 2.5.1
Upgrade to release 2.5.1:
- The minimum supported GCC version has been updated from 9.3.0 to
10.3.0
- Bug fixes
Drop 0001-python-sysroot.patch because the vendored fork of Meson
in numpy has been upgraded to include patches from 1.12.0rc2,
including the specific sysroot fix available since since 1.10.0.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- Collect a config error instead of raising a raw `TypeError` when
`project.dynamic` contains a non-string (unhashable) entry with
`all_errors=True`.
Features:
- Support [PEP 808](https://peps.python.org/pep-0808/) (partially dynamic
project metadata) (METADATA 2.6).
- Add support for Python 3.15.
- Warn ([PEP 685](https://peps.python.org/pep-0685/)) when an extra name in
`project.optional-dependencies` is not a valid name. The extra is still
emitted, only a `ConfigurationWarning` is produced.
Fixes:
- Error on an unset dynamic version instead of silently writing
`Version: 0.0.0`. If `"version"` is declared in `project.dynamic` but never
assigned by the build backend, writing the metadata now raises a
`ConfigurationError` (`Field "project.version" missing`), restoring the 0.8.x
behavior that regressed in the 0.9 rewrite.
- Don't crash on a non-table `[project]` when `all_errors=True`.
- Tighten `license-files` glob checks and private-tag parsing.
- Handle braces in user data within error messages.
- Correct the `Import-Namespace` field name in the metadata mapping.
- Fix UTF-8 author and maintainer names.
Performance:
- Cache `get_type_hints` and precompile dispatch patterns.
Documentation:
- Fix a stale dynamic docstring and a broken module example.
- Add a documentation project URL.
Internal and CI:
- Refactoring: consistent dataclass decorators, sorted constant entries, and
removal of duplicate imports and dead code.
- Cover defensive branches in dispatch helpers and validators.
- Secure GitHub Actions workflows and bump pinned/downstream dependencies.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 4 Aug 2026 06:15:42 +0000 (06:15 +0000)]
libadwaita: upgrade 1.9.2 -> 1.9.3
=============
Version 1.9.3
=============
- AdwAboutDialog
- Fix a bug with deselecting text in the legal section
- AdwSidebar
- Fix item suffixes ending up after the arrow in page mode
- AdwTabOverview
- Make sure we don't round corners in adaptive preview
- AdwWindow/AdwApplicationWindow
- Fix false minimum size warnings in adaptive preview
- Translation updates
- Norwegian Bokmål
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 4 Aug 2026 11:54:02 +0000 (12:54 +0100)]
xmodmap: Upgrade 1.0.11 -> 1.0.12
Changes:
- xmodmap 1.0.12
- meson: include headers when checking for functions
- meson: Add option to build with meson
- handle.c: handle -Wuse-after-free warning from gcc 15
- gitlab CI: drop the ci-fairy check-mr job
- parse_keysym: handle possible NULL return from copy_to_scratch()
- Strip trailing whitespace from source files
- xmodmap.1: Some editorial changes for this man page [Debian bug #1094313]
- Improve man page text & formatting
- Accept --help & --version as aliases to -help & -version
- Use _strnicmp() instead of strncasecmp() on Windows
- Assume target platforms have strncasecmp now
- Remove "All rights reserved" from Oracle copyright notices
- gitlab CI: stop requiring Signed-off-by in commits
License-Update: Copyright line removal of "all rights reserved"
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 4 Aug 2026 11:22:19 +0000 (12:22 +0100)]
xwininfo: Upgrade 1.1.6 -> 1.1.7
Changes:
- xwininfo 1.1.7
- meson: include headers when checking for functions
- meson: Add option to build with meson
- configure: remove local copy of config.rpath
- gitlab CI: drop the ci-fairy check-mr job
- Use stdbool.h
- Fix memory leak in Select_Window
- Fix memory leak in Display_Window_Id
- man page: fix warnings from `mandoc -T lint` and `groff -rCHECKSTYLE=10`
- Improve man page formatting
- Accept --help & --version as aliases to -help & -version
- -help should exit(0) not (1)
- Update xwininfo.man for #2
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 4 Aug 2026 10:35:59 +0000 (11:35 +0100)]
xvinfo: Upgrade 1.1.5 -> 1.1.6
Changes:
- meson: Add option to build with meson
- gitlab CI: drop the ci-fairy check-mr job
- man page: fix warnings from `mandoc -T lint` and `groff -rCHECKSTYLE=10`
- Accept --help & --version as aliases to -help & -version
- Add -help option
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Wang Mingyu [Tue, 4 Aug 2026 04:05:07 +0000 (12:05 +0800)]
taglib: upgrade 2.3 -> 2.3.1
Changelog:
==========
* Matroska: Fix crash when seek head is invalid or missing.
* Matroska: Check element length, support unknown size length, skip invalid
elements.
* Matroska: Allow Chapters without a ChapterUID.
* Fix data length indicator check for compressed ID3v2 frames.
* MP4: Use 'LongLong' instead of 'UInt' for 'cnID' atom to support large
catalog IDs.
* MP4: Fix destructor and assignment operator for 'MP4::Chapter'.
* MP4: Let 'hasiXMLData()', 'hasBEXTData()' track on-disk state rather than
in-memory state.
* MP4: Support NI STEM atoms with 64-bit length.
* MP4: Enlarge limit number of MP4 atoms at top level.
* MP4: Avoid excessive sample allocations with invalid 'stsc' for QT chapters.
* XM: Correctly save XM tracker files with samples.
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adam Blank [Sat, 18 Jul 2026 13:25:12 +0000 (15:25 +0200)]
bitbake.conf: remove 'extend_recipe_sysroot' from BB_HASHEXCLUDE_COMMON
'extend_recipe_sysroot' can and should be handled just like any other
function. Fine grained use of 'vardepsexclude' is capable of achieving
the same effect as ingoring 'extend_recipe_sysroot' on the base hash
level, but with a better visibility, and is a more uniform approach.
Signed-off-by: Adam Blank <adam.blank.g@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adam Blank [Sat, 18 Jul 2026 13:25:07 +0000 (15:25 +0200)]
staging: add 'extend_recipe_sysroot' to 'vardepsexclude'
'do_prepare_recipe_sysroot' did not declare this explicitly,
but made use of the fact, that 'extend_recipe_sysroot' is
ignored on the base hash level.
Also for cached tasks, when prepending them with
'extend_recipe_sysroot', exclude it from their signatures.
Signed-off-by: Adam Blank <adam.blank.g@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Tue, 4 Aug 2026 11:41:34 +0000 (12:41 +0100)]
u-boot: always use GCC to build
Previously, u-boot was almost always built with GCC because the
kernel-arch inherit set TOOLCHAIN to KERNEL_TOOLCHAIN, which defaulted
to 'gcc'.
However, since kernel-arch inherit was removed, u-boot in theory now
respects the default toolchain. In practise, the recipe hard-codes CC
to be gcc, and there are known caveats building u-boot with clang[2].
In the long term we should be able to make this recipe respect TOOLCHAIN,
as the upstream u-boot CI does build and test with clang, but for now
fix the build by restoring the explicit use of gcc.
[1] oe-core 8fb5470841b ("u-boot: Separate out from kernel-arch.bbclass")
[2] https://docs.u-boot-project.org/en/latest/build/clang.html
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
useradd.bbclass: drop groupmems from sysroot setup
groupmems was removed from shadow 4.20.0 [1]. The useradd class never
actually called the binary - perform_groupmems already uses usermod.
Drop it from the sysroot loop to silence the warnings.
Notable upstream changes:
- expiry(1): removed (deprecated in 4.19)
- groupmems(8): removed, use usermod(8) instead (deprecated in 4.19)
- logoutd(8): removed (deprecated in 4.19)
- PAM configs for setuid account tools removed (08f27babeb2c)
- login.defs(5): ENCRYPT_METHOD now defaults to SHA512
- Removed unused dependency on libattr
- New --disable-syslog configure option
Patches removed:
- prototypes.patch: patched src/expiry.c and src/logoutd.c which were
removed upstream in commits 2bb1b984 and eec97ce4.
- disable_syslog.patch: shadow now supports --disable-syslog configure
option natively. Added to EXTRA_OECONF for class-native instead.
- shadow-update-pam-conf.patch: the files it patched (chgpasswd,
groupadd, groupdel, groupmod, useradd, userdel, usermod) were removed
upstream in commit 08f27babeb2c. The remaining pam.d files in the
tarball are all overridden by the recipe's own PAM files.
Patches added:
- 0001-subid-Add-stdint.h-for-uintmax_t.patch: backport of upstream
commit ba4419c57b22 fixing missing <stdint.h> include causing build
failure in find_new_sub_uids.c and find_new_sub_gids.c.
Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sun, 2 Aug 2026 07:36:57 +0000 (08:36 +0100)]
lib/oe/lsb: Merge distro_identifier functions
In order to access LSB_DISTRO_ADJUST fuctions, a portion of the lsb
distro_indetifier code was left in base.bbclass. There is a way to handle
this so merge the code into one function and use it from all call
sites.
This makes the code slightly less of a maze.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sat, 1 Aug 2026 18:00:30 +0000 (19:00 +0100)]
kernel-devicetree: Add missing function prefixes
There is an implicit ordering problem with this class and kernel.bbclass,
since kernel.bbclass uses EXPORT_FUNCTIONS on these function and if the
inherit ordering is wrong, the functions get broken.
The class is always included and always wants to append them. Therefore
target the real functions we want to change.
This makes the inherit order less fragile.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sat, 1 Aug 2026 12:51:16 +0000 (13:51 +0100)]
kernel-arch: Move ARCH usage into target classes
Since ARCH is just a function now we can move it into the target class usages
and drop it from the default environment. We still have to export in some
cases where the usage is unknown but this does significatly reduce the
scope and number of places exported to.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>