summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2023-10-04selftest: Add tests for populate_sdk taskabelloni/testingPavel Zhukov
Two tests to cover both installing package with IMAGE_INSTALL as well as installing versioned dependencies of the package (using perl (>= 5.XX). Related: [Yocto #13338] [Yocto #14995] [Yocto #14066] (From OE-Core rev: 8fd33f99f52962cbc06f01e844abb505ec06f777) Signed-off-by: Pavel Zhukov <pavel@zhukoff.net> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04package_deb: Revert versioned providers workaroundPavel Zhukov
dpkg and apt seem to handle versioned provides correctly now [1] so this workaround is not needed anymore. This fixes [Yocto #14995] for package_deb. [1] (From OE-Core rev: 8c275d61f6f143f62b77abd060fdf17374ee53ac) Signed-off-by: Pavel Zhukov <pavel@zhukoff.net> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04dummy-sdk-package.inc: Filter packages which are marked for installationPavel Zhukov
if packages is provided by dummysdk and in the same time marked for installation with IMAGE_INSTALL it causes conflict in apt because virtual providers are not taken into account if package is asked to be installed explicitly. Filter such packages from provides/conflicts to workaround this problem. This workaround brakes RPM usecase because of file conlicts with DUMMYPROVIDES, use DUMMYPROVIDES_PACKAGES_MULTILIB instead (which doesn't include file based conflicts). While this is needed for the case of package_deb only adding it for all package managers to not complicate the code. Fixes: [Yocto #13338] [Yocto #14066] Fixes: The following information may help to resolve the situation: The following packages have unmet dependencies: target-sdk-provides-dummy : Conflicts: bash E: Unable to correct problems, you have held broken packages. (From OE-Core rev: f2249fcc56b08ed6801a7ff663f31bffe0445f3c) Signed-off-by: Pavel Zhukov <pavel@zhukoff.net> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04insane: Add a naive heuristic to detect test subdirectoriesJérémy Rosen
if there is a "test" or "tests" subdirectory at toplevel, this usually means we have some unit tests available. This test is very good at detecting handcrafted tests and I was not able to find any false positive. False positive can be dealt with the usual INSANE_SKIP mechanism (From OE-Core rev: 28a9d91a4418e489a6a5aaf2578474ee1822653d) Signed-off-by: Jérémy Rosen <jeremy.rosen@smile.fr> Reviewed-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04insane: Detect build-system test harnessesJérémy Rosen
most build-systems have a way to implement a "make check" or equivalent command that will run tests in the source directory. This heuristic will detect the keywords in the build-system configuration that activates tests. Note that in the case of autotools, we use Makefile.in as our source instead of Makefile.am to easily follow includes. Filenaming conventions for autotools files are not reliable enough to do naive matching. (From OE-Core rev: c341159ed92192d21fbb29ef04f7d32e842566f7) Signed-off-by: Jérémy Rosen <jeremy.rosen@smile.fr> Reviewed-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04insane: Detect python and perl based testsJérémy Rosen
match_line_in_files will look for a regex in all files matching a glob. we use iglob to avoid a complete, recursive scan of all source. iglob is based on python iterators and will scan as we walk through the directories pytest are detected by looking for "import pytest" or "from pytest" in any python file. perl Test:: is detetected by looking for any t/*.t in the toplevel source directory. (From OE-Core rev: 8f7d80b4cb64d8d8f07822fa3ede2a3316438d09) Signed-off-by: Jérémy Rosen <jeremy.rosen@smile.fr> Reviewed-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04insane: Add unimplemented-ptest infrastructureJérémy Rosen
This infrastructure will use heuristics to detect when package sources seem to have unit tests implemented but no ptest have been implemented in the recipe. No heuristics have been implemented at this point, only the infrastructure to skip the test when ptest are implemented. This is part of python_do_qa_patch since we need the sources in their final state but do not need any configuration done A missing-ptest QA test already existed but it was used for a different purpose and overridden by ptest.bbclass. Thus, a new QA keyword was added Note: The QA test is not enabled by default and may be enabled to hunt down potential ptests with: WARN_QA += "unimplemented-ptest" (From OE-Core rev: cacaf6539e217e52d0619dde04013daa6d2cd327) Signed-off-by: Jérémy Rosen <jeremy.rosen@smile.fr> Reviewed-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04recipetool/create_buildsys_python: use importlib instead of impChris Laplante
'imp' was deprecated in Python 3.4 and removed in 3.12. The piece of importlib we use has been around since 3.3. (From OE-Core rev: 797e28e3604d0fbc9515d255ae24bb337ab648a6) Signed-off-by: Chris Laplante <chris.laplante@agilent.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04packages.bbclass: Correct the check for conflicts with renamed packagesPeter Kjellerstedt
The original solution replaced all overrides with the package name that was being checked. This can have unforseen consequences where some variable involved in defining the value for the PKG:<package> variable may rely on some override which is not set as expected. It also meant that any PKG variable set using an override would not be caught, e.g., PKG:${PN}:${MACHINE} = "${PN}-dev" (made up example that would always fail with the old code). (From OE-Core rev: 90387254d941d33a6d38d29e0d166f440c4871db) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04scripts/oe-setup-layers: Update how to determine if directory is git repoJermain Horsman
Previously _is_repo_git_repo() would return a result containing b'true\n' or b'false\n' if 'git rev-parse' ran successfully, instead of True of False. While this can be solved using e.g. result.strip().decode("utf-8") == "true", there are some other cases to consider. First, .git can be a file and not a directory when using a worktree. Second, an emtpy .git directory in 'repodir' for which some parent of 'repodir' is an actual git repo will still return True in this case. To account for these cases as well, use 'git rev-parse --show-toplevel' and compare the result against 'repodir' instead of using 'git rev-parse --is-inside-git-dir'. (From OE-Core rev: 54ae64ba000e688bca7aeace63cbef4ae2b10a16) Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04oeqa/runtime/parselogs: ignore jitterentropy health failureRoss Burton
Sometimes the jitterentropy RNG fails to initialise on boot. My hunch is that this is due to the hardware timer not being high resolution enough combined with running inside a virtualised machine on a loaded host, and whilst the message looks bad it basically says "driver not suitable for hardware". I've contacted the author of the jitterentropy code to confirm or deny this hunch, but until then we can easily ignore the failure. (From OE-Core rev: ee205911d517c10532d0bd41e30b486c637c1bb1) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04autotools.bbclass: Add *.m4 to CONFIGURE_FILESPeter Kjellerstedt
This makes do_configure depend on changes to any m4 file when externalsrc is active. (From OE-Core rev: 17ea6d8d5bcb1fe3d0e10b9c0bce4b18173c5367) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04cmake.bbclass: Add *.cmake to CONFIGURE_FILESPeter Kjellerstedt
This makes do_configure depend on changes to any cmake file when externalsrc is active. (From OE-Core rev: 89639c3cff22dab0667f0a032a972810e56e7a4b) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04externalsrc.bbclass: Support specifying patterns in CONFIGURE_FILESPeter Kjellerstedt
This allows, e.g., *.cmake to be added to CONFIGURE_FILES to make the do_configure task depend on changes to any cmake file. (From OE-Core rev: 757c03bc27f7cc2daab5e9a626300bdcbc0aa548) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04gstreamer1.0-plugins-good: Provide Qt6 option for qmlglAndreas Cord-Landwehr
Gstreamer release 1.22.0 introduced option for Qt6 API. (From OE-Core rev: f30fefedb107155e9d0ab062cbd7326c8b52df30) Signed-off-by: Andreas Cord-Landwehr <cordlandwehr@kde.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04oeqa qemurunner.py: switch utf8 error handling from ignore to replaceMikko Rapeli
It seems like "ignore" is stopping decoding and failing to detect login prompts. Maybe "replace" works more reliably when reads from serial console are incomplete and we're trying to detect the login prompt. See logs like: https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/5833/steps/14/logs/stdio https://autobuilder.yocto.io/pub/failed-builds-data/6.5%20kernel/log.do_testimage.3051530 https://autobuilder.yocto.io/pub/failed-builds-data/6.5%20kernel/qemu_boot_log.20231001114436 Python documentation is not clear on how "ignore" and "replace" differ and both should continue processing if there are errors in the stream: https://docs.python.org/3/library/codecs.html#error-handlers (From OE-Core rev: d8686ea162c7e7339702097bdaa7a54ebb8de08e) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04u-boot: Upgrade to 2023.10Fabio Estevam
Upgrade to U-Boot 2023.10. The U-Boot 2023.10 tag is in the master branch, so switch the branch back to master. (From OE-Core rev: 0e0d2e9ef51f43694d49b5c701b4db534c4e63f8) Signed-off-by: Fabio Estevam <festevam@denx.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04uboot-extlinux-config.bbclass: Add menu title configurationDaniel Semkowicz
Add new UBOOT_EXTLINUX_MENU_TITLE variable that allows configuring the "MENU TITLE" entry. If set to empty, "MENU TITLE" will not be added to the output file. (From OE-Core rev: 2fce61ad56bb75ddfc6ceefd7ac16cdef801f72f) Signed-off-by: Daniel Semkowicz <dse@thaumatec.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04uboot-extlinux-config.bbclass: Uppercase "menu title" entryDaniel Semkowicz
All other extlinux.conf entries are written to the output file in uppercase. (From OE-Core rev: 57ae912ebe686fbb931d6d0c9ec7a6d61f1c0e0d) Signed-off-by: Daniel Semkowicz <dse@thaumatec.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04uboot-extlinux-config.bbclass: Remove repeated space characterDaniel Semkowicz
(From OE-Core rev: 406d3f0bc2471a073f96b963fa13391368201bb0) Signed-off-by: Daniel Semkowicz <dse@thaumatec.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04python3-numpy: remove obsolete reproducible workaroundRoss Burton
We currently delete some pycache files because frozenset wasn't able to be reproducible, but this has been fixed in Python 3.11: https://github.com/python/cpython/commit/33d95c6facdfda3c8c0feffa7a99184e4abc2f63 (From OE-Core rev: f1853d5f4db1a9788476afec446c5a57f3eabb40) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04gtk: Upgrade 4.12.1 -> 4.12.3Markus Volk
Overview of Changes in 4.12.3, 28-09-2023 ========================================= * GtkWindow: - Don't assume titlebars are GtkHeaderBar * GtkTreeView: - Fix a crash in gtk_tree_view_is_blank_at_pos * printing: - Fix some issues with the portal implementation * GSK: - Some optimizations in the GL renderer - Fix memory leaks in the Broadway renderer * demos: - Fix a crash in gtk4-demo * Translation updates Basque Brazilian Portuguese Czech Galician Georgian German Hungarian Kazakh Lithuanian Persian Polish Spanish Swedish Turkish Overview of Changes in 4.12.2, 20-09-2023 ========================================= * GtkTooltip: - Don't cross native boundaries when looking for tooltips * GtkCenterLayout, GtkEntry, GtkSearchEntry: - Fix some issues with baseline handling * GtkSwitch: - Respect text direction * Theme: - Use relative font sizes * GSK: - Make repeated gradients match between GL and cairo - Make rounded rect shrinking match between Vulkan, GL and cairo - Fix parsing of text nodes with color glyphs - Restrict an optimization to the cases where it is correct - Fix rendering of shadows with opacity * macOS: - Clamp damage regions to the surface size * Windows: - Fix missing minimize and maximize buttons * Translation updates Basque Brazilian Portuguese Catalan Chinese (China) Czech Danish Dutch Finnish Galician German Hungarian Italian Kazakh Latvian Lithuanian Slovenian Spanish Turkish (From OE-Core rev: 2965603e5a65a0b9f20c7fb9ddf0f7ad94c58382) Signed-off-by: Markus Volk <f_l_k@t-online.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04python3-docutils: Rename utilities to their canonical namesKhem Raj
Packages which use the utilities usually call/search for these tools without .py extension e.g. kernel-selftest and fails to find the tools if they are having .py extension. (From OE-Core rev: e67c5d4859821b13598d8476c17d3cd2df74e350) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04mesa: Upgrade 23.1.8 -> 23.2.1Markus Volk
- update 0001-gallium-Fix-build-with-llvm-17.patch - remove as added upstream: 0001-intel-Allow-using-intel_clc-from-the-system.patch - intel clc build is currently broken with llvm 17, but that issue is also present with mesa 23.1.8 https://gitlab.freedesktop.org/mesa/mesa/-/issues/9701 https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24879 https://github.com/KhronosGroup/SPIRV-LLVM-Translator/issues/2153 (From OE-Core rev: c15b3db09c1988948ca02a20adfc1cc3880f14a7) Signed-off-by: Markus Volk <f_l_k@t-online.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04wayland: consider pkgconfig sysroot for pkgdatadirAndreas Cord-Landwehr
Fix pkgconfig find calls to find wayland protocol XML files. See discussion in: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/102 (From OE-Core rev: f8e20f1f39eee6c92db16970f2c88f71957439c6) Signed-off-by: Andreas Cord-Landwehr <cordlandwehr@kde.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04openssh: update sshd_check_keys script to make use of 'sshd -G'Rasmus Villemoes
Parsing sshd's config file with 'sed' does not work in for example the case where somebody has made use of the new ability to add a config fragment in /etc/ssh/sshd_config.d/ with one or more HostKey stanzas. Also, sshd_config keywords are case-insensitive, but the current sed pattern only matches the CamelCase spelling of HostKey. In openssh 9.3, sshd learnt a new command line flag '-G', which causes sshd to parse the given configuration file and print the resulting effective configuration on stdout. So use that instead. Furthermore, since that "effective configuration" includes the default set of host keys if the configuration file has no HostKey stanzas, we also avoid the script needing to know what sshd's default is - that could plausibly change with some future release. (From OE-Core rev: fddb4a92daadf6dbe444a0fb12496f30aa5f61c6) Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04meta/recipes: Remove empty ${PN}/DEV_PKG_DEPENDENCY workaroundsFawzi KHABER
Remove superfluous DEV_PKG_DEPENDENCY = "" previously used to bypass ${PN}-dev package RDEPENDS on empty&non-built ${PN}. DEV_PKG_DEPENDENCY applies RRECOMMENDS now, all workarounds are not needed anymore. Related to [YOCTO #6839] and [YOCTO #8222] (From OE-Core rev: 310072c6466be3a06fb1063d8cd88b4a07d4ae4e) Signed-off-by: Yoann CONGAL <yoann.congal@smile.fr> Signed-off-by: Fawzi KHABER <fawzi.khaber@smile.fr> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04insane: Add QA check for RRECOMMENDS on non-existent packagesYoann Congal
Add a package QA check for when a package RRECOMMENDS another that won't be built because it is empty and ALLOW_EMPTY is not set. This happens usually when ${PN}-dev RRECOMMENDS ${PN} but ${PN} is empty. This is not an error but might be something to look into. Example of a generated warning: WARNING: python3-3.11.2-r0 do_package_qa: QA Issue: python3-dev -> python3 but won't be build [rrecommends-non-existent] Note: This QA check is voluntarily not enabled by default. This will make bugs [YOCTO #8222] and [YOCTO #6839] appear in the QA logs. Co-authored-by: Fawzi Khaber <fawzi.khaber@smile.fr> (From OE-Core rev: 07b97cf3ffe4ea5c8a28a06a041fbad71d373167) Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04python3-subunit: upgrade 1.4.2 -> 1.4.3Wang Mingyu
License-Update: Rely on external copy of iso8601 Changelog: ========== * Subunit now has a dependency on an external iso8601 module rather than shipping its own. * Drop various compatibility wrappers for Python < 3.6. * Fix "subunit-filter --fixup-expected-failures" on Python 3. (From OE-Core rev: a06fe09bd23d254c53cffac40226d43788ccf348) Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04oeqa/selftest/bblock: add self test for bblock toolJulien Stephan
it implements various combination of locking single/multiple recipe(s)/task(s) it also tests that locked sig are architecture dependant (From OE-Core rev: 2fa47f5556fa1baeb8c62ea5913268726e4d6c7d) Signed-off-by: Julien Stephan <jstephan@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04scripts/bblock: add a script to lock/unlock recipesJulien Stephan
bblock script allows to lock/unlock recipes to latest task signatures. The idea is to prevent some recipes to be rebuilt during development. For example when working on rust recipe, one may not want rust-native to be rebuilt. This tool can be used, with proper environment set up, using the following command: bblock <recipe_name> See help for more details if a <recipe_name>'s task signature change, this task will not be built again and sstate cache will be used. [YOCTO #13425] (From OE-Core rev: 93e4e6934b0097c05c786c9659d6ef1c9dcc249f) Signed-off-by: Julien Stephan <jstephan@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04sstatesig: add a new info level for SIGGEN_LOCKEDSIGS_TASKSIG_CHECKJulien Stephan
as of now, SIGGEN_LOCKEDSIGS_TASKSIG_CHECK can take 2 values: "warn" and "error", displaying respectively a warning or a fatal error message only when a task is locked and the task signature is different from the locked one. The "info" level is introduced to add a "note" message to remind the user that a recipe is locked even if the signature is equivalent to the locked one. The "warn" and "error" level display the warn/error message for each task having a mismatch of the signature. Doing this with the "info" level would result in very verbose output if there are several tasks locked, so the info level will only print once the list of recipes that have locked signature. (From OE-Core rev: 87970e4eaa6092872fab20c69feb84bd15f26dde) Signed-off-by: Julien Stephan <jstephan@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04bitbake.conf: include bblock.confJulien Stephan
include conf/bblock.conf. This file is generated by the bblock tool. It locks some package tasks by fixing their signatures. See bblock -h for more details (From OE-Core rev: fd659fb7e90ad41dd1a0af50b236820c68f047dc) Signed-off-by: Julien Stephan <jstephan@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04oe-selftest devtool: ide testsAdrian Freihofer
(From OE-Core rev: a22e3d792a94fbe18bee1d1e0205ae38a0038840) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04devtool: ide make deploy-target quickerAdrian Freihofer
Instead of calling devtool deploy-target which starts a bitbake server to get some variables the previous refactoring allows to generate a simple script which does no longer depend on variables from bitbake. This is much faster. (From OE-Core rev: cd4765fc7ec5e15ea6e1c1331478dbf799961ad1) Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04devtool: refactor deploy-targetAdrian Freihofer
(From OE-Core rev: 256d86d1ce1154ffe53cc682517eb3d5b6623005) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04cpp-example: workaround for pseudo breakeageAdrian Freihofer
(From OE-Core rev: c795651ecce1d59610bf7849980dd707bb1b9969) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04tests: add a C++ example recipeAdrian Freihofer
This simple C++ project supports compilation with cmake and with meson. It's supposed to be used with oe-selftest for the devtool ide plugin. (From OE-Core rev: 87c2bcbcf5afc520bdd8cc2e3d7bb60bc977a9d2) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04devtool: new ide pluginAdrian Freihofer
The new devtool ide plugin configures an IDE to work with the eSDK. With this initial implementation VSCode is the default IDE. The plugin works for recipes inheriting the cmake or the meson bbclass. Support for more programming languages and build tools may be added in the future. Using the plugin in recipe modes: $ devtool modify a-recipe $ devtool ide a-recipe a-image $ code "$BUILDDIR/workspace/sources/a-recipe" Work in VSCode, after installing the proposed plugins Using the plugin without a recipe $ devtool ide none a-image vscode where/the/sources/are Use the cross tool-chain which is provided as a cmake-kit. The goal of this implementation is to create a configuration for VSCode (or other IDEs) that allows to work on the code of a recipe completely independent from bitbake. bitbake is only called if the configuration or the whole SDK has to be regenerated. But bitbake should not need to be called while working in the IDE. This has two major advantages over calling devtool build from the IDE: - The IDE provides plugins for integration with cmake, for example. These features are usable, which would not be the case if bitbake or devtool are called from within the IDE. - It is much faster. (From OE-Core rev: 27cd90276d8a22fd181c0ff28997543f6d6ed0a1) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04cmake.bbclass: support qemuAdrian Freihofer
Define the CMAKE_CROSSCOMPILING_EMULATOR variable similar to what the meson bbclass does. This allows for example to execute cross compilied unit tests on the build machine. CMAKE_CROSSCOMPILING_EMULATOR is a semi colon separated list of paramters which could directly handle the -L and the -E parameters. Creating a wrapper script is not absolutely mandatory. But anyway lets do it similar to what the meson.bbclass does and also disable pseudo. (From OE-Core rev: a94d6f99f1248b822a9b97dcbb355c18165bf6fd) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04vscode: add minimal configurationAdrian Freihofer
It is essential to configure VSCode indexer plugins to ignore the build folder of bitbake. Otherwise, the indexer plugins run with 100% CPU load until an OOM exception occurs. In practice, this makes VSCode more or less unusable for working with Yocto until a file like the one added by this commit is deployed before VSCode starts. From the user's point of view, it is not obvious why the system runs at 100% CPU load and eventually crashes. It is even more misleading that VSCode starts the indexers immediately, but does not stop or reconfigure them when the ignore list is updated. In practice, this means that every time the ignore list is changed, VSCode immediately starts indexing the build folder until the OOM exception stops it. Depending on the system's OOM handler, the entire build machine may crash. Particularly annoying is the Python plugin that ignores the general ignore list and requires an extra ignore section. The settings are suitable for workflows like bitbake, devtool modify, devtool reset. The settings are not intended to work on the source code of a recipe. It is assumed that a separate instance of VSCode is used per workspace folder. These per workspace instances can have different settings depending on the details of the sources that come with the recipe. The new devtool ide plugin will generate settings to match this. (From OE-Core rev: d6d31fa603d6b4396017d03e80d81bf379df3b5d) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04bitbake: toaster: Monitoring - implement Django logging systemAlassane Yattara
(Bitbake rev: 00aa110e86b7a4e575ef01ed522c80cf8b5efc4b) Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04bitbake: toaster:update selenium version and code syntaxMarlon Rodriguez Garcia
Updated selenium version to latest 4.13.0, changed selenum specific version syntax elements to accomplish test success (Bitbake rev: cf8a32c566d71aaef84f9a7ca86b6eb6a1ea3fa5) Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04bitbake: hashserv: Fix read-only modeBen Houcine, Karim
TCP read-only hash equivalence server is not working: the connection is prematurely closed without even notifying the value of the unihash. Expected behaviour is: 1. the client sends a ‘report’ message indicating the 'taskhash', 'method', 'outhash' and a proposed value of 'unihash'. 2.the server sends back the 'taskhash', 'method' and actual value of 'unihash' to use. The problem is that in read-only mode, the server rejects 'report' messages (connexion is closed). hashserv.tests.TestHashEquivalenceUnixServer.test_ro_server test modified accordingly (Bitbake rev: 8a3fc997974c4e1179a9ccb302b11796c8c92a3c) Signed-off-by: Karim Ben Houcine <karim.benhoucine@landisgyr.com> Indeed, using selt.get_unihash() is better, thanks. Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04bitbake: fetch2: Add API for upstream source tracingAlberto Pianon
This patch adds an API to bb.fetch2 to enable users to plug in an unpack tracer that can trace each source file back to its corresponding upstream source url, even when multiple upstream sources are combined together in the same unpack directory. This may be required for software composition analysis, license compliance, and detailed SBoM generation. This patch provides only the needed hooks in bb.fetch2 code and a dummy abstract class defining the API; users may load their own unpack tracer class by setting the BB_UNPACK_TRACER_CLASS config parameter. (Bitbake rev: a976e91a460d0b04ca9ba34b9e2f25ea6d990457) Signed-off-by: Alberto Pianon <alberto@pianon.eu> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04bitbake: bitbake-worker: add header with length of messageEtienne Cordonnier
The IPC mechanism between runqueue.py and bitbake-worker is currently not scalable: The data is sent with the format <tag>pickled-data</tag>, and bitbake-worker has no information about the size of the message. Therefore, the bitbake-worker is calling select() and read() in a loop, and then calling "self.queue.find(b"</" + item + b">")" for each chunk received. This does not scale, because queue.find has a linear complexity relative to the size of the queue, and workerdata messages get very big e.g. for builds which reference a lot of files in SRC_URI. The number of chunks varies, but on my test system a lot of chunks of 65536 bytes are sent, and each iteration takes 0.1 seconds, making the transfer of the "workerdata" data very slow (on my test setup 35 seconds before this fix, and 1.5 seconds after this fix). This commit adds a 4 bytes header after <tag>, so that bitbake-worker knows how many bytes need to be received, and does not need to constantly search the whole queue for </tag>. (Bitbake rev: ae19d1f432891a73acfe6fa8fdeb5ec706660e81) Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04bitbake: bitbake-getvar: Add -v as short option for --valuePeter Kjellerstedt
(Bitbake rev: fb1164cf43cf1f5b3d833150b68aaf8941f891c1) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04bitbake: bitbake-getvar: Add -s as short option for --ignore-undefinedPeter Kjellerstedt
(Bitbake rev: 7ad5c01e5fb8dae4ff7b9377cba32c2299ad3647) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-10-04glibc: Pull in stable branch fixesRichard Purdie
Pull in stable branch fixes including: * tunables: Terminate if end of input is reached (CVE-2023-4911) * Propagate GLIBC_TUNABLES in setxid binaries * Document CVE-2023-4806 and CVE-2023-5156 in NEWS * Fix leak in getaddrinfo introduced by the fix for CVE-2023-4806 [BZ #30843] Also set CVE_STATUS accordingly for the fixes pulled in. (From OE-Core rev: 7d77bce6158bf11a2de0944f75589382f153bb91) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-04scritps/runqemu: Ensure we only have two serial portsRichard Purdie
I have a theory that some of the console boot issues we're seeing are due to starting images with three serial ports yet only starting gettys on two of them. This means that occasionally, depending on the port numbering we may not get a login prompt on the console we expect it on. To fix this, change the runqemu code so that if serial ports are passed in on the commandline (as is the case in automated testing), we don't add any other GUI serial consoles. We do need to make sure we do have at least two serial ports since we don't want getty timeout warnings. (From OE-Core rev: 1b0348535dce3b776efbcf26406b94730a51eb85) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>