summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2023-10-11oeqa/sdk/rust: Add build and run test of rust binary with SDK hostlucaceresoli/rust-cross-canadian-oeqaSean Nyekjaer
Add a QA test to the SDK to test that a basic cargo build works for the SDK host. (From OE-Core rev: 9407748eeb1467c37c3bc074818f3ab55c913c95) Signed-off-by: Sean Nyekjaer <sean@geanix.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11rust-cross-canadian: set CARGO_TARGET_<triple>_RUNNER for nativesdkSean Nyekjaer
This will enable us to build and run rust programs on the sdk host. % cargo run --target x86_64-oesdk-linux-gnu -vv Fresh hello v0.1.0 (~/development/hello) Finished dev [unoptimized + debuginfo] target(s) in 0.02s Running `/usr/local/sdk/sysroots/x86_64-oesdk-linux/lib/ld-linux-x86-64.so.2 target/x86_64-oesdk-linux-gnu/debug/hello` Hello, world (From OE-Core rev: d473fa39d0821812b0b03c83453553df8e892b84) Signed-off-by: Sean Nyekjaer <sean@geanix.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11rust-cross-canadian: set CARGO_TARGET_<triple>_RUSTFLAGSSean Nyekjaer
Avoid setting sdk-wide RUSTFLAGS as these flags only are valid when building for target. This will enable building for different targets with different RUSTFLAGS. (From OE-Core rev: 2bb2b71733dde1b1bbcb56f9af871814e07f30df) Signed-off-by: Sean Nyekjaer <sean@geanix.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11insane: 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: 42c6195c33715042d833a7fd8faffe22ada242bd) Signed-off-by: Jérémy Rosen <jeremy.rosen@smile.fr> Reviewed-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11insane: 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: 10cc25f683792886f07a0e97ca3d4b0782a5c75e) Signed-off-by: Jérémy Rosen <jeremy.rosen@smile.fr> Reviewed-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11insane: 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: 22fba707be3d2c25bb2b85b43f8caaa132d4390b) Signed-off-by: Jérémy Rosen <jeremy.rosen@smile.fr> Reviewed-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11insane: 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: ed89eecf8a8f89da97bf31c43ba8be08b8a36db8) Signed-off-by: Jérémy Rosen <jeremy.rosen@smile.fr> Reviewed-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11scripts/patchreview: Add a custom pattern for finding recipe patchesMickael RAMILISON
This introduces support for specifying a search pattern with the -p/--pattern option in the patchreview.py script. This is designed to accommodate the directory structure of meta-openembedded. (From OE-Core rev: c73f33861c41525a518a46cd3cdb345f2970526a) Signed-off-by: Mickael RAMILISON <mickael.ramilison@smile.fr> Reviewed-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11perl: fix intermittent test failureWilliam Lyu
Fixes [YOCTO #15136] This fix addresses the intermittent failure of the Perl ptest t/op/sigsystem.t. (From OE-Core rev: c20f0a4184d25a514b152eeaf0bcda92e19835ac) Signed-off-by: William Lyu <William.Lyu@windriver.com> Signed-off-by: Randy MacLeod <randy.macleod@windriver.com> Reported-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11go: update 1.20.8 -> 1.20.9Jose Quaresma
Upgrade to latest 1.20.x release [1]: $ git log --oneline go1.20.8..go1.20.9 68f9a6e2ad (tag: go1.20.9) [release-branch.go1.20] go1.20.9 31d5b604ac [release-branch.go1.20] cmd/compile: use absolute file name in isCgo check 83dce45959 [release-branch.go1.20] cmd/link: suppress -bind_at_load deprecation warning for ld-prime 08c544db98 [release-branch.go1.20] cmd/link: disable DWARF by default in c-shared mode on darwin 071f03a8e5 [release-branch.go1.20] cmd/link: force old Apple linker in plugin mode [1] https://github.com/golang/go/compare/go1.20.8...go1.20.9 (From OE-Core rev: c31a0584c88d518f7f094ff00ff5549e952f4162) Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11go: update 1.20.7 -> 1.20.8Jose Quaresma
Upgrade to latest 1.20.x release [1]: $ git log --oneline go1.20.7..go1.20.8 d5b8518043 (tag: go1.20.8) [release-branch.go1.20] go1.20.8 2070531d2f [release-branch.go1.20] html/template: properly handle special tags within the script context 023b542edf [release-branch.go1.20] html/template: support HTML-like comments in script contexts 612da32fb5 [release-branch.go1.20] cmd/compile: in expandCalls, move all arg marshalling into call block f0b8768dbc [release-branch.go1.20] path/filepath: don't drop .. elements when cleaning invalid Windows paths b463668275 [release-branch.go1.20] runtime: profiling on Darwin cannot use blocking reads 974a3c9af7 [release-branch.go1.20] go/types, types2: don't panic during interface completion 14e3c7338d [release-branch.go1.20] cmd/api: rename api.go to main_test.go 095cfba86b [release-branch.go1.20] crypto/tls: add GODEBUG to control max RSA key size 1a91bb94b0 [release-branch.go1.20] cmd/go: do not index std as a module in modcache ede3e278ae [release-branch.go1.20] net/http: permit requests with invalid Host headers 201f8b40dc [release-branch.go1.20] cmd/go: refuse to build Go 1.22 code [1] https://github.com/golang/go/compare/go1.20.7...go1.20.8 (From OE-Core rev: d3cd6a11d12cd576ef08eb6c05caf38721e10ccf) Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11sstatesig: be more precise and show the full path in exceptionsJose Quaresma
Also remove the warning than doesn't make sense as the code will generate an exception and bitbake will abort. Before: | WARNING: core-image-minimal-initramfs-1.0-r0 do_image_complete: KeyError in . | Exception: Exception: KeyError: 'getpwuid(): uid not found: xxxxx' | Path . is owned by uid xxxxx, gid yyy, which doesn't match any user/group on target. This may be due to host contamination. After: | Exception: Exception: KeyError: 'getpwuid(): uid not found: xxxxx' | Path /build/tmp/work/intel_corei7_64-lmp-linux/core-image-minimal-initramfs/1.0-r0/sstate-build-image_complete is owned by uid xxxxx, gid yyy, which doesn't match any user/group on target. This may be due to host contamination. (From OE-Core rev: 980295136c6494044fdb5149a6c7d8c599b23fcc) Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11gstreamer1.0-plugins-good: Provide Qt6 option for qmlglAndreas Cord-Landwehr
Gstreamer release 1.22.0 introduced option for Qt6 API. (From OE-Core rev: b2ce5ab0a565d5c1b17e8e5726d19ff937d6a2a4) Signed-off-by: Andreas Cord-Landwehr <cordlandwehr@kde.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11meta/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: f17b31aac941722d53033dddb512acb1c1a32f03) 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> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11insane: 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: b165deef0991c4bb4b811eaaa2534b1dbe7578c3) Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11oe-selftest devtool: ide testsAdrian Freihofer
(From OE-Core rev: 5872d340d2f8694e455ee284e6ddc021313bdf7c) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11devtool: 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: 2d391fdde1a7a03c448452d52da01abe2b113c5a) Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11devtool: refactor deploy-targetAdrian Freihofer
(From OE-Core rev: 129a3330502d52e049c43c1a2fb13b1c63c25c1c) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11cpp-example: workaround for pseudo breakeageAdrian Freihofer
(From OE-Core rev: d585e9f0bc98572544c2910edb5573691143bdb4) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11tests: 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: ddfc0acd66b4f5b353778f08a9430a88ea8779fb) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11devtool: 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: 39fb79742a980c547a7b9fa4c781a23db6e9f728) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11cmake.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: 60ada9b6134994ea885061b7805a968f543fba69) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11vscode: 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: cde86fc27d676acd5ae9bc7dc94d33e8e0d01520) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11bitbake: tests/fetch.py: Add tests to cover multiple branch/name parametersPavel Zhukov
Create repository with few branches and test if fetcher can work with such repository as PREMIRROR (Bitbake rev: e302ec8774f681095dafd086b8e07b8e14956cc1) Signed-off-by: Pavel Zhukov <pavel@zhukoff.net> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11bitbake: 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: db16648f0e200a83a1de5d30463780fdfd802bcd) 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> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11bitbake: 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: b66a7687763d6d9e42f8c285ffba20b2c10eacb0) Signed-off-by: Alberto Pianon <alberto@pianon.eu> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11bitbake: 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: 0ebbda2e565c70786a8a823ecac05c0bfd225da3) Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11bitbake: bitbake-getvar: Add -v as short option for --valuePeter Kjellerstedt
(Bitbake rev: 8e291fc067085e81b7286c1ff948013f84ca9803) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11bitbake: bitbake-getvar: Add -s as short option for --ignore-undefinedPeter Kjellerstedt
(Bitbake rev: d2bdb348c45925a93817e4a36d417278ca1824c7) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2023-10-11oeqa/runtime/_qemutiny: rewrite test to be functionalRoss Burton
The _qemutiny is a small test case that was explicitly designed to do a minimal level of testing for poky-tiny images. These typically don't have SSH servers so we need to assume that qemu is being used and access the serial console directly. (From OE-Core rev: 2245b2754d6f4798127ce85a2ab7cb48f458c1f7) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-11busybox-inittab: fix console handlingRoss Burton
A testing failure meant that the inittab changes made in 6c65544 didn't actually work. A copy-paste problems meant that start_getty was being invoked instead of getty, but start_getty is sysvinit-inittab-specific. Revert this inittab to calling getty directly. Remove the terminal type, this wasn't specified in the original inittab. Busybox's init has non-standard behaviour for the inittab's ID field. With SysV this is a four-character identifier and nothing more, but with busybox init this is the controlling terminal (minus /dev). If the terminal doesn't exist then busybox doesn't gracefully handle the failure but instead repeatedly fails to spawn. As getty will immediately issue a setsid() this isn't needed for getty entries, so the ID can be empty and ttyrun does the terminal detection. (From OE-Core rev: 71202782a06ed1f0a17e00072b74b21195f2f5f9) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-11meta/conf/machine: remove SERIAL_CONSOLES_CHECKRoss Burton
There's no need for this variable anymore, as all consoles listed in SERIAL_CONSOLES are checked for their existence before a getty is started. (From OE-Core rev: 8a1060952f8b6956acf747f3853401ac8a981fc3) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-11oeqa/selftest: don't skip test_read_only_image on qemuarm64Ross Burton
There's no need to skip this test anymore, as skipping on qemuarm64 was a proxy for "uses SERIAL_CONSOLES_CHECK" which no longer exists. [ YOCTO #14962 ] (From OE-Core rev: 1b8b1cb74c8f5f387a14d86f03f37f68c07dd9aa) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-11oeqa/utils/gitarchive: ensure tag matches regex before getting its fieldsAlexis Lothoré
Whenever we ask gitarchive to retrieve test results for specific revisions, we first do a "large" search in get_tags, which uses glob patterns with git ls-remote, and then we filter received tags with a regex to parse the tags fields. Currently gitarchive assumes that all tags returned by get_tags will match the regex. This assumption is wrong (for example searching "master-next" in get_tags may return some tags like "abelloni/master-next), and leads then to exception when we try to retrieve tags fields: Traceback (most recent call last): File "/home/pokybuild/yocto-worker/a-full/build/scripts/resulttool", line 78, in <module> sys.exit(main()) ^^^^^^ File "/home/pokybuild/yocto-worker/a-full/build/scripts/resulttool", line 72, in main ret = args.func(args, logger) ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/pokybuild/yocto-worker/a-full/build/scripts/lib/resulttool/regression.py", line 315, in regression_git revs2 = gitarchive.get_test_revs(logger, repo, tag_name, branch=args.branch2) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/pokybuild/yocto-worker/a-full/build/meta/lib/oeqa/utils/gitarchive.py", line 246, in get_test_revs fields, runs = get_test_runs(log, repo, tag_name, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/pokybuild/yocto-worker/a-full/build/meta/lib/oeqa/utils/gitarchive.py", line 238, in get_test_runs groups = m.groupdict() Fix this exception by merely skipping those additionals tags which won't match the regex (From OE-Core rev: 8b5ace47372e958db9e4abb23378947fb02f6fc2) Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-11oeqa/utils/gitarchive: fix tag pattern searchingAlexis Lothoré
Whenever we ask gitarchive to search for tags, we can provide it with a pattern (containing glob patterns). However, when searching for example for tags matching branch master-next, it can find more tags which does not correspond exactly to branch master-next (e.g. abelloni/master-next tags will match). Prevent those additional tags from being fetched by gitarchive by using a more specific pattern: prefix user-provided pattern with "refs/tags" (From OE-Core rev: c24b7ea28021da48aa8f3498a9b899f595efde56) Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-11oeqa/qemurunner: Ensure we retry after BrokenPipeErrorRichard Purdie
If the BrokenPipeError occurs when writing to the serial port to wake it up, defer the write and try again (which will happen on the 5s timeout of the select call). Why it should return ESHUTDOWN and then work later I'm not sure but it does appear to make it work. For now we need 'working' QA tests whilst the issue is debugged. (From OE-Core rev: ea9e6ba0ab31a0b20012c283aa768496a50b527a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-11rust: reproducibility issue fixSundeep KOKKONDA
The '--remap-path-prefix' option removes all references to build directory structure in the debug information within the compiled output for Cargo dependencies and the project's binary. However, some references to build directories remains in the final binary in .rustc section in the form of compressed metadata and this makes the build output dependent on the folder structure of the computer it's compiled on. So, for reproducible builds, use the configuration option 'remap-debuginfo = true' along with the '--remap-path-prefix'. [YOCTO# 14875] (From OE-Core rev: 6ae62259afbbe861ed74211dab18a27b8c8d8b7a) Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-10wic: fix a typo in help outputAndré Draszik
(From OE-Core rev: 1c35beb935d42e200370b54f9aa3848b940966dd) Signed-off-by: André Draszik <git@andred.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-10poky/poky-tiny: Switch to the 6.5 kernelRichard Purdie
6.4 is EOL so switch to the 6.5 kernel. (From meta-yocto rev: 2b6624b894c8a458be7d4b13b1691a89ead44120) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-10oeqa/qemurunner: Add extra logging when console doesn't appearRichard Purdie
If the console doesn't appear, breifly sleep and try an extra read. This is a useful debugging trick which we may as well preserve in the code. We're already failing at this point so extra data is useful. This means if we perturb things on the other port, we may gain useful logging insight. (From OE-Core rev: be3724854947ded160789d0353b7efb8c593040f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-10runqemu/qemurunner: Use nodelay with tcp serial connectionsRichard Purdie
This disables Nagle's algorithm for our tcp serial connections which may be causing data transfer issues. (From OE-Core rev: f8eff4c427881a98333fdf7c42f66ed6603e4f03) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-10oeqa/qemurunner: Add newlines serial workaroundRichard Purdie
We're struggling with the 6.5 kernel as the serial port getty doesn't appears sometimes leading to failures in CI. Add a workaround of sending some newlines as a way of unblocking the kernel/release issues whilst we try and work out how to get to the bottom of the issue. (From OE-Core rev: 0a65f0d272895ba13c8c133ee71f3605d765a8a7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-10qemux86/qemuarm: Drop kernel version overridesRichard Purdie
Drop the version overrides for the kernel for the x86 and arm machines so we can go back to following the distro versions. The reasons for these versions is mostly historical at this point as the issues were resolved. (From OE-Core rev: 298fa078fab58b64246376ffd70ad6a0c7589876) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09oeqa/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: 7047a067548acd592a834d4315579fb606b4b9d7) Signed-off-by: Julien Stephan <jstephan@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09scripts/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: 2d9ab0cfd7f3cacc347954676f1323342a6b286f) Signed-off-by: Julien Stephan <jstephan@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09sstatesig: 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: 840402181d36ca3f60119984478979afb5bb3bbf) Signed-off-by: Julien Stephan <jstephan@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09bitbake.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: fb85282476f9dee2b0364c305ca75b096a76b1ae) Signed-off-by: Julien Stephan <jstephan@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09migration-guides: add release notes for 4.0.13Lee Chee Yang
(From yocto-docs rev: ceb1812e63b9fac062f886c2a1dde23137c0e1ed) Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09overview: Add note about non-reproducibility side effectsJoshua Watt
Adds an additional note about some of the side effects that can occur if recipes are not reproducible and hash equivalence is enabled. (From yocto-docs rev: 1ccc8eefe21bc432c903bb245bd0dab06e67cc14) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-09dev-manual: fix testimage usage instructionsTrevor Gamblin
The proper way to inherit the testimage class is now IMAGE_CLASSES += "testimage" so change lines with 'INHERIT += "testimage"' to match. This makes the dev-manual consistent with the migration guide, which already specifies that the old way causes an error. (From yocto-docs rev: 2a3e2c6e48be6f7ec2b3ff0817144dd1036961ba) Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>