123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
- Release 5.1 (styhead)
- =====================
- Migration notes for 5.1 (styhead)
- ---------------------------------
- This section provides migration information for moving to the Yocto
- Project 5.1 Release (codename "styhead") from the prior release.
- .. _migration-5.1-workdir-changes:
- :term:`WORKDIR` changes
- ~~~~~~~~~~~~~~~~~~~~~~~
- S = ${WORKDIR} no longer supported
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- If a recipe has :term:`S` set to be :term:`WORKDIR`, this is no longer
- supported, and an error will be issued. The recipe should be changed to::
- S = "${WORKDIR}/sources"
- UNPACKDIR = "${S}"
- Any :term:`WORKDIR` references where files from :term:`SRC_URI` are referenced
- should be changed to :term:`S`. These are commonly in :ref:`ref-tasks-compile`,
- :ref:`ref-tasks-compile`, :ref:`ref-tasks-install` and :term:`LIC_FILES_CHKSUM`.
- :term:`WORKDIR` references in recipes
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- :term:`WORKDIR` references in other recipes need auditing. If they reference
- files from :term:`SRC_URI`, they likely need changing to :term:`UNPACKDIR`.
- These are commonly in :ref:`ref-tasks-compile` and :ref:`ref-tasks-install`
- for things like service or configuration files. One unusual case is
- ``${WORKDIR}/${BP}`` which should probably be set to ``${S}``.
- References to ``../`` in :term:`LIC_FILES_CHKSUM` or elsewhere may need changing
- to :term:`UNPACKDIR`. References to :term:`WORKDIR` in ``sed`` commands are
- usually left as they are.
- General notes
- ^^^^^^^^^^^^^
- Files from :ref:`ref-tasks-unpack` now unpack to ``WORKDIR/sources-unpack/``
- rather than ``WORKDIR/``.
- If :term:`S` is set to a subdirectory under :term:`WORKDIR` and that
- subdirectory exists in ``sources-unpack`` after :ref:`ref-tasks-unpack` runs,
- it is moved to :term:`WORKDIR`. This means that ``S = "${WORKDIR}/${BP}"``,
- ``S = "${WORKDIR}/git"`` and also deeper paths continue to work as expected
- without changes. We cannot use symlinks to do this as it breaks autotools
- based recipes. Keeping all sources under ``sources-unpack`` wasn't considered
- as it meant more invasive recipes changes. The key objective was separating the
- :ref:`ref-tasks-unpack` task output from :term:`WORKDIR`.
- Previously, :term:`S` was always created but after the recent changes it is no
- longer the case. This means the check in ``do_unpack_qa`` triggers where
- :term:`S` is not created by a recipe while it didn't happen before. This can
- require to add an :term:`S` definition to a recipe that only uses
- ``file://`` :term:`SRC_URI` entries. To be consistent, the following pattern is
- recommended::
- S = "${WORKDIR}/sources"
- UNPACKDIR = "${S}"
- Building C files from :term:`UNPACKDIR` without setting :term:`S` to point at
- it does not work as the debug prefix mapping doesn't handle that.
- ``devtool`` and ``recipetool`` have been updated to handle this and their
- support for ``S = WORKDIR`` and ``oe-local-files`` has been removed.
- .. _migration-5.1-supported-kernel-versions:
- Supported kernel versions
- ~~~~~~~~~~~~~~~~~~~~~~~~~
- The :term:`OLDEST_KERNEL` setting is still "5.15" in this release, meaning that
- out the box, older kernels are not supported. See :ref:`4.3 migration notes
- <migration-4.3-supported-kernel-versions>` for details.
- .. _migration-5.1-supported-distributions:
- Supported distributions
- ~~~~~~~~~~~~~~~~~~~~~~~
- Compared to the previous releases, running BitBake is supported on new
- GNU/Linux distributions:
- - Ubuntu 24.10
- - Fedora 40
- - OpenSUSE Leap 15.5
- - OpenSUSE Leap 15.6
- On the other hand, some earlier distributions are no longer supported:
- - Ubuntu 23.04
- See :ref:`all supported distributions <system-requirements-supported-distros>`.
- .. _migration-5.1-go-changes:
- Go language changes
- ~~~~~~~~~~~~~~~~~~~
- - After dropping the custom :ref:`ref-tasks-unpack` from the
- :ref:`ref-classes-go` class, go recipes should now add
- ``destsuffix=${GO_SRCURI_DESTSUFFIX}`` to their :term:`SRC_URI` to extract
- them in the appropriate path. An example would be::
- SRC_URI = "git://go.googlesource.com/example;branch=master;protocol=https;destsuffix=${GO_SRCURI_DESTSUFFIX}"
- - Go modules are no longer compiled with ``--linkmode=external``.
- .. _migration-5.1-systemd-changes:
- systemd changes
- ~~~~~~~~~~~~~~~
- - New :term:`PACKAGECONFIG` value ``bpf-framework`` used to pre-compile eBPFs
- that are required for the systemd.resource-control features
- ``RestrictFileSystems`` and ``RestrictNetworkInterfaces``.
- .. _migration-5.1-recipe-changes:
- Recipe changes
- ~~~~~~~~~~~~~~
- - ``gobject-introspection``: the ``giscanner`` utility is now shipped as a
- separate package in ``gobject-introspection-tools``.
- - ``perf`` no longer uses ``libnewt`` for compiling its TUI.
- - ``openssl``: do not build the test suite unless ptests are enabled.
- .. _migration-5.1-removed-variables:
- Removed variables
- ~~~~~~~~~~~~~~~~~
- The following variables have been removed:
- - ``TCLIBCAPPEND`` is now removed as sharing :term:`TMPDIR` for multiple libc
- providers has been supported for years.
- - ``VOLATILE_LOG_DIR``: :term:`FILESYSTEM_PERMS_TABLES` is now used instead.
- By default, :term:`FILESYSTEM_PERMS_TABLES` now contains the value
- ``files/fs-perms-volatile-log.txt``, which means that volatile log is
- enabled. Users can disable the volatile log by removing the value
- ``files/fs-perms-volatile-log.txt`` from :term:`FILESYSTEM_PERMS_TABLES`.
- - ``VOLATILE_TMP_DIR``: :term:`FILESYSTEM_PERMS_TABLES` is now used instead.
- By default, :term:`FILESYSTEM_PERMS_TABLES` now contains the value
- ``files/fs-perms-volatile-tmp.txt``, which means that volatile tmp is
- enabled. Users can disable the volatile tmp by removing the value
- ``files/fs-perms-volatile-tmp.txt`` from :term:`FILESYSTEM_PERMS_TABLES`.
- .. _migration-5.1-removed-recipes:
- Removed recipes
- ~~~~~~~~~~~~~~~
- The following recipes have been removed in this release:
- - ``liba52``: superseded by ``ffmpeg``
- - ``libomxil``: recipe removed as its only consumer, the gstreamer omx plugin,
- was removed and has not been developed for several years
- - ``libnewt``: moved to meta-oe
- - ``mpeg2dec``: inactive for 10 years and superseded by ``ffmpeg``
- - ``pytest-runner``: moved to meta-python
- - ``python3-importlib-metadata``: moved to meta-python
- - ``python3-pathlib2``: moved to meta-python
- - ``python3-py``: moved to meta-python
- - ``python3-rfc3986-validator``: moved to meta-python
- - ``python3-toml``: moved to meta-python
- - ``python3-tomli``: moved to meta-python
- - ``usbinit``: recipe was poorly named as it is a gadget Ethernet driver.
- Gadget Ethernet is of questionable use now and usbinit isn't referenced/used
- anywhere within OE-Core.
- .. _migration-5.1-removed-classes:
- Removed classes
- ~~~~~~~~~~~~~~~
- The following classes have been removed in this release:
- - ``siteconfig``: removed as it was only used by ``ncurses`` and ``zlib`` and
- adding minimal added-value for a considerable amount of added runtime.
- .. _migration-5.1-misc-changes:
- Miscellaneous changes
- ~~~~~~~~~~~~~~~~~~~~~
- - `oe-selftest` now only rewrites environment variable paths that absolutely
- point to builddir (i.e ``X=$BUILDDIR/conf/`` is still rewritten to point to
- the `oe-selftest` ``conf/`` directory but not ``Y=$BUILDDIR/../bitbake/`` which
- still point to the ``bitbake/`` directory)
- For example (taken from :yocto_ab:`autobuilder <>` environment):
- :term:`BB_LOGCONFIG` is set as:
- ``BB_LOGCONFIG="${BUILDDIR}/../bitbake/contrib/autobuilderlog.json"``.
- Note the relative path starting from the build directory to outside of it.
- This path is not changed by `oe-selftest` anymore.
- Environment variables containing relative paths from tested build directory
- to outside of the original build directory may need to be updated as they
- won't be changed by `oe-selftest`.
- - Several sanity checks from the :ref:`ref-classes-insane` class, such as
- ``buildpaths``, have been promoted to errors instead of warnings.
- - The ``license-incompatible`` :term:`ERROR_QA` sanity check was renamed to
- ``license-exception``.
|