Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 1 | .. SPDX-License-Identifier: CC-BY-SA-2.0-UK |
| 2 | |
| 3 | Release 4.3 (nanbield) |
| 4 | ======================== |
| 5 | |
| 6 | Migration notes for 4.3 (nanbield) |
| 7 | ------------------------------------ |
| 8 | |
| 9 | This section provides migration information for moving to the Yocto |
| 10 | Project 4.3 Release (codename "nanbield") from the prior release. |
| 11 | |
| 12 | .. _migration-4.3-supported-kernel-versions: |
| 13 | |
| 14 | Supported kernel versions |
| 15 | ~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 16 | |
| 17 | The :term:`OLDEST_KERNEL` setting has been changed to "5.15" in this release, meaning that |
| 18 | out the box, older kernels are not supported. There were two reasons for this. |
| 19 | Firstly it allows glibc optimisations that improve the performance of the system |
| 20 | by removing compatibility code and using modern kernel APIs exclusively. The second |
| 21 | issue was this allows 64 bit time support even on 32 bit platforms and resolves Y2038 |
| 22 | issues. |
| 23 | |
| 24 | It is still possible to override this value and build for older kernels, this is just |
| 25 | no longer the default supported configuration. This setting does not affect which |
| 26 | kernel versions SDKs will run against and does not affect which versions of the kernel |
| 27 | can be used to run builds. |
| 28 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 29 | .. _migration-4.3-layername-override: |
| 30 | |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 31 | Layername override implications |
| 32 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 33 | |
| 34 | Code can now know which layer a recipe is coming from through the newly added |
| 35 | :term:`FILE_LAYERNAME` variable and the ``layer-<layername> override``. This is being used |
| 36 | for enabling QA checks on a per layer basis. For existing code this has the |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 37 | side effect that the QA checks will apply to recipes being bbappended |
| 38 | from other layers - for example, patches added through such bbappends will now |
| 39 | need to have the "Upstream-Status" specified in the patch header. |
| 40 | |
| 41 | .. _migration-4.3-compiling-changes: |
| 42 | |
| 43 | Compiling changes |
| 44 | ~~~~~~~~~~~~~~~~~ |
| 45 | |
| 46 | - Code on 32 bit platforms is now compiled with largefile support and 64 |
| 47 | bit ``time_t``, to avoid the Y2038 time overflow issue. This breaks the ABI |
| 48 | and could break existing programs in untested layers. |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 49 | |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 50 | .. _migration-4.3-supported-distributions: |
| 51 | |
| 52 | Supported distributions |
| 53 | ~~~~~~~~~~~~~~~~~~~~~~~ |
| 54 | |
| 55 | This release supports running BitBake on new GNU/Linux distributions: |
| 56 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 57 | - Ubuntu 22.10 |
| 58 | - Fedora 38 |
| 59 | - Debian 12 |
| 60 | - CentOS Stream 8 |
| 61 | - AlmaLinux 8.8 |
| 62 | - AlmaLinux 9.2 |
| 63 | |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 64 | On the other hand, some earlier distributions are no longer supported: |
| 65 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 66 | - Fedora 36 |
| 67 | - AlmaLinux 8.7 |
| 68 | - AlmaLinux 9.1 |
| 69 | |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 70 | See :ref:`all supported distributions <system-requirements-supported-distros>`. |
| 71 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 72 | .. _migration-4.3-removed-machines: |
| 73 | |
| 74 | edgerouter machine removed |
| 75 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 76 | |
| 77 | The ``edgerouter`` reference BSP for the MIPS architecture in ``meta-yocto-bsp`` |
| 78 | has been removed as the hardware has been unavailable for some time. There is no |
| 79 | suitable reference MIPS hardware to replace it with, but the MIPS architecture |
| 80 | will continue to get coverage via QEMU build/boot testing. |
| 81 | |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 82 | .. _migration-4.3-go-changes: |
| 83 | |
| 84 | Go language changes |
| 85 | ~~~~~~~~~~~~~~~~~~~ |
| 86 | |
| 87 | - Support for the Glide package manager has been removed, as ``go mod`` |
| 88 | has become the standard. |
| 89 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 90 | .. _migration-4.3-systemd-changes: |
| 91 | |
| 92 | systemd changes |
Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 93 | ~~~~~~~~~~~~~~~ |
| 94 | |
| 95 | Upstream systemd is now more strict on filesystem layout and the ``usrmerge`` |
| 96 | feature is therefore required alongside systemd. The Poky test configurations |
| 97 | have been updated accordingly for systemd. |
| 98 | |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 99 | .. _migration-4.3-recipe-changes: |
| 100 | |
| 101 | Recipe changes |
| 102 | ~~~~~~~~~~~~~~ |
| 103 | |
| 104 | - Runtime testing of ptest now fails if no test results are returned by |
| 105 | any given ptest. |
| 106 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 107 | .. _migration-4.3-deprecated-variables: |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 108 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 109 | Deprecated variables |
| 110 | ~~~~~~~~~~~~~~~~~~~~ |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 111 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 112 | The following variables have been deprecated: |
| 113 | |
| 114 | - :term:`CVE_CHECK_IGNORE`: use :term:`CVE_STATUS` instead. |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 115 | |
| 116 | .. _migration-4.3-removed-variables: |
| 117 | |
| 118 | Removed variables |
| 119 | ~~~~~~~~~~~~~~~~~ |
| 120 | |
| 121 | The following variables have been removed: |
| 122 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 123 | - ``AUTHOR`` |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 124 | - ``PERLARCH`` |
| 125 | - ``PERLVERSION`` |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 126 | - ``QEMU_USE_SLIRP`` - add ``slirp`` to ``TEST_RUNQEMUPARAMS`` instead. |
| 127 | - ``SERIAL_CONSOLES_CHECK`` - no longer necessary because all |
| 128 | consoles listed in :term:`SERIAL_CONSOLES` are checked for their existence |
| 129 | before a ``getty`` is started. |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 130 | |
| 131 | .. _migration-4.3-removed-recipes: |
| 132 | |
| 133 | Removed recipes |
| 134 | ~~~~~~~~~~~~~~~ |
| 135 | |
| 136 | The following recipes have been removed in this release: |
| 137 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 138 | - ``apmd``: obsolete (``apm`` in :term:`MACHINE_FEATURES` also removed). |
| 139 | - ``cve-update-db-native``: functionally replaced by ``cve-update-nvd2-native`` |
| 140 | - ``gcr3``: no longer needed by core recipes, moved to meta-gnome (gcr, i.e. version 4.x, is still provided). |
| 141 | - ``glide``: as explained in :ref:`migration-4.3-go-changes`. |
| 142 | - ``libdmx``: obsolete |
| 143 | - ``linux-yocto`` version 5.15 (versions 6.1 and 6.5 provided instead). |
| 144 | - ``python3-async``: obsolete - no longer needed by ``python3-gitdb`` or any other core recipe |
| 145 | - ``rust-hello-world``: there are sufficient other Rust recipes and test cases such that this is no longer needed. |
| 146 | |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 147 | |
| 148 | .. _migration-4.3-removed-classes: |
| 149 | |
| 150 | Removed classes |
| 151 | ~~~~~~~~~~~~~~~ |
| 152 | |
| 153 | The following classes have been removed in this release: |
| 154 | |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 155 | - ``glide``: as explained in :ref:`migration-4.3-go-changes`. |
| 156 | |
| 157 | |
| 158 | Output file naming changes |
| 159 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 160 | |
| 161 | In 4.3 there are some minor differences in image and SDK output file names. |
| 162 | If you rely on the existing naming (e.g. in external scripts) you may need to |
| 163 | either modify configuration or adapt to the new naming. Further details: |
| 164 | |
| 165 | - :term:`IMAGE_NAME` and :term:`IMAGE_LINK_NAME` now include the |
| 166 | :term:`IMAGE_NAME_SUFFIX` value directly. In practical terms, this means |
| 167 | that ``.rootfs`` will now appear in image output file names. If you do not |
| 168 | wish to have the ``.rootfs`` suffix used, you can just set |
| 169 | :term:`IMAGE_NAME_SUFFIX` to "" and this will now be consistently respected |
| 170 | in both the image file and image file symlink names. As part of this change, |
| 171 | support for the ``imgsuffix`` task varflag has been dropped (mostly |
| 172 | an internal implementation detail, but if you were implementing a custom |
| 173 | image construction with a task in a similar manner to ``do_bootimg`` |
| 174 | you may have been using this). |
| 175 | |
| 176 | - :term:`SDK_NAME` now includes the values of :term:`IMAGE_BASENAME` and |
| 177 | :term:`MACHINE` so that they are unique when building SDKs for different |
| 178 | images and machines. |
| 179 | |
| 180 | |
| 181 | |
| 182 | .. _migration-4.3-pr-pe: |
| 183 | |
| 184 | Versioning changes |
| 185 | ~~~~~~~~~~~~~~~~~~ |
| 186 | |
| 187 | - :term:`PR` values have been removed from all core recipes - distro maintainers |
| 188 | who make use of :term:`PR` values would need to curate these already so the |
| 189 | sparsely set base values would not be that useful anymore. If you have been |
| 190 | relying on these (i.e. you are maintaining a binary package feed where package |
| 191 | versions should only ever increase), double-check the output (perhaps with the |
| 192 | help of the :ref:`ref-classes-buildhistory` class) to ensure that package |
| 193 | versions are consistent. |
| 194 | |
| 195 | - The :term:`PR` value can no longer be set from the recipe file name - this |
| 196 | was rarely used, but in any case is no longer supported. |
| 197 | |
| 198 | - :term:`PE` and :term:`PR` are no longer included in the work directory path |
| 199 | (:term:`WORKDIR`). This may break some tool assumptions about directory paths, |
| 200 | but those should really be querying paths from the build system (or not poking |
| 201 | into :term:`WORKDIR` externally). |
| 202 | |
| 203 | - Source revision information has been moved from :term:`PV` to :term:`PKGV`. |
| 204 | The user visible effect of this change is that :term:`PV` will no longer have |
| 205 | revision information in it and this will now be appended to the :term:`PV` |
| 206 | value through :term:`PKGV` when the packages are written out (as long as "+" |
| 207 | is present in the :term:`PKGV` value). Since :term:`PV` is used in |
| 208 | :term:`STAMP` and :term:`WORKDIR`, you may notice small directory naming and |
| 209 | stamp naming changes. |
| 210 | |
| 211 | - The :term:`SRCPV` variable is no longer needed in :term:`PV`, but since |
| 212 | the default :term:`SRCPV` value is now "", using it is effectively now just a |
| 213 | null operation - you can remove it (leaving behind the "+") , but it is not |
| 214 | yet required to do so. |
| 215 | |
| 216 | |
| 217 | .. _migration-4.3-qemu-changes: |
| 218 | |
| 219 | QEMU changes |
| 220 | ~~~~~~~~~~~~ |
| 221 | |
| 222 | - The ``runqemu`` script no longer systematically adds two serial ports |
| 223 | (``--serial null`` and ``-serial mon:stdio``) to the QEMU emulated machine |
| 224 | if the user already adds such ports through the ``QB_OPT_APPEND`` setting. |
| 225 | |
| 226 | If the user adds one port, only ``--serial null`` is added, and |
| 227 | ``-serial mon:stdio`` is no longer passed. If the user adds more than one |
| 228 | port, ``--serial null`` is no longer added either. This can break some |
| 229 | existing QEMU based configurations expecting such serial ports to be added |
| 230 | when ``runqemu`` is executed. |
| 231 | |
| 232 | This change was made to avoid exceeding two serial ports, which interferes |
| 233 | with automated testing. |
| 234 | |
| 235 | - ``runqemu`` now uses the ``ip tuntap`` command instead of ``tunctl``, and |
| 236 | thus ``tunctl`` is no longer built by the ``qemu-helper-native`` recipe; if |
| 237 | for some reason you were calling ``tunctl`` directly from your own scripts |
| 238 | you should switch to calling ``ip tuntap`` instead. |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 239 | |
| 240 | .. _migration-4.3-misc-changes: |
| 241 | |
| 242 | Miscellaneous changes |
| 243 | ~~~~~~~~~~~~~~~~~~~~~ |
| 244 | |
| 245 | - The ``-crosssdk`` suffix and any :term:`MLPREFIX` were removed from |
| 246 | ``virtual/XXX`` provider/dependencies where a ``PREFIX`` was used as well, |
| 247 | as we don't need both and it made automated dependency rewriting |
| 248 | unnecessarily complex. In general this only affects internal toolchain |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 249 | dependencies so isn't end user visible, but if for some reason you have |
| 250 | custom classes or recipes that rely upon the old providers then you will |
| 251 | need to update those. |
Andrew Geissler | 3eeda90 | 2023-05-19 10:14:02 -0500 | [diff] [blame] | 252 | |