The latest release of the Yocto Project, version 5.0, code named Scarthgap has been published a few days ago. The release notes provide the best summary of what’s new in this release. Being a Long Term Support (LTS) release, it will be maintained during 4 years with bug fixes and security updates, which makes this release particularly important for a large number of embedded Linux projects and products.
At Bootlin, we are using Yocto for a large fraction of the Linux Board Support Packages that we develop, maintain and upgrade for our customers. But we’re not only users of Yocto: we’re also contributors and maintainers. In this blog post, we’ll highlight our contributions to this release, which take various forms.
openembedded-core
First of all, our contributions to the openembedded-core repository:
- Alexandre Belloni (1):
- Alexis Lothoré (15):
- scripts/resulttool: limit the number of changes displayed per test
- scripts/resulttool: rearrange regressions report order
- scripts/resulttool: make additional info more compact
- scripts/yocto_testresults_query: add option to change display limit
- scripts/resulttool: group all regressions in regression report
- patchtest-send-results: remove unused variable
- patchtest-send-results: properly parse test status
- testimage: retrieve ptests directory when ptests fail
- testimage: log exception when failing to retrieve artifacts
- lib/oeqa: share get_json_result_dir helper
- testimage: create a list of failed test post actions
- oeqa/utils/postactions: isolate directory creation in dedicated action
- oeqa/utils/postactions: add target disk usage stat as post action
- oeqa/utils/postactions: testimage: add host disk usage stat as post action
- oeqa/lib/utils/postactions: fix host disk usage stats retrieval
- Joao Marcos Costa (1):
- Michael Opdenacker (8):
- oeqa/runtime/cases/parselogs: remove “edgerouter” case
- systemd-compat-units.bb: fix postinstall script
- alsa-lib: upgrade 1.2.10 -> 1.2.11
- alsa-tools: upgrade 1.2.5 -> 1.2.11
- alsa-ucm-conf: upgrade 1.2.10 -> 1.2.11
- alsa-utils: upgrade 1.2.10 -> 1.2.11
- oeqa/runtime/cases: fix typo in information message
- core-image-full-cmdline: add package-management
- Thomas Perrot (3):
So overall, Alexandre Belloni and Alexis Lothoré mostly contributed to the testing/CI infrastructure, João Marcos Costa contributed a fix to the documentation, Michael Opdenacker contributed a few package bumps, enabled package management in the core-image-full-cmdline image as part of his work on the Binary Distro Prototype, and provided a few fixes to some tests, and finally Thomas Perrot provided some updates to the OpenSBI package, which he uses as part of his maintenance work of the meta-sifive layer, used for RISC-V platforms from SiFive.
But perhaps more important is that out of the 1652 commits that went into openembedded-core between Yocto 4.3 and Yocto 5.0, 685 commits were approved by a Bootlin engineer: indeed Bootlin engineer Alexandre Belloni, sometimes assisted by Luca Ceresoli, are members of the SWAT team and as part of this, they review, test and approve patches submitted by the community before they get ultimately applied by the Yocto lead architect Richard Purdie. This contribution from Bootlin to the project is not very visible, but gives us a fairly unique insight on what’s changing in the Yocto Project.
bitbake
We also contributed to the bitbake project, which is the tool/engine that orchestrates the overall build.
- Michael Opdenacker (12):
- doc: README: simpler link to contributor guide
- utils: remove BB_ENV_PASSTHROUGH from preserved_envvars()
- prserv: simplify the PRServerClient() interface
- prserv: use double quotes by default
- bitbake-prserv: replace deprecated optparse by argparse
- prserv: use self.logger instead of logger directly
- asyncrpc: include parse_address from hashserv
- prserv: capitalization and spacing improvements
- prserv: add extra requests
- prserv: remove redundant exception handler
- prserv: correct error message
- prserv: remove unnecessary code
- Thomas Perrot (1):
Most of the contributions were made by Michael Opdenacker as part of his work on the Binary Distro Prototype, which requires updating the prserv to handle “pass through” mode and hierarchy data.
yocto-docs
The documentation of the Yocto Project is also an area where we contribute significantly: Michael Opdenacker is the maintainer of the Yocto Project documentation, and this time around João Marcos Costa helped by writing the release notes for the 5.0 release.
Here are the details of our contributions:
- Joao Marcos Costa (6):
- Luca Ceresoli (2):
- Michael Opdenacker (66):
- manuals: update linux-yocto append examples
- dev-manual: wic: update “wic list images” output
- sdk-manual: appendix-obtain: improve and update descriptions
- manuals: update list of supported machines
- bsp-guide: bsp: skip Intel machines no longer supported in Poky
- brief-yoctoprojectqs: use new CDN mirror for sstate
- dev-manual: start.rst: remove obsolete reference
- manuals: correct “yocto-linux” by “linux-yocto”
- test-manual: reproducible-builds: stop mentioning LTO bug
- ref-manual: document KERNEL_LOCALVERSION
- ref-manual: variables: document OEQA_REPRODUCIBLE_TEST_PACKAGE
- migration-guides: updates for 4.3
- migration-guides: mention runqemu change in serial port management
- ref-manual: document KERNEL_STRIP
- migration-guides: further updates for 4.3
- manuals: improve description of CVE_STATUS and CVE_STATUS_GROUPS
- ref-manual: document MESON_TARGET
- ref-manual: document cargo_c class
- ref-manual: variables: mention new CDN for SSTATE_MIRRORS
- ref-manual: variables: add RECIPE_MAINTAINER
- ref-manual: variables: remove SERIAL_CONSOLES_CHECK
- migration-guides: further updates for release 4.3
- bsp-guide: bsp.rst: update beaglebone example
- ref-manual: classes: explain cml1 class name
- migration-guides: fix empty sections
- manuals: fix URL
- ref-manual: releases.svg: update nanbield release status
- dev-manual: layers: update link to YP Compatible form
- contributor-guide: fix command option
- migration-guides: release 3.5 is actually 4.0
- test-manual: text and formatting fixes
- test-manual: resource updates
- test-manual: use working example
- test-manual: add links to python unittest
- test-manual: explicit or fix file paths
- test-manual: add or improve hyperlinks
- dev-manual: runtime-testing: fix test module name
- contributor-guide: use “apt” instead of “aptitude”
- ref-manual: update tested and supported distros
- dev-manual: start: remove idle line
- docs: remove support for mickledore (4.2) release
- release-notes-4.3: fix spacing
- ref-manual: system-requirements: update packages to build docs
- ref-manual: release-process: grammar fix
- manuals: suppress excess use of “following” word
- dev-manual: packages: clarify shared PR service constraint
- dev-manual: packages: need enough free space
- dev-manual: packages: fix capitalization
- manuals: document VIRTUAL-RUNTIME variables
- manuals: add initial stylechecks with Vale
- profile-manual: usage.rst: formatting fixes
- manuals: use “manual page(s)”
- profile-manual: usage.rst: fix reference to bug report
- documentation: Makefile: remove releases.rst in “make clean”
- migration-guides: draft notes for upcoming release 5.0
- manuals: add initial stylechecks with Vale
- profile-manual: usage.rst: further style improvements
- manuals: fix duplicate “stylecheck” target
- manuals: add initial sphinx-lint support
- manuals: fix trailing spaces
- manuals: fix incorrect double backticks
- migration-guides: add missing opening tag colon
- release-notes-5.0: documentation highlights
- manuals: remove tab characters
- dev-manual/debugging: mention new “taskexp_ncurses“ option
- migration-guides: release-notes-5.0: update docs highlights
In total, 173 commits were merged in the yocto-docs repository between Yocto 4.3 and Yocto 5.0, 74 commits were authored by Bootlin engineers, and another 98 commits were reviewed/merged by Bootlin engineer Michael Opdenacker, as the Yocto documentation maintainer.
Other contributions
We also contributed a few changes to the meta-yocto repository:
- poky.conf: update SANITY_TESTED_DISTROS to match autobuilder
- local.conf.sample: remove mips edgerouter machine
And to the yocto-autobuilder2 repository:
- schedulers: ensure correct branch is used for meta-exein for nanbield
- schedulers: drop meta-oe-mirror and reproducible-meta-oe from SWAT monitoring
- schedulers: use proper bitbake repo and branch for abelloni-next
Conclusion
In conclusion, our contributions to the latest Yocto Project release, version 5.0 (Scarthgap), underscore our deep involvement in both the utilization and enhancement of this critical toolset for embedded Linux development. Through significant contributions to openembedded-core, bitbake, and yocto-docs repositories, we have not only improved testing and CI infrastructure but also enhanced documentation and package management capabilities.
If you need help with using Yocto for your embedded Linux projects, we offer engineering services and a dedicated training course with open-source and freely available