Ricardo Ungerer [Tue, 17 Mar 2026 22:03:50 +0000 (22:03 +0000)]
documentation.conf: Add LICENSE_FLAGS related variables
The LICENSE_FLAGS, LICENSE_FLAGS_ACCEPTED, and LICENSE_FLAGS_DETAILS
documented in [1] are not listed in documentation.conf. This commit adds
them to the documentation.conf file.
Highlights in v2026.03.0:
- Security fix: signed FIT image vulnerability fixed; users doing
secure boot with signed FIT images should update to this release
- Added Rockchip RK3562 SoC support along with KickPi K3 board
- USB Fastboot now supports booting Linux kernels generically across
architectures (previously limited to ARM32 zImage)
- CI infrastructure gained PowerPC Qemu test coverage
- ARM NXP i.MX8MP: Fixed SoC UID incorrectly reading 64bit instead of
128bit; enable CONFIG_ARCH_IMX8MP_KEEP_COMPATIBLE_SOC_UID if rolled
out devices depend on constant SoC UID
For full release notes, see:
https://lore.kernel.org/barebox/abQ56zuKfzKlZvcr@pengutronix.de/T/#u
Dropped a local patch 0001-barebox-tools-fix-glibc-2.43-openat2-build.patch
as it has been merged now with this release.
Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/qemurunner: make the error message about invalid rootfs clearer
Printing "Invalid rootfs" when the rootfs image simply doesn't exist can
be misleading to the user. Print a clearer message to help users understand
the issue.
Signed-off-by: Corentin Guillevic <corentin.guillevic@smile.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sunil Dora [Tue, 17 Mar 2026 11:15:37 +0000 (04:15 -0700)]
gdb: Upgrade 16.3 -> 17.1
GDB 17.1 includes the following changes and enhancements:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb/NEWS;hb=gdb-17.1-release
* x86-64 CET shadow stack support
* Debugging Linux programs that use AArch64 Guarded Control Stacks
* GDB record feature now supports rv64gc architectures
* 'info threads' command support for two new options '-stopped' and '-running'
to limit the list of displayed threads.
* On Linux and FreeBSD, the addresses shown by the 'info sharedlibrary' command
are now for the full memory range allocated to the shared library.
* Linux checkpoints now work with multiple inferiors
* Improved linker namespace support
* Warnings and error messages now start with an emoji (warning sign,
or cross mark) if supported by the host charset. Configurable.
* Built-in support for TLS on Linux as backup when libthread_db is not
available. Supported on the x86_64, aarch64, ppc64, s390x, and riscv
architectures, when compiled with GLIBC or MUSL.
* New command "set riscv numeric-register-names" to display risc-v
registers using their numeric names instead of their ABI names.
* The Alpha target now supports target descriptions.
* Python API enhancements
* Support for Python versions older than 3.4 has been removed.
Jose Quaresma [Tue, 17 Mar 2026 16:22:12 +0000 (16:22 +0000)]
sanity: condition hash equivalence warnings to when it is in use.
The warnings about the hash equivalence server are only valid when the signature is
being used, and for that we have to check the BB_SIGNATURE_HANDLER variable.
This fix the warning that is displayed when using the basic signature hash, OEBasicHash.
| WARNING:
| You are using a local hash equivalence server but have configured an sstate mirror.
| This will likely mean no sstate will match from the mirror.
| You may wish to disable the hash equivalence use (BB_HASHSERVE),
| or use a hash equivalence server alongside the sstate mirror.
Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Harish Sadineni [Tue, 17 Mar 2026 18:07:53 +0000 (11:07 -0700)]
kernel-yocto-rust: Move rust kernel dependencies to bbclass
Move the rust kernel dpendencies from linux-yocto.inc to
kernel-yocto-rust.bbclass.
This centralizes Rust-specific configuration in the dedicated class,
which is intended to be inherited only when Rust kernel support is
enabled (e.g. via KERNEL_FEATURES).
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a backported patch from master to use underscore instead of
space in a generated filename. This fixes the build error:
| /usr/bin/ld: cannot find examples/application8/exampleapp8.p/meson-generated_.._exampleapp8: No such file or directory
| /usr/bin/ld: cannot find resources.c.o: No such file or directory
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Dan McGregor [Mon, 16 Mar 2026 22:31:47 +0000 (16:31 -0600)]
systemd: break circular dependency with libfido2
libfido2 depends on udev, and when the fido2 feature is enabled
in systemd, systemd depends on libfido2. However, systemd really
only needs libfido2's headers at build time. It uses dlopen to
opportunistically enable the features at runtime. Break this
circular dependency by creating a recipe that provides libfido2's
headers and pkgconfig file. That allows systemd to build with
fido2 enabled and allows libfido2 do build as well.
Signed-off-by: Dan McGregor <danmcgr@protonmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Stefano Tondo [Thu, 12 Mar 2026 15:38:44 +0000 (16:38 +0100)]
cve_check: Escape special characters in CPE 2.3 strings
CPE 2.3 formatted string binding (cpe:2.3:...) requires
backslash escaping for special meta-characters per NISTIR 7695.
Characters like '++' and ':' in product names must be escaped.
The CPE 2.3 specification defines two bindings:
- URI binding (cpe:/...) uses percent-encoding
- Formatted string (cpe:2.3:...) uses backslash escaping
Escape the required meta-characters with backslash:
- Backslash (\\) -> \\
- Question mark (?) -> \?
- Asterisk (*) -> \*
- Colon (:) -> \:
- Plus (+) -> \+
All other characters are kept as-is without encoding.
Example CPE identifiers:
- cpe:2.3:*:*:crow:1.0\+x:*:*:*:*:*:*:*
- cpe:2.3:*:*:sdbus-c\+\+:2.2.1:*:*:*:*:*:*:*
Liu Yiding [Wed, 11 Mar 2026 02:40:42 +0000 (10:40 +0800)]
orc: Enable hotdoc to produce doc
Add do_install:append function to fix QA Issue like "File /usr/share/doc/orc/html/assets/js/search/hotdoc_fragments/orctarget.html-enum (unnamed at /work/x86-64-v3-poky-linux/orc/0.4.42/sources/orc-0.4.42/orc/orctarget.h:39:1).fragment in package orc-doc contains reference to TMPDIR [buildpaths]"
Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Stefano Babic [Sun, 15 Mar 2026 12:44:01 +0000 (13:44 +0100)]
udev-extraconf: detect init manager from pid
Detecting the init manager from /sbin/init does not always work and it
fails when etc-overlayfs is used, because first the
pre-init script is called and init is renamed as init.orig.. Read the
process name with pid = 1 from /proc, and use it to detect the init manager.
The HAVE_SYSV_RC_LOCAL makes /etc/rc.local work as the rc-local.service
is still installed. And the HAVE_SYSV_COMPAT means /etc/rcX.d is still
supported.
Trevor Gamblin [Mon, 16 Mar 2026 20:58:03 +0000 (16:58 -0400)]
grub: add patch to use medany for riscv64
>From the upstream bug report, filed in 2024:
|GRUB 2.12 does not compile correctly using large model on riscv64 using gcc 14.1.1 (gcc-14.1.1-5.fc40.x86_64).
|
|It is my understanding that the large model should not really be used on riscv64 yet and trying to build GRUB 2.12 with it results in an error:
|
|+ ././grub-mkimage -O riscv64-efi -o grubriscv64.efi.orig -d grub-core --sbat ././sbat.csv -m memdisk.squashfs -p /EFI/fedora all_video boot blscfg btrfs cat configfile cryptodisk echo ext2 f2fs fat font gcry_rijndael gcry_rsa gcry_serpent gcry_sha256 gcry_twofish gcry_whirlpool gfxmenu gfxterm gzio halt hfsplus http increment iso9660 jpeg loadenv loopback linux lvm luks luks2 memdisk mdraid09 mdraid1x minicmd net normal part_apple part_msdos part_gpt password_pbkdf2 pgp png reboot regexp search search_fs_uuid search_fs_file search_label serial sleep squash4 syslinuxcfg test tftp version video xfs zstd efi_netfs efifwsetup efinet lsefi lsefimmap connectefi
|././grub-mkimage: error: relocation 0x2b is not implemented yet.
|
|medany builds successfully and boots on the VisionFive2 and on VMs.
Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Trevor Woerner [Mon, 16 Mar 2026 14:17:50 +0000 (10:17 -0400)]
wic: filemap: use separate fd for SEEK_HOLE probes
While working on splitting-out wic from oe-core, on my openSUSE Leap
16.0 machine, the moment I split wic out, 2 oe-selftests always failed
with 100% reproducibility:
- wic.ModifyTests.test_wic_cp_ext
- wic.Wic2.test_expand_mbr_image
In both cases the symptom is the same: the filesystem has inode tables
that are completely zeroed out. Both issues are linked together to the
same underlying fault.
FilemapSeek._get_ranges() is a generator. Due to the nature of finding
each hole/data extent one at a time using the lseek() system call,
it calls os.lseek() on a raw file descriptor, then yields, then the
caller, sparse_copy(), calls file.seek() + file.read() on a Python
BufferedReader wrapping that same fd — then the generator resumes and
calls os.lseek() again. This interleaving of raw os.lseek() and buffered
I/O on the same fd is undefined behaviour from Python's perspective.
The BufferedReader tracks its own idea of the fd's position and buffer
contents; os.lseek() changes the position behind its back. This can
corrupt its internal state and cause read() to return stale/zero data.
This code, however, has existed in wic since it was written, so why
was it not noticed before? It turns out this bug was being masked by a
number of implementation details that changed, especially when wic was
split out for oe-core. These changes conspired together to cause the bug
to be triggered.
One of the root causes of this bug is that Python 3.14 increased the
default buffer size from 8KB to 128KB[1]. With 8 KB buffers, read()s
either go through the direct-read path leaving the buffer empty, or
if it fills in 8KB chunks the buffer is fully drained. Either way,
with a small buffer, read()s do a real raw seek. No fast path. No
corruption. With a 128KB buffer, however, a much larger window exists
where BufferedReader.seek() can take the fast-path after the raw file
descriptor has already been repositioned by os.lseek() in the generator.
With the smaller buffer, this window was too narrow to hit in practice.
This is fixed by opening a second file object in FilemapSeek.__init__()
dedicated to SEEK_DATA/SEEK_HOLE probes, leaving the data-reading handle
(self._f_image) untouched.
This explains why the corruption is deterministic and tied to specific
block boundaries, why it only manifests with the split-out version using
Python 3.14 (on systems that are using Python versions less than 3.14 on
the host), and why using a separate file descriptor for reading bypasses
the issue entirely.
This is not an intermittent bug. For a more detailed explanation
including log files, in-depth analysis, and a standalone Python
reproducer, please see the linked bugzilla entry.
Richard Purdie [Tue, 17 Mar 2026 11:53:52 +0000 (11:53 +0000)]
license: Fix sstate hash conflict issues
Currently, SSTATE_PKGARCH is injected into the sstate packages themselves but
the output of do_populate_lic is meant to be architecture invariant.
Instead of putting it into the package, use that part of the path as the
installation location. This makes the sstate packages architecture invariant
and avoids hash mismatch issues.
Since the sstate install path isn't part of the task checksums, we can just
remove all the LICENSE_DEPLOY_PATHCOMPONENT code entirely. It will change the
native/cross locations to SSTATE_PKGARCH but that likely makes more sense anyway.
I suspect this was what I'd originally intended when I added SSTATE_PKGARCH to
the path but things weren't quite done correctly.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yoann Congal [Sat, 14 Mar 2026 16:57:41 +0000 (17:57 +0100)]
qemurunner: Hide kernel messages on first non-raw run_serial() call
Kernel messages on console can be mixed with run_serial() command output
and might even prevent run_serial() to read the command exit code.
To fix this, on the first non-raw run_serial() call, run "dmesg -n 1"
first to hide the kernel message from the console we use to run
commands. Note that kernel messages are still logged in dmesg buffer.
man dmesg (from util-linux):
> -n, --console-level
> level Set the level at which printing of messages is done to the
> console. The level is a level number or abbreviation of the level name.
> For all supported levels see the --help output.
>
> For example, -n 1 or -n emerg prevents all messages, except emergency (panic)
> messages, from appearing on the console. All levels of messages are still
> written to /proc/kmsg, so syslogd(8) can still be used to control exactly where
> kernel messages appear. When the -n option is used, dmesg will not print or
> clear the kernel ring buffer.
Busybox's dmesg also support the option.
Raw run_serial() calls are used during the login process when it's too
early to run the dmesg command.
Changqing Li [Fri, 13 Mar 2026 10:49:08 +0000 (18:49 +0800)]
webkitgtk: remove PACKAGECONFIG soup2
* libsoup-2.4 already removed in commit [1], so remove the soup2
PACKAGECONFIG, which may causes depeneds on libsoup-2.4.
* soup2 will not be supported from 2.52.0.
* webkitgtk build with libsoup3 by default, USE_SOUP2 is OFF by default,
so also remove soup3 option
* libsoup-2.4 already removed in commit [1], so remove the soup2
PACKAGECONFIG, which may causes depeneds on libsoup-2.4
* provide soup3 option, enable soup3 will enable soup and soup version
will be auto defected as libsoup3 since we depend on libsoup, disable
soup3 will disable soup.
According to the Unified Kernel Image (UKI) specification [1], including
a compiled device tree in the .dtb section of a UKI is optional. However,
the current implementation always packages device trees listed in
KERNEL_DEVICETREE into the UKI by default. This makes uki.bbclass
unsuitable for systems that rely on firmware-provided DTBs and do not
want a DTB embedded in the UKI.
Fix this by introducing a new UKI_DEVICETREE variable to control device
tree packaging. The .dtb section is now populated from UKI_DEVICETREE
instead of KERNEL_DEVICETREE. Users who do not want DTBs included in the
UKI can override UKI_DEVICETREE to an empty value from their recipes.
Update the UKI selftests accordingly, as QEMU does not provide a device
tree to embed.
Peter Marko [Wed, 11 Mar 2026 22:46:05 +0000 (23:46 +0100)]
curl: upgrade 8.18.8 -> 8.19.0
Solves CVE-2026-1965, CVE-2026-3783, CVE-2026-3784 and CVE-2026-3805.
Drop patch included in the release.
Release info [1]:
Changes:
* BUG-BOUNTY.md: we stop the bug-bounty end of Jan 2026
* cmake: add `CURL_BUILD_EVERYTHING` option
* mqtt: initial support for MQTTS
* tool: support fractions for --limit-rate and --max-filesize
* tool_cb_hdr: with -J, use the redirect name as a backup
* vquic: drop support for OpenSSL-QUIC
* windows: add build option to use the native CA store
* windows: bump minimum to Vista (from XP)
(and lot of bugfixes)
[1] https://curl.se/ch/8.19.0.html
License-Update: copyright years refreshed
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>
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>
Upgrade the firmware package to latest release. Add package
${PN}-lt8713sx for Lontium LT8713SX DP hub, add audioreach
firmware and license for Kaanapali, Lenovo ISH LNLM firmware
was renamed so add those files in ${PN}-ish-lnlm-53c4ffad
package, and modify FILES:${PN} for package ${PN}-ish-lnlm-12128606
to pack firmwares properly.
linux: cve-exclusions: Add --always to git-describe
Otherwise https://git.kernel.org/pub/scm/linux/security/vulns.git cannot be
used:
subprocess.CalledProcessError: Command '('git', 'describe', '--tags', 'HEAD')' returned non-zero exit status 128.
Original error from git:
fatal: No names found, cannot describe anything.
The change will at least produce an abbreviated SHA1 hash as {data_version}.
Fixes: 5e66e2b79fae ("linux/generate-cve-exclusions: show the name and version of the data source") Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Miroslav Cernak [Tue, 10 Mar 2026 12:57:53 +0000 (13:57 +0100)]
resulttool: Fix UnboundLocalError when missing test results
The junit_tree function failed when either ptest or imagetest results
were missing from testresults.json due to uninitialized variables.
Move variable initialization outside the loop to ensure they
always have default values.
Signed-off-by: Miroslav Cernak <miroslav.cernak@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
pypi.bbclass: set UPSTREAM_CHECK_PYPI_PACKAGE from PYPI_PACKAGE
This aligns the tarball upstream check regex (set from former variable)
with existing tarball name (set from the latter).
Previously the regex used a 'normalized' value (_ replaced with -)
which wasn't matching the actual tarballs, and required setting both
variables whenever PYPI_PACKAGE default wasn't suitable and had to be
set in the recipe.
I have confirmed that 'devtool check-upgrade-status' doesn't break.
Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jose Quaresma [Fri, 13 Mar 2026 17:16:35 +0000 (17:16 +0000)]
lib/oe/patch: add user and email when patchtool is git
When the PATCHTOOL=git, oe-core creates a git repo for the sources with:
git init
git add .
git commit
The git commit can fails blindly due to misconfigured user when git don't have
the email proper configured. Although the commit command does not fail
because it returns 0, it is not executed and the tree remains with all
files staged so the following git commands can fail and fails in some cases.
This problem has been particularly observed in some obscure and little-used
cases in openembedded-core like patching the linux-firmware which only works
using PATCHTOOL=git because it deals with binary files.
Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changqing Li [Wed, 25 Feb 2026 03:40:13 +0000 (11:40 +0800)]
appstream: upgrade from 1.0.6 to 1.1.2
License-Update: Update COPYING with latest from FSF
* Upstream changed the dependency, libyaml changed to libfyaml, refer [1]
* Upstream enable bash-completion by default, but bash-completion is in
ASSUME_PROVIDE, on host without bash-completion, appstream-native will
configure failed, so disable bash-completion for appstream-native
Xiangyu Chen [Fri, 13 Mar 2026 06:40:43 +0000 (14:40 +0800)]
lttng-modules: Upgrade 2.14.3 -> 2.14.4 to fix build issue on kernel 6.18
Add 0001-fix-adjust-range-in-btrfs-probe-for-v6.18.14.patch to
adjust Brtfs probe header for 6.18[1]
Change Log:
2026-02-09 LTTng modules 2.14.4
* fix: Manual conversion to use ->i_state accessors (v6.19)
* fix: btrfs: headers cleanup to remove unnecessary local includes (v6.19)
* Fix: Initialize syscall tables sorted entries
* Cleanup lttng-syscalls.h: Remove extern on function prototypes
* Make init_event_desc_enum_desc_sorted_entries public
* Update .gitreview for stable-2.14
Ryan Eatmon [Fri, 13 Mar 2026 15:14:21 +0000 (10:14 -0500)]
uboot-config: Fix scope of KCONFIG_CONFIG_ROOTDIR check
The current check is in the inner loop of UBOOT_CONFIG, but the check is
attempting to only apply to the case when there is a single entry in
UBOOT_CONFIG. Shift the indention to be outside of the for loop and
only execute once.
Signed-off-by: Ryan Eatmon <reatmon@ti.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sunil Dora [Fri, 13 Mar 2026 16:01:33 +0000 (09:01 -0700)]
rust: enable dynamic LLVM linking by default
Fixes [YOCTO #16058]
Enable dynamic linking with LLVM (link-shared) for all rust variants
(native, nativesdk and target) via a PACKAGECONFIG option, enabled
by default. This prevents segmentation faults when reusing sstate
artifacts built with different host toolchains.
Update multilib library symlinking to include shared libraries and
adjust the rust selftest to install llvm so the dynamically linked
compiler can run correctly.
Suggested-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sat, 14 Mar 2026 15:17:22 +0000 (15:17 +0000)]
ptest-packagelists: Exclude ptests from musl which are known to fail
Since we'd like to start tracking musl ptest regressions, mark the existing known
failures for qemuarm64 and qemux86-64 so we can then start to test without
warnings.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sat, 14 Mar 2026 10:23:50 +0000 (10:23 +0000)]
sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
Other layers need to be able to add dummy recipes. To do this add
DUMMY_PACKAGE_ARCHS_SDK and DUMMY_PACKAGE_ARCHS_TARGET in layer.conf
which can be used to add these to the right places in the code.
Don't add the variables to task signatures as these only matter in the
context of constructed images and not the recipes.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 13 Mar 2026 15:12:27 +0000 (15:12 +0000)]
sstate: Tweak SDK sstate package architecture
While in this area of the code, it is worth noting that PACKAGE_ARCH + PN are
already designed to capture the needed information that we need in SSTATE_PKGARCH.
We can therefore simplify things by just using the standard fallack for SSTATE_PKGARCH
instead of more complex manipulations.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, the dummy SDK packages are re-running for different SDKMACHINE values
when they should not. The usage of allarch is broken and not triggering the right
PACKAGE_ARCH value due to the deferred nature of nativesdk. This was probably
broken when we switched to add deferred classes.
To try and make this all more explict and less prone to breakage, switch to calling
oe.utils.make_arch_independent() directly.
Add the 'special' package architecture values to SSTATE_ARCHS so the system cna properly
track them.
Remove the pointless tasks we don't need from the dummy recipes, mark the packagedata
as machine independent and then remove from the conflict list in sstate.bbclass.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 13 Mar 2026 11:40:43 +0000 (11:40 +0000)]
allarch/lib: Convert core of allarch code into a function
We need to call the functionality in allarch.bbclass from other contexts
and the current conditionals are problematic enough without further changes
confusing things. Move the code to a funtion in oe.utils so we can call
it as needed.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add support for rust-out-of-tree module compilation:
- Add dependency to rust-native
- Remap ${S} in compiled output to avoid buildpath errors
- Added check to skip rust out-of-ree-module compilation,
if rust kernel support is not enabled
Yoann Congal [Fri, 13 Mar 2026 15:59:16 +0000 (08:59 -0700)]
kernel.bbclass: Copy include/config/auto.conf in STAGING_KERNEL_BUILDDIR
Linux commit aaed5c7739be ("kbuild: slim down package for building
external modules")[0] states that include/config/auto.conf is also a
file needed for out-of-tree build.
This avoids this error when building an out-of-tree Rust kernel module:
| make -C .../tmp/work-shared/qemux86-64/kernel-source M=$PWD
| make[1]: Entering directory '.../tmp/work-shared/qemux86-64/kernel-source'
| make[2]: Entering directory '.../tmp/work/qemux86_64-poky-linux/rust-out-of-tree-module/git/sources/rust-out-of-tree-module-git'
| .../tmp/work-shared/qemux86-64/kernel-source/Makefile:779: .../tmp/work-shared/qemux86-64/kernel-build-artifacts/include/config/auto.conf: No such file or directory
Yoann Congal [Fri, 13 Mar 2026 15:59:15 +0000 (08:59 -0700)]
selftest/cases/runtime_test: Add test for Linux Rust sample
This new case tests that the rust_mininal sample inside the kernel source
tree is buildable and works properly: check that the module can be
loaded and that it prints correctly.
Harish Sadineni [Fri, 13 Mar 2026 15:59:14 +0000 (08:59 -0700)]
kernel-devsrc: copying rust-kernel source to $kerneldir/build
When CONFIG_RUST is enabled, running 'make prepare' in the target & SDK
fails because the Rust kernel infrastructure is incomplete in the staged
kernel sources.
The Rust build system requires a wider set of interdependent sources
during make prepare, including bindgen inputs, C helper sources,
generated headers, and other support files. These are all located under
the kernel rust/ directory.
To ensure make prepare succeeds and to support building Rust-based
kernel modules from the target & SDK, copy the full rust/ directory
(of size 2.5MB) into $kerneldir/build when the rust-kernel distro feature
is enabled.
Additionally, when Rust support is enabled, 'make prepare' generates
.rmeta files (crate metadata in a custom binary format) and shared
objects (.so) that are required for compiling Rust kernel modules.
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This issue occurs because CFLAGS are being passed to HOSTRUSTC.
Updated the flags in the make-mod-scripts recipe to align with
the flags used by linux-yocto.
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Harish Sadineni [Fri, 13 Mar 2026 15:59:11 +0000 (08:59 -0700)]
kernel-yocto-rust: Fix for buildpaths errors when rust is enabled for kernel
Fixes for buildpaths errors after enabling rust for linux-kernel
-Introduced KRUSTFLAGS to pass `--remap-path-prefix` to rustc while
building kernel with rust support.
Co-authored-by: El Mehdi YOUNES <elmehdi.younes@smile.fr> Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Harish Sadineni [Fri, 13 Mar 2026 15:59:09 +0000 (08:59 -0700)]
rust: install Rust library sources for 'make rustavailable' support
The `make rustavailable` process (1) expects the Rust standard library source files (e.g., `lib.rs`)
to be present in the `library/` directory under `rustlib/src/rust/`.
This patch ensures the required sources are available by:
- Installing the `library/` directory (of size ~50MB) into `${D}${libdir}/rustlib/src/rust` for
making them available during `make rustavailable` for native, target & sdk.
- packaging `${libdir}/rustlib/src/rust` sepearately with `${PN}-src-lib`.
1) See the kernel tree for Documentation/rust/quick-start.rst in the section: Requirements: Building
Harish Sadineni [Fri, 13 Mar 2026 15:59:08 +0000 (08:59 -0700)]
linux-yocto: conditionally add clang/rust/bindgen-cli-native to DEPENDS
Conditionally add 'clang-native', 'rust-native' and 'bindgen-cli-native' to 'DEPENDS'
when Kernel Rust Support is enabled.
These tools are required for building Rust-enabled kernels and for
generating Rust FFI bindings via bindgen during the kernel build.
This ensures the additional dependencies are only pulled in when
Rust support is explicitly enabled, avoiding unnecessary native
dependencies for non-Rust kernel builds.
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Harish Sadineni [Fri, 13 Mar 2026 15:59:07 +0000 (08:59 -0700)]
kernel-yocto: Enable rust in kernel
Allow enabling Rust support in the kernel by simply adding "rust" to
KERNEL_FEATURES in local.conf or a global configuration file. This maps the
feature name to the appropriate kernel configuration fragment located
at features/kernel-rust/kernel-rust.scc
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Licensing files COPYING.NEWLIB and COPYING.GPL2 were removed upstream,
checksum for COPYING needs update since files included may change with
every release.
Tested to work on qemuarm,aarch64,riscv32 and riscv64 variants
https://dev.azure.com/ahcbb6/baremetal-qemu/_build/results?buildId=21709&view=results
Signed-off-by: Alejandro Hernandez <alhe@linux.microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License changes:
- Adds BSD-2 for m68k-atari-elf target
Tested to work on qemux86,arm,aarch64,riscv32 and riscv64 variants:
https://dev.azure.com/ahcbb6/baremetal-qemu/_build/results?buildId=21709&view=results
Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
rust: Drop oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch
This patch was originally introduced to address a rare failure on the PPC
target and with the latest version of rustc this issue no longer occurs.
So, this patch can be removed.
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mark Hatle [Fri, 13 Mar 2026 00:28:45 +0000 (19:28 -0500)]
oeqa/selftest: wic: Add vfat to test_wic_sector_size
Add an empty vfat partition to the 4k sector size test. This ensures that
the -S 4096 option is passed to mkfs.vfat, and the resulting filesystem is
generated.
We also now verify that the requested partitions, and names were created
as expected. Size does not matter, only the partition type and name.
Note, there is a known issue in parted that 4096 fat partitions are not
recognized by fstype, so report themselves as empty in the regular output.
Both wic ls and parted p show an unknown filesytem type. However, the type
of the partition (last field) is set to msftdata, so we can use that
instead.
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 11 Mar 2026 09:24:56 +0000 (09:24 +0000)]
oeqa/selftest: Introduce OEQA_TESTDISPLAY variable and use for sdl/gtk qemu test
Currently we've been using DISPLAY from the parent environment indiscriminately.
Since we can change many of the tests to use internal VNC, we really need a mechanism
to only use a DISPLAY when the system really needs to and there is no other option.
Somehow we need to differentiate between that and a system with graphics available.
Introduce OEQA_TESTDISPLAY for this purpose, this being used only if there is no other
way to run the test.
There is only one test case I'm aware of that needs this, so this patch updates
that test case.
This variable is not meant as a replacement for all DISLAY usage, it is only
for cases where the test would not otherwise work.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
ltp: workaround openat2 build failure with glibc 2.43
glibc 2.43 added native openat2() support, causing LTP's configure to
set HAVE_OPENAT2=1 and skip its own internal definitions, resulting in
a build failure. Add a patch to undef HAVE_OPENAT2 in lapi/openat2.h
as a workaround until a proper fix is found.
Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
glibc 2.43 introduces linux/openat2.h through the fcntl include chain
(bits/fcntl-linux.h -> linux/openat2.h) which expects __u64 to be
defined before inclusion. Move <fcntl.h> in barebox scripts/include/
linux/types.h to after the typedef definitions to fix the build.
Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
libxcrypt: avoid discarded-qualifiers build failure with glibc 2.43
With the glibc 2.43 upgrade, building nativesdk-libxcrypt triggers a
-Wdiscarded-qualifiers warning in crypt-gost-yescrypt.c and
crypt-sm3-yescrypt.c which becomes a build failure due to -Werror.
Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc-runtime: avoid discarded-qualifiers build failure with glibc 2.43
With the glibc 2.43 upgrade, building gcc-runtime triggers a
-Wdiscarded-qualifiers warning in libgomp/affinity-fmt.c which
becomes a build failure due to -Werror.
Add -Wno-error=discarded-qualifiers to CFLAGS as a workaround until
the upstream const-correctness issue in libgomp is resolved.
Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- gettext-minimal-native: update Makevars.template source path to new
location under gettext-tools/wizard/po-templates/traditional/
- use-pkgconfig.patch: refresh patch hunks to match updated upstream
context in libxml.m4 and selinux-selinux-h.m4, update selinux
discovery: replace AC_SEARCH_LIBS (getfilecon_raw) with
PKG_CHECK_MODULES for correct sysroot handling
- gettext_1.0.bb: add autotools ptest directory and install
gettext-tools autotools build artifacts for ptest
ptest results:
=======================
All 630 tests passed
(41 tests were not run)
=======================
DURATION: 45
END: /usr/lib/gettext/ptest
2026-03-09T17:58
STOP: ptest-runner
TOTAL: 1 FAIL: 0
With the previous version:
All 626 tests passed
(40 tests were not run)
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 11 Mar 2026 11:06:05 +0000 (11:06 +0000)]
bitbake.conf: Set PACKAGECONFIG vardepvalue
For PACKAGECONFIG settings in recipes, we care about the end value, we don't
really care how it is constructed. bbappends to recipes can add things to
the default PACKAGECONFIG settings, for example being dependent on a DISTRO_FEATURE
or another variable. If the computed value doesn't change, the task hashes can remain
constant, allowing for better sstate reuse.
To do this, set a vardepvalue of the variable value itself, ignoring how
the actual value is calculated.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
PLATS linux-readline is moved, and readline is changed to load
dynamically, refer [1], keep readline as PACKAGECONFIG to allow user to
remove readline dependency.
Lua use dlopen by default, and LUA_READLINELIB is set to libreadline.so,
but libreadline.so is in the dev package, which will make Lua cannot
load libreadline even when libreadline is installed. Make readline as
build dependency and detect the real libreadline name and set LUA_READLINELIB
Krupal Ka Patel [Mon, 9 Mar 2026 05:19:33 +0000 (22:19 -0700)]
python3-setuptools: drop Windows launcher executables on non-mingw builds
setuptools installs Windows launcher executables (cli*.exe, gui*.exe)
into site-packages. These binaries are only used on Windows platforms
but are packaged for target, native, and nativesdk builds.
Remove the Windows launcher executables when not building for a mingw
(mingw32/mingw64) host to avoid shipping unused Windows binaries.
Signed-off-by: Krupal Ka Patel <krkapate@cisco.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Krupal Ka Patel [Mon, 9 Mar 2026 05:18:26 +0000 (22:18 -0700)]
python3-pip: drop unused Windows distlib launcher templates
pip vendors distlib which ships Windows launcher template binaries
(*.exe) under pip/_vendor/distlib. These files are only used on
Windows systems but are installed and packaged for target, native,
and nativesdk builds.
Remove the distlib *.exe templates when not building for a mingw
(mingw32/mingw64) host to avoid shipping unused Windows binaries and
reduce package noise.
Signed-off-by: Krupal Ka Patel <krkapate@cisco.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>