From 00d9f298b0dc4c80c24435f7c41b3e93805dcd65 Mon Sep 17 00:00:00 2001 From: Michael Opdenacker Date: Wed, 5 Apr 2023 11:01:36 +0200 Subject: migration-guides: update 4.2 migration and release notes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (From yocto-docs rev: 3aac9f8b57434f3852a78915c326074252177515) Signed-off-by: Michael Opdenacker CC: Frederic Martinsons CC: Marta Rybczynska CC: Paul Eggleton CC: Alex Kiernan CC: Alexis Lothoré --- documentation/migration-guides/migration-4.2.rst | 85 +++++++++++++++++++++- .../migration-guides/release-notes-4.2.rst | 83 +++++++++++++++++++-- 2 files changed, 156 insertions(+), 12 deletions(-) (limited to 'documentation/migration-guides') diff --git a/documentation/migration-guides/migration-4.2.rst b/documentation/migration-guides/migration-4.2.rst index 1339411b3e..ccc3e8905e 100644 --- a/documentation/migration-guides/migration-4.2.rst +++ b/documentation/migration-guides/migration-4.2.rst @@ -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 +` +for example. + +The ``cargo-update-recipe-crates`` utility +:yocto_git:`has been extended ` +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 `. .. _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 ` + or :oe_git:`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 + diff --git a/documentation/migration-guides/release-notes-4.2.rst b/documentation/migration-guides/release-notes-4.2.rst index edafe378b0..4cf1974d4f 100644 --- a/documentation/migration-guides/release-notes-4.2.rst +++ b/documentation/migration-guides/release-notes-4.2.rst @@ -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 `. + + - BitBake's Cooker server :yocto_git:`can now be pinged + ` + from the UI. - Architecture-specific enhancements: + - This release adds initial support for the + :wikipedia:`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 `, + which is a thin wrapper over :oe_git:`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 + `__. + + - 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. -- cgit v1.2.3-54-g00ecf