mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
Update the release notes and migration manual for 5.3. This covers commits frombd4625cd4d("build-appliance-image: Update to master head revision") to4a1f38dd8d("bitbake: knotty, uihelper: Remove running_pids and lastpids") in Poky. Acked-by: Quentin Schulz <quentin.schulz@cherry.de> (From yocto-docs rev: 5cb37206ca0dfaa0dafabb28ebd546b591c88486) Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
1004 lines
38 KiB
ReStructuredText
1004 lines
38 KiB
ReStructuredText
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
|
|
|
|
.. |yocto-codename| replace:: whinlatter
|
|
.. |yocto-ver| replace:: 5.3
|
|
.. Note: anchors id below cannot contain substitutions so replace them with the
|
|
value of |yocto-ver| above.
|
|
|
|
Release notes for |yocto-ver| (|yocto-codename|)
|
|
------------------------------------------------
|
|
|
|
New Features / Enhancements in |yocto-ver|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
- Linux kernel 6.16, gcc 15, glibc 2.42, LLVM 21.1.1, and over 300 other
|
|
recipe upgrades.
|
|
|
|
- Minimum Python version required on the host: 3.9.
|
|
|
|
- Host requirements changes:
|
|
|
|
- The minimum disk space requirement is now 140Gbytes (previously 90Gbytes).
|
|
|
|
- The minimum RAM requirement is now 32Gbytes (previously 8Gbytes).
|
|
|
|
- These changes are mainly due to recent additions of the LLVM and other
|
|
resource heavy recipes. For guidance on how to limit the resources used by
|
|
the :term:`OpenEmbedded Build System`, see the
|
|
:doc:`/dev-manual/limiting-resources` guide.
|
|
|
|
- BitBake changes:
|
|
|
|
- ``codeparser``: Add function decorators for ``vardeps``
|
|
|
|
Adds ``bb.parse.vardeps`` and ``bb.parse.excludevardeps`` function
|
|
decorators that can be used to explicitly add or exclude variables from a
|
|
Python function parsed by :term:`BitBake`.
|
|
|
|
Move ``vardepexclude`` flag entries alongside functions for
|
|
maintainability.
|
|
|
|
- Fetcher:
|
|
|
|
- Check for ``git-lfs`` existence before using it.
|
|
|
|
- Add support for ``.debs`` files containing uncompressed data tarballs.
|
|
|
|
- ``az``: Add sanity check to check that :term:`AZ_SAS` starts with ``?``
|
|
to mark the start of the query parameters.
|
|
|
|
- ``git``:
|
|
|
|
- Add the tag to shallow clone tarball name.
|
|
- Verify if local clones contains a tag, when the ``tag=`` parameter
|
|
is used in :term:`SRC_URI`.
|
|
|
|
- ``knotty``:
|
|
|
|
- Pass failed task logs through the log infrastructure (use
|
|
``bb.plain()`` instead of ``print()``).
|
|
|
|
- Improve refresh rate of the footer progress bar.
|
|
|
|
- Add support for automatically promoting class inherits to deferred
|
|
inherits by listing them in the :term:`BB_DEFER_BBCLASSES` variable.
|
|
|
|
- "Built-in" fragments support is now added to the :ref:`addfragments
|
|
<bitbake-user-manual/bitbake-user-manual-metadata:\`\`addfragments\`\`
|
|
directive>` directive. This is the fourth parameter to this directive, and
|
|
should be the name of the variable that contains definitions of built-in
|
|
fragments. Refer to the documentation of :ref:`addfragments
|
|
<bitbake-user-manual/bitbake-user-manual-metadata:\`\`addfragments\`\`
|
|
directive>` to learn how to define new built-in fragments.
|
|
|
|
Listing these built-in fragments can be done with
|
|
:oe_git:`bitbake-config-build
|
|
list-fragments</bitbake/tree/bin/bitbake-config-build>`, which could
|
|
list::
|
|
|
|
Available built-in fragments:
|
|
machine/... Sets MACHINE = ...
|
|
distro/... Sets DISTRO = ...
|
|
|
|
In the above example, this means that the :term:`MACHINE` of
|
|
:term:`DISTRO` can be overridden with::
|
|
|
|
OE_FRAGMENTS += "machine/qemuarm64 distro/poky-bleeding"
|
|
|
|
This would set :term:`MACHINE` to ``qemuarm64`` and the :term:`DISTRO` to
|
|
``poky-bleeding``.
|
|
|
|
- The ``tag-`` parameter in URLs can now be specified alongside the ``rev=``
|
|
parameter and :term:`SRCREV` variable, and will ensure that the
|
|
specified tag matches the specified revision.
|
|
|
|
It is **strongly encouraged** to include the ``tag=`` parameter to the
|
|
:term:`SRC_URI` definition when possible.
|
|
|
|
- ``tinfoil``: add a ``wait_for`` decorator to wrap a function that makes an
|
|
asynchronous tinfoil call wait for event to say that the call has been
|
|
successful, or an error has occurred.
|
|
|
|
- New ``bb.utils.to_filemode()`` helper function which is a helper to take a
|
|
variable's content containing a filemode and convert it to the proper
|
|
Python representation of the number.
|
|
|
|
- ``cooker``: Use a shared counter for processing parser jobs. This allows
|
|
the parser processes to run independently of needing to be feed by the
|
|
parent process, and load balances them much better.
|
|
|
|
- ``cooker/process/utils``: Add a ``-P`` (``--profile``) option to
|
|
:term:`BitBake` to specify what to profile. Can be "main", "idle" or
|
|
"parsing". Split the reports in separate files.
|
|
|
|
- A "filtering" functionality was added and allows modifying the value of a
|
|
variable before its value is returned by :term:`BitBake`. The
|
|
``setVarFilter`` API can be used for applying the filters, but it is
|
|
**not** recommended for general use. It was added for internal use in
|
|
the :term:`OpenEmbedded Build System` in the :ref:`ref-classes-native`
|
|
class. The list of filters that are allowed are derived from a select
|
|
list of functions that must be added using a ``filter_proc`` decorator.
|
|
|
|
- ``tests/parse``: Add tests for ``include``, ``require`` and
|
|
``include_all``.
|
|
|
|
- Toolchain changes:
|
|
|
|
- The Clang/LLVM toolchain can now be used as part of the build.
|
|
|
|
The :term:`PREFERRED_TOOLCHAIN_TARGET`, :term:`PREFERRED_TOOLCHAIN_NATIVE`
|
|
and :term:`PREFERRED_TOOLCHAIN_SDK` variables can be used to customize the
|
|
selected toolchain globally.
|
|
|
|
There are two supported toolchains: "gcc" and "clang". See the
|
|
documentation of :term:`PREFERRED_TOOLCHAIN_TARGET` for more details.
|
|
|
|
The toolchain is also customizable on a per-recipe basis, using the
|
|
:term:`TOOLCHAIN` and :term:`TOOLCHAIN_NATIVE` variables.
|
|
|
|
.. warning::
|
|
|
|
The :term:`TOOLCHAIN` should **not** be set globally. For overriding
|
|
the toolchain globally, use :term:`PREFERRED_TOOLCHAIN_TARGET`,
|
|
:term:`PREFERRED_TOOLCHAIN_NATIVE` and :term:`PREFERRED_TOOLCHAIN_SDK`.
|
|
|
|
- Multiple recipes were pinned to use the GCC/Binutils toolchain as they do
|
|
not support being built with Clang/LLVM yet. In these recipes the
|
|
:term:`TOOLCHAIN` variable is set to "gcc".
|
|
|
|
- Global configuration changes:
|
|
|
|
- ``bitbake.conf/pseudo``: Switch from exclusion list to inclusion list by
|
|
swapping :term:`PSEUDO_IGNORE_PATHS` for :term:`PSEUDO_INCLUDE_PATHS`
|
|
which should be easier and more explicit to maintain.
|
|
|
|
- ``bitbake.conf``: Drop ``lz4`` from :term:`HOSTTOOLS`, as it is not
|
|
required anymore, and the ``lz4-native`` package is used instead.
|
|
|
|
- :term:`Configuration Fragments <Configuration Fragment>`:
|
|
|
|
- Add a fragment for the `CDN` :ref:`sstate-cache
|
|
<overview-manual/concepts:shared state cache>` mirror.
|
|
|
|
- Add a ``show-fragments`` sub-command to the
|
|
:oe_git:`bitbake-config-build </bitbake/tree/bin/bitbake-config-build>`
|
|
utility, to show the content of fragments from command-line.
|
|
|
|
- ``default-distrovars``: set an empty default for :term:`LICENSE_PATH`.
|
|
|
|
- The default definition of :term:`UNPACKDIR` is no longer
|
|
``sources-unpack`` but ``sources``.
|
|
|
|
- The default value for :term:`IMAGE_FSTYPES` (defined in
|
|
:oe_git:`bitbake.conf </openembedded-core/tree/meta/conf/bitbake.conf>`)
|
|
is now ``tar.zst`` (previously ``tar.gz``).
|
|
|
|
- Remove the ``meta/conf/distro/include/distro_alias.inc`` include file,
|
|
which associated a recipe name to one or more Distribution package name.
|
|
This file is not used and maintained anymore.
|
|
|
|
- A new configuration file :ref:`structure-build-conf-toolcfg.conf` is now
|
|
used by :oe_git:`bitbake-config-build </bitbake/tree/bin/bitbake-config-build>`
|
|
to manage :term:`Configuration Fragments <Configuration Fragment>`.
|
|
|
|
- ``bitbake.conf``: add :term:`TMPDIR` to the ``GIT_CEILING_DIRECTORIES``
|
|
Git variable. This avoids Git trying to find a repository higher than
|
|
:term:`TMPDIR` in recipes that use the :ref:`structure-build-work-shared`
|
|
directory for storing their sources. This fixes reproducibility issues.
|
|
|
|
- Changes to the ``genericarm64`` machine configuration:
|
|
|
|
- Increase the :term:`Initramfs` maximum size.
|
|
- Install extra Linux firmware packages to fix Linux kernel warnings.
|
|
|
|
- New variables:
|
|
|
|
- The ``VIRTUAL-RUNTIME_dbus`` variable, to allow changing the runtime
|
|
implementation of D-Bus. See :term:`VIRTUAL-RUNTIME`.
|
|
|
|
- The ``VIRTUAL-RUNTIME_libsdl2`` variable, to allow changing the runtime
|
|
implementation of `libsdl2 <https://www.libsdl.org/>`__. See
|
|
:term:`VIRTUAL-RUNTIME`.
|
|
|
|
- The :term:`SPDX_PACKAGE_URL` variable can be used in recipes to set the
|
|
output ``software_packageUrl`` field in their associated SPDX 3.0 output
|
|
(default value: empty string).
|
|
|
|
- The :term:`KMETA_CONFIG_FEATURES` variable can be used to control
|
|
:ref:`ref-classes-kernel-yocto` configuration features. For now only
|
|
``prefer-modules`` is supported for this variable.
|
|
|
|
- The :term:`TESTSDK_SUITES` variable can be used to control the list of
|
|
tests run for the :ref:`ref-classes-testsdk` class.
|
|
|
|
- The :term:`UBOOT_FIT_CONF_FIRMWARE` can be used to specify a ``firmware``
|
|
entry in the configuration node of a FIT image.
|
|
|
|
- The :term:`SPDX_INCLUDE_COMPILED_SOURCES` option allows the same as
|
|
:term:`SPDX_INCLUDE_SOURCES` but including only the sources used to
|
|
compile the host tools and the target packages.
|
|
|
|
- The :term:`UBOOT_VERSION` variable holds the package version
|
|
(:term:`PV`) and revision (:term:`PR`) which are part of the installed and
|
|
deployed filenames. Users can now override :term:`UBOOT_VERSION` to
|
|
changes the output filenames.
|
|
|
|
- The :term:`UBOOT_MAKE_OPTS` variable specifies extra options passed to
|
|
``make`` when building U-boot. Extra options can also be passed as the
|
|
fourth argument of the :term:`UBOOT_CONFIG` variable. See the
|
|
documentation of :ref:`ref-classes-uboot-config` class for more details.
|
|
|
|
- Kernel-related changes:
|
|
|
|
- ``linux/generate-cve-exclusions``: use data from CVEProject instead of
|
|
the archived https://linuxkernelcves.com.
|
|
|
|
- ``kernel-yocto``: allow annotated options to be modified. For example if
|
|
the following kernel configuration is set::
|
|
|
|
CONFIG_INET_TUNNEL=y # OVERRIDE:$MODULE_OR_Y
|
|
|
|
And if the :term:`KMETA_CONFIG_FEATURES` variable contains
|
|
``prefer-modules``, ``CONFIG_INET_TUNNEL`` will be set to ``m`` instead of
|
|
``y``.
|
|
|
|
- ``kernel-devsrc``: Replace the extra ``System.map`` file with symbolic
|
|
link.
|
|
|
|
- ``kernel-module-split``: Allow for external configuration files being
|
|
assigned to the correct kernel module package.
|
|
|
|
- When built for the RISC-V architecture, ensure that the minimum required
|
|
features set by :term:`TUNE_FEATURES` are set using the
|
|
:ref:`ref-classes-features_check` class.
|
|
|
|
- ``linux-yocto``: when built for RISC-V, enable features in
|
|
:term:`KERNEL_FEATURES` based on features listed in :term:`TUNE_FEATURES`.
|
|
|
|
- ``perf``: Enable ``coresight`` if enabled in :term:`MACHINE_FEATURES`.
|
|
|
|
- New core recipes:
|
|
|
|
- ``python3-pdm``, ``python3-pdm-backend`` and ``python3-pdm-build-locked``,
|
|
which are dependencies of ``python3-webcolors``. ``python3-pdm`` itself
|
|
depends on ``python3-pdm-build-locked``
|
|
|
|
- ``bindgen-cli``: a tool to generate Rust bindings.
|
|
|
|
- ``python3-colorama``: Cross-platform colored terminal text, needed by
|
|
``pytest`` as a dependency.
|
|
|
|
- ``libglvnd``: imported from :oe_git:`meta-oe
|
|
</meta-openembedded/tree/meta-oe>` which provides a vendor neutral
|
|
approach to handling OpenGL / OpenGL ES / EGL / GLX libraries.
|
|
|
|
- ``python3-sphinx-argparse``: A sphinx extension that automatically
|
|
documents ``argparse`` commands and options. It is part of
|
|
``buildtools-docs-tarball`` for later use in the Yocto Project
|
|
documentation.
|
|
|
|
- ``python3-sphinx-copybutton``: A sphinx extension that adds a copy button
|
|
to code blocks in Sphinx. It is part of ``buildtools-docs-tarball`` for later
|
|
use in the Yocto Project documentation.
|
|
|
|
- ``python3-coherent-licensed``: License management tooling for `Coherent
|
|
System` and skeleton projects. It became a new dependency of
|
|
``python3-zipp``.
|
|
|
|
- ``gn``: a commonly used build tool to generate `ninja
|
|
<https://ninja-build.org/>`__ files.
|
|
|
|
- LLVM/Clang related recipes:
|
|
|
|
- ``clang``: LLVM based C/C++ compiler.
|
|
|
|
- ``compiler-rt``: LLVM based C/C++ compiler Runtime.
|
|
|
|
- ``libclc``: Implementation of the library requirements of the OpenCL C
|
|
programming language.
|
|
|
|
- ``libcxx``: new implementation of the C++ standard library, targeting
|
|
C++11 and above
|
|
|
|
- ``llvm-tblgen-native``: LLVM TableGen binaries for the build host,
|
|
often used to build LLVM projects.
|
|
|
|
- ``lld``: the LLVM Linker.
|
|
|
|
- ``lldb``: LLDB debugger for LLVM projects.
|
|
|
|
- ``llvm-project-source``: canonical git mirror of the LLVM subversion
|
|
repository.
|
|
|
|
- ``llvm``: The LLVM Compiler Infrastructure.
|
|
|
|
- ``openmp``: LLVM OpenMP compiler Runtime.
|
|
|
|
- ``kernel-signing-keys-native``: this recipe is used in the
|
|
:ref:`ref-classes-kernel-fit-image` class to generate a pair of RSA
|
|
public/private key. It replaces the ``do_generate_rsa_keys`` of the
|
|
:ref:`ref-classes-kernel-fit-image` class.
|
|
|
|
- New :term:`DISTRO_FEATURES`:
|
|
|
|
- ``glvnd``, which enables OpenGL Vendor Neutral Dispatch Library
|
|
support when using recipes such as ``mesa``.
|
|
|
|
- ``opencl``: support for the :wikipedia:`OpenCL (Open Computing Language)
|
|
<OpenCL>` framework.
|
|
|
|
- New core classes:
|
|
|
|
- The new :ref:`ref-classes-kernel-fit-image` class replaces the previous
|
|
``kernel-fitimage`` class. It has been rewritten and improved to fix
|
|
:yocto_bugs:`bug 12912</show_bug.cgi?id=12912>`. See the :ref:`Removed
|
|
Classes <migration-guides/migration-5.3:Removed Classes>` section of the
|
|
Migration notes for |yocto-ver| (|yocto-codename|) for more details on how
|
|
to switch to this new class.
|
|
|
|
- The new :ref:`ref-classes-go-mod-update-modules` class can be used to
|
|
maintain Go recipes that use a ``BPN-go-mods.inc`` and
|
|
``BPN-licenses.inc`` and update these files automatically.
|
|
|
|
- The new :ref:`ref-classes-python_pdm` class supports building Python
|
|
recipes with the `PDM <https://pdm-project.org/>`__ package and dependency
|
|
manager.
|
|
|
|
- Architecture-specific changes:
|
|
|
|
- Rework the RISC-V :term:`TUNE_FEATURES` to make them based of the RISC-V
|
|
ISA (Instruction Set Architecture) implementation.
|
|
|
|
This implements the following base ISAs:
|
|
|
|
- ``rv32i``, ``rv64i``
|
|
- ``rv32e``, ``rv64i``
|
|
|
|
The following ABIs:
|
|
|
|
- ``ilp32``, ``ilp32e``, ``ilp32f``, ``ilp32d``
|
|
- ``lp64``, ``lp64e``, ``lp64f``, ``lp64d``
|
|
|
|
The following ISA extension are also implemented:
|
|
|
|
- M: Integer Multiplication and Division Extension
|
|
- A: Atomic Memory Extension
|
|
- F: Single-Precision Floating-Point Extension
|
|
- D: Double-Precision Floating-Point Extension
|
|
- C: Compressed Extension
|
|
- B: Bit Manipulation Extension (implies Zba, Zbb, Zbs)
|
|
- V: Vector Operations Extension
|
|
- Zicsr: Control and Status Register Access Extension
|
|
- Zifencei: Instruction-Fetch Fence Extension
|
|
- Zba: Address bit manipulation extension
|
|
- Zbb: Basic bit manipulation extension
|
|
- Zbc: Carry-less multiplication extension
|
|
- Zbs: Single-bit manipulation extension
|
|
- Zicbom: Cache-block management extension
|
|
|
|
The existing processors tunes are preserved:
|
|
|
|
- ``riscv64`` (``rv64gc``)
|
|
- ``riscv32`` (``rv32gc``)
|
|
- ``riscv64nf`` (``rv64imac_zicsr_zifencei``)
|
|
- ``riscv32nf`` (``rv32imac_zicsr_zifencei``)
|
|
- ``riscv64nc`` (``rv64imafd_zicsr_zifencei``)
|
|
|
|
See :oe_git:`meta/conf/machine/include/riscv/README
|
|
</openembedded-core/tree/meta/conf/machine/include/riscv/README>` for more
|
|
information.
|
|
|
|
- Add support for new Arm64 instruction sets, which are represented as files
|
|
to be included in :term:`MACHINE` configuration in :term:`OpenEmbedded-Core
|
|
(OE-Core)`. The new configuration files are:
|
|
|
|
- :oe_git:`conf/machine/include/arm/arch-armv8-7a.inc </openembedded-core/tree/meta/conf/machine/include/arm/arch-armv8-7a.inc>`
|
|
- :oe_git:`conf/machine/include/arm/arch-armv8-8a.inc </openembedded-core/tree/meta/conf/machine/include/arm/arch-armv8-8a.inc>`
|
|
- :oe_git:`conf/machine/include/arm/arch-armv9-1a.inc </openembedded-core/tree/meta/conf/machine/include/arm/arch-armv9-1a.inc>`
|
|
- :oe_git:`conf/machine/include/arm/arch-armv9-2a.inc </openembedded-core/tree/meta/conf/machine/include/arm/arch-armv9-2a.inc>`
|
|
- :oe_git:`conf/machine/include/arm/arch-armv9-3a.inc </openembedded-core/tree/meta/conf/machine/include/arm/arch-armv9-3a.inc>`
|
|
|
|
- ``arch-mips.inc``: Use ``-EB``/``-EL`` for denoting Endianness.
|
|
|
|
- Enable ``riscv32`` as supported arch for ``musl`` systems.
|
|
|
|
- Powerpc: Use ``-maltivec`` in compiler flags if ``altivec`` is in
|
|
:term:`TUNE_FEATURES`.
|
|
|
|
- ``arm``: add a ``nocrypto`` feature to :term:`TUNE_FEATURES` to complement
|
|
the ``crypto`` feature to explicitly disable cryptographic extensions via
|
|
`GCC` flags.
|
|
|
|
This lead to the creation of two new tunes:
|
|
|
|
- ``tune-cortexa72-nocrypto``
|
|
- ``tune-cortexa53-nocrypto``
|
|
|
|
- QEMU / ``runqemu`` changes:
|
|
|
|
- Refactor :ref:`ref-classes-qemu` functions into library functions (in
|
|
:oe_git:`lib/oe/qemu.py </openembedded-core/tree/meta/lib/oe/qemu.py>`).
|
|
|
|
- The ``qemux86-64`` :term:`MACHINE` now defaults to the ``x86-64-v3``
|
|
micro-architecture level.
|
|
|
|
The previous default was Core 2 era processors. This change means that the
|
|
toolchain is configured to build for that level, and QEMU is configured to
|
|
emulate it.
|
|
|
|
The v3 level adds support for AVX/AVX2/BMI/BMI2/F16C and other newer
|
|
instructions which are seeing increasing usage in modern software and add
|
|
performance benefits. Please see :wikipedia:`X86-64 Microarchitecture
|
|
levels <X86-64#Microarchitecture_levels>` for definition of the levels and
|
|
lists of Intel/AMD CPUs where support for the instructions was first
|
|
added.
|
|
|
|
Note that if QEMU system emulation is used on an x86 build machine with
|
|
:wikipedia:`KVM <Kernel-based_Virtual_Machine>` enabled, then the build
|
|
machine's CPU must also be recent enough to support these instructions
|
|
natively.
|
|
|
|
- ``runqemu``:
|
|
|
|
- The script can now run compressed images with snapshot mode. For
|
|
example, with :term:`IMAGE_FSTYPES` containing ``ext4.zst``, you can run::
|
|
|
|
runqemu snapshot ext4.zst <image-recipe>
|
|
|
|
- Add support for the ``erofs`` filesystem.
|
|
|
|
- The :term:`BitBake` environment is now a requirement, and the script
|
|
cannot run without a successful call to ``bitbake -e``.
|
|
|
|
The script will also raise an error with the ``bitbake`` command is not
|
|
found.
|
|
|
|
- Documentation changes:
|
|
|
|
- Add documentation on :term:`Configuration Fragments <Configuration
|
|
Fragment>`:
|
|
|
|
- :doc:`/ref-manual/fragments`
|
|
- :doc:`/dev-manual/creating-fragments`
|
|
|
|
- Part of :term:`BitBake` internals are now documented at
|
|
:yocto_docs:`/bitbake/bitbake-user-manual/bitbake-user-manual-library-functions.html`.
|
|
|
|
- A new :doc:`/dev-manual/limiting-resources` guide was created to help
|
|
users limit the resources used by the :term:`OpenEmbedded Build System`.
|
|
|
|
- A new :doc:`/dev-manual/hashequivserver` guide was created to help users
|
|
setting up a :ref:`overview-manual/concepts:Hash Equivalence` server.
|
|
|
|
- The QA checks defined in the :term:`OpenEmbedded Build System` were
|
|
gathered in :doc:`/ref-manual/qa-checks`.
|
|
|
|
- Core library changes:
|
|
|
|
- Add :oe_git:`license_finder.py </openembedded-core/tree/meta/lib/oe/license_finder.py>`,
|
|
which was extracted from ``recipetool`` to be shared for multiple users.
|
|
Improve its functionalities.
|
|
|
|
- Go changes:
|
|
|
|
- :ref:`ref-classes-go-mod-update-modules`: Update license finding to use
|
|
the new ``find_licenses_up`` library function.
|
|
|
|
- Rust changes:
|
|
|
|
- ``rust-llvm``:
|
|
|
|
- Compile LLVM to use dynamic libraries. This reduces the
|
|
size of ``llvm-rust`` to about a third.
|
|
|
|
- Disable the following feature through configuration
|
|
(:ref:`ref-tasks-configure`): libedit, benchmarks.
|
|
|
|
- Add the ``has-thread-local`` option to the
|
|
:ref:`ref-classes-rust-target-config` class.
|
|
|
|
- Wic Image Creator changes:
|
|
|
|
- After a Python upgrade, WIC plugins containing dashes (``-``) for their
|
|
filenames are **no longer supported**. One must convert the dashed to
|
|
underscores (``_``) and update users of the plugins accordingly.
|
|
|
|
See the :ref:`migration-guides/migration-5.3:Wic plugins containing dashes
|
|
should be renamed` section of the Yocto Project 5.3 Migration Guide for
|
|
more information.
|
|
|
|
- ``wic``: do not ignore :term:`IMAGE_ROOTFS_SIZE` if the Rootfs is
|
|
modified.
|
|
|
|
- Several improvements in WIC selftests.
|
|
|
|
- ``bootimg_efi.py``: fail build if no binaries are installed.
|
|
|
|
- Add new options to the ``wic`` ``ls``, ``cp``, ``rm``, and ``write``
|
|
commands:
|
|
|
|
- ``--image-name``: name of the image to use the artifacts from.
|
|
- ``--vars``: directory with ``<image>.env`` files that store
|
|
:term:`BitBake` variables. This directory is usually found in
|
|
:term:`STAGING_DIR`.
|
|
|
|
- Add the Wic-specific option ``--extra-partition-space`` to add extra empty
|
|
space after the space filled by the filesystem in the partition.
|
|
|
|
- The Wic-specific option ``--extra-space`` has a new alias
|
|
``--extra-filesystem-space``.
|
|
|
|
- ``bootimg_pcbios``: move Syslinux install into separate functions, to make
|
|
it easier to add new bootloaders.
|
|
|
|
The Grub bootloader can now be installed with this Wic plugin.
|
|
|
|
- Add the Wic plugin ``extra_partition`` to install files from the
|
|
:term:`DEPLOY_DIR_IMAGE` directory into an extra non-rootfs partition. See the
|
|
:term:`IMAGE_EXTRA_PARTITION_FILES` variable for more information.
|
|
|
|
- SDK-related changes:
|
|
|
|
- Include additional information about Meson setting in the SDK environment
|
|
setup script (host system, CPU family, etc.).
|
|
|
|
- Add Go to :term:`SDK_TOOLCHAIN_LANGS`, except for the following
|
|
architecture on which this is not supported:
|
|
|
|
- RISC-V 32 bits (``rv32``)
|
|
- PowerPC
|
|
|
|
- Image-based SDKs can now include `Zsh` completions by adding the
|
|
``zsh-completion-pkgs`` feature to the :term:`IMAGE_FEATURES` variable in
|
|
the image recipe.
|
|
|
|
- Testing-related changes:
|
|
|
|
- ``bitbake/tests/fetch``: Add tests for ``gitsm`` with git-lfs.
|
|
|
|
- ``bitbake/lib/bb/tests/fetch``: add a test case to ensure Git shallow
|
|
fetch works for tag containing slashes.
|
|
|
|
- :ref:`ref-classes-testexport`: capture all tests and data from all layers
|
|
(instead of the :term:`OpenEmbedded-Core (OE-Core)` layer only).
|
|
|
|
- OEQA:
|
|
|
|
- SDK:
|
|
|
|
- Add a test to sanity check that the generated SDK manifest was
|
|
parsed correctly and isn't empty.
|
|
|
|
- Add a test to verify the manifests are generated correctly.
|
|
|
|
- Add helpers to check for and install packages.
|
|
|
|
- Add check that meson has detected the target correctly.
|
|
|
|
- Simplify test specification and discovery:
|
|
|
|
- Introduce the ``TESTSDK_CASE_DIRS`` variable to specify test
|
|
directory types, replacing the need to modify the ``default_cases``
|
|
class member.
|
|
|
|
- Discover tests from configured layers using a common discovery
|
|
pattern (``<LAYER_DIR>/lib/oeqa/<dirname>/cases``) where
|
|
``<dirname>`` is specified in ``TESTSDK_CASE_DIRS``.
|
|
|
|
- The "buildtools" directories were renamed to follow the common
|
|
discovery pattern (``<LAYER_DIR>/lib/oeqa/<dirname>/cases``) for
|
|
consistency across all SDK configurations.
|
|
|
|
- ``selftest/reproducible``: Limit memory used by ``diffoscope`` to avoid
|
|
triggering OOM kills.
|
|
|
|
- Add tests for the :ref:`ref-classes-devicetree` class.
|
|
|
|
- Tests for the :ref:`ref-classes-kernel-fit-image` class have been
|
|
reworked and improved.
|
|
|
|
- ``data.py``: add ``skipIfNotBuildArch`` decorator, to skip tests if
|
|
:term:`BUILD_ARCH` is not in present in the specified tuple.
|
|
|
|
- ``selftest``: add new test for toolchain switching.
|
|
|
|
- ``utils/command``: add a fast-path ``get_bb_var()`` that uses
|
|
``bitbake-getvar`` instead of ``bitbake -e`` when there is not
|
|
``postconfig`` argument passed.
|
|
|
|
- ``core/case``: add file exists assertion test case.
|
|
|
|
- ``context.py``: use :term:`TEST_SUITES` if set.
|
|
|
|
- ``runqemu``: add new test for booting compressed images.
|
|
|
|
- General improvements of the parallelization of tests, namely fixing
|
|
some tests that could spawn an unlimited number of threads leading to
|
|
OOM kills.
|
|
|
|
- A new SDK test is now running for Go after ``go`` was added to
|
|
:term:`SDK_TOOLCHAIN_LANGS`.
|
|
|
|
- Commands sent over SSH (using the ``OESSHTarget`` class) will now error
|
|
when an SSH failure occurs. It is possible to ignore these errors by
|
|
passing ``ignore_ssh_fails`` when executing a command.
|
|
|
|
- Utility script changes:
|
|
|
|
- ``sstate-cache-management``: add a ``--dry-run`` argument
|
|
|
|
- ``yocto-check-layer``:
|
|
|
|
- Expect success for ``test_patches_upstream_status``. This means that
|
|
patch files *must* include an ``Upstream-Status`` to pass with this
|
|
script.
|
|
|
|
- Show the :term:`DISTRO` used when running the script.
|
|
|
|
- :ref:`ref-classes-yocto-check-layer` class:
|
|
|
|
- Refactor to be extended easily.
|
|
|
|
- Add a ``check_network_flag`` test that checks that no tasks other
|
|
than :ref:`ref-tasks-fetch` can access the network.
|
|
|
|
- ``send-error-report``:
|
|
|
|
- Respect URL scheme in server name if it exists.
|
|
|
|
- Drop ``--no-ssl`` as the server URL specifies it with ``http://`` or
|
|
``https://``.
|
|
|
|
- ``buildstats.py``:
|
|
|
|
- Extend disk stats support for NVMe and flexible token count.
|
|
|
|
- Add tracking of network I/O per interface.
|
|
|
|
- ``buildstats-diff``: find last two Buildstats files if none are specified.
|
|
|
|
- ``pybootchartgui``:
|
|
|
|
- visualize ``/proc/net/dev`` network stats in graphs.
|
|
|
|
- account for network statistics when calculating extents.
|
|
|
|
- Packaging changes:
|
|
|
|
- Export ``debugsources`` in :term:`PKGDESTWORK` as JSON. The source
|
|
information used during packaging can be use from other tasks to have more
|
|
detailed information on the files used during the compilation and improve
|
|
SPDX accuracy.
|
|
|
|
- When using the ``ipk`` and ``rpm`` package managers, give out more possible
|
|
reasons about unmatched packages.
|
|
|
|
For example::
|
|
|
|
E: Package 'catch2' has no installation candidate
|
|
catch2 is a recipe. Its generated packages are: ['catch2-src', 'catch2-dbg', 'catch2-staticdev', 'catch2-dev', 'catch2-doc']
|
|
Either specify a generated package or set ALLOW_EMPTY:${PN} = "1" in catch2 recipe
|
|
|
|
- ``package.py``: replace all files unconditionally when copying debug
|
|
sources (passing ``-u`` to the ``cpio`` command in
|
|
``copydebugsources()``). This improves reproducibility.
|
|
|
|
- LLVM related changes:
|
|
|
|
- Like ``gcc-source``, the LLVM project sources are part of ``work-shared``
|
|
under :term:`TMPDIR`. The project codebase is large and sharing it offers
|
|
performance improvements.
|
|
|
|
- SPDX-related changes:
|
|
|
|
- ``spdx30``: Provide ``software_packageUrl`` field
|
|
|
|
- ``spdx30_tasks``: Change recipe license to "declared" (instead of
|
|
"concluded")
|
|
|
|
- ``create-spdx-2.2``: support to override the version of a package in SPDX
|
|
2 through :term:`SPDX_PACKAGE_VERSION`.
|
|
|
|
- ``devtool`` and ``recipetool`` changes:
|
|
|
|
- Use ``lib/oe/license_finder`` to extract the license from source code.
|
|
|
|
- Calculate source paths relative to :term:`UNPACKDIR`.
|
|
|
|
- Allow ``recipe create`` handlers to specify bitbake tasks to run.
|
|
|
|
- ``create_go``: Use :ref:`ref-classes-go-mod` class instead of
|
|
:ref:`ref-classes-go-vendor`.
|
|
|
|
- Go recipes are now generated with help of the new
|
|
:ref:`ref-classes-go-mod-update-modules` class.
|
|
|
|
- Add a new :oe_git:`improve_kernel_cve_report.py
|
|
</openembedded-core/tree/meta/scripts/contrib/improve_kernel_cve_report.py>`
|
|
script in ``scripts/contrib`` for post-processing of kernel CVE data.
|
|
|
|
- Handle workspaces for multiconfig.
|
|
|
|
- Fix upgrade for recipes with Git submodules.
|
|
|
|
- Patchtest-related changes:
|
|
|
|
- Multiple improvements to the tool's :oe_git:`README
|
|
</openembedded-core/tree/scripts/patchtest.README>`.
|
|
|
|
- Don't match :term:`BitBake` Python expansions as GitHub usernames
|
|
(``${@...}`` syntax).
|
|
|
|
- Security changes:
|
|
|
|
- ``openssl``: add FIPS support. This can be enabled through the ``fips``
|
|
:term:`PACKAGECONFIG`.
|
|
|
|
- :ref:`ref-classes-cve-check` class changes:
|
|
|
|
|
|
- ``cve-update-db-native``: FKIE: use Secondary metric if there is no
|
|
Primary metric.
|
|
|
|
- New :term:`PACKAGECONFIG` options for individual recipes:
|
|
|
|
- ``ppp``: ``l2tp``, ``pptp``
|
|
- ``dropbear``: ``x11`` (renamed from ``enable-x11-forwarding``)
|
|
- ``gdb``: ``source-highlight``
|
|
- ``gstreamer1.0-plugins-bad``: ``analytics``
|
|
- ``mtd-utils``: ``ubihealthd-service``
|
|
- ``openssl``: ``fips``
|
|
- ``qemu``: ``sdl-image``, ``pixman``
|
|
- ``wget``: ``pcre2``
|
|
- ``mesa``: ``asahi``, ``amd``, ``svga``, ``teflon``, ``nouveau``,
|
|
``xmlconfig``
|
|
- ``dbus``: ``traditional-activation``, ``message-bus``
|
|
- ``cmake``: ``debugger``
|
|
- ``libcxx``: ``unwind-cross``
|
|
- ``tiff``: ``lerc``
|
|
- ``freetype``: ``brotli``
|
|
- ``gawk``: ``pma-if-64bit``
|
|
- ``x264``: ``ffmpeg``, ``opencl``
|
|
|
|
- Systemd related changes:
|
|
|
|
- Enable getty generator by default by adding ``serial-getty-generator`` to
|
|
:term:`PACKAGECONFIG`.
|
|
|
|
- Now uses the :term:`USE_NLS` variable to enable or disable building
|
|
translations.
|
|
|
|
- Fix deduplicated templates and instance lines in preset files when listing
|
|
both template and instances in :term:`SYSTEMD_SERVICE`.
|
|
|
|
- Stop enabling non-standard MAC policy when using the 'pni-names' feature
|
|
(part of :term:`DISTRO_FEATURES`). Instead, follow what is provided by
|
|
upstream systemd.
|
|
|
|
- Install ``systemd-sysv-install`` when using the
|
|
``systemd-systemctl-native`` recipe.
|
|
|
|
- :ref:`ref-classes-sanity` class changes:
|
|
|
|
- :ref:`ref-classes-insane`: Move test for invalid :term:`PACKAGECONFIG` to
|
|
:ref:`ref-tasks-recipe-qa`.
|
|
|
|
- Add ``unimplemented-ptest`` detection for cargo-based tests, allowing to
|
|
detect when a cargo package has available tests that could be enable with
|
|
:doc:`Ptest </test-manual/ptest>`.
|
|
|
|
- Add a test for recipe naming/class mismatches.
|
|
|
|
- Add a sanity test for "bad" gcc installs on Ubuntu 24.04. The host should
|
|
install ``libstdc++-14-dev`` instead of ``libgcc-14-dev`` to avoid build
|
|
issues when building :ref:`ref-classes-native` with Clang.
|
|
|
|
- Drop the ``var-undefined`` QA check as it was not relevant for the
|
|
variables it was checking, as those are mandatory by default.
|
|
|
|
- U-boot related changes:
|
|
|
|
- :ref:`ref-classes-uboot-sign`: Add support for setting firmware property
|
|
in FIT configuration with :term:`UBOOT_FIT_CONF_FIRMWARE`.
|
|
|
|
- :ref:`ref-classes-uboot-sign`: Add support for signing U-Boot FIT image
|
|
without an SPL. The :term:`SPL_DTB_BINARY` variable can be set to an empty
|
|
string to indicate that no SPL is present.
|
|
|
|
- When built for the RISC-V architecture, read the :term:`TUNE_FEATURES`
|
|
variable to automatically set U-boot configuration options (for example
|
|
``CONFIG_RISCV_ISA_F``).
|
|
|
|
- Improve the way build directories are split when having multiple
|
|
configurations listed in :term:`UBOOT_CONFIG`. This fixes an issue where
|
|
two or more of these configurations were using the same directory for
|
|
building (because these were using the same defconfig file).
|
|
|
|
- Miscellaneous changes:
|
|
|
|
- ``dropbear``: The ``dropbearkey.service`` can now take extra arguments for
|
|
key generation, through ``/etc/default/dropbear``.
|
|
|
|
- ``initscripts``: add ``log_success_msg``/``log_failure_msg``/``log_warning_msg``
|
|
functions for logging in initscripts.
|
|
|
|
- ``connman``:
|
|
|
|
- Mark ``iptables`` and ``nftables`` feature of :term:`PACKAGECONFIG`
|
|
mutually incompatible.
|
|
|
|
- Set ``dns-backend`` automatically to ``systemd-resolved``
|
|
when ``systemd-resolved`` is part of :term:`DISTRO_FEATURES`.
|
|
|
|
- ``uninative``: show errors if installing fails.
|
|
|
|
- ``meson``: Allow user to override setup command options by exporting
|
|
``MESON_SETUP_OPTS`` in a recipe.
|
|
|
|
- :ref:`ref-classes-cmake`: Enhance to emit a native toolchain CMake file.
|
|
This is part of improvements allowing to use ``clang`` in an SDK.
|
|
|
|
- Fix the runtime version of several recipes (they now return the effective
|
|
version instead of a default string like "Unknown").
|
|
|
|
- :ref:`ref-classes-module`: add ``KBUILD_EXTRA_SYMBOLS`` to the install
|
|
command.
|
|
|
|
- ``rpm-sequoia``: add :doc:`Ptest </test-manual/ptest>` support.
|
|
|
|
- ``libunwind``: disable installation of tests directory with
|
|
``--disable-tests``, which can be installed with the ``libunwind-ptest``
|
|
package instead.
|
|
|
|
- ``boost``: add ``process`` library to the list of built libraries.
|
|
|
|
- ``base-files``: add ``nsswitch-resolved.conf``, only installed if
|
|
``systemd`` and ``systemd-resolved`` is part of :term:`DISTRO_FEATURES`.
|
|
|
|
- ``nfs-utils``: don't use signals to shut down the NFS server in the
|
|
associated initscript, instead use ``rpc.nfsd 0``.
|
|
|
|
- ``readline``: enable HOME, END, INSERT, and DELETE key bindings in
|
|
``inputrc``.
|
|
|
|
- Switch to a new :ref:`sstate-cache <overview-manual/concepts:shared state
|
|
cache>` CDN (http://sstate.yoctoproject.org).
|
|
|
|
- :ref:`ref-classes-sstate`: Apply a proper :manpage:`umask` when fetching
|
|
from :term:`SSTATE_MIRRORS`.
|
|
|
|
- ``kernel-devsrc``: make package version consistent with kernel source (by
|
|
inheriting :ref:`ref-classes-kernelsrc`).
|
|
|
|
- :ref:`ref-classes-externalsrc`: Always ask Git for location of ``.git``
|
|
directory (may be different from the default ``${S}/.git``).
|
|
|
|
- :ref:`ref-classes-features_check`: Add support for :term:`REQUIRED_TUNE_FEATURES`.
|
|
|
|
- ``openssh``: limit read access to ``sshd_config`` file (set its filemode
|
|
to ``0600``).
|
|
|
|
- ``barebox-tools`` now installs the ``rk-usb-loader`` utility.
|
|
|
|
- The :ref:`ref-classes-setuptools3_legacy` class now supports the
|
|
:ref:`qa-check-pep517-backend` QA check.
|
|
|
|
- The :ref:`ref-classes-ccache` class now supports using `Ccache` for native
|
|
recipes when the local build configuration contains::
|
|
|
|
ASSUME_PROVIDED += "ccache-native"
|
|
HOSTTOOLS += "ccache"
|
|
|
|
- :ref:`ref-classes-python_pep517`: use ``pyproject-build`` instead of
|
|
calling the module with ``nativepython3``.
|
|
|
|
- ``dbus-glib``: include the binding tools separately into the
|
|
``${PN}-tools`` package.
|
|
|
|
- ``dbus``: use the :ref:`ref-classes-systemd` class to handle the unit
|
|
files of D-Bus.
|
|
|
|
- ``dpkg``: add :ref:`ptest <test-manual/ptest:testing packages with ptest>`
|
|
support.
|
|
|
|
- ``shared-mime-info``: Now uses the :term:`USE_NLS` variable to enable
|
|
building translations.
|
|
|
|
- ``p11-kit``: Now uses the :term:`USE_NLS` variable to enable building
|
|
translations.
|
|
|
|
- ``babeltrace2``: Enable Python plugins
|
|
|
|
- ``initramfs-framework``: mount a temporary filesystem on ``/run`` and move
|
|
it to the root filesystem directory before calling ``switch_root``.
|
|
|
|
- ``python3``: Pass ``PLATFORM_TRIPLET`` explicitly when cross compiling to
|
|
make the build deterministic instead of letting Python detect the platform
|
|
triplet (``${HOST_ARCH}-${HOST_OS}``).
|
|
|
|
- ``pulseaudio``: Add the ``audio`` group explicitly if
|
|
``pulseaudio-server`` is used.
|
|
|
|
- ``oe/license_finder``: Add ``find_licenses_up`` function to find licenses
|
|
upwards until reaching a predefined top directory (as an argument).
|
|
|
|
- ``mesa``:
|
|
|
|
- Build Mesa's Asahi tools when ``asahi`` is part of the recipe's
|
|
:term:`PACKAGECONFIG` variable.
|
|
|
|
- The ``mesa`` recipe now declares two new :term:`PROVIDES` for Vulkan
|
|
and OpenCL ICD. These virtual provider are respectively named
|
|
``virtual-opencl-icd`` and ``virtual-vulkan-icd``.
|
|
|
|
- ``mesa-demos``: split info tools to a separate package ``mesa-demos-info``.
|
|
|
|
- ``vte``: skip :ref:`ref-classes-gobject-introspection` with Clang on Arm,
|
|
as it caused build failures.
|
|
|
|
- ``shadow``: Increase the maximum group name length from 24 to 32 (default
|
|
value provided by upstream recipe, was previously hardcoded to 24).
|
|
|
|
- ``udev-extraconf``: Speed up the ``mount.sh`` script by passing the block
|
|
device of interest to ``blkid`` when getting partition label names.
|
|
|
|
- ``piglit``: enable OpenCL support if ``opencl`` is part of the
|
|
:term:`DISTRO` features.
|
|
|
|
Known Issues in |yocto-ver|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Recipe License changes in |yocto-ver|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The following changes have been made to the :term:`LICENSE` values set by recipes:
|
|
|
|
.. list-table::
|
|
:widths: 20 40 40
|
|
:header-rows: 1
|
|
|
|
* - Recipe
|
|
- Previous value
|
|
- New value
|
|
* - ``recipe name``
|
|
- Previous value
|
|
- New value
|
|
|
|
Security Fixes in |yocto-ver|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The following CVEs have been fixed:
|
|
|
|
.. list-table::
|
|
:widths: 30 70
|
|
:header-rows: 1
|
|
|
|
* - Recipe
|
|
- CVE IDs
|
|
* - ``recipe name``
|
|
- :cve_nist:`xxx-xxxx`, ...
|
|
|
|
Recipe Upgrades in |yocto-ver|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The following recipes have been upgraded:
|
|
|
|
.. list-table::
|
|
:widths: 20 40 40
|
|
:header-rows: 1
|
|
|
|
* - Recipe
|
|
- Previous version
|
|
- New version
|
|
* - ``recipe name``
|
|
- Previous version
|
|
- New version
|
|
|
|
Contributors to |yocto-ver|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Thanks to the following people who contributed to this release:
|
|
|
|
Repositories / Downloads for Yocto-|yocto-ver|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|