diff --git a/documentation/migration-guides/migration-5.2.rst b/documentation/migration-guides/migration-5.2.rst index 7b35e7721f..cb70e19da0 100644 --- a/documentation/migration-guides/migration-5.2.rst +++ b/documentation/migration-guides/migration-5.2.rst @@ -14,6 +14,28 @@ Migration notes for |yocto-ver| (|yocto-codename|) This section provides migration information for moving to the Yocto Project |yocto-ver| Release (codename "|yocto-codename|") from the prior release. +``debug-tweaks`` removed from :term:`IMAGE_FEATURES` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``debug-tweaks`` image feature is now removed because it was too vague about +what it achieved: an image on which the ``root`` user can login without a +password. + +To achieve the same result, the features previously added by ``debug-tweaks`` +should be manually added to the :term:`IMAGE_FEATURES` variable. These are: + +- ``allow-empty-password`` +- ``allow-root-login`` +- ``empty-root-password`` +- ``post-install-logging`` + +Such a statement would be:: + + IMAGE_FEATURES += "allow-empty-password allow-root-login empty-root-password post-install-logging" + +See the list of available image features in the :ref:`ref-features-image` +section of the Yocto Project Reference Manual. + Supported kernel versions ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -34,9 +56,24 @@ See :ref:`all supported distributions `. Go language changes ~~~~~~~~~~~~~~~~~~~ +Rust language changes +~~~~~~~~~~~~~~~~~~~~~ + +- Recipes inheriting the :ref:`ref-classes-cargo` do not install libraries by + default anymore. This behavior can be controlled by the + :term:`CARGO_INSTALL_LIBRARIES` variable. + systemd changes ~~~~~~~~~~~~~~~ +- Support for ``split-usr`` and ``unmerged-usr`` are now removed after Systemd + was updated to version 255. This option allowed installing Systemd in a + system where directories such as ``/lib``, ``/sbin`` or ``/bin`` are *not* + merged into ``/usr``. + + As a consequence, the ``systemd`` recipe no longer contains the ``usrmerge`` + :term:`PACKAGECONFIG` option as it is now implied by default. + Recipe changes ~~~~~~~~~~~~~~ @@ -45,16 +82,35 @@ Removed variables The following variables have been removed: +- ``PACKAGE_SNAP_LIB_SYMLINKS``: related to an unmaintained and obsolete + "micro" :term:`distro `. + +- ``SETUPTOOLS_INSTALL_ARGS``: obsolete and unused variable. + +- ``BB_DANGLINGAPPENDS_WARNONLY``: support for only warning the user when a + ``.bbappend`` file doesn't apply to the original recipe has been dropped. See + the :ref:`dev-manual/layers:Appending Other Layers Metadata With Your Layer` + section of the Yocto Project Development Tasks Manual for alternatives to + this variable. + Removed recipes ~~~~~~~~~~~~~~~ The following recipes have been removed in this release: +- ``liburi-perl``: moved to :oe_git:`meta-perl `. +- ``python3-isodate``: moved to :oe_git:`meta-python `. +- ``python3-iniparse``: removed as there are no consumers of this recipe in + :oe_git:`openembedded-core ` or :oe_git:`meta-openembedded `. + Removed classes ~~~~~~~~~~~~~~~ The following classes have been removed in this release: +- ``migrate_localcount.bbclass``: obsolete class for which code was already + removed in 2012. + Miscellaneous changes ~~~~~~~~~~~~~~~~~~~~~ diff --git a/documentation/migration-guides/release-notes-5.2.rst b/documentation/migration-guides/release-notes-5.2.rst index d03ed7a3b0..0eef448330 100644 --- a/documentation/migration-guides/release-notes-5.2.rst +++ b/documentation/migration-guides/release-notes-5.2.rst @@ -14,36 +14,377 @@ New Features / Enhancements in |yocto-ver| - New variables: + - ``linux-firmware``: Add the :term:`FIRMWARE_COMPRESSION` variable which + allows compression the firmwares provided by the ``linux-firmware`` recipe. + Possible values are ``xz`` and ``zst``. + - Kernel-related changes: + - :ref:`ref-classes-cml1`: in :ref:`ref-tasks-diffconfig`, do not override + ``.config`` with ``.config.orig``. This applies to other recipes using the + class :ref:`ref-classes-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 :ref:`ref-classes-kernel-yocto` classes now supports in-tree + configuration fragments. These can be added with the + :term:`KERNEL_FEATURES` variable. + + - The ``kern-tools`` recipe is now able to recognize files ending with + ``.config`` for :ref:`ref-classes-kernel-yocto`-based Kernel recipes. + + - Support the LZMA compression algorithm in the + :ref:`ref-classes-kernel-uboot` class. This can be done by setting the + variable :term:`FIT_KERNEL_COMP_ALG` to ``lzma``. + - New core recipes: + - ``python3-pefile``: required for the :ref:`ref-classes-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 :term:`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 :oe_git:`meta-openembedded + `, a recipe for hardware identification and + configuration data, needed by ``libdisplay-info``. + +- New core classes: + + - New :ref:`ref-classes-uki` class for building Unified Kernel Images (UKI). + Associated OEQA tests were also added for this class. + + - New :ref:`ref-classes-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 :ref:`ref-classes-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 :ref:`ref-tasks-compile` task run before + :ref:`ref-tasks-populate_lic` in the :ref:`ref-classes-go-mod` class so + license files are found by :ref:`ref-tasks-populate_lic` after the ``go + install`` command is run in :ref:`ref-tasks-compile`. + - Rust changes: -- wic Image Creator 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 :term:`WIC_SECTOR_SIZE` to control the sector size of Wic + images. - SDK-related changes: + - Add support for ZST-compression through :term:`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 :term:`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 :term:`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 :ref:`ref-classes-yocto-check-layer` class now uses + :term:`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 :term:`MACHINE` was not set in + the ``local.conf`` file. + - Packaging changes: -- Security 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 + :term:`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 :term:`S` cannot be equal to + :term:`WORKDIR`. + +- 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"). + +- :ref:`ref-classes-insane` class related changes: + + - Only parse ELF if they are files and not symlinks. + + - Check for ``RUNPATH`` in addition to ``RPATH`` in binaries. + + - Ensure :ref:`ref-classes-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 :ref:`ref-tasks-install` task. + +- :ref:`ref-classes-cve-check` changes: + + - Update the :term:`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 :term:`CVE_CHECK_SHOW_WARNINGS` variable and functionality. It + currently prints warning message for every unpatched CVE the + :ref:`ref-classes-cve-check` class finds. + +- New :term:`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 :term:`IMAGE_CMD` for + ``tar`` now strips ``atime`` and ``ctime`` from the archive content. + + - :term:`SOLIBSDEV` and :term:`SOLIBS` are now defined for the *mingw32* + architecture (``.dll``). + + - :ref:`rootfs-postcommands `: make opkg status reproducible. + + - The default :term:`KERNEL_CONSOLE` value is no longer ``ttyS0`` but the + first entry from the :term:`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 :oe_git:`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 + :term:`PROVIDES` to :term:`RPROVIDES` as ``virtual-x-terminal-emulator``. + Also make this recipe depend on the ``x11`` distro features with + :term:`REQUIRED_DISTRO_FEATURES`. + + - ``rxvt-unicode.inc``: disable the ``terminfo`` installation by setting + ``TIC`` to ``:`` in :term:`EXTRA_OECONF`, to avoid host contamination. + + - ``matchbox-terminal``: add ``x-terminal-emulator`` as :term:`RPROVIDES` + and set :term:`ALTERNATIVE` for the recipe. + + - ``default-providers.conf``: set ``rxvt-unicode`` as the default + ``virtual-x-terminal-emulator`` runtime provider with + :term:`PREFERRED_RPROVIDER`. + + - ``systemd``: set better sane time at startup by creating the + ``clock-epoch`` file in ``${libdir}`` if the ``set-time-epoch`` + :term:`PACKAGECONFIG` config is set. + + - ``cve-update-nvd2-native``: updating the database will now result in an + error if :term:`BB_NO_NETWORK` is enabled and + :term:`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 + :oe_git:`meta/conf/distro/include/init-manager-none.inc + ` + and :oe_git:`meta/conf/distro/include/init-manager-sysvinit.inc + `, + instead of :oe_git:`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 |yocto-ver| ~~~~~~~~~~~~~~~~~~~~~~~~~~~