diff options
Diffstat (limited to 'documentation/migration-guides/migration-3.4.rst')
| -rw-r--r-- | documentation/migration-guides/migration-3.4.rst | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/documentation/migration-guides/migration-3.4.rst b/documentation/migration-guides/migration-3.4.rst index 3df5b69945..9ef1982026 100644 --- a/documentation/migration-guides/migration-3.4.rst +++ b/documentation/migration-guides/migration-3.4.rst | |||
| @@ -85,3 +85,179 @@ with other syntax improvements and simplifications for usability. It also means | |||
| 85 | BitBake no longer has to guess and maintain large lookup lists just in case | 85 | BitBake no longer has to guess and maintain large lookup lists just in case |
| 86 | e.g. ``functionname`` in ``my_functionname`` is an override, and thus should improve | 86 | e.g. ``functionname`` in ``my_functionname`` is an override, and thus should improve |
| 87 | efficiency. | 87 | efficiency. |
| 88 | |||
| 89 | |||
| 90 | New host dependencies | ||
| 91 | --------------------- | ||
| 92 | |||
| 93 | The ``lz4c``, ``pzstd`` and ``zstd`` commands are now required to be | ||
| 94 | installed on the build host to support LZ4 and Zstandard compression | ||
| 95 | functionality. These are typically provided by ``lz4`` and ``zstd`` | ||
| 96 | packages in most Linux distributions. Alternatively they are available | ||
| 97 | as part of ``buildtools-tarball`` if your distribution does not provide | ||
| 98 | them. For more information see | ||
| 99 | :ref:`ref-manual/system-requirements:required packages for the build host`. | ||
| 100 | |||
| 101 | |||
| 102 | Removed recipes | ||
| 103 | --------------- | ||
| 104 | |||
| 105 | The following recipes have been removed in this release: | ||
| 106 | |||
| 107 | - ``assimp``: problematic from a licensing perspective and no longer | ||
| 108 | needed by anything else | ||
| 109 | - ``clutter-1.0``: legacy component moved to meta-gnome | ||
| 110 | - ``clutter-gst-3.0``: legacy component moved to meta-gnome | ||
| 111 | - ``clutter-gtk-1.0``: legacy component moved to meta-gnome | ||
| 112 | - ``cogl-1.0``: legacy component moved to meta-gnome | ||
| 113 | - ``core-image-clutter``: removed along with clutter | ||
| 114 | - ``linux-yocto``: removed version 5.4 recipes (5.14 and 5.10 still | ||
| 115 | provided) | ||
| 116 | - ``mklibs-native``: not actively tested and upstream mklibs still | ||
| 117 | requires Python 2 | ||
| 118 | - ``mx-1.0``: obsolete (last release 2012) and isn't used by anything in | ||
| 119 | any known layer | ||
| 120 | - ``packagegroup-core-clutter``: removed along with clutter | ||
| 121 | |||
| 122 | |||
| 123 | Removed classes | ||
| 124 | --------------- | ||
| 125 | |||
| 126 | - ``clutter``: moved to meta-gnome along with clutter itself | ||
| 127 | - ``image-mklibs``: not actively tested and upstream mklibs still | ||
| 128 | requires Python 2 | ||
| 129 | - ``meta``: no longer useful. Recipes that need to skip installing | ||
| 130 | packages should inherit ``nopackages`` instead. | ||
| 131 | |||
| 132 | |||
| 133 | Prelinking disabled by default | ||
| 134 | ------------------------------ | ||
| 135 | |||
| 136 | Recent tests have shown that prelinking works only when PIE is not | ||
| 137 | enabled (see `here <https://rlbl.me/prelink-1>`__ and `here <https://rlbl.me/prelink-2>`__), | ||
| 138 | and as PIE is both a desirable security feature, and the only | ||
| 139 | configuration provided and tested by the Yocto Project, there is | ||
| 140 | simply no sense in continuing to enable prelink. | ||
| 141 | |||
| 142 | There's also a concern that no one is maintaining the code, and there | ||
| 143 | are open bugs (including `this serious one <https://bugzilla.yoctoproject.org/show_bug.cgi?id=14429>`__). | ||
| 144 | Given that prelink does intricate address arithmetic and rewriting | ||
| 145 | of binaries the best option is to disable the feature. It is recommended | ||
| 146 | that you consider disabling this feature in your own configuration if | ||
| 147 | it is currently enabled. | ||
| 148 | |||
| 149 | |||
| 150 | Virtual runtime provides | ||
| 151 | ------------------------ | ||
| 152 | |||
| 153 | Recipes shouldn't use the ``virtual/`` string in :term:`RPROVIDES` and | ||
| 154 | :term:`RDEPENDS` - it is confusing because ``virtual/`` has no special | ||
| 155 | meaning in :term:`RPROVIDES` and :term:`RDEPENDS` (unlike in the | ||
| 156 | corresponding build-time :term:`PROVIDES` and :term:`DEPENDS`). | ||
| 157 | |||
| 158 | |||
| 159 | Tune files moved to architecture-specific directories | ||
| 160 | ----------------------------------------------------- | ||
| 161 | |||
| 162 | The tune files found in ``conf/machine/include`` have now been moved | ||
| 163 | into their respective architecture name directories under that same | ||
| 164 | location; e.g. x86 tune files have moved into an ``x86`` subdirectory, | ||
| 165 | MIPS tune files have moved into a ``mips`` subdirectory, etc. | ||
| 166 | The ARM tunes have an extra level (``armv8a``, ``armv8m``, etc.) and | ||
| 167 | some have been renamed to make them uniform with the rest of the tunes. | ||
| 168 | See `this commit <http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=1d381f21f5f13aa0c4e1a45683ed656ebeedd37d>`__ | ||
| 169 | for reference. | ||
| 170 | |||
| 171 | If you have any references to tune files (e.g. in custom machine | ||
| 172 | configuration files) they will need to be updated. | ||
| 173 | |||
| 174 | |||
| 175 | Extensible SDK host extension | ||
| 176 | ----------------------------- | ||
| 177 | |||
| 178 | For a normal SDK, some layers append to :term:`TOOLCHAIN_HOST_TASK` | ||
| 179 | unconditionally which is fine, until the eSDK tries to override the | ||
| 180 | variable to its own values. Instead of installing packages specified | ||
| 181 | in this variable it uses native recipes instead - a very different | ||
| 182 | approach. This has led to confusing errors when binaries are added | ||
| 183 | to the SDK but not relocated. | ||
| 184 | |||
| 185 | To avoid these issues, a new ``TOOLCHAIN_HOST_TASK_ESDK`` variable has | ||
| 186 | been created. If you wish to extend what is installed in the host | ||
| 187 | portion of the eSDK then you will now need to set this variable. | ||
| 188 | |||
| 189 | |||
| 190 | Package/recipe splitting | ||
| 191 | ------------------------ | ||
| 192 | |||
| 193 | - ``perl-cross`` has been split out from the main ``perl`` recipe to | ||
| 194 | its own ``perlcross`` recipe for maintenance reasons. If you have | ||
| 195 | bbappends for the perl recipe then these may need extending. | ||
| 196 | |||
| 197 | - The ``wayland`` recipe now packages its binaries in a | ||
| 198 | ``wayland-tools`` package rather than putting them into | ||
| 199 | ``wayland-dev``. | ||
| 200 | |||
| 201 | - Xwayland has been split out of the xserver-xorg tree and thus is now | ||
| 202 | in its own ``xwayland`` recipe. If you need Xwayland in your image | ||
| 203 | then you may now need to add it explicitly. | ||
| 204 | |||
| 205 | |||
| 206 | Image / SDK generation changes | ||
| 207 | ------------------------------ | ||
| 208 | |||
| 209 | - Recursive dependencies on the ``do_build`` task are now disabled when | ||
| 210 | building SDKs. These are generally not needed; in the unlikely event | ||
| 211 | that you do encounter problems then it will probably be as a result of | ||
| 212 | missing explicit dependencies that need to be added. | ||
| 213 | |||
| 214 | - Errors during "complementary" package installation (e.g. for ``*-dbg`` | ||
| 215 | and ``*-dev`` packages) during image construction are no longer | ||
| 216 | ignored. Historically some of these packages had installation problems, | ||
| 217 | that is no longer the case. In the unlikely event that you see errors | ||
| 218 | as a result, you will need to fix the installation/packaging issues. | ||
| 219 | |||
| 220 | - When building an image, only packages that will be used in building | ||
| 221 | the image (i.e. the first entry in :term:`PACKAGE_CLASSES`) will be | ||
| 222 | produced if multiple package types are enabled (which is not a typical | ||
| 223 | configuration). If in your CI system you need to have the original | ||
| 224 | behaviour, use ``bitbake --runall build <target>``. | ||
| 225 | |||
| 226 | - The ``-lic`` package is no longer automatically added to | ||
| 227 | :term:`RRECOMMENDS` for every other package when | ||
| 228 | :term:`LICENSE_CREATE_PACKAGE` is set to "1". If you wish all license | ||
| 229 | packages to be installed corresponding to packages in your image, then | ||
| 230 | you should instead add the new ``lic-pkgs`` feature to | ||
| 231 | :term:`IMAGE_FEATURES`. | ||
| 232 | |||
| 233 | |||
| 234 | Miscellaneous | ||
| 235 | ------------- | ||
| 236 | |||
| 237 | - Certificates are now properly checked when bitbake fetches sources | ||
| 238 | over HTTPS. If you receive errors as a result for your custom recipes, | ||
| 239 | you will need to use a mirror or address the issue with the operators | ||
| 240 | of the server in question. | ||
| 241 | |||
| 242 | - ``avahi`` has had its GTK+ support disabled by default. If you wish to | ||
| 243 | re-enable it, set ``AVAHI_GTK = "gtk3"`` in a bbappend for the | ||
| 244 | ``avahi`` recipe or in your custom distro configuration file. | ||
| 245 | |||
| 246 | - Setting the ``BUILD_REPRODUCIBLE_BINARIES`` variable to "0" no longer | ||
| 247 | uses a strangely old fallback date of April 2011, it instead disables | ||
| 248 | building reproducible binaries as you would logically expect. | ||
| 249 | |||
| 250 | - Setting noexec/nostamp/fakeroot varflags to any value besides "1" will | ||
| 251 | now trigger a warning. These should be either set to "1" to enable, or | ||
| 252 | not set at all to disable. | ||
| 253 | |||
| 254 | - The previously deprecated ``COMPRESS_CMD`` and | ||
| 255 | ``CVE_CHECK_CVE_WHITELIST`` variables have been removed. Use | ||
| 256 | ``CONVERSION_CMD`` and :term:`CVE_CHECK_WHITELIST` respectively | ||
| 257 | instead. | ||
| 258 | |||
| 259 | - The obsolete ``oe_machinstall`` function previously provided in the | ||
| 260 | :ref:`utils <ref-classes-utils>` class has been removed. For | ||
| 261 | machine-specific installation it is recommended that you use the | ||
| 262 | built-in override support in the fetcher or overrides in general | ||
| 263 | instead. | ||
