diff options
Diffstat (limited to 'documentation/migration-guides/migration-3.0.rst')
| -rw-r--r-- | documentation/migration-guides/migration-3.0.rst | 319 |
1 files changed, 319 insertions, 0 deletions
diff --git a/documentation/migration-guides/migration-3.0.rst b/documentation/migration-guides/migration-3.0.rst new file mode 100644 index 0000000000..163c6201c5 --- /dev/null +++ b/documentation/migration-guides/migration-3.0.rst | |||
| @@ -0,0 +1,319 @@ | |||
| 1 | Release 3.0 (zeus) | ||
| 2 | ================== | ||
| 3 | |||
| 4 | This section provides migration information for moving to the Yocto | ||
| 5 | Project 3.0 Release (codename "zeus") from the prior release. | ||
| 6 | |||
| 7 | .. _migration-3.0-init-system-selection: | ||
| 8 | |||
| 9 | Init System Selection | ||
| 10 | --------------------- | ||
| 11 | |||
| 12 | Changing the init system manager previously required setting a number of | ||
| 13 | different variables. You can now change the manager by setting the | ||
| 14 | ``INIT_MANAGER`` variable and the corresponding include files (i.e. | ||
| 15 | ``conf/distro/include/init-manager-*.conf``). Include files are provided | ||
| 16 | for four values: "none", "sysvinit", "systemd", and "mdev-busybox". The | ||
| 17 | default value, "none", for ``INIT_MANAGER`` should allow your current | ||
| 18 | settings to continue working. However, it is advisable to explicitly set | ||
| 19 | ``INIT_MANAGER``. | ||
| 20 | |||
| 21 | .. _migration-3.0-lsb-support-removed: | ||
| 22 | |||
| 23 | LSB Support Removed | ||
| 24 | ------------------- | ||
| 25 | |||
| 26 | Linux Standard Base (LSB) as a standard is not current, and is not well | ||
| 27 | suited for embedded applications. Support can be continued in a separate | ||
| 28 | layer if needed. However, presently LSB support has been removed from | ||
| 29 | the core. | ||
| 30 | |||
| 31 | As a result of this change, the ``poky-lsb`` derivative distribution | ||
| 32 | configuration that was also used for testing alternative configurations | ||
| 33 | has been replaced with a ``poky-altcfg`` distribution that has LSB parts | ||
| 34 | removed. | ||
| 35 | |||
| 36 | .. _migration-3.0-removed-recipes: | ||
| 37 | |||
| 38 | Removed Recipes | ||
| 39 | --------------- | ||
| 40 | |||
| 41 | The following recipes have been removed. | ||
| 42 | |||
| 43 | - ``core-image-lsb-dev``: Part of removed LSB support. | ||
| 44 | |||
| 45 | - ``core-image-lsb``: Part of removed LSB support. | ||
| 46 | |||
| 47 | - ``core-image-lsb-sdk``: Part of removed LSB support. | ||
| 48 | |||
| 49 | - ``cve-check-tool``: Functionally replaced by the ``cve-update-db`` | ||
| 50 | recipe and ``cve-check`` class. | ||
| 51 | |||
| 52 | - ``eglinfo``: No longer maintained. ``eglinfo`` from ``mesa-demos`` is | ||
| 53 | an adequate and maintained alternative. | ||
| 54 | |||
| 55 | - ``gcc-8.3``: Version 8.3 removed. Replaced by 9.2. | ||
| 56 | |||
| 57 | - ``gnome-themes-standard``: Only needed by gtk+ 2.x, which has been | ||
| 58 | removed. | ||
| 59 | |||
| 60 | - ``gtk+``: GTK+ 2 is obsolete and has been replaced by gtk+3. | ||
| 61 | |||
| 62 | - ``irda-utils``: Has become obsolete. IrDA support has been removed | ||
| 63 | from the Linux kernel in version 4.17 and later. | ||
| 64 | |||
| 65 | - ``libnewt-python``: ``libnewt`` Python support merged into main | ||
| 66 | ``libnewt`` recipe. | ||
| 67 | |||
| 68 | - ``libsdl``: Replaced by newer ``libsdl2``. | ||
| 69 | |||
| 70 | - ``libx11-diet``: Became obsolete. | ||
| 71 | |||
| 72 | - ``libxx86dga``: Removed obsolete client library. | ||
| 73 | |||
| 74 | - ``libxx86misc``: Removed. Library is redundant. | ||
| 75 | |||
| 76 | - ``linux-yocto``: Version 5.0 removed, which is now redundant (5.2 / | ||
| 77 | 4.19 present). | ||
| 78 | |||
| 79 | - ``lsbinitscripts``: Part of removed LSB support. | ||
| 80 | |||
| 81 | - ``lsb``: Part of removed LSB support. | ||
| 82 | |||
| 83 | - ``lsbtest``: Part of removed LSB support. | ||
| 84 | |||
| 85 | - ``openssl10``: Replaced by newer ``openssl`` version 1.1. | ||
| 86 | |||
| 87 | - ``packagegroup-core-lsb``: Part of removed LSB support. | ||
| 88 | |||
| 89 | - ``python-nose``: Removed the Python 2.x version of the recipe. | ||
| 90 | |||
| 91 | - ``python-numpy``: Removed the Python 2.x version of the recipe. | ||
| 92 | |||
| 93 | - ``python-scons``: Removed the Python 2.x version of the recipe. | ||
| 94 | |||
| 95 | - ``source-highlight``: No longer needed. | ||
| 96 | |||
| 97 | - ``stress``: Replaced by ``stress-ng``. | ||
| 98 | |||
| 99 | - ``vulkan``: Split into ``vulkan-loader``, ``vulkan-headers``, and | ||
| 100 | ``vulkan-tools``. | ||
| 101 | |||
| 102 | - ``weston-conf``: Functionality moved to ``weston-init``. | ||
| 103 | |||
| 104 | .. _migration-3.0-packaging-changes: | ||
| 105 | |||
| 106 | Packaging Changes | ||
| 107 | ----------------- | ||
| 108 | |||
| 109 | The following packaging changes have occurred. | ||
| 110 | |||
| 111 | - The `Epiphany <https://en.wikipedia.org/wiki/GNOME_Web>`__ browser | ||
| 112 | has been dropped from ``packagegroup-self-hosted`` as it has not been | ||
| 113 | needed inside ``build-appliance-image`` for quite some time and was | ||
| 114 | causing resource problems. | ||
| 115 | |||
| 116 | - ``libcap-ng`` Python support has been moved to a separate | ||
| 117 | ``libcap-ng-python`` recipe to streamline the build process when the | ||
| 118 | Python bindings are not needed. | ||
| 119 | |||
| 120 | - ``libdrm`` now packages the file ``amdgpu.ids`` into a separate | ||
| 121 | ``libdrm-amdgpu`` package. | ||
| 122 | |||
| 123 | - ``python3``: The ``runpy`` module is now in the ``python3-core`` | ||
| 124 | package as it is required to support the common "python3 -m" command | ||
| 125 | usage. | ||
| 126 | |||
| 127 | - ``distcc`` now provides separate ``distcc-client`` and | ||
| 128 | ``distcc-server`` packages as typically one or the other are needed, | ||
| 129 | rather than both. | ||
| 130 | |||
| 131 | - ``python*-setuptools`` recipes now separately package the | ||
| 132 | ``pkg_resources`` module in a ``python-pkg-resources`` / | ||
| 133 | ``python3-pkg-resources`` package as the module is useful independent | ||
| 134 | of the rest of the setuptools package. The main ``python-setuptools`` | ||
| 135 | / ``python3-setuptools`` package depends on this new package so you | ||
| 136 | should only need to update dependencies unless you want to take | ||
| 137 | advantage of the increased granularity. | ||
| 138 | |||
| 139 | .. _migration-3.0-cve-checking: | ||
| 140 | |||
| 141 | CVE Checking | ||
| 142 | ------------ | ||
| 143 | |||
| 144 | ``cve-check-tool`` has been functionally replaced by a new | ||
| 145 | ``cve-update-db`` recipe and functionality built into the ``cve-check`` | ||
| 146 | class. The result uses NVD JSON data feeds rather than the deprecated | ||
| 147 | XML feeds that ``cve-check-tool`` was using, supports CVSSv3 scoring, | ||
| 148 | and makes other improvements. | ||
| 149 | |||
| 150 | Additionally, the ``CVE_CHECK_CVE_WHITELIST`` variable has been replaced | ||
| 151 | by ``CVE_CHECK_WHITELIST``. | ||
| 152 | |||
| 153 | .. _migration-3.0-bitbake-changes: | ||
| 154 | |||
| 155 | Bitbake Changes | ||
| 156 | --------------- | ||
| 157 | |||
| 158 | The following BitBake changes have occurred. | ||
| 159 | |||
| 160 | - ``addtask`` statements now properly validate dependent tasks. | ||
| 161 | Previously, an invalid task was silently ignored. With this change, | ||
| 162 | the invalid task generates a warning. | ||
| 163 | |||
| 164 | - Other invalid ``addtask`` and ``deltask`` usages now trigger these | ||
| 165 | warnings: "multiple target tasks arguments with addtask / deltask", | ||
| 166 | and "multiple before/after clauses". | ||
| 167 | |||
| 168 | - The "multiconfig" prefix is now shortened to "mc". "multiconfig" will | ||
| 169 | continue to work, however it may be removed in a future release. | ||
| 170 | |||
| 171 | - The ``bitbake -g`` command no longer generates a | ||
| 172 | ``recipe-depends.dot`` file as the contents (i.e. a reprocessed | ||
| 173 | version of ``task-depends.dot``) were confusing. | ||
| 174 | |||
| 175 | - The ``bb.build.FuncFailed`` exception, previously raised by | ||
| 176 | ``bb.build.exec_func()`` when certain other exceptions have occurred, | ||
| 177 | has been removed. The real underlying exceptions will be raised | ||
| 178 | instead. If you have calls to ``bb.build.exec_func()`` in custom | ||
| 179 | classes or ``tinfoil-using`` scripts, any references to | ||
| 180 | ``bb.build.FuncFailed`` should be cleaned up. | ||
| 181 | |||
| 182 | - Additionally, the ``bb.build.exec_func()`` no longer accepts the | ||
| 183 | "pythonexception" parameter. The function now always raises | ||
| 184 | exceptions. Remove this argument in any calls to | ||
| 185 | ``bb.build.exec_func()`` in custom classes or scripts. | ||
| 186 | |||
| 187 | - The ``BB_SETSCENE_VERIFY_FUNCTION2`` variable is no longer used. In | ||
| 188 | the unlikely event that you have any references to it, they should be | ||
| 189 | removed. | ||
| 190 | |||
| 191 | - The ``RunQueueExecuteScenequeue`` and ``RunQueueExecuteTasks`` events | ||
| 192 | have been removed since setscene tasks are now executed as part of | ||
| 193 | the normal runqueue. Any event handling code in custom classes or | ||
| 194 | scripts that handles these two events need to be updated. | ||
| 195 | |||
| 196 | - The arguments passed to functions used with | ||
| 197 | :term:`bitbake:BB_HASHCHECK_FUNCTION` | ||
| 198 | have changed. If you are using your own custom hash check function, | ||
| 199 | see :yocto_git:`/poky/commit/?id=40a5e193c4ba45c928fccd899415ea56b5417725` | ||
| 200 | for details. | ||
| 201 | |||
| 202 | - Task specifications in ``BB_TASKDEPDATA`` and class implementations | ||
| 203 | used in signature generator classes now use "<fn>:<task>" everywhere | ||
| 204 | rather than the "." delimiter that was being used in some places. | ||
| 205 | This change makes it consistent with all areas in the code. Custom | ||
| 206 | signature generator classes and code that reads ``BB_TASKDEPDATA`` | ||
| 207 | need to be updated to use ':' as a separator rather than '.'. | ||
| 208 | |||
| 209 | .. _migration-3.0-sanity-checks: | ||
| 210 | |||
| 211 | Sanity Checks | ||
| 212 | ------------- | ||
| 213 | |||
| 214 | The following sanity check changes occurred. | ||
| 215 | |||
| 216 | - :term:`SRC_URI` is now checked for usage of two | ||
| 217 | problematic items: | ||
| 218 | |||
| 219 | - "${PN}" prefix/suffix use - Warnings always appear if ${PN} is | ||
| 220 | used. You must fix the issue regardless of whether multiconfig or | ||
| 221 | anything else that would cause prefixing/suffixing to happen. | ||
| 222 | |||
| 223 | - Github archive tarballs - these are not guaranteed to be stable. | ||
| 224 | Consequently, it is likely that the tarballs will be refreshed and | ||
| 225 | thus the SRC_URI checksums will fail to apply. It is recommended | ||
| 226 | that you fetch either an official release tarball or a specific | ||
| 227 | revision from the actual Git repository instead. | ||
| 228 | |||
| 229 | Either one of these items now trigger a warning by default. If you | ||
| 230 | wish to disable this check, remove ``src-uri-bad`` from | ||
| 231 | :term:`WARN_QA`. | ||
| 232 | |||
| 233 | - The ``file-rdeps`` runtime dependency check no longer expands | ||
| 234 | :term:`RDEPENDS` recursively as there is no mechanism | ||
| 235 | to ensure they can be fully computed, and thus races sometimes result | ||
| 236 | in errors either showing up or not. Thus, you might now see errors | ||
| 237 | for missing runtime dependencies that were previously satisfied | ||
| 238 | recursively. Here is an example: package A contains a shell script | ||
| 239 | starting with ``#!/bin/bash`` but has no dependency on bash. However, | ||
| 240 | package A depends on package B, which does depend on bash. You need | ||
| 241 | to add the missing dependency or dependencies to resolve the warning. | ||
| 242 | |||
| 243 | - Setting ``DEPENDS_${PN}`` anywhere (i.e. typically in a recipe) now | ||
| 244 | triggers an error. The error is triggered because | ||
| 245 | :term:`DEPENDS` is not a package-specific variable | ||
| 246 | unlike RDEPENDS. You should set ``DEPENDS`` instead. | ||
| 247 | |||
| 248 | - systemd currently does not work well with the musl C library because | ||
| 249 | only upstream officially supports linking the library with glibc. | ||
| 250 | Thus, a warning is shown when building systemd in conjunction with | ||
| 251 | musl. | ||
| 252 | |||
| 253 | .. _migration-3.0-miscellaneous-changes: | ||
| 254 | |||
| 255 | Miscellaneous Changes | ||
| 256 | --------------------- | ||
| 257 | |||
| 258 | The following miscellaneous changes have occurred. | ||
| 259 | |||
| 260 | - The ``gnome`` class has been removed because it now does very little. | ||
| 261 | You should update recipes that previously inherited this class to do | ||
| 262 | the following: inherit gnomebase gtk-icon-cache gconf mime | ||
| 263 | |||
| 264 | - The ``meta/recipes-kernel/linux/linux-dtb.inc`` file has been | ||
| 265 | removed. This file was previously deprecated in favor of setting | ||
| 266 | :term:`KERNEL_DEVICETREE` in any kernel | ||
| 267 | recipe and only produced a warning. Remove any ``include`` or | ||
| 268 | ``require`` statements pointing to this file. | ||
| 269 | |||
| 270 | - :term:`TARGET_CFLAGS`, | ||
| 271 | :term:`TARGET_CPPFLAGS`, | ||
| 272 | :term:`TARGET_CXXFLAGS`, and | ||
| 273 | :term:`TARGET_LDFLAGS` are no longer exported | ||
| 274 | to the external environment. This change did not require any changes | ||
| 275 | to core recipes, which is a good indicator that no changes will be | ||
| 276 | required. However, if for some reason the software being built by one | ||
| 277 | of your recipes is expecting these variables to be set, then building | ||
| 278 | the recipe will fail. In such cases, you must either export the | ||
| 279 | variable or variables in the recipe or change the scripts so that | ||
| 280 | exporting is not necessary. | ||
| 281 | |||
| 282 | - You must change the host distro identifier used in | ||
| 283 | :term:`NATIVELSBSTRING` to use all lowercase | ||
| 284 | characters even if it does not contain a version number. This change | ||
| 285 | is necessary only if you are not using ``uninative`` and | ||
| 286 | :term:`SANITY_TESTED_DISTROS`. | ||
| 287 | |||
| 288 | - In the ``base-files`` recipe, writing the hostname into | ||
| 289 | ``/etc/hosts`` and ``/etc/hostname`` is now done within the main | ||
| 290 | :ref:`ref-tasks-install` function rather than in the | ||
| 291 | ``do_install_basefilesissue`` function. The reason for the change is | ||
| 292 | because ``do_install_basefilesissue`` is more easily overridden | ||
| 293 | without having to duplicate the hostname functionality. If you have | ||
| 294 | done the latter (e.g. in a ``base-files`` bbappend), then you should | ||
| 295 | remove it from your customized ``do_install_basefilesissue`` | ||
| 296 | function. | ||
| 297 | |||
| 298 | - The ``wic --expand`` command now uses commas to separate "key:value" | ||
| 299 | pairs rather than hyphens. | ||
| 300 | |||
| 301 | .. note:: | ||
| 302 | |||
| 303 | The wic command-line help is not updated. | ||
| 304 | |||
| 305 | You must update any scripts or commands where you use | ||
| 306 | ``wic --expand`` with multiple "key:value" pairs. | ||
| 307 | |||
| 308 | - UEFI image variable settings have been moved from various places to a | ||
| 309 | central ``conf/image-uefi.conf``. This change should not influence | ||
| 310 | any existing configuration as the ``meta/conf/image-uefi.conf`` in | ||
| 311 | the core metadata sets defaults that can be overridden in the same | ||
| 312 | manner as before. | ||
| 313 | |||
| 314 | - ``conf/distro/include/world-broken.inc`` has been removed. For cases | ||
| 315 | where certain recipes need to be disabled when using the musl C | ||
| 316 | library, these recipes now have ``COMPATIBLE_HOST_libc-musl`` set | ||
| 317 | with a comment that explains why. | ||
| 318 | |||
| 319 | |||
