Release 3.0 (zeus) — The Yocto Project ® 4.3.4 documentation (2024)

This section provides migration information for moving to the YoctoProject 3.0 Release (codename “zeus”) from the prior release.

Init System Selection

Changing the init system manager previously required setting a number ofdifferent variables. You can now change the manager by setting theINIT_MANAGER variable and the corresponding include files (i.e.conf/distro/include/init-manager-*.conf). Include files are providedfor four values: “none”, “sysvinit”, “systemd”, and “mdev-busybox”. Thedefault value, “none”, for INIT_MANAGER should allow your currentsettings to continue working. However, it is advisable to explicitly setINIT_MANAGER.

LSB Support Removed

Linux Standard Base (LSB) as a standard is not current, and is not wellsuited for embedded applications. Support can be continued in a separatelayer if needed. However, presently LSB support has been removed fromthe core.

As a result of this change, the poky-lsb derivative distributionconfiguration that was also used for testing alternative configurationshas been replaced with a poky-altcfg distribution that has LSB partsremoved.

Removed Recipes

The following recipes have been removed.

  • core-image-lsb-dev: Part of removed LSB support.

  • core-image-lsb: Part of removed LSB support.

  • core-image-lsb-sdk: Part of removed LSB support.

  • cve-check-tool: Functionally replaced by the cve-update-dbrecipe and cve-check class.

  • eglinfo: No longer maintained. eglinfo from mesa-demos isan adequate and maintained alternative.

  • gcc-8.3: Version 8.3 removed. Replaced by 9.2.

  • gnome-themes-standard: Only needed by gtk+ 2.x, which has beenremoved.

  • gtk+: GTK+ 2 is obsolete and has been replaced by gtk+3.

  • irda-utils: Has become obsolete. IrDA support has been removedfrom the Linux kernel in version 4.17 and later.

  • libnewt-python: libnewt Python support merged into mainlibnewt recipe.

  • libsdl: Replaced by newer libsdl2.

  • libx11-diet: Became obsolete.

  • libxx86dga: Removed obsolete client library.

  • libxx86misc: Removed. Library is redundant.

  • linux-yocto: Version 5.0 removed, which is now redundant (5.2 /4.19 present).

  • lsbinitscripts: Part of removed LSB support.

  • lsb: Part of removed LSB support.

  • lsbtest: Part of removed LSB support.

  • openssl10: Replaced by newer openssl version 1.1.

  • packagegroup-core-lsb: Part of removed LSB support.

  • python-nose: Removed the Python 2.x version of the recipe.

  • python-numpy: Removed the Python 2.x version of the recipe.

  • python-scons: Removed the Python 2.x version of the recipe.

  • source-highlight: No longer needed.

  • stress: Replaced by stress-ng.

  • vulkan: Split into vulkan-loader, vulkan-headers, andvulkan-tools.

  • weston-conf: Functionality moved to weston-init.

Packaging Changes

The following packaging changes have occurred.

  • The Epiphany browserhas been dropped from packagegroup-self-hosted as it has not beenneeded inside build-appliance-image for quite some time and wascausing resource problems.

  • libcap-ng Python support has been moved to a separatelibcap-ng-python recipe to streamline the build process when thePython bindings are not needed.

  • libdrm now packages the file amdgpu.ids into a separatelibdrm-amdgpu package.

  • python3: The runpy module is now in the python3-corepackage as it is required to support the common “python3 -m” commandusage.

  • distcc now provides separate distcc-client anddistcc-server packages as typically one or the other are needed,rather than both.

  • python*-setuptools recipes now separately package thepkg_resources module in a python-pkg-resources /python3-pkg-resources package as the module is useful independentof the rest of the setuptools package. The main python-setuptools/ python3-setuptools package depends on this new package so youshould only need to update dependencies unless you want to takeadvantage of the increased granularity.

CVE Checking

cve-check-tool has been functionally replaced by a newcve-update-db recipe and functionality built into the cve-checkclass. The result uses NVD JSON data feeds rather than the deprecatedXML feeds that cve-check-tool was using, supports CVSSv3 scoring,and makes other improvements.

Additionally, the CVE_CHECK_CVE_WHITELIST variable has been replacedby CVE_CHECK_WHITELIST (replaced by CVE_CHECK_IGNORE in version 4.0).

BitBake Changes

The following BitBake changes have occurred.

  • addtask statements now properly validate dependent tasks.Previously, an invalid task was silently ignored. With this change,the invalid task generates a warning.

  • Other invalid addtask and deltask usages now trigger thesewarnings: “multiple target tasks arguments with addtask / deltask”,and “multiple before/after clauses”.

  • The “multiconfig” prefix is now shortened to “mc”. “multiconfig” willcontinue to work, however it may be removed in a future release.

  • The bitbake -g command no longer generates arecipe-depends.dot file as the contents (i.e. a reprocessedversion of task-depends.dot) were confusing.

  • The bb.build.FuncFailed exception, previously raised bybb.build.exec_func() when certain other exceptions have occurred,has been removed. The real underlying exceptions will be raisedinstead. If you have calls to bb.build.exec_func() in customclasses or tinfoil-using scripts, any references tobb.build.FuncFailed should be cleaned up.

  • Additionally, the bb.build.exec_func() no longer accepts the“pythonexception” parameter. The function now always raisesexceptions. Remove this argument in any calls tobb.build.exec_func() in custom classes or scripts.

  • The BB_SETSCENE_VERIFY_FUNCTION2 variable is no longer used. Inthe unlikely event that you have any references to it, they should beremoved.

  • The RunQueueExecuteScenequeue and RunQueueExecuteTasks eventshave been removed since setscene tasks are now executed as part ofthe normal runqueue. Any event handling code in custom classes orscripts that handles these two events need to be updated.

  • The arguments passed to functions used withBB_HASHCHECK_FUNCTIONhave changed. If you are using your own custom hash check function,see https://git.yoctoproject.org/poky/commit/?id=40a5e193c4ba45c928fccd899415ea56b5417725for details.

  • Task specifications in BB_TASKDEPDATA and class implementationsused in signature generator classes now use “<fn>:<task>” everywhererather than the “.” delimiter that was being used in some places.This change makes it consistent with all areas in the code. Customsignature generator classes and code that reads BB_TASKDEPDATAneed to be updated to use ‘:’ as a separator rather than ‘.’.

Sanity Checks

The following sanity check changes occurred.

  • SRC_URI is now checked for usage of twoproblematic items:

    • “${PN}” prefix/suffix use — warnings always appear if ${PN} isused. You must fix the issue regardless of whether multiconfig oranything else that would cause prefixing/suffixing to happen.

    • Github archive tarballs — these are not guaranteed to be stable.Consequently, it is likely that the tarballs will be refreshed andthus the SRC_URI checksums will fail to apply. It is recommendedthat you fetch either an official release tarball or a specificrevision from the actual Git repository instead.

    Either one of these items now trigger a warning by default. If youwish to disable this check, remove src-uri-bad fromWARN_QA.

  • The file-rdeps runtime dependency check no longer expandsRDEPENDS recursively as there is no mechanismto ensure they can be fully computed, and thus races sometimes resultin errors either showing up or not. Thus, you might now see errorsfor missing runtime dependencies that were previously satisfiedrecursively. Here is an example: package A contains a shell scriptstarting with #!/bin/bash but has no dependency on bash. However,package A depends on package B, which does depend on bash. You needto add the missing dependency or dependencies to resolve the warning.

  • Setting DEPENDS_${PN} anywhere (i.e. typically in a recipe) nowtriggers an error. The error is triggered becauseDEPENDS is not a package-specific variableunlike RDEPENDS. You should set DEPENDS instead.

  • systemd currently does not work well with the musl C library becauseonly upstream officially supports linking the library with glibc.Thus, a warning is shown when building systemd in conjunction withmusl.

Miscellaneous Changes

The following miscellaneous changes have occurred.

  • The gnome class has been removed because it now does very little.You should update recipes that previously inherited this class to dothe following:

    inherit gnomebase gtk-icon-cache gconf mime
  • The meta/recipes-kernel/linux/linux-dtb.inc file has beenremoved. This file was previously deprecated in favor of settingKERNEL_DEVICETREE in any kernelrecipe and only produced a warning. Remove any include orrequire statements pointing to this file.

  • TARGET_CFLAGS,TARGET_CPPFLAGS,TARGET_CXXFLAGS, andTARGET_LDFLAGS are no longer exportedto the external environment. This change did not require any changesto core recipes, which is a good indicator that no changes will berequired. However, if for some reason the software being built by oneof your recipes is expecting these variables to be set, then buildingthe recipe will fail. In such cases, you must either export thevariable or variables in the recipe or change the scripts so thatexporting is not necessary.

  • You must change the host distro identifier used inNATIVELSBSTRING to use all lowercasecharacters even if it does not contain a version number. This changeis necessary only if you are not usinguninative and SANITY_TESTED_DISTROS.

  • In the base-files recipe, writing the hostname into/etc/hosts and /etc/hostname is now done within the maindo_install function rather than in thedo_install_basefilesissue function. The reason for the change isbecause do_install_basefilesissue is more easily overriddenwithout having to duplicate the hostname functionality. If you havedone the latter (e.g. in a base-files bbappend), then you shouldremove it from your customized do_install_basefilesissuefunction.

  • The wic --expand command now uses commas to separate “key:value”pairs rather than hyphens.

    Note

    The wic command-line help is not updated.

    You must update any scripts or commands where you usewic --expand with multiple “key:value” pairs.

  • UEFI image variable settings have been moved from various places to acentral conf/image-uefi.conf. This change should not influenceany existing configuration as the meta/conf/image-uefi.conf inthe core metadata sets defaults that can be overridden in the samemanner as before.

  • conf/distro/include/world-broken.inc has been removed. For caseswhere certain recipes need to be disabled when using the musl Clibrary, these recipes now have COMPATIBLE_HOST_libc-musl setwith a comment that explains why.

Release 3.0 (zeus) — The Yocto Project ® 4.3.4 documentation (2024)

References

Top Articles
Latest Posts
Article information

Author: Rob Wisoky

Last Updated:

Views: 5900

Rating: 4.8 / 5 (48 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Rob Wisoky

Birthday: 1994-09-30

Address: 5789 Michel Vista, West Domenic, OR 80464-9452

Phone: +97313824072371

Job: Education Orchestrator

Hobby: Lockpicking, Crocheting, Baton twirling, Video gaming, Jogging, Whittling, Model building

Introduction: My name is Rob Wisoky, I am a smiling, helpful, encouraging, zealous, energetic, faithful, fantastic person who loves writing and wants to share my knowledge and understanding with you.