blob: 8ce2306e4263ae4caf6a552e239e99a3f543d7be [file] [log] [blame]
Andrew Geissler595f6302022-01-24 19:11:47 +00001Release 3.5 (kirkstone)
2=======================
3
4This section provides migration information for moving to the Yocto
5Project 3.5 Release (codename "kirkstone") from the prior release.
6
7Recipe changes
8--------------
9
Andrew Geissler9aee5002022-03-30 16:27:02 +000010- To use more `inclusive language <https://inclusivenaming.org/>`__
11 in the code and documentation, some variables have been renamed or even
12 deleted. BitBake will stop with an error when renamed or removed variables
13 still exist in your recipes or configuration.
14
15 A :oe_git:`convert-variable-renames.py
16 </openembedded-core/tree/scripts/contrib/convert-variable-renames.py>`
17 script is provided to convert your recipes and configuration,
18 and also warns you about the use of problematic words.
19
Andrew Geissler595f6302022-01-24 19:11:47 +000020- Because of the uncertainty in future default branch names in git repositories,
21 it is now required to add a branch name to all URLs described
22 by ``git://`` and ``gitsm://`` :term:`SRC_URI` entries. For example::
23
24 SRC_URI = "git://git.denx.de/u-boot.git;branch=master"
25
26 A :oe_git:`convert-srcuri </openembedded-core/tree/scripts/contrib/convert-srcuri.py>`
27 script to convert your recipes is available in :term:`OpenEmbedded-Core (OE-Core)`
28 and in :term:`Poky`.
29
30- Because of `GitHub dropping support for the git:
31 protocol <https://github.blog/2021-09-01-improving-git-protocol-security-github/>`__,
32 recipes now need to use ``;protocol=https`` at the end of GitHub
33 URLs. The same script as above can be used to convert the recipes.
34
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000035- Network access from tasks is now disabled by default on kernels which support
36 this feature (on most recent distros such as CentOS 8 and Debian 11 onwards).
37 This means that tasks accessing the network need to be marked as such with the ``network``
38 flag. For example::
39
40 do_mytask[network] = "1"
41
42 This is allowed by default from ``do_fetch`` but not from any of our other standard
43 tasks. Recipes shouldn't be accessing the network outside of ``do_fetch`` as it
44 usually undermines fetcher source mirroring, image and licence manifests, software
45 auditing and supply chain security.
46
Andrew Geissler595f6302022-01-24 19:11:47 +000047- The :term:`TOPDIR` variable and the current working directory are no longer modified
48 when parsing recipes. Any code depending on that behaviour will no longer work.
49
50- The ``append``, ``prepend`` and ``remove`` operators can now only be combined with
51 ``=`` and ``:=`` operators. To the exception of the ``append`` plus ``+=`` and
52 ``prepend`` plus ``=+`` combinations, all combinations could be factored up to the
53 ``append``, ``prepend`` or ``remove`` in the combination. This brought a lot of
54 confusion on how the override style syntax operators work and should be used.
55 Therefore, those combinations can simply be replaced by a single ``append``,
56 ``prepend`` or ``remove`` operator without any additional change.
57 For the ``append`` plus ``+=`` (and ``prepend`` plus ``=+``) combinations,
58 the content should be prefixed (respectively suffixed) by a space to maintain
59 the same behavior. You can learn more about override style syntax operators
60 (``append``, ``prepend`` and ``remove``) in the BitBake documentation:
61 :ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:appending and prepending (override style syntax)`
62 and :ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:removal (override style syntax)`.
63
64- :ref:`allarch <ref-classes-allarch>` packagegroups can no longer depend on packages
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000065 which use :term:`PKG` renaming such as :ref:`ref-classes-debian`.
Andrew Geissler595f6302022-01-24 19:11:47 +000066
Andrew Geissler9aee5002022-03-30 16:27:02 +000067Class changes
68-------------
69
70- The `distutils*.bbclasses` have been moved to `meta-python`. The classes and
71 `DISTUTILS*` variables have been removed from the documentation.
72
73- ``blacklist.bbclass`` is removed and the functionality moved to the
74 :ref:`base <ref-classes-base>` class with a more descriptive
75 ``varflag`` named :term:`SKIP_RECIPE` which will use the `SkipRecipe()`
76 function. The usage will remain the same::
77
78 SKIP_RECIPE[my-recipe] = "Reason for skipping recipe"