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 1.8 (fido) |
| 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 1.8 Release (codename "fido") from the prior release. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 8 | |
| 9 | .. _migration-1.8-removed-recipes: |
| 10 | |
| 11 | Removed Recipes |
| 12 | --------------- |
| 13 | |
| 14 | The following recipes have been removed: |
| 15 | |
| 16 | - ``owl-video``: Functionality replaced by ``gst-player``. |
| 17 | |
| 18 | - ``gaku``: Functionality replaced by ``gst-player``. |
| 19 | |
| 20 | - ``gnome-desktop``: This recipe is now available in ``meta-gnome`` and |
| 21 | is no longer needed. |
| 22 | |
| 23 | - ``gsettings-desktop-schemas``: This recipe is now available in |
| 24 | ``meta-gnome`` and is no longer needed. |
| 25 | |
| 26 | - ``python-argparse``: The ``argparse`` module is already provided in |
| 27 | the default Python distribution in a package named |
| 28 | ``python-argparse``. Consequently, the separate ``python-argparse`` |
| 29 | recipe is no longer needed. |
| 30 | |
| 31 | - ``telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control``: |
| 32 | All these recipes have moved to ``meta-oe`` and are consequently no |
| 33 | longer needed by any recipes in OpenEmbedded-Core. |
| 34 | |
| 35 | - ``linux-yocto_3.10`` and ``linux-yocto_3.17``: Support for the |
| 36 | linux-yocto 3.10 and 3.17 kernels has been dropped. Support for the |
| 37 | 3.14 kernel remains, while support for 3.19 kernel has been added. |
| 38 | |
| 39 | - ``poky-feed-config-opkg``: This recipe has become obsolete and is no |
| 40 | longer needed. Use ``distro-feed-config`` from ``meta-oe`` instead. |
| 41 | |
| 42 | - ``libav 0.8.x``: ``libav 9.x`` is now used. |
| 43 | |
| 44 | - ``sed-native``: No longer needed. A working version of ``sed`` is |
| 45 | expected to be provided by the host distribution. |
| 46 | |
| 47 | .. _migration-1.8-bluez: |
| 48 | |
| 49 | BlueZ 4.x / 5.x Selection |
| 50 | ------------------------- |
| 51 | |
| 52 | Proper built-in support for selecting BlueZ 5.x in preference to the |
| 53 | default of 4.x now exists. To use BlueZ 5.x, simply add "bluez5" to your |
| 54 | :term:`DISTRO_FEATURES` value. If you had |
| 55 | previously added append files (``*.bbappend``) to make this selection, |
| 56 | you can now remove them. |
| 57 | |
| 58 | Additionally, a ``bluetooth`` class has been added to make selection of |
| 59 | the appropriate bluetooth support within a recipe a little easier. If |
| 60 | you wish to make use of this class in a recipe, add something such as |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 61 | the following:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 62 | |
| 63 | inherit bluetooth |
| 64 | PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}" |
| 65 | PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4" |
| 66 | PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5" |
| 67 | |
| 68 | .. _migration-1.8-kernel-build-changes: |
| 69 | |
| 70 | Kernel Build Changes |
| 71 | -------------------- |
| 72 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame^] | 73 | The kernel build process was changed to place the source in a common shared work |
| 74 | area and to place build artifacts separately in the source code tree. In theory, |
| 75 | migration paths have been provided for most common usages in kernel recipes but |
| 76 | this might not work in all cases. In particular, users need to ensure that |
| 77 | ``${S}`` (source files) and ``${B}`` (build artifacts) are used correctly in |
| 78 | functions such as :ref:`ref-tasks-configure` and :ref:`ref-tasks-install`. For |
| 79 | kernel recipes that do not inherit from :ref:`ref-classes-kernel-yocto` or |
| 80 | include ``linux-yocto.inc``, you might wish to refer to the ``linux.inc`` file |
| 81 | in the ``meta-oe`` layer for the kinds of changes you need to make. For reference, |
| 82 | here is the |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 83 | :oe_git:`commit </meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee>` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 84 | where the ``linux.inc`` file in ``meta-oe`` was updated. |
| 85 | |
| 86 | Recipes that rely on the kernel source code and do not inherit the |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame^] | 87 | :ref:`module <ref-classes-module>` classes might need to add explicit |
| 88 | dependencies on the :ref:`ref-tasks-shared_workdir` kernel task, for example:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 89 | |
| 90 | do_configure[depends] += "virtual/kernel:do_shared_workdir" |
| 91 | |
| 92 | .. _migration-1.8-ssl: |
| 93 | |
| 94 | SSL 3.0 is Now Disabled in OpenSSL |
| 95 | ---------------------------------- |
| 96 | |
| 97 | SSL 3.0 is now disabled when building OpenSSL. Disabling SSL 3.0 avoids |
| 98 | any lingering instances of the POODLE vulnerability. If you feel you |
| 99 | must re-enable SSL 3.0, then you can add an append file (``*.bbappend``) |
| 100 | for the ``openssl`` recipe to remove "-no-ssl3" from |
| 101 | :term:`EXTRA_OECONF`. |
| 102 | |
| 103 | .. _migration-1.8-default-sysroot-poisoning: |
| 104 | |
| 105 | Default Sysroot Poisoning |
| 106 | ------------------------- |
| 107 | |
| 108 | ``gcc's`` default sysroot and include directories are now "poisoned". In |
| 109 | other words, the sysroot and include directories are being redirected to |
| 110 | a non-existent location in order to catch when host directories are |
| 111 | being used due to the correct options not being passed. This poisoning |
| 112 | applies both to the cross-compiler used within the build and to the |
| 113 | cross-compiler produced in the SDK. |
| 114 | |
| 115 | If this change causes something in the build to fail, it almost |
| 116 | certainly means the various compiler flags and commands are not being |
| 117 | passed correctly to the underlying piece of software. In such cases, you |
| 118 | need to take corrective steps. |
| 119 | |
| 120 | .. _migration-1.8-rebuild-improvements: |
| 121 | |
| 122 | Rebuild Improvements |
| 123 | -------------------- |
| 124 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame^] | 125 | Changes have been made to the :ref:`ref-classes-base`, |
| 126 | :ref:`ref-classes-autotools`, and :ref:`ref-classes-cmake` classes to clean out |
| 127 | generated files when the :ref:`ref-tasks-configure` task needs to be |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 128 | re-executed. |
| 129 | |
| 130 | One of the improvements is to attempt to run "make clean" during the |
Patrick Williams | 2194f50 | 2022-10-16 14:26:09 -0500 | [diff] [blame] | 131 | :ref:`ref-tasks-configure` task if a ``Makefile`` exists. Some software packages |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 132 | do not provide a working clean target within their make files. If you |
| 133 | have such recipes, you need to set |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 134 | :term:`CLEANBROKEN` to "1" within the recipe, for example:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 135 | |
| 136 | CLEANBROKEN = "1" |
| 137 | |
| 138 | .. _migration-1.8-qa-check-and-validation-changes: |
| 139 | |
| 140 | QA Check and Validation Changes |
| 141 | ------------------------------- |
| 142 | |
| 143 | The following QA Check and Validation Changes have occurred: |
| 144 | |
| 145 | - Usage of ``PRINC`` previously triggered a warning. It now triggers an |
| 146 | error. You should remove any remaining usage of ``PRINC`` in any |
| 147 | recipe or append file. |
| 148 | |
| 149 | - An additional QA check has been added to detect usage of ``${D}`` in |
| 150 | :term:`FILES` values where :term:`D` values |
| 151 | should not be used at all. The same check ensures that ``$D`` is used |
| 152 | in ``pkg_preinst/pkg_postinst/pkg_prerm/pkg_postrm`` functions |
| 153 | instead of ``${D}``. |
| 154 | |
| 155 | - :term:`S` now needs to be set to a valid value within a |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 156 | recipe. If :term:`S` is not set in the recipe, the directory is not |
| 157 | automatically created. If :term:`S` does not point to a directory that |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 158 | exists at the time the :ref:`ref-tasks-unpack` task |
| 159 | finishes, a warning will be shown. |
| 160 | |
| 161 | - :term:`LICENSE` is now validated for correct |
| 162 | formatting of multiple licenses. If the format is invalid (e.g. |
| 163 | multiple licenses are specified with no operators to specify how the |
| 164 | multiple licenses interact), then a warning will be shown. |
| 165 | |
| 166 | .. _migration-1.8-miscellaneous-changes: |
| 167 | |
| 168 | Miscellaneous Changes |
| 169 | --------------------- |
| 170 | |
| 171 | The following miscellaneous changes have occurred: |
| 172 | |
| 173 | - The ``send-error-report`` script now expects a "-s" option to be |
| 174 | specified before the server address. This assumes a server address is |
| 175 | being specified. |
| 176 | |
| 177 | - The ``oe-pkgdata-util`` script now expects a "-p" option to be |
| 178 | specified before the ``pkgdata`` directory, which is now optional. If |
| 179 | the ``pkgdata`` directory is not specified, the script will run |
| 180 | BitBake to query :term:`PKGDATA_DIR` from the |
| 181 | build environment. |
| 182 | |
| 183 | |