1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK 2 3Release 5.1 (styhead) 4===================== 5 6Migration notes for 5.1 (styhead) 7--------------------------------- 8 9This section provides migration information for moving to the Yocto 10Project 5.1 Release (codename "styhead") from the prior release. 11 12.. _migration-5.1-workdir-changes: 13 14:term:`WORKDIR` changes 15~~~~~~~~~~~~~~~~~~~~~~~ 16 17S = ${WORKDIR} no longer supported 18^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 19 20If a recipe has :term:`S` set to be :term:`WORKDIR`, this is no longer 21supported, and an error will be issued. The recipe should be changed to:: 22 23 S = "${WORKDIR}/sources" 24 UNPACKDIR = "${S}" 25 26Any :term:`WORKDIR` references where files from :term:`SRC_URI` are referenced 27should be changed to :term:`S`. These are commonly in :ref:`ref-tasks-compile`, 28:ref:`ref-tasks-compile`, :ref:`ref-tasks-install` and :term:`LIC_FILES_CHKSUM`. 29 30:term:`WORKDIR` references in recipes 31^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 32 33:term:`WORKDIR` references in other recipes need auditing. If they reference 34files from :term:`SRC_URI`, they likely need changing to :term:`UNPACKDIR`. 35These are commonly in :ref:`ref-tasks-compile` and :ref:`ref-tasks-install` 36for things like service or configuration files. One unusual case is 37``${WORKDIR}/${BP}`` which should probably be set to ``${S}``. 38 39References to ``../`` in :term:`LIC_FILES_CHKSUM` or elsewhere may need changing 40to :term:`UNPACKDIR`. References to :term:`WORKDIR` in ``sed`` commands are 41usually left as they are. 42 43General notes 44^^^^^^^^^^^^^ 45 46Files from :ref:`ref-tasks-unpack` now unpack to ``WORKDIR/sources-unpack/`` 47rather than ``WORKDIR/``. 48 49If :term:`S` is set to a subdirectory under :term:`WORKDIR` and that 50subdirectory exists in ``sources-unpack`` after :ref:`ref-tasks-unpack` runs, 51it is moved to :term:`WORKDIR`. This means that ``S = "${WORKDIR}/${BP}"``, 52``S = "${WORKDIR}/git"`` and also deeper paths continue to work as expected 53without changes. We cannot use symlinks to do this as it breaks autotools 54based recipes. Keeping all sources under ``sources-unpack`` wasn't considered 55as it meant more invasive recipes changes. The key objective was separating the 56:ref:`ref-tasks-unpack` task output from :term:`WORKDIR`. 57 58Previously, :term:`S` was always created but after the recent changes it is no 59longer the case. This means the check in ``do_unpack_qa`` triggers where 60:term:`S` is not created by a recipe while it didn't happen before. This can 61require to add an :term:`S` definition to a recipe that only uses 62``file://`` :term:`SRC_URI` entries. To be consistent, the following pattern is 63recommended:: 64 65 S = "${WORKDIR}/sources" 66 UNPACKDIR = "${S}" 67 68Building C files from :term:`UNPACKDIR` without setting :term:`S` to point at 69it does not work as the debug prefix mapping doesn't handle that. 70 71``devtool`` and ``recipetool`` have been updated to handle this and their 72support for ``S = WORKDIR`` and ``oe-local-files`` has been removed. 73 74.. _migration-5.1-supported-kernel-versions: 75 76Supported kernel versions 77~~~~~~~~~~~~~~~~~~~~~~~~~ 78 79The :term:`OLDEST_KERNEL` setting is still "5.15" in this release, meaning that 80out the box, older kernels are not supported. See :ref:`4.3 migration notes 81<migration-4.3-supported-kernel-versions>` for details. 82 83.. _migration-5.1-supported-distributions: 84 85Supported distributions 86~~~~~~~~~~~~~~~~~~~~~~~ 87 88Compared to the previous releases, running BitBake is supported on new 89GNU/Linux distributions: 90 91- Ubuntu 24.10 92- Fedora 40 93- OpenSUSE Leap 15.5 94- OpenSUSE Leap 15.6 95 96On the other hand, some earlier distributions are no longer supported: 97 98- Ubuntu 23.04 99 100See :ref:`all supported distributions <system-requirements-supported-distros>`. 101 102.. _migration-5.1-go-changes: 103 104Go language changes 105~~~~~~~~~~~~~~~~~~~ 106 107- After dropping the custom :ref:`ref-tasks-unpack` from the 108 :ref:`ref-classes-go` class, go recipes should now add 109 ``destsuffix=${GO_SRCURI_DESTSUFFIX}`` to their :term:`SRC_URI` to extract 110 them in the appropriate path. An example would be:: 111 112 SRC_URI = "git://go.googlesource.com/example;branch=master;protocol=https;destsuffix=${GO_SRCURI_DESTSUFFIX}" 113 114- Go modules are no longer compiled with ``--linkmode=external``. 115 116.. _migration-5.1-systemd-changes: 117 118systemd changes 119~~~~~~~~~~~~~~~ 120 121- New :term:`PACKAGECONFIG` value ``bpf-framework`` used to pre-compile eBPFs 122 that are required for the systemd.resource-control features 123 ``RestrictFileSystems`` and ``RestrictNetworkInterfaces``. 124 125.. _migration-5.1-recipe-changes: 126 127Recipe changes 128~~~~~~~~~~~~~~ 129 130- ``gobject-introspection``: the ``giscanner`` utility is now shipped as a 131 separate package in ``gobject-introspection-tools``. 132 133- ``perf`` no longer uses ``libnewt`` for compiling its TUI. 134 135- ``openssl``: do not build the test suite unless ptests are enabled. 136 137.. _migration-5.1-removed-variables: 138 139Removed variables 140~~~~~~~~~~~~~~~~~ 141 142The following variables have been removed: 143 144- ``TCLIBCAPPEND`` is now removed as sharing :term:`TMPDIR` for multiple libc 145 providers has been supported for years. 146 147- ``VOLATILE_LOG_DIR``: :term:`FILESYSTEM_PERMS_TABLES` is now used instead. 148 By default, :term:`FILESYSTEM_PERMS_TABLES` now contains the value 149 ``files/fs-perms-volatile-log.txt``, which means that volatile log is 150 enabled. Users can disable the volatile log by removing the value 151 ``files/fs-perms-volatile-log.txt`` from :term:`FILESYSTEM_PERMS_TABLES`. 152 153- ``VOLATILE_TMP_DIR``: :term:`FILESYSTEM_PERMS_TABLES` is now used instead. 154 By default, :term:`FILESYSTEM_PERMS_TABLES` now contains the value 155 ``files/fs-perms-volatile-tmp.txt``, which means that volatile tmp is 156 enabled. Users can disable the volatile tmp by removing the value 157 ``files/fs-perms-volatile-tmp.txt`` from :term:`FILESYSTEM_PERMS_TABLES`. 158 159.. _migration-5.1-removed-recipes: 160 161Removed recipes 162~~~~~~~~~~~~~~~ 163 164The following recipes have been removed in this release: 165 166- ``liba52``: superseded by ``ffmpeg`` 167- ``libomxil``: recipe removed as its only consumer, the gstreamer omx plugin, 168 was removed and has not been developed for several years 169- ``libnewt``: moved to meta-oe 170- ``mpeg2dec``: inactive for 10 years and superseded by ``ffmpeg`` 171- ``pytest-runner``: moved to meta-python 172- ``python3-importlib-metadata``: moved to meta-python 173- ``python3-pathlib2``: moved to meta-python 174- ``python3-py``: moved to meta-python 175- ``python3-rfc3986-validator``: moved to meta-python 176- ``python3-toml``: moved to meta-python 177- ``python3-tomli``: moved to meta-python 178- ``usbinit``: recipe was poorly named as it is a gadget Ethernet driver. 179 Gadget Ethernet is of questionable use now and usbinit isn't referenced/used 180 anywhere within OE-Core. 181 182 183.. _migration-5.1-removed-classes: 184 185Removed classes 186~~~~~~~~~~~~~~~ 187 188The following classes have been removed in this release: 189 190- ``siteconfig``: removed as it was only used by ``ncurses`` and ``zlib`` and 191 adding minimal added-value for a considerable amount of added runtime. 192 193 194.. _migration-5.1-misc-changes: 195 196Miscellaneous changes 197~~~~~~~~~~~~~~~~~~~~~ 198 199- `oe-selftest` now only rewrites environment variable paths that absolutely 200 point to builddir (i.e ``X=$BUILDDIR/conf/`` is still rewritten to point to 201 the `oe-selftest` ``conf/`` directory but not ``Y=$BUILDDIR/../bitbake/`` which 202 still point to the ``bitbake/`` directory) 203 204 For example (taken from :yocto_ab:`autobuilder <>` environment): 205 :term:`BB_LOGCONFIG` is set as: 206 ``BB_LOGCONFIG="${BUILDDIR}/../bitbake/contrib/autobuilderlog.json"``. 207 Note the relative path starting from the build directory to outside of it. 208 This path is not changed by `oe-selftest` anymore. 209 210 Environment variables containing relative paths from tested build directory 211 to outside of the original build directory may need to be updated as they 212 won't be changed by `oe-selftest`. 213 214- Several sanity checks from the :ref:`ref-classes-insane` class, such as 215 ``buildpaths``, have been promoted to errors instead of warnings. 216 217- The ``license-incompatible`` :term:`ERROR_QA` sanity check was renamed to 218 ``license-exception``. 219