4.7 Moving to the Yocto Project 1.8 Release
This section provides migration information for moving to the Yocto Project 1.8 Release from the prior release.
4.7.1 Removed Recipes
The following recipes have been removed:
owl-video: Functionality replaced bygst-player.gaku: Functionality replaced bygst-player.gnome-desktop: This recipe is now available inmeta-gnomeand is no longer needed.gsettings-desktop-schemas: This recipe is now available inmeta-gnomeand is no longer needed.python-argparse: Theargparsemodule is already provided in the default Python distribution in a package namedpython-argparse. Consequently, the separatepython-argparserecipe is no longer needed.telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control: All these recipes have moved tometa-oeand are consequently no longer needed by any recipes in OpenEmbedded-Core.linux-yocto_3.10andlinux-yocto_3.17: Support for the linux-yocto 3.10 and 3.17 kernels has been dropped. Support for the 3.14 kernel remains, while support for 3.19 kernel has been added.poky-feed-config-opkg: This recipe has become obsolete and is no longer needed. Usedistro-feed-configfrommeta-oeinstead.libav 0.8.x:libav 9.xis now used.sed-native: No longer needed. A working version ofsedis expected to be provided by the host distribution.
4.7.2 BlueZ 4.x / 5.x Selection
Proper built-in support for selecting BlueZ 5.x in preference to the
default of 4.x now exists. To use BlueZ 5.x, simply add “bluez5” to your
DISTRO_FEATURES value. If you had
previously added append files (*.bbappend) to make this selection,
you can now remove them.
Additionally, a bluetooth class has been added to make selection of
the appropriate bluetooth support within a recipe a little easier. If
you wish to make use of this class in a recipe, add something such as
the following:
inherit bluetooth
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}"
PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5"
4.7.3 Kernel Build Changes
The kernel build process was changed to place the source in a common
shared work area and to place build artifacts separately in the source
code tree. In theory, migration paths have been provided for most common
usages in kernel recipes but this might not work in all cases. In
particular, users need to ensure that ${S} (source files) and
${B} (build artifacts) are used correctly in functions such as
do_configure and
do_install. For kernel recipes that do not
inherit from kernel-yocto or include linux-yocto.inc, you might
wish to refer to the linux.inc file in the meta-oe layer for the
kinds of changes you need to make. For reference, here is the
commit
where the linux.inc file in meta-oe was updated.
Recipes that rely on the kernel source code and do not inherit the
module classes might need to add explicit dependencies on the
do_shared_workdir kernel task, for example:
do_configure[depends] += "virtual/kernel:do_shared_workdir"
4.7.4 SSL 3.0 is Now Disabled in OpenSSL
SSL 3.0 is now disabled when building OpenSSL. Disabling SSL 3.0 avoids
any lingering instances of the POODLE vulnerability. If you feel you
must re-enable SSL 3.0, then you can add an append file (*.bbappend)
for the openssl recipe to remove “-no-ssl3” from
EXTRA_OECONF.
4.7.5 Default Sysroot Poisoning
gcc's default sysroot and include directories are now “poisoned”. In
other words, the sysroot and include directories are being redirected to
a non-existent location in order to catch when host directories are
being used due to the correct options not being passed. This poisoning
applies both to the cross-compiler used within the build and to the
cross-compiler produced in the SDK.
If this change causes something in the build to fail, it almost certainly means the various compiler flags and commands are not being passed correctly to the underlying piece of software. In such cases, you need to take corrective steps.
4.7.6 Rebuild Improvements
Changes have been made to the base, autotools, and cmake classes to clean out generated files when the do_configure task needs to be re-executed.
One of the improvements is to attempt to run “make clean” during the
do_configure task if a Makefile exists. Some software packages
do not provide a working clean target within their make files. If you
have such recipes, you need to set
CLEANBROKEN to “1” within the recipe, for example:
CLEANBROKEN = "1"
4.7.7 QA Check and Validation Changes
The following QA Check and Validation Changes have occurred:
Usage of
PRINCpreviously triggered a warning. It now triggers an error. You should remove any remaining usage ofPRINCin any recipe or append file.An additional QA check has been added to detect usage of
${D}in FILES values where D values should not be used at all. The same check ensures that$Dis used inpkg_preinst/pkg_postinst/pkg_prerm/pkg_postrmfunctions instead of${D}.S now needs to be set to a valid value within a recipe. If
Sis not set in the recipe, the directory is not automatically created. IfSdoes not point to a directory that exists at the time the do_unpack task finishes, a warning will be shown.LICENSE is now validated for correct formatting of multiple licenses. If the format is invalid (e.g. multiple licenses are specified with no operators to specify how the multiple licenses interact), then a warning will be shown.
4.7.8 Miscellaneous Changes
The following miscellaneous changes have occurred:
The
send-error-reportscript now expects a “-s” option to be specified before the server address. This assumes a server address is being specified.The
oe-pkgdata-utilscript now expects a “-p” option to be specified before thepkgdatadirectory, which is now optional. If thepkgdatadirectory is not specified, the script will run BitBake to query PKGDATA_DIR from the build environment.