migration-guides: update 4.2 migration and release notes

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
CC: Frederic Martinsons <frederic.martinsons@gmail.com>
CC: Marta Rybczynska <rybczynska@gmail.com>
CC: Paul Eggleton <paul.eggleton@linux.microsoft.com>
CC: Alex Kiernan <alex.kiernan@gmail.com>
CC: Alexis Lothoré <alexis.lothore@bootlin.com
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Michael Opdenacker
2023-04-05 11:01:36 +02:00
committed by Richard Purdie
parent 64111246ce
commit 42a6d47754
2 changed files with 156 additions and 12 deletions

View File

@@ -18,10 +18,72 @@ BitBake and OpenEmbedded-Core are now relying on Python 3.8,
making it a requirement to use a distribution providing at least this
version, or to use :term:`buildtools`.
.. _migration-4.2-qa-checks:
.. _migration-4.2-gcc-8.0:
QA check changes
~~~~~~~~~~~~~~~~
gcc 8.0 is now the minumum required GNU C compiler version
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This version, released in 2018, is a minimum requirement
to build the ``mesa-native`` recipe.
.. _migration-4.2-new-nvd-api:
Fetching the NVD vulnerability database through the 2.0 API
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This new version adds a new fetcher for the NVD database using the 2.0 API,
as the 1.0 API will be retired in 2023.
The implementation changes as little as possible, keeping the current
database format (but using a different database file for the transition
period), with a notable exception of not using the META table.
Here are minor changes that you may notice:
- The database starts in 1999 instead of 2002
- The complete fetch is longer (30 minutes typically)
.. _migration-4.2-rust-crate-checksums:
Rust: mandatory checksums for crates
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This release now supports checksums for Rust crates and make
them mandatory for each crate in a recipe. See :yocto_git:`python3_bcrypt recipe changes
</poky/commit/?h=mickledore&id=0dcb5ab3462fdaaf1646b05a00c7150eea711a9a>`
for example.
The ``cargo-update-recipe-crates`` utility
:yocto_git:`has been extended </poky/commit/?h=mickledore&id=eef7fbea2c5bf59369390be4d5efa915591b7b22>`
to include such checksums. So, in case you need to add the list of checksums
to a recipe just inheriting the :ref:`ref-classes-cargo` class so far, you can
follow these steps:
#. Make the recipe inherit :ref:`ref-classes-cargo-update-recipe-crates`
#. Remove all ``crate://`` lines from the recipe
#. Create an empty ``${BPN}-crates.inc`` file and make your recipe require it
#. Execute ``bitbake -c update_crates your_recipe``
#. Copy and paste the output of BitBake about the missing checksums into the
``${BPN}-crates.inc`` file.
.. _migration-4.2-supported-distributions:
Supported distributions
~~~~~~~~~~~~~~~~~~~~~~~
This release supports running BitBake on new GNU/Linux distributions:
- Fedora 36 and 37
- AlmaLinux 8.7 and 9.1
- OpenSuse 15.4
On the other hand, some earlier distributions are no longer supported:
- Debian 10.x
- Fedora 34 and 35
- AlmaLinux 8.5
See :ref:`all supported distributions <system-requirements-supported-distros>`.
.. _migration-4.2-misc-changes:
@@ -30,6 +92,7 @@ Miscellaneous changes
- The ``OEBasic`` signature handler (see :term:`BB_SIGNATURE_HANDLER`) has been
removed.
.. _migration-4.2-removed-variables:
@@ -38,7 +101,7 @@ Removed variables
The following variables have been removed:
- ``SERIAL_CONSOLE``, deprecated since version 2.6, replaced by :term:``SERIAL_CONSOLES``.
- ``SERIAL_CONSOLE``, deprecated since version 2.6, replaced by :term:`SERIAL_CONSOLES`.
.. _migration-4.2-removed-recipes:
@@ -47,3 +110,17 @@ Removed recipes
The following recipes have been removed in this release:
- ``python3-picobuild``: after switching to ``python3-build``
- ``python3-strict-rfc3339``: unmaintained and not needed by anything in
:oe_git:`openembedded-core </openembedded-core>`
or :oe_git:`meta-openembedded </meta-openembedded>`.
.. _migration-4.2-removed-classes:
Removed classes
~~~~~~~~~~~~~~~
The following classes have been removed in this release:
- ``rust-bin``: no longer used in Poky

View File

@@ -6,23 +6,90 @@ Release notes for 4.2 (mickledore)
New Features / Enhancements in 4.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Python 3.8 is the minimum Python version required on the build host.
For host distributions that do not provide it, this is included as part of the
:term:`buildtools` tarball.
- Python 3.8 is the minimum Python version required on the build host.
For host distributions that do not provide it, this is included as part of the
:term:`buildtools` tarball.
- This release now supports a new ``addpylib`` directive to enable
Python libraries within layers.
- BitBake in this release now supports a new ``addpylib`` directive to enable
Python libraries within layers.
This directive should be added to your layer configuration,
as in the below example from ``meta/conf/layer.conf``::
This directive should be added to your layer configuration
as in the below example from ``meta/conf/layer.conf``::
addpylib ${LAYERDIR}/lib oe
addpylib ${LAYERDIR}/lib oe
- BitBake has seen multiple internal changes that may impact
memory and disk usage as well as parsing time, in particular:
- BitBake's Cooker server is now multithreaded.
- BitBake's cache has been extended to include more hash
debugging data, but has also been optimized to :yocto_git:`compress
cache data <https://git.yoctoproject.org/poky/commit/?h=mickledore&id=7d010055e2af3294e17db862f42664ca689a9356>`.
- BitBake's Cooker server :yocto_git:`can now be pinged
</poky/commit/?h=mickledore&id=26f255da09>`
from the UI.
- Architecture-specific enhancements:
- This release adds initial support for the
:wikipedia:`LoongArch <Loongson#LoongArch>`
(``loongarch64``) architecture, though there is no testing for it yet.
- Kernel-related enhancements:
- QEMU/runqemu enhancements:
- Image-related enhancements:
- New variables:
- :term:`VOLATILE_TMP_DIR` allows to specify
whether ``/tmp`` should be on persistent storage
or in RAM.
- Rust improvements:
- This release adds Cargo support on the target, and includes
automated QA tests for this functionality.
- It also supports checksums for Rust crates and makes
them mandatory for each crate in a recipe.
- Testing:
- The ptest images have changed structure in this release. The
underlying ``core-image-ptest`` recipe now uses :term:`BBCLASSEXTEND` to
create a variant for each ptest enabled recipe in OE-Core.
For example, this means that ``core-image-ptest-bzip2``,
``core-image-ptest-lttng-tools`` and many more image targets now exist
and can be built/tested individually.
The ``core-image-ptest-all`` and ``core-image-ptest-fast`` targets are now
wrappers that target groups of individual images and means that the tests
can be executed in parallel during our automated testing. This also means
the dependencies are more accurately tested.
- It is now possible to track regression changes between releases using
:oe_git:`yocto_testresults_query.py </openembedded-core/tree/scripts/yocto_testresults_query.py>`,
which is a thin wrapper over :oe_git:`resulttool
</openembedded-core/tree/scripts/resulttool>`. Here is an example
command, which allowed to spot and fix a regression in the
``quilt`` ptest::
yocto_testresults_query.py regression-report 4.2_M1 4.2_M2
See this `blog post about regression detection
<https://bootlin.com/blog/continuous-integration-in-yocto-improving-the-regressions-detection/>`__.
- This release adds support for parallel ptest execution with a ptest per image.
This takes ptest execution time from 3.5 hours to around 45 minutes on the autobuilder.
- Miscellaneous changes:
- Supporting 64 bit dates on 32 bit platforms: several packages have been
updated to pass Y2038 tests.
- Many packages were updated to add large file support.