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 the linux-firmware recipe. Possible values are xz and zst.

  • 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 the kexec-tools recipe RDEPENDS on it.

    • The tcl-8 recipe was added back to support the build of expect.

    • 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 by libdisplay-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 to armv8a.

  • QEMU / runqemu changes:

  • Documentation changes:

    • Use rsvg as a replacement of inkscape to convert svg files in the documentation.

    • The cve role was replaced by cve_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, and xattr 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 the check_upstream_status from oe.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 Sqlite persist_data to a standard cache file for checksums, and drop persist_data.

    • fetch2: add support for GitHub codespaces by adding the GITHUB_TOKEN to the list of variables exported during git invocations.

    • fetch2: set User-Agent to ‘bitbake/version’ instead of a “fake mozilla” user agent.

    • compress: use lz4 instead of lz4c, as lz4c 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 large

      amounts 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: catch NoProvider exception to improve error readability when a recipe is not found with --recipe.

    • bb/build: add a function bb.build.listtasks() to list the tasks in a datastore.

    • Remove custom exception backtrace formatting, and replace occurences of bb.exception.format_exception() by traceback.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 the local.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 to git.

    • 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 of devtool ide-sdk has been replaced by a new --debug-build option of devtool modify. The new devtool ide-sdk workflow is: devtool modify my-recipe --debug-build followed by devtool 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 to RPATH in binaries.

    • Ensure insane tasks of dependencies run in builds when expected.

  • Security changes:

  • 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: the pip executable is now left and not deleted, and can be used instead of pip3 and pip2.

    • tar image types are now more reproducible as the IMAGE_CMD for tar now strips atime and ctime 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 the network.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 features symbol-lookup, spectre`, and ``tests by default.

    • The recipe glib-2.0 now disables the feature sysprof by default.

    • The recipe gstreamer1.0-libav now disables the feature doc by default.

    • rxvt-unicode: change virtual/x-terminal-emulator from PROVIDES to RPROVIDES as virtual-x-terminal-emulator. Also make this recipe depend on the x11 distro features with REQUIRED_DISTRO_FEATURES.

    • rxvt-unicode.inc: disable the terminfo installation by setting TIC to : in EXTRA_OECONF, to avoid host contamination.

    • matchbox-terminal: add x-terminal-emulator as RPROVIDES and set ALTERNATIVE for the recipe.

    • default-providers.conf: set rxvt-unicode as the default virtual-x-terminal-emulator runtime provider with PREFERRED_RPROVIDER.

    • systemd: set better sane time at startup by creating the clock-epoch file in ${libdir} if the set-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: package tkinter’s shared objects separately in the python3-tkinter package.

    • init-manager: set the variable VIRTUAL-RUNTIME_dev_manager to udev 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 with keymaps as its default value.

    • seatd: Create a seat group and package the systemd service seatd.service with correct permissions.

      That way, the weston user in weston-init.bb was added to the seat group to be able to properly establish connection between the Weston and the seatd 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:

Security Fixes in 5.2

Recipe Upgrades in 5.2

Contributors to 5.2

Repositories / Downloads for Yocto-5.2