Release notes for 5.2 (walnascar)
New Features / Enhancements in 5.2
Linux kernel 6.XXX, gcc 14.XXX, glibc 2.XXX, LLVM 18.1.XXX, and over XXX other recipe upgrades.
New variables:
linux-firmware
: Add the FIRMWARE_COMPRESSION variable which allows compression the firmwares provided by thelinux-firmware
recipe. Possible values arexz
andzst
.
Kernel-related changes:
cml1: in do_diffconfig, do not override
.config
with.config.orig
. This applies to other recipes using the class cml1.linux-firmware
: add following new firmware packages:qcom-qcm6490-audio
qcom-qcm6490-compute
qcom-adreno-a663
qcom-qcm6490-adreno
qcom-sa8775p-adreno
qcom-qcm6490-ipa
qcom-x1e80100-audio
qcom-qcs615-adreno
The kernel-yocto classes now supports in-tree configuration fragments. These can be added with the KERNEL_FEATURES variable.
The
kern-tools
recipe is now able to recognize files ending with.config
for kernel-yocto-based Kernel recipes.Support the LZMA compression algorithm in the kernel-uboot class. This can be done by setting the variable FIT_KERNEL_COMP_ALG to
lzma
.
New core recipes:
python3-pefile
: required for the uki class.Add initial support for the Barebox bootloader, along with associated OEQA test cases.
Import
makedumpfile
from meta-openembedded, as thekexec-tools
recipe RDEPENDS on it.The
tcl-8
recipe was added back to support the build ofexpect
.Add the
libdisplay-info
recipe, an EDID and DisplayID library, required for Weston 14.0.1 and newer.The
hwdata
recipe was imported from meta-openembedded, a recipe for hardware identification and configuration data, needed bylibdisplay-info
.
New core classes:
New uki class for building Unified Kernel Images (UKI). Associated OEQA tests were also added for this class.
New cython class for python recipes that require Cython for their compilation. Existing recipes depending on Cython now inherit this class. This class also strips potential build paths in the compilation output for reproducibility.
Architecture-specific changes:
tune-cortexa32
: set tune feature toarmv8a
.
QEMU /
runqemu
changes:Documentation changes:
Use
rsvg
as a replacement ofinkscape
to convert svg files in the documentation.The
cve
role was replaced bycve_nist
to avoid a conflict with more recent version of Sphinx.
Go changes:
The go-mod class now sets an internal variable
GO_MOD_CACHE_DIR
to enable the use of the Go module fetchers for downloading and unpacking module dependencies to the module cache.Make the do_compile task run before do_populate_lic in the go-mod class so license files are found by do_populate_lic after the
go install
command is run in do_compile.
Rust changes:
rust-target-config
: Update the data layout for the x86-64 target, as it was different in Rust from LLVM, which produced a data layout error.
Wic Image Creator changes:
Allow the
--exclude-path
option to exclude symlinks.Add the variable WIC_SECTOR_SIZE to control the sector size of Wic images.
SDK-related changes:
Add support for ZST-compression through SDK_ARCHIVE_TYPE, by setting its value to
tar.zst
.The
debug-tweaks
features were removed from-sdk
images (core-image-*-sdk.bb
).Enable
ipv6
,acl
, andxattr
in DISTRO_FEATURES_NATIVESDK.
Testing-related changes:
oeqa/postactions
: Fix archive retrieval from target.oeqa/selftest/gcc
: Fix kex exchange identification error.oeqa/utils/qemurunner
: support ignoring vt100 escape sequences.oeqa
: support passing custom boot patterns to runqemu.oeqa/selftest/cases
: add basic U-boot and Barebox tests.oeqa/selftest/rust
: skip on all MIPS platforms.Lots of changes and improvements to the Toaster OEQA tests.
oeqa/selftest
: add a test for bitbake “-e” and “-getvar” difference.oeqa/ssh
: improve performance and log sizes when handling large files.
Utility script changes:
The
patchreview.py
script now uses thecheck_upstream_status
fromoe.qa
to get patch statuses.resulttool
:Allow store to filter to specific revisions (
--revision
flag).Use single space indentation in JSON output, to save disk space.
Add
--logfile-archive
option to store and archive log files separately.Handle LTP raw logs as well as Ptest.
scripts/yocto-check-layer
:Check for the presence of a
SECURITY.md
file in layers and make it mandatory.The yocto-check-layer class now uses CHECKLAYER_REQUIRED_TESTS to get the list of QA checks to verify when running the
yocto-check-layer
script.
BitBake changes:
fetch2
: do not preserve ownership when unpacking.fetch2
: switch from Sqlitepersist_data
to a standard cache file for checksums, and droppersist_data
.fetch2
: add support for GitHub codespaces by adding theGITHUB_TOKEN
to the list of variables exported duringgit
invocations.fetch2
: set User-Agent to ‘bitbake/version’ instead of a “fake mozilla” user agent.compress
: uselz4
instead oflz4c
, aslz4c
as been considered deprecrated since 2018.server/process
: decrease idle/main loop frequency, as it is idle and main loops have socket select calls to know when to execute.bitbake-worker
: improve bytearray truncation performance when largeamounts of data are being transferred from the cooker to the worker.
bitbake-worker/cooker
: increase the default pipe size from 64KB to 512KB for better efficiency when transferring large amounts of data.fetch/wget
: increase timeout to 100s from 30s to match CDN worst response time.bitbake-getvar
: catchNoProvider
exception to improve error readability when a recipe is not found with--recipe
.bb/build
: add a functionbb.build.listtasks()
to list the tasks in a datastore.Remove custom exception backtrace formatting, and replace occurences of
bb.exception.format_exception()
bytraceback.format_exception()
.runqueue
: various performance optimizations including:Fix performance of multiconfigs with large overlap.
Optimise
setscene
loop processing by starting where it was left off in the previous execution.
knotty
now hints the user if MACHINE was not set in thelocal.conf
file.
Packaging changes:
systemd
: extract dependencies from.note.dlopen
ELF segments, to better detect dynamically linked libraries at runtime.package_rpm
: use ZSTD’s default compression level from the variable ZSTD_COMPRESSION_LEVEL.package_rpm
: restrict RPM packaging to 4 threads to improve the compression speed.
LLVM related changes:
SPDX-related changes:
SPDX 3.0: Find local sources when searching for debug sources.
SPDX 3.0: Map
gitsm
URIs togit
.SPDX 3.0: Link license and build by alias instead of SPDX ID.
Fix SPDX tasks not running when code changes (use of
file-checksums
).
devtool
changes:Remove the “S = WORKDIR” workaround as now S cannot be equal to WORKDIR.
The already broken
--debug-build-config
option ofdevtool ide-sdk
has been replaced by a new--debug-build
option ofdevtool modify
. The newdevtool ide-sdk
workflow is:devtool modify my-recipe --debug-build
followed bydevtool ide-sdk my-recipe my-image
.
Patchtest-related changes:
Refactor pattern definitions in a
patterns
module.Refactor and improve the
mbox
module.Split out result messages.
Add a check for user name tags in patches (for example “fix added by @username”).
insane class related changes:
Only parse ELF if they are files and not symlinks.
Check for
RUNPATH
in addition toRPATH
in binaries.Ensure insane tasks of dependencies run in builds when expected.
Security changes:
The
PIE
gcc flag is now passed for the powerpc architecture after a bugfix in gcc (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81170).openssh
: be more restrictive on private key file permissions by setting them from the do_install task.
cve-check changes:
Update the DL_DIR database location name (
${DL_DIR}/CVE_CHECK2
).Add the field “modified” to the JSON report (from “NVD-modified”).
Add support for CVSS v4.0.
Fix malformed cve status description with
:
characters.Restore the CVE_CHECK_SHOW_WARNINGS variable and functionality. It currently prints warning message for every unpatched CVE the cve-check class finds.
New PACKAGECONFIG options for individual recipes:
perf
:zstd
ppp
:pam
,openssl
libpciaccess
:zlib
gdk-pixbuf
:gif
,others
libpam
:selinux
libsecret
:pam
Miscellaneous changes:
bluez
: fix mesh build when building with musl.systemd-bootchart
: now supports the 32-bit riscv architecture.systemd-boot
: now supports the riscv architecture.python3-pip
: thepip
executable is now left and not deleted, and can be used instead ofpip3
andpip2
.tar
image types are now more reproducible as the IMAGE_CMD fortar
now stripsatime
andctime
from the archive content.SOLIBSDEV and SOLIBS are now defined for the mingw32 architecture (
.dll
).rootfs-postcommands: make opkg status reproducible.
The default KERNEL_CONSOLE value is no longer
ttyS0
but the first entry from the SERIAL_CONSOLES variable.virglrenderer
: add a patch to fix-int-conversion
build issue.ffmpeg
: disable asm optimizations for the x86 architecture as PIC is required and x86 ASM code is not PIC.udev-extraconf
: fix thenetwork.sh
script that did not configure hotplugged interfaces.classes-global/license
: move several functions and logic to library code in meta/lib/oe/license.py.The recipe
cairo
now disables the featuressymbol-lookup
,spectre`, and ``tests
by default.The recipe
glib-2.0
now disables the featuresysprof
by default.The recipe
gstreamer1.0-libav
now disables the featuredoc
by default.rxvt-unicode
: changevirtual/x-terminal-emulator
from PROVIDES to RPROVIDES asvirtual-x-terminal-emulator
. Also make this recipe depend on thex11
distro features with REQUIRED_DISTRO_FEATURES.rxvt-unicode.inc
: disable theterminfo
installation by settingTIC
to:
in EXTRA_OECONF, to avoid host contamination.matchbox-terminal
: addx-terminal-emulator
as RPROVIDES and set ALTERNATIVE for the recipe.default-providers.conf
: setrxvt-unicode
as the defaultvirtual-x-terminal-emulator
runtime provider with PREFERRED_RPROVIDER.systemd
: set better sane time at startup by creating theclock-epoch
file in${libdir}
if theset-time-epoch
PACKAGECONFIG config is set.cve-update-nvd2-native
: updating the database will now result in an error if BB_NO_NETWORK is enabled and CVE_DB_UPDATE_INTERVAL is not set to-1
.systemtap
: add--with-extra-version="oe"
configure option to improve the reproducibility of the recipe.python3
: packagetkinter
’s shared objects separately in thepython3-tkinter
package.init-manager
: set the variableVIRTUAL-RUNTIME_dev_manager
toudev
by default in meta/conf/distro/include/init-manager-none.inc and meta/conf/distro/include/init-manager-sysvinit.inc, instead of meta/recipes-core/packagegroups/packagegroup-core-boot.bb only.Likewise, the same is done for
VIRTUAL-RUNTIME_keymaps
withkeymaps
as its default value.seatd
: Create aseat
group and package the systemd serviceseatd.service
with correct permissions.That way, the
weston
user inweston-init.bb
was added to theseat
group to be able to properly establish connection between the Weston and theseatd
socket.
Known Issues in 5.2
Recipe License changes in 5.2
The following corrections have been made to the LICENSE values set by recipes: