1Release 3.0 (zeus) 2================== 3 4This section provides migration information for moving to the Yocto 5Project 3.0 Release (codename "zeus") from the prior release. 6 7.. _migration-3.0-init-system-selection: 8 9Init System Selection 10--------------------- 11 12Changing the init system manager previously required setting a number of 13different 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 16for four values: "none", "sysvinit", "systemd", and "mdev-busybox". The 17default value, "none", for ``INIT_MANAGER`` should allow your current 18settings to continue working. However, it is advisable to explicitly set 19``INIT_MANAGER``. 20 21.. _migration-3.0-lsb-support-removed: 22 23LSB Support Removed 24------------------- 25 26Linux Standard Base (LSB) as a standard is not current, and is not well 27suited for embedded applications. Support can be continued in a separate 28layer if needed. However, presently LSB support has been removed from 29the core. 30 31As a result of this change, the ``poky-lsb`` derivative distribution 32configuration that was also used for testing alternative configurations 33has been replaced with a ``poky-altcfg`` distribution that has LSB parts 34removed. 35 36.. _migration-3.0-removed-recipes: 37 38Removed Recipes 39--------------- 40 41The 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 :ref:`cve-check <ref-classes-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 106Packaging Changes 107----------------- 108 109The 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 141CVE Checking 142------------ 143 144``cve-check-tool`` has been functionally replaced by a new 145``cve-update-db`` recipe and functionality built into the :ref:`cve-check <ref-classes-cve-check>` 146class. The result uses NVD JSON data feeds rather than the deprecated 147XML feeds that ``cve-check-tool`` was using, supports CVSSv3 scoring, 148and makes other improvements. 149 150Additionally, the ``CVE_CHECK_CVE_WHITELIST`` variable has been replaced 151by ``CVE_CHECK_WHITELIST`` (replaced by :term:`CVE_CHECK_IGNORE` in version 3.5). 152 153.. _migration-3.0-bitbake-changes: 154 155BitBake Changes 156--------------- 157 158The 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:`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 211Sanity Checks 212------------- 213 214The 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 :term:`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 255Miscellaneous Changes 256--------------------- 257 258The 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 320