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