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 3.0 (zeus) |
| 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 3.0 Release (codename "zeus") from the prior release. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 8 | |
| 9 | .. _migration-3.0-init-system-selection: |
| 10 | |
| 11 | Init System Selection |
| 12 | --------------------- |
| 13 | |
| 14 | Changing the init system manager previously required setting a number of |
| 15 | different 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 |
| 18 | for four values: "none", "sysvinit", "systemd", and "mdev-busybox". The |
| 19 | default value, "none", for ``INIT_MANAGER`` should allow your current |
| 20 | settings to continue working. However, it is advisable to explicitly set |
| 21 | ``INIT_MANAGER``. |
| 22 | |
| 23 | .. _migration-3.0-lsb-support-removed: |
| 24 | |
| 25 | LSB Support Removed |
| 26 | ------------------- |
| 27 | |
| 28 | Linux Standard Base (LSB) as a standard is not current, and is not well |
| 29 | suited for embedded applications. Support can be continued in a separate |
| 30 | layer if needed. However, presently LSB support has been removed from |
| 31 | the core. |
| 32 | |
| 33 | As a result of this change, the ``poky-lsb`` derivative distribution |
| 34 | configuration that was also used for testing alternative configurations |
| 35 | has been replaced with a ``poky-altcfg`` distribution that has LSB parts |
| 36 | removed. |
| 37 | |
| 38 | .. _migration-3.0-removed-recipes: |
| 39 | |
| 40 | Removed Recipes |
| 41 | --------------- |
| 42 | |
| 43 | The 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`` |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 52 | recipe and :ref:`ref-classes-cve-check` class. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 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 | |
| 108 | Packaging Changes |
| 109 | ----------------- |
| 110 | |
| 111 | The following packaging changes have occurred. |
| 112 | |
Patrick Williams | 7784c42 | 2022-11-17 07:29:11 -0600 | [diff] [blame] | 113 | - The :wikipedia:`Epiphany <GNOME_Web>` browser |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 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 | |
| 143 | CVE Checking |
| 144 | ------------ |
| 145 | |
| 146 | ``cve-check-tool`` has been functionally replaced by a new |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 147 | ``cve-update-db`` recipe and functionality built into the :ref:`ref-classes-cve-check` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 148 | class. The result uses NVD JSON data feeds rather than the deprecated |
| 149 | XML feeds that ``cve-check-tool`` was using, supports CVSSv3 scoring, |
| 150 | and makes other improvements. |
| 151 | |
| 152 | Additionally, the ``CVE_CHECK_CVE_WHITELIST`` variable has been replaced |
Patrick Williams | da29531 | 2023-12-05 16:48:56 -0600 | [diff] [blame] | 153 | by ``CVE_CHECK_WHITELIST`` (replaced by :term:`CVE_CHECK_IGNORE` in version 4.0). |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 154 | |
| 155 | .. _migration-3.0-bitbake-changes: |
| 156 | |
Andrew Geissler | d583833 | 2022-05-27 11:33:10 -0500 | [diff] [blame] | 157 | BitBake Changes |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 158 | --------------- |
| 159 | |
| 160 | The 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 | |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 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. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 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 |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 199 | :term:`BB_HASHCHECK_FUNCTION` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 200 | have changed. If you are using your own custom hash check function, |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 201 | see :yocto_git:`/poky/commit/?id=40a5e193c4ba45c928fccd899415ea56b5417725` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 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 | |
| 213 | Sanity Checks |
| 214 | ------------- |
| 215 | |
| 216 | The following sanity check changes occurred. |
| 217 | |
| 218 | - :term:`SRC_URI` is now checked for usage of two |
| 219 | problematic items: |
| 220 | |
Andrew Geissler | 615f2f1 | 2022-07-15 14:00:58 -0500 | [diff] [blame] | 221 | - "${PN}" prefix/suffix use --- warnings always appear if ${PN} is |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 222 | used. You must fix the issue regardless of whether multiconfig or |
| 223 | anything else that would cause prefixing/suffixing to happen. |
| 224 | |
Andrew Geissler | 615f2f1 | 2022-07-15 14:00:58 -0500 | [diff] [blame] | 225 | - Github archive tarballs --- these are not guaranteed to be stable. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 226 | Consequently, it is likely that the tarballs will be refreshed and |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 227 | thus the :term:`SRC_URI` checksums will fail to apply. It is recommended |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 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 |
Andrew Geissler | 5f35090 | 2021-07-23 13:09:54 -0400 | [diff] [blame] | 248 | unlike RDEPENDS. You should set :term:`DEPENDS` instead. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 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 | |
| 257 | Miscellaneous Changes |
| 258 | --------------------- |
| 259 | |
| 260 | The 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 |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 264 | the following:: |
| 265 | |
| 266 | inherit gnomebase gtk-icon-cache gconf mime |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 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 |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 289 | is necessary only if you are not using |
| 290 | :ref:`ref-classes-uninative` and :term:`SANITY_TESTED_DISTROS`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 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 | |