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 2.3 (pyro) |
| 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 2.3 Release (codename "pyro") from the prior release. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 8 | |
| 9 | .. _migration-2.3-recipe-specific-sysroots: |
| 10 | |
| 11 | Recipe-specific Sysroots |
| 12 | ------------------------ |
| 13 | |
| 14 | The OpenEmbedded build system now uses one sysroot per recipe to resolve |
| 15 | long-standing issues with configuration script auto-detection of |
| 16 | undeclared dependencies. Consequently, you might find that some of your |
| 17 | previously written custom recipes are missing declared dependencies, |
| 18 | particularly those dependencies that are incidentally built earlier in a |
| 19 | typical build process and thus are already likely to be present in the |
| 20 | shared sysroot in previous releases. |
| 21 | |
| 22 | Consider the following: |
| 23 | |
| 24 | - *Declare Build-Time Dependencies:* Because of this new feature, you |
| 25 | must explicitly declare all build-time dependencies for your recipe. |
| 26 | If you do not declare these dependencies, they are not populated into |
| 27 | the sysroot for the recipe. |
| 28 | |
| 29 | - *Specify Pre-Installation and Post-Installation Native Tool |
| 30 | Dependencies:* You must specifically specify any special native tool |
| 31 | dependencies of ``pkg_preinst`` and ``pkg_postinst`` scripts by using |
| 32 | the :term:`PACKAGE_WRITE_DEPS` variable. |
| 33 | Specifying these dependencies ensures that these tools are available |
| 34 | if these scripts need to be run on the build host during the |
| 35 | :ref:`ref-tasks-rootfs` task. |
| 36 | |
| 37 | As an example, see the ``dbus`` recipe. You will see that this recipe |
| 38 | has a ``pkg_postinst`` that calls ``systemctl`` if "systemd" is in |
| 39 | :term:`DISTRO_FEATURES`. In the example, |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 40 | ``systemd-systemctl-native`` is added to :term:`PACKAGE_WRITE_DEPS`, |
Andrew Geissler | 5f35090 | 2021-07-23 13:09:54 -0400 | [diff] [blame] | 41 | which is also conditional on "systemd" being in :term:`DISTRO_FEATURES`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 42 | |
| 43 | - Examine Recipes that Use ``SSTATEPOSTINSTFUNCS``: You need to |
| 44 | examine any recipe that uses ``SSTATEPOSTINSTFUNCS`` and determine |
| 45 | steps to take. |
| 46 | |
| 47 | Functions added to ``SSTATEPOSTINSTFUNCS`` are still called as they |
| 48 | were in previous Yocto Project releases. However, since a separate |
| 49 | sysroot is now being populated for every recipe and if existing |
| 50 | functions being called through ``SSTATEPOSTINSTFUNCS`` are doing |
| 51 | relocation, then you will need to change these to use a |
| 52 | post-installation script that is installed by a function added to |
| 53 | :term:`SYSROOT_PREPROCESS_FUNCS`. |
| 54 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 55 | For an example, see the :ref:`ref-classes-pixbufcache` class in ``meta/classes/`` in |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 56 | the :ref:`overview-manual/development-environment:yocto project source repositories`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 57 | |
| 58 | .. note:: |
| 59 | |
| 60 | The |
| 61 | SSTATEPOSTINSTFUNCS |
| 62 | variable itself is now deprecated in favor of the |
| 63 | do_populate_sysroot[postfuncs] |
| 64 | task. Consequently, if you do still have any function or functions |
| 65 | that need to be called after the sysroot component is created for |
| 66 | a recipe, then you would be well advised to take steps to use a |
| 67 | post installation script as described previously. Taking these |
| 68 | steps prepares your code for when |
| 69 | SSTATEPOSTINSTFUNCS |
| 70 | is removed in a future Yocto Project release. |
| 71 | |
| 72 | - *Specify the Sysroot when Using Certain External Scripts:* Because |
| 73 | the shared sysroot is now gone, the scripts |
| 74 | ``oe-find-native-sysroot`` and ``oe-run-native`` have been changed |
| 75 | such that you need to specify which recipe's |
| 76 | :term:`STAGING_DIR_NATIVE` is used. |
| 77 | |
| 78 | .. note:: |
| 79 | |
| 80 | You can find more information on how recipe-specific sysroots work in |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 81 | the ":ref:`ref-classes-staging`" section. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 82 | |
| 83 | .. _migration-2.3-path-variable: |
| 84 | |
| 85 | ``PATH`` Variable |
| 86 | ----------------- |
| 87 | |
| 88 | Within the environment used to run build tasks, the environment variable |
| 89 | ``PATH`` is now sanitized such that the normal native binary paths |
| 90 | (``/bin``, ``/sbin``, ``/usr/bin`` and so forth) are removed and a |
| 91 | directory containing symbolic links linking only to the binaries from |
| 92 | the host mentioned in the :term:`HOSTTOOLS` and |
| 93 | :term:`HOSTTOOLS_NONFATAL` variables is added |
| 94 | to ``PATH``. |
| 95 | |
| 96 | Consequently, any native binaries provided by the host that you need to |
| 97 | call needs to be in one of these two variables at the configuration |
| 98 | level. |
| 99 | |
| 100 | Alternatively, you can add a native recipe (i.e. ``-native``) that |
| 101 | provides the binary to the recipe's :term:`DEPENDS` |
| 102 | value. |
| 103 | |
| 104 | .. note:: |
| 105 | |
| 106 | PATH |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 107 | is not sanitized in the same way within ``devshell``. |
| 108 | If it were, you would have difficulty running host tools for |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 109 | development and debugging within the shell. |
| 110 | |
| 111 | .. _migration-2.3-scripts: |
| 112 | |
| 113 | Changes to Scripts |
| 114 | ------------------ |
| 115 | |
| 116 | The following changes to scripts took place: |
| 117 | |
| 118 | - ``oe-find-native-sysroot``: The usage for the |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 119 | ``oe-find-native-sysroot`` script has changed to the following:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 120 | |
| 121 | $ . oe-find-native-sysroot recipe |
| 122 | |
| 123 | You must now supply a recipe for recipe |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 124 | as part of the command. Prior to the Yocto Project 2.3 release, it |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 125 | was not necessary to provide the script with the command. |
| 126 | |
| 127 | - ``oe-run-native``: The usage for the ``oe-run-native`` script has |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 128 | changed to the following:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 129 | |
| 130 | $ oe-run-native native_recipe tool |
| 131 | |
| 132 | You must |
| 133 | supply the name of the native recipe and the tool you want to run as |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 134 | part of the command. Prior to the Yocto Project 2.3 release, it |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 135 | was not necessary to provide the native recipe with the command. |
| 136 | |
| 137 | - ``cleanup-workdir``: The ``cleanup-workdir`` script has been |
| 138 | removed because the script was found to be deleting files it should |
| 139 | not have, which lead to broken build trees. Rather than trying to |
| 140 | delete portions of :term:`TMPDIR` and getting it wrong, |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 141 | it is recommended that you delete :term:`TMPDIR` and have it restored |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 142 | from shared state (sstate) on subsequent builds. |
| 143 | |
| 144 | - ``wipe-sysroot``: The ``wipe-sysroot`` script has been removed as |
| 145 | it is no longer needed with recipe-specific sysroots. |
| 146 | |
| 147 | .. _migration-2.3-functions: |
| 148 | |
| 149 | Changes to Functions |
| 150 | -------------------- |
| 151 | |
| 152 | The previously deprecated ``bb.data.getVar()``, ``bb.data.setVar()``, |
| 153 | and related functions have been removed in favor of ``d.getVar()``, |
| 154 | ``d.setVar()``, and so forth. |
| 155 | |
| 156 | You need to fix any references to these old functions. |
| 157 | |
| 158 | .. _migration-2.3-bitbake-changes: |
| 159 | |
| 160 | BitBake Changes |
| 161 | --------------- |
| 162 | |
| 163 | The following changes took place for BitBake: |
| 164 | |
| 165 | - *BitBake's Graphical Dependency Explorer UI Replaced:* BitBake's |
| 166 | graphical dependency explorer UI ``depexp`` was replaced by |
| 167 | ``taskexp`` ("Task Explorer"), which provides a graphical way of |
| 168 | exploring the ``task-depends.dot`` file. The data presented by Task |
| 169 | Explorer is much more accurate than the data that was presented by |
| 170 | ``depexp``. Being able to visualize the data is an often requested |
| 171 | feature as standard ``*.dot`` file viewers cannot usual cope with the |
| 172 | size of the ``task-depends.dot`` file. |
| 173 | |
| 174 | - *BitBake "-g" Output Changes:* The ``package-depends.dot`` and |
| 175 | ``pn-depends.dot`` files as previously generated using the |
| 176 | ``bitbake -g`` command have been removed. A ``recipe-depends.dot`` |
| 177 | file is now generated as a collapsed version of ``task-depends.dot`` |
| 178 | instead. |
| 179 | |
| 180 | The reason for this change is because ``package-depends.dot`` and |
| 181 | ``pn-depends.dot`` largely date back to a time before task-based |
| 182 | execution and do not take into account task-level dependencies |
| 183 | between recipes, which could be misleading. |
| 184 | |
| 185 | - *Mirror Variable Splitting Changes:* Mirror variables including |
| 186 | :term:`MIRRORS`, :term:`PREMIRRORS`, |
| 187 | and :term:`SSTATE_MIRRORS` can now separate |
| 188 | values entirely with spaces. Consequently, you no longer need "\\n". |
| 189 | BitBake looks for pairs of values, which simplifies usage. There |
| 190 | should be no change required to existing mirror variable values |
| 191 | themselves. |
| 192 | |
| 193 | - *The Subversion (SVN) Fetcher Uses an "ssh" Parameter and Not an |
| 194 | "rsh" Parameter:* The SVN fetcher now takes an "ssh" parameter |
| 195 | instead of an "rsh" parameter. This new optional parameter is used |
| 196 | when the "protocol" parameter is set to "svn+ssh". You can only use |
| 197 | the new parameter to specify the ``ssh`` program used by SVN. The SVN |
| 198 | fetcher passes the new parameter through the ``SVN_SSH`` environment |
| 199 | variable during the :ref:`ref-tasks-fetch` task. |
| 200 | |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 201 | See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-fetching:subversion (svn) fetcher (\`\`svn://\`\`)`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 202 | section in the BitBake |
| 203 | User Manual for additional information. |
| 204 | |
| 205 | - ``BB_SETSCENE_VERIFY_FUNCTION`` and ``BB_SETSCENE_VERIFY_FUNCTION2`` |
| 206 | Removed: Because the mechanism they were part of is no longer |
| 207 | necessary with recipe-specific sysroots, the |
| 208 | ``BB_SETSCENE_VERIFY_FUNCTION`` and ``BB_SETSCENE_VERIFY_FUNCTION2`` |
| 209 | variables have been removed. |
| 210 | |
| 211 | .. _migration-2.3-absolute-symlinks: |
| 212 | |
| 213 | Absolute Symbolic Links |
| 214 | ----------------------- |
| 215 | |
| 216 | Absolute symbolic links (symlinks) within staged files are no longer |
| 217 | permitted and now trigger an error. Any explicit creation of symlinks |
| 218 | can use the ``lnr`` script, which is a replacement for ``ln -r``. |
| 219 | |
| 220 | If the build scripts in the software that the recipe is building are |
| 221 | creating a number of absolute symlinks that need to be corrected, you |
| 222 | can inherit ``relative_symlinks`` within the recipe to turn those |
| 223 | absolute symlinks into relative symlinks. |
| 224 | |
| 225 | .. _migration-2.3-gplv2-and-gplv3-moves: |
| 226 | |
| 227 | GPLv2 Versions of GPLv3 Recipes Moved |
| 228 | ------------------------------------- |
| 229 | |
| 230 | Older GPLv2 versions of GPLv3 recipes have moved to a separate |
| 231 | ``meta-gplv2`` layer. |
| 232 | |
| 233 | If you use :term:`INCOMPATIBLE_LICENSE` to |
| 234 | exclude GPLv3 or set :term:`PREFERRED_VERSION` |
| 235 | to substitute a GPLv2 version of a GPLv3 recipe, then you must add the |
| 236 | ``meta-gplv2`` layer to your configuration. |
| 237 | |
| 238 | .. note:: |
| 239 | |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 240 | You can ``find meta-gplv2`` layer in the OpenEmbedded layer index at |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 241 | :oe_layer:`/meta-gplv2`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 242 | |
| 243 | These relocated GPLv2 recipes do not receive the same level of |
| 244 | maintenance as other core recipes. The recipes do not get security fixes |
| 245 | and upstream no longer maintains them. In fact, the upstream community |
| 246 | is actively hostile towards people that use the old versions of the |
| 247 | recipes. Moving these recipes into a separate layer both makes the |
| 248 | different needs of the recipes clearer and clearly identifies the number |
| 249 | of these recipes. |
| 250 | |
| 251 | .. note:: |
| 252 | |
| 253 | The long-term solution might be to move to BSD-licensed replacements |
| 254 | of the GPLv3 components for those that need to exclude GPLv3-licensed |
| 255 | components from the target system. This solution will be investigated |
| 256 | for future Yocto Project releases. |
| 257 | |
| 258 | .. _migration-2.3-package-management-changes: |
| 259 | |
| 260 | Package Management Changes |
| 261 | -------------------------- |
| 262 | |
| 263 | The following package management changes took place: |
| 264 | |
| 265 | - Smart package manager is replaced by DNF package manager. Smart has |
| 266 | become unmaintained upstream, is not ported to Python 3.x. |
| 267 | Consequently, Smart needed to be replaced. DNF is the only feasible |
| 268 | candidate. |
| 269 | |
| 270 | The change in functionality is that the on-target runtime package |
| 271 | management from remote package feeds is now done with a different |
| 272 | tool that has a different set of command-line options. If you have |
| 273 | scripts that call the tool directly, or use its API, they need to be |
| 274 | fixed. |
| 275 | |
| 276 | For more information, see the `DNF |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 277 | Documentation <https://dnf.readthedocs.io/en/latest/>`__. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 278 | |
| 279 | - Rpm 5.x is replaced with Rpm 4.x. This is done for two major reasons: |
| 280 | |
| 281 | - DNF is API-incompatible with Rpm 5.x and porting it and |
| 282 | maintaining the port is non-trivial. |
| 283 | |
| 284 | - Rpm 5.x itself has limited maintenance upstream, and the Yocto |
| 285 | Project is one of the very few remaining users. |
| 286 | |
| 287 | - Berkeley DB 6.x is removed and Berkeley DB 5.x becomes the default: |
| 288 | |
| 289 | - Version 6.x of Berkeley DB has largely been rejected by the open |
| 290 | source community due to its AGPLv3 license. As a result, most |
| 291 | mainstream open source projects that require DB are still |
| 292 | developed and tested with DB 5.x. |
| 293 | |
| 294 | - In OE-core, the only thing that was requiring DB 6.x was Rpm 5.x. |
| 295 | Thus, no reason exists to continue carrying DB 6.x in OE-core. |
| 296 | |
| 297 | - ``createrepo`` is replaced with ``createrepo_c``. |
| 298 | |
| 299 | ``createrepo_c`` is the current incarnation of the tool that |
| 300 | generates remote repository metadata. It is written in C as compared |
| 301 | to ``createrepo``, which is written in Python. ``createrepo_c`` is |
| 302 | faster and is maintained. |
| 303 | |
| 304 | - Architecture-independent RPM packages are "noarch" instead of "all". |
| 305 | |
| 306 | This change was made because too many places in DNF/RPM4 stack |
| 307 | already make that assumption. Only the filenames and the architecture |
| 308 | tag has changed. Nothing else has changed in OE-core system, |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 309 | particularly in the :ref:`ref-classes-allarch` class. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 310 | |
| 311 | - Signing of remote package feeds using ``PACKAGE_FEED_SIGN`` is not |
| 312 | currently supported. This issue will be fully addressed in a future |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 313 | Yocto Project release. See :yocto_bugs:`defect 11209 </show_bug.cgi?id=11209>` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 314 | for more information on a solution to package feed signing with RPM |
| 315 | in the Yocto Project 2.3 release. |
| 316 | |
| 317 | - OPKG now uses the libsolv backend for resolving package dependencies |
| 318 | by default. This is vastly superior to OPKG's internal ad-hoc solver |
| 319 | that was previously used. This change does have a small impact on |
| 320 | disk (around 500 KB) and memory footprint. |
| 321 | |
| 322 | .. note:: |
| 323 | |
| 324 | For further details on this change, see the |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 325 | :yocto_git:`commit message </poky/commit/?id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81>`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 326 | |
| 327 | .. _migration-2.3-removed-recipes: |
| 328 | |
| 329 | Removed Recipes |
| 330 | --------------- |
| 331 | |
| 332 | The following recipes have been removed: |
| 333 | |
| 334 | - ``linux-yocto 4.8``: Version 4.8 has been removed. Versions 4.1 |
| 335 | (LTSI), 4.4 (LTS), 4.9 (LTS/LTSI) and 4.10 are now present. |
| 336 | |
| 337 | - ``python-smartpm``: Functionally replaced by ``dnf``. |
| 338 | |
| 339 | - ``createrepo``: Replaced by the ``createrepo-c`` recipe. |
| 340 | |
| 341 | - ``rpmresolve``: No longer needed with the move to RPM 4 as RPM |
| 342 | itself is used instead. |
| 343 | |
| 344 | - ``gstreamer``: Removed the GStreamer Git version recipes as they |
| 345 | have been stale. ``1.10.``\ x recipes are still present. |
| 346 | |
| 347 | - ``alsa-conf-base``: Merged into ``alsa-conf`` since ``libasound`` |
| 348 | depended on both. Essentially, no way existed to install only one of |
| 349 | these. |
| 350 | |
| 351 | - ``tremor``: Moved to ``meta-multimedia``. Fixed-integer Vorbis |
| 352 | decoding is not needed by current hardware. Thus, GStreamer's ivorbis |
| 353 | plugin has been disabled by default eliminating the need for the |
| 354 | ``tremor`` recipe in :term:`OpenEmbedded-Core (OE-Core)`. |
| 355 | |
| 356 | - ``gummiboot``: Replaced by ``systemd-boot``. |
| 357 | |
| 358 | .. _migration-2.3-wic-changes: |
| 359 | |
| 360 | Wic Changes |
| 361 | ----------- |
| 362 | |
| 363 | The following changes have been made to Wic: |
| 364 | |
| 365 | .. note:: |
| 366 | |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 367 | For more information on Wic, see the |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 368 | ":ref:`dev-manual/wic:creating partitioned images using wic`" |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 369 | section in the Yocto Project Development Tasks Manual. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 370 | |
| 371 | - *Default Output Directory Changed:* Wic's default output directory is |
| 372 | now the current directory by default instead of the unusual |
| 373 | ``/var/tmp/wic``. |
| 374 | |
Patrick Williams | 4585273 | 2022-04-02 08:58:32 -0500 | [diff] [blame] | 375 | The ``-o`` and ``--outdir`` options remain unchanged and are used to |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 376 | specify your preferred output directory if you do not want to use the |
| 377 | default directory. |
| 378 | |
| 379 | - *fsimage Plug-in Removed:* The Wic fsimage plugin has been removed as |
| 380 | it duplicates functionality of the rawcopy plugin. |
| 381 | |
| 382 | .. _migration-2.3-qa-changes: |
| 383 | |
| 384 | QA Changes |
| 385 | ---------- |
| 386 | |
| 387 | The following QA checks have changed: |
| 388 | |
| 389 | - ``unsafe-references-in-binaries``: The |
| 390 | ``unsafe-references-in-binaries`` QA check, which was disabled by |
| 391 | default, has now been removed. This check was intended to detect |
| 392 | binaries in ``/bin`` that link to libraries in ``/usr/lib`` and have |
| 393 | the case where the user has ``/usr`` on a separate filesystem to |
| 394 | ``/``. |
| 395 | |
| 396 | The removed QA check was buggy. Additionally, ``/usr`` residing on a |
| 397 | separate partition from ``/`` is now a rare configuration. |
| 398 | Consequently, ``unsafe-references-in-binaries`` was removed. |
| 399 | |
| 400 | - ``file-rdeps``: The ``file-rdeps`` QA check is now an error by |
| 401 | default instead of a warning. Because it is an error instead of a |
| 402 | warning, you need to address missing runtime dependencies. |
| 403 | |
| 404 | For additional information, see the |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 405 | :ref:`ref-classes-insane` class and the |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 406 | ":ref:`ref-manual/qa-checks:errors and warnings`" section. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 407 | |
| 408 | .. _migration-2.3-miscellaneous-changes: |
| 409 | |
| 410 | Miscellaneous Changes |
| 411 | --------------------- |
| 412 | |
| 413 | The following miscellaneous changes have occurred: |
| 414 | |
| 415 | - In this release, a number of recipes have been changed to ignore the |
| 416 | ``largefile`` :term:`DISTRO_FEATURES` item, |
| 417 | enabling large file support unconditionally. This feature has always |
| 418 | been enabled by default. Disabling the feature has not been widely |
| 419 | tested. |
| 420 | |
| 421 | .. note:: |
| 422 | |
| 423 | Future releases of the Yocto Project will remove entirely the |
| 424 | ability to disable the |
| 425 | largefile |
| 426 | feature, which would make it unconditionally enabled everywhere. |
| 427 | |
| 428 | - If the :term:`DISTRO_VERSION` value contains |
| 429 | the value of the :term:`DATE` variable, which is the |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 430 | default between Poky releases, the :term:`DATE` value is explicitly |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 431 | excluded from ``/etc/issue`` and ``/etc/issue.net``, which is |
| 432 | displayed at the login prompt, in order to avoid conflicts with |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 433 | Multilib enabled. Regardless, the :term:`DATE` value is inaccurate if the |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 434 | ``base-files`` recipe is restored from shared state (sstate) rather |
| 435 | than rebuilt. |
| 436 | |
| 437 | If you need the build date recorded in ``/etc/issue*`` or anywhere |
| 438 | else in your image, a better method is to define a post-processing |
| 439 | function to do it and have the function called from |
| 440 | :term:`ROOTFS_POSTPROCESS_COMMAND`. |
| 441 | Doing so ensures the value is always up-to-date with the created |
| 442 | image. |
| 443 | |
| 444 | - Dropbear's ``init`` script now disables DSA host keys by default. |
| 445 | This change is in line with the systemd service file, which supports |
| 446 | RSA keys only, and with recent versions of OpenSSH, which deprecates |
| 447 | DSA host keys. |
| 448 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 449 | - The :ref:`ref-classes-buildhistory` class now |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 450 | correctly uses tabs as separators between all columns in |
| 451 | ``installed-package-sizes.txt`` in order to aid import into other |
| 452 | tools. |
| 453 | |
| 454 | - The ``USE_LDCONFIG`` variable has been replaced with the "ldconfig" |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 455 | :term:`DISTRO_FEATURES` feature. Distributions that previously set:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 456 | |
| 457 | USE_LDCONFIG = "0" |
| 458 | |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 459 | should now instead use the following:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 460 | |
| 461 | DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig" |
| 462 | |
| 463 | - The default value of |
| 464 | :term:`COPYLEFT_LICENSE_INCLUDE` now |
| 465 | includes all versions of AGPL licenses in addition to GPL and LGPL. |
| 466 | |
| 467 | .. note:: |
| 468 | |
| 469 | The default list is not intended to be guaranteed as a complete |
| 470 | safe list. You should seek legal advice based on what you are |
| 471 | distributing if you are unsure. |
| 472 | |
| 473 | - Kernel module packages are now suffixed with the kernel version in |
| 474 | order to allow module packages from multiple kernel versions to |
| 475 | co-exist on a target system. If you wish to return to the previous |
| 476 | naming scheme that does not include the version suffix, use the |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 477 | following:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 478 | |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 479 | KERNEL_MODULE_PACKAGE_SUFFIX = "" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 480 | |
| 481 | - Removal of ``libtool`` ``*.la`` files is now enabled by default. The |
| 482 | ``*.la`` files are not actually needed on Linux and relocating them |
| 483 | is an unnecessary burden. |
| 484 | |
| 485 | If you need to preserve these ``.la`` files (e.g. in a custom |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 486 | distribution), you must change :term:`INHERIT_DISTRO` such that |
| 487 | ":ref:`ref-classes-remove-libtool`" is not included |
| 488 | in the value. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 489 | |
| 490 | - Extensible SDKs built for GCC 5+ now refuse to install on a |
| 491 | distribution where the host GCC version is 4.8 or 4.9. This change |
| 492 | resulted from the fact that the installation is known to fail due to |
| 493 | the way the ``uninative`` shared state (sstate) package is built. See |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 494 | the :ref:`ref-classes-uninative` class for additional information. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 495 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 496 | - All :ref:`ref-classes-native` and :ref:`ref-classes-nativesdk` recipes now |
| 497 | use a separate :term:`DISTRO_FEATURES` value instead of sharing the value |
| 498 | used by recipes for the target, in order to avoid unnecessary rebuilds. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 499 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 500 | The :term:`DISTRO_FEATURES` for :ref:`ref-classes-native` recipes |
| 501 | is :term:`DISTRO_FEATURES_NATIVE` added to an intersection of |
| 502 | :term:`DISTRO_FEATURES` and :term:`DISTRO_FEATURES_FILTER_NATIVE`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 503 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 504 | For :ref:`ref-classes-nativesdk` recipes, the corresponding |
| 505 | variables are :term:`DISTRO_FEATURES_NATIVESDK` and |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 506 | :term:`DISTRO_FEATURES_FILTER_NATIVESDK`. |
| 507 | |
| 508 | - The ``FILESDIR`` variable, which was previously deprecated and rarely |
| 509 | used, has now been removed. You should change any recipes that set |
| 510 | ``FILESDIR`` to set :term:`FILESPATH` instead. |
| 511 | |
| 512 | - The ``MULTIMACH_HOST_SYS`` variable has been removed as it is no |
| 513 | longer needed with recipe-specific sysroots. |
| 514 | |
| 515 | |