Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 1 | .. SPDX-License-Identifier: CC-BY-SA-2.0-UK |
| 2 | |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 3 | Release 1.5 (dora) |
| 4 | ================== |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 5 | |
| 6 | This section provides migration information for moving to the Yocto |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 7 | Project 1.5 Release (codename "dora") from the prior release. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 8 | |
| 9 | .. _migration-1.5-host-dependency-changes: |
| 10 | |
| 11 | Host Dependency Changes |
| 12 | ----------------------- |
| 13 | |
| 14 | The OpenEmbedded build system now has some additional requirements on |
| 15 | the host system: |
| 16 | |
| 17 | - Python 2.7.3+ |
| 18 | |
| 19 | - Tar 1.24+ |
| 20 | |
| 21 | - Git 1.7.8+ |
| 22 | |
| 23 | - Patched version of Make if you are using 3.82. Most distributions |
| 24 | that provide Make 3.82 use the patched version. |
| 25 | |
| 26 | If the Linux distribution you are using on your build host does not |
| 27 | provide packages for these, you can install and use the Buildtools |
| 28 | tarball, which provides an SDK-like environment containing them. |
| 29 | |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 30 | For more information on this requirement, see the |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 31 | ":ref:`system-requirements-buildtools`" section. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 32 | |
| 33 | .. _migration-1.5-atom-pc-bsp: |
| 34 | |
| 35 | ``atom-pc`` Board Support Package (BSP) |
| 36 | --------------------------------------- |
| 37 | |
| 38 | The ``atom-pc`` hardware reference BSP has been replaced by a |
| 39 | ``genericx86`` BSP. This BSP is not necessarily guaranteed to work on |
| 40 | all x86 hardware, but it will run on a wider range of systems than the |
| 41 | ``atom-pc`` did. |
| 42 | |
| 43 | .. note:: |
| 44 | |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 45 | Additionally, a ``genericx86-64`` BSP has been added for 64-bit Atom |
| 46 | systems. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 47 | |
| 48 | .. _migration-1.5-bitbake: |
| 49 | |
| 50 | BitBake |
| 51 | ------- |
| 52 | |
| 53 | The following changes have been made that relate to BitBake: |
| 54 | |
| 55 | - BitBake now supports a ``_remove`` operator. The addition of this |
| 56 | operator means you will have to rename any items in recipe space |
| 57 | (functions, variables) whose names currently contain ``_remove_`` or |
| 58 | end with ``_remove`` to avoid unexpected behavior. |
| 59 | |
| 60 | - BitBake's global method pool has been removed. This method is not |
| 61 | particularly useful and led to clashes between recipes containing |
| 62 | functions that had the same name. |
| 63 | |
| 64 | - The "none" server backend has been removed. The "process" server |
| 65 | backend has been serving well as the default for a long time now. |
| 66 | |
| 67 | - The ``bitbake-runtask`` script has been removed. |
| 68 | |
| 69 | - ``${``\ :term:`P`\ ``}`` and |
| 70 | ``${``\ :term:`PF`\ ``}`` are no longer added to |
| 71 | :term:`PROVIDES` by default in ``bitbake.conf``. |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 72 | These version-specific :term:`PROVIDES` items were seldom used. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 73 | Attempting to use them could result in two versions being built |
| 74 | simultaneously rather than just one version due to the way BitBake |
| 75 | resolves dependencies. |
| 76 | |
| 77 | .. _migration-1.5-qa-warnings: |
| 78 | |
| 79 | QA Warnings |
| 80 | ----------- |
| 81 | |
| 82 | The following changes have been made to the package QA checks: |
| 83 | |
| 84 | - If you have customized :term:`ERROR_QA` or |
| 85 | :term:`WARN_QA` values in your configuration, check |
| 86 | that they contain all of the issues that you wish to be reported. |
| 87 | Previous Yocto Project versions contained a bug that meant that any |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 88 | item not mentioned in :term:`ERROR_QA` or :term:`WARN_QA` would be treated as |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 89 | a warning. Consequently, several important items were not already in |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 90 | the default value of :term:`WARN_QA`. All of the possible QA checks are |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 91 | now documented in the ":ref:`ref-classes-insane`" section. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 92 | |
| 93 | - An additional QA check has been added to check if |
| 94 | ``/usr/share/info/dir`` is being installed. Your recipe should delete |
| 95 | this file within :ref:`ref-tasks-install` if "make |
| 96 | install" is installing it. |
| 97 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 98 | - If you are using the :ref:`ref-classes-buildhistory` class, the check for the |
| 99 | package version going backwards is now controlled using a standard QA check. |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 100 | Thus, if you have customized your :term:`ERROR_QA` or :term:`WARN_QA` values |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 101 | and still wish to have this check performed, you should add |
| 102 | "version-going-backwards" to your value for one or the other |
| 103 | variables depending on how you wish it to be handled. See the |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 104 | documented QA checks in the ":ref:`ref-classes-insane`" section. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 105 | |
| 106 | .. _migration-1.5-directory-layout-changes: |
| 107 | |
| 108 | Directory Layout Changes |
| 109 | ------------------------ |
| 110 | |
| 111 | The following directory changes exist: |
| 112 | |
| 113 | - Output SDK installer files are now named to include the image name |
| 114 | and tuning architecture through the :term:`SDK_NAME` |
| 115 | variable. |
| 116 | |
| 117 | - Images and related files are now installed into a directory that is |
| 118 | specific to the machine, instead of a parent directory containing |
| 119 | output files for multiple machines. The |
| 120 | :term:`DEPLOY_DIR_IMAGE` variable continues |
| 121 | to point to the directory containing images for the current |
| 122 | :term:`MACHINE` and should be used anywhere there is a |
| 123 | need to refer to this directory. The ``runqemu`` script now uses this |
| 124 | variable to find images and kernel binaries and will use BitBake to |
| 125 | determine the directory. Alternatively, you can set the |
Andrew Geissler | 5f35090 | 2021-07-23 13:09:54 -0400 | [diff] [blame] | 126 | :term:`DEPLOY_DIR_IMAGE` variable in the external environment. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 127 | |
| 128 | - When buildhistory is enabled, its output is now written under the |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 129 | :term:`Build Directory` rather than :term:`TMPDIR`. Doing so makes |
| 130 | it easier to delete :term:`TMPDIR` and preserve the build history. |
| 131 | Additionally, data for produced SDKs is now split by :term:`IMAGE_NAME`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 132 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 133 | - When :ref:`ref-classes-buildhistory` is enabled, its output |
| 134 | is now written under the :term:`Build Directory` rather than :term:`TMPDIR`. |
| 135 | Doing so makes it easier to delete :term:`TMPDIR` and preserve the build |
| 136 | history. Additionally, data for produced SDKs is now split by :term:`IMAGE_NAME`. |
| 137 | |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 138 | - The ``pkgdata`` directory produced as part of the packaging process |
| 139 | has been collapsed into a single machine-specific directory. This |
| 140 | directory is located under ``sysroots`` and uses a machine-specific |
| 141 | name (i.e. ``tmp/sysroots/machine/pkgdata``). |
| 142 | |
| 143 | .. _migration-1.5-shortened-git-srcrev-values: |
| 144 | |
| 145 | Shortened Git ``SRCREV`` Values |
| 146 | ------------------------------- |
| 147 | |
| 148 | BitBake will now shorten revisions from Git repositories from the normal |
| 149 | 40 characters down to 10 characters within :term:`SRCPV` |
Patrick Williams | 0ca19cc | 2021-08-16 14:03:13 -0500 | [diff] [blame] | 150 | for improved usability in path and filenames. This change should be |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 151 | safe within contexts where these revisions are used because the chances |
| 152 | of spatially close collisions is very low. Distant collisions are not a |
| 153 | major issue in the way the values are used. |
| 154 | |
| 155 | .. _migration-1.5-image-features: |
| 156 | |
| 157 | ``IMAGE_FEATURES`` |
| 158 | ------------------ |
| 159 | |
| 160 | The following changes have been made that relate to |
| 161 | :term:`IMAGE_FEATURES`: |
| 162 | |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 163 | - The value of :term:`IMAGE_FEATURES` is now validated to ensure invalid |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 164 | feature items are not added. Some users mistakenly add package names |
| 165 | to this variable instead of using |
| 166 | :term:`IMAGE_INSTALL` in order to have the |
| 167 | package added to the image, which does not work. This change is |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 168 | intended to catch those kinds of situations. Valid :term:`IMAGE_FEATURES` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 169 | are drawn from ``PACKAGE_GROUP`` definitions, |
| 170 | :term:`COMPLEMENTARY_GLOB` and a new |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 171 | "validitems" varflag on :term:`IMAGE_FEATURES`. The "validitems" varflag |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 172 | change allows additional features to be added if they are not |
| 173 | provided using the previous two mechanisms. |
| 174 | |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 175 | - The previously deprecated "apps-console-core" :term:`IMAGE_FEATURES` item |
| 176 | is no longer supported. Add "splash" to :term:`IMAGE_FEATURES` if you |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 177 | wish to have the splash screen enabled, since this is all that |
| 178 | apps-console-core was doing. |
| 179 | |
| 180 | .. _migration-1.5-run: |
| 181 | |
| 182 | ``/run`` |
| 183 | -------- |
| 184 | |
| 185 | The ``/run`` directory from the Filesystem Hierarchy Standard 3.0 has |
| 186 | been introduced. You can find some of the implications for this change |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 187 | :oe_git:`here </openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873>`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 188 | The change also means that recipes that install files to ``/var/run`` |
| 189 | must be changed. You can find a guide on how to make these changes |
Andrew Geissler | c3d88e4 | 2020-10-02 09:45:00 -0500 | [diff] [blame] | 190 | `here <https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg31649.html>`__. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 191 | |
| 192 | .. _migration-1.5-removal-of-package-manager-database-within-image-recipes: |
| 193 | |
| 194 | Removal of Package Manager Database Within Image Recipes |
| 195 | -------------------------------------------------------- |
| 196 | |
| 197 | The image ``core-image-minimal`` no longer adds |
| 198 | ``remove_packaging_data_files`` to |
| 199 | :term:`ROOTFS_POSTPROCESS_COMMAND`. |
| 200 | This addition is now handled automatically when "package-management" is |
| 201 | not in :term:`IMAGE_FEATURES`. If you have custom |
| 202 | image recipes that make this addition, you should remove the lines, as |
| 203 | they are not needed and might interfere with correct operation of |
| 204 | postinstall scripts. |
| 205 | |
| 206 | .. _migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time: |
| 207 | |
| 208 | Images Now Rebuild Only on Changes Instead of Every Time |
| 209 | -------------------------------------------------------- |
| 210 | |
| 211 | The :ref:`ref-tasks-rootfs` and other related image |
| 212 | construction tasks are no longer marked as "nostamp". Consequently, they |
| 213 | will only be re-executed when their inputs have changed. Previous |
| 214 | versions of the OpenEmbedded build system always rebuilt the image when |
| 215 | requested rather when necessary. |
| 216 | |
| 217 | .. _migration-1.5-task-recipes: |
| 218 | |
| 219 | Task Recipes |
| 220 | ------------ |
| 221 | |
| 222 | The previously deprecated ``task.bbclass`` has now been dropped. For |
| 223 | recipes that previously inherited from this class, you should rename |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 224 | them from ``task-*`` to ``packagegroup-*`` and inherit |
| 225 | :ref:`ref-classes-packagegroup` instead. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 226 | |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 227 | For more information, see the ":ref:`ref-classes-packagegroup`" section. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 228 | |
| 229 | .. _migration-1.5-busybox: |
| 230 | |
| 231 | BusyBox |
| 232 | ------- |
| 233 | |
| 234 | By default, we now split BusyBox into two binaries: one that is suid |
| 235 | root for those components that need it, and another for the rest of the |
| 236 | components. Splitting BusyBox allows for optimization that eliminates |
| 237 | the ``tinylogin`` recipe as recommended by upstream. You can disable |
| 238 | this split by setting |
| 239 | :term:`BUSYBOX_SPLIT_SUID` to "0". |
| 240 | |
| 241 | .. _migration-1.5-automated-image-testing: |
| 242 | |
| 243 | Automated Image Testing |
| 244 | ----------------------- |
| 245 | |
| 246 | A new automated image testing framework has been added through the |
Patrick Williams | 975a06f | 2022-10-21 14:42:47 -0500 | [diff] [blame] | 247 | :ref:`ref-classes-testimage` classes. This |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 248 | framework replaces the older ``imagetest-qemu`` framework. |
| 249 | |
| 250 | You can learn more about performing automated image tests in the |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 251 | ":ref:`dev-manual/runtime-testing:performing automated runtime testing`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 252 | section in the Yocto Project Development Tasks Manual. |
| 253 | |
| 254 | .. _migration-1.5-build-history: |
| 255 | |
| 256 | Build History |
| 257 | ------------- |
| 258 | |
Patrick Williams | 3965356 | 2024-03-01 08:54:02 -0600 | [diff] [blame] | 259 | The changes to Build History are: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 260 | |
| 261 | - Installed package sizes: ``installed-package-sizes.txt`` for an image |
| 262 | now records the size of the files installed by each package instead |
| 263 | of the size of each compressed package archive file. |
| 264 | |
| 265 | - The dependency graphs (``depends*.dot``) now use the actual package |
| 266 | names instead of replacing dashes, dots and plus signs with |
| 267 | underscores. |
| 268 | |
| 269 | - The ``buildhistory-diff`` and ``buildhistory-collect-srcrevs`` |
| 270 | utilities have improved command-line handling. Use the ``--help`` |
| 271 | option for each utility for more information on the new syntax. |
| 272 | |
| 273 | For more information on Build History, see the |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 274 | ":ref:`dev-manual/build-quality:maintaining build output quality`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 275 | section in the Yocto Project Development Tasks Manual. |
| 276 | |
| 277 | .. _migration-1.5-udev: |
| 278 | |
| 279 | ``udev`` |
| 280 | -------- |
| 281 | |
Patrick Williams | 3965356 | 2024-03-01 08:54:02 -0600 | [diff] [blame] | 282 | The changes to ``udev`` are: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 283 | |
| 284 | - ``udev`` no longer brings in ``udev-extraconf`` automatically through |
| 285 | :term:`RRECOMMENDS`, since this was originally |
| 286 | intended to be optional. If you need the extra rules, then add |
| 287 | ``udev-extraconf`` to your image. |
| 288 | |
| 289 | - ``udev`` no longer brings in ``pciutils-ids`` or ``usbutils-ids`` |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 290 | through :term:`RRECOMMENDS`. These are not needed by ``udev`` itself and |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 291 | removing them saves around 350KB. |
| 292 | |
| 293 | .. _migration-1.5-removed-renamed-recipes: |
| 294 | |
| 295 | Removed and Renamed Recipes |
| 296 | --------------------------- |
| 297 | |
| 298 | - The ``linux-yocto`` 3.2 kernel has been removed. |
| 299 | |
| 300 | - ``libtool-nativesdk`` has been renamed to ``nativesdk-libtool``. |
| 301 | |
| 302 | - ``tinylogin`` has been removed. It has been replaced by a suid |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 303 | portion of Busybox. See the ":ref:`migration-1.5-busybox`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 304 | section for more information. |
| 305 | |
| 306 | - ``external-python-tarball`` has been renamed to |
| 307 | ``buildtools-tarball``. |
| 308 | |
| 309 | - ``web-webkit`` has been removed. It has been functionally replaced by |
| 310 | ``midori``. |
| 311 | |
| 312 | - ``imake`` has been removed. It is no longer needed by any other |
| 313 | recipe. |
| 314 | |
| 315 | - ``transfig-native`` has been removed. It is no longer needed by any |
| 316 | other recipe. |
| 317 | |
| 318 | - ``anjuta-remote-run`` has been removed. Anjuta IDE integration has |
| 319 | not been officially supported for several releases. |
| 320 | |
| 321 | .. _migration-1.5-other-changes: |
| 322 | |
| 323 | Other Changes |
| 324 | ------------- |
| 325 | |
Patrick Williams | 3965356 | 2024-03-01 08:54:02 -0600 | [diff] [blame] | 326 | Here is a list of short entries describing other changes: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 327 | |
| 328 | - ``run-postinsts``: Make this generic. |
| 329 | |
| 330 | - ``base-files``: Remove the unnecessary ``media/``\ xxx directories. |
| 331 | |
| 332 | - ``alsa-state``: Provide an empty ``asound.conf`` by default. |
| 333 | |
| 334 | - ``classes/image``: Ensure |
| 335 | :term:`BAD_RECOMMENDATIONS` supports |
| 336 | pre-renamed package names. |
| 337 | |
Andrew Geissler | 5f35090 | 2021-07-23 13:09:54 -0400 | [diff] [blame] | 338 | - ``classes/rootfs_rpm``: Implement :term:`BAD_RECOMMENDATIONS` for RPM. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 339 | |
| 340 | - ``systemd``: Remove ``systemd_unitdir`` if ``systemd`` is not in |
| 341 | :term:`DISTRO_FEATURES`. |
| 342 | |
| 343 | - ``systemd``: Remove ``init.d`` dir if ``systemd`` unit file is |
| 344 | present and ``sysvinit`` is not a distro feature. |
| 345 | |
| 346 | - ``libpam``: Deny all services for the ``OTHER`` entries. |
| 347 | |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 348 | - :ref:`ref-classes-image`: Move ``runtime_mapping_rename`` to avoid conflict |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 349 | with ``multilib``. See :yocto_bugs:`YOCTO #4993 </show_bug.cgi?id=4993>` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 350 | in Bugzilla for more information. |
| 351 | |
| 352 | - ``linux-dtb``: Use kernel build system to generate the ``dtb`` files. |
| 353 | |
| 354 | - ``kern-tools``: Switch from guilt to new ``kgit-s2q`` tool. |
| 355 | |