Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 1 | Moving to the Yocto Project 1.8 Release |
| 2 | ======================================= |
| 3 | |
| 4 | This section provides migration information for moving to the Yocto |
| 5 | Project 1.8 Release from the prior release. |
| 6 | |
| 7 | .. _migration-1.8-removed-recipes: |
| 8 | |
| 9 | Removed Recipes |
| 10 | --------------- |
| 11 | |
| 12 | The following recipes have been removed: |
| 13 | |
| 14 | - ``owl-video``: Functionality replaced by ``gst-player``. |
| 15 | |
| 16 | - ``gaku``: Functionality replaced by ``gst-player``. |
| 17 | |
| 18 | - ``gnome-desktop``: This recipe is now available in ``meta-gnome`` and |
| 19 | is no longer needed. |
| 20 | |
| 21 | - ``gsettings-desktop-schemas``: This recipe is now available in |
| 22 | ``meta-gnome`` and is no longer needed. |
| 23 | |
| 24 | - ``python-argparse``: The ``argparse`` module is already provided in |
| 25 | the default Python distribution in a package named |
| 26 | ``python-argparse``. Consequently, the separate ``python-argparse`` |
| 27 | recipe is no longer needed. |
| 28 | |
| 29 | - ``telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control``: |
| 30 | All these recipes have moved to ``meta-oe`` and are consequently no |
| 31 | longer needed by any recipes in OpenEmbedded-Core. |
| 32 | |
| 33 | - ``linux-yocto_3.10`` and ``linux-yocto_3.17``: Support for the |
| 34 | linux-yocto 3.10 and 3.17 kernels has been dropped. Support for the |
| 35 | 3.14 kernel remains, while support for 3.19 kernel has been added. |
| 36 | |
| 37 | - ``poky-feed-config-opkg``: This recipe has become obsolete and is no |
| 38 | longer needed. Use ``distro-feed-config`` from ``meta-oe`` instead. |
| 39 | |
| 40 | - ``libav 0.8.x``: ``libav 9.x`` is now used. |
| 41 | |
| 42 | - ``sed-native``: No longer needed. A working version of ``sed`` is |
| 43 | expected to be provided by the host distribution. |
| 44 | |
| 45 | .. _migration-1.8-bluez: |
| 46 | |
| 47 | BlueZ 4.x / 5.x Selection |
| 48 | ------------------------- |
| 49 | |
| 50 | Proper built-in support for selecting BlueZ 5.x in preference to the |
| 51 | default of 4.x now exists. To use BlueZ 5.x, simply add "bluez5" to your |
| 52 | :term:`DISTRO_FEATURES` value. If you had |
| 53 | previously added append files (``*.bbappend``) to make this selection, |
| 54 | you can now remove them. |
| 55 | |
| 56 | Additionally, a ``bluetooth`` class has been added to make selection of |
| 57 | the appropriate bluetooth support within a recipe a little easier. If |
| 58 | you wish to make use of this class in a recipe, add something such as |
| 59 | the following: :: |
| 60 | |
| 61 | inherit bluetooth |
| 62 | PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}" |
| 63 | PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4" |
| 64 | PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5" |
| 65 | |
| 66 | .. _migration-1.8-kernel-build-changes: |
| 67 | |
| 68 | Kernel Build Changes |
| 69 | -------------------- |
| 70 | |
| 71 | The kernel build process was changed to place the source in a common |
| 72 | shared work area and to place build artifacts separately in the source |
| 73 | code tree. In theory, migration paths have been provided for most common |
| 74 | usages in kernel recipes but this might not work in all cases. In |
| 75 | particular, users need to ensure that ``${S}`` (source files) and |
| 76 | ``${B}`` (build artifacts) are used correctly in functions such as |
| 77 | :ref:`ref-tasks-configure` and |
| 78 | :ref:`ref-tasks-install`. For kernel recipes that do not |
| 79 | inherit from ``kernel-yocto`` or include ``linux-yocto.inc``, you might |
| 80 | wish to refer to the ``linux.inc`` file in the ``meta-oe`` layer for the |
| 81 | kinds of changes you need to make. For reference, here is the |
| 82 | `commit <http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee>`__ |
| 83 | where the ``linux.inc`` file in ``meta-oe`` was updated. |
| 84 | |
| 85 | Recipes that rely on the kernel source code and do not inherit the |
| 86 | module classes might need to add explicit dependencies on the |
| 87 | ``do_shared_workdir`` kernel task, for example: :: |
| 88 | |
| 89 | do_configure[depends] += "virtual/kernel:do_shared_workdir" |
| 90 | |
| 91 | .. _migration-1.8-ssl: |
| 92 | |
| 93 | SSL 3.0 is Now Disabled in OpenSSL |
| 94 | ---------------------------------- |
| 95 | |
| 96 | SSL 3.0 is now disabled when building OpenSSL. Disabling SSL 3.0 avoids |
| 97 | any lingering instances of the POODLE vulnerability. If you feel you |
| 98 | must re-enable SSL 3.0, then you can add an append file (``*.bbappend``) |
| 99 | for the ``openssl`` recipe to remove "-no-ssl3" from |
| 100 | :term:`EXTRA_OECONF`. |
| 101 | |
| 102 | .. _migration-1.8-default-sysroot-poisoning: |
| 103 | |
| 104 | Default Sysroot Poisoning |
| 105 | ------------------------- |
| 106 | |
| 107 | ``gcc's`` default sysroot and include directories are now "poisoned". In |
| 108 | other words, the sysroot and include directories are being redirected to |
| 109 | a non-existent location in order to catch when host directories are |
| 110 | being used due to the correct options not being passed. This poisoning |
| 111 | applies both to the cross-compiler used within the build and to the |
| 112 | cross-compiler produced in the SDK. |
| 113 | |
| 114 | If this change causes something in the build to fail, it almost |
| 115 | certainly means the various compiler flags and commands are not being |
| 116 | passed correctly to the underlying piece of software. In such cases, you |
| 117 | need to take corrective steps. |
| 118 | |
| 119 | .. _migration-1.8-rebuild-improvements: |
| 120 | |
| 121 | Rebuild Improvements |
| 122 | -------------------- |
| 123 | |
| 124 | Changes have been made to the :ref:`base <ref-classes-base>`, |
| 125 | :ref:`autotools <ref-classes-autotools>`, and |
| 126 | :ref:`cmake <ref-classes-cmake>` classes to clean out generated files |
| 127 | when the :ref:`ref-tasks-configure` task needs to be |
| 128 | re-executed. |
| 129 | |
| 130 | One of the improvements is to attempt to run "make clean" during the |
| 131 | ``do_configure`` task if a ``Makefile`` exists. Some software packages |
| 132 | do not provide a working clean target within their make files. If you |
| 133 | have such recipes, you need to set |
| 134 | :term:`CLEANBROKEN` to "1" within the recipe, for example: :: |
| 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 |
| 156 | recipe. If ``S`` is not set in the recipe, the directory is not |
| 157 | automatically created. If ``S`` does not point to a directory that |
| 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 | |