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