summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2022-12-30bitbake: Fix up some race conditionsjpew/bitbake-process-race-fixesJoshua Watt
The idle function dictionary should never be accessed without a lock, and a condition variable should be used to check if all idle functions are removed in an atomic and race-free manner Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
2022-12-30cargo: Do not use open64 on musl anymoreKhem Raj
The same rust getrandom patch is needed for cargo on target as well as it uses the same crate (From OE-Core rev: f982717293f793dfc82ce283916ed266949b21d6) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30boost-build-native: update 1.80.0 -> 1.81.0Alexander Kanavin
boost itself is already updated. (From OE-Core rev: e50f4ce99aa98d4c8e5212a990a69c78474e7d34) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30vulkan-samples: update to latest revisionAlexander Kanavin
(From OE-Core rev: e774230e2f6583ca2ef647f9064f6c043cf9fffc) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30go: update 1.19.3 -> 1.19.4Alexander Kanavin
(From OE-Core rev: 82b8516395bae5f6b473ae68d52c1be4b9eba0d0) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30nativesdk-rpm: don't create wrappers for WRAPPER_TOOLSMartin Jansa
* environment.d/rpm.sh sets the right environment in SDK and we don't need to use them (From OE-Core rev: 4d59c009073e22a289b8f3bba35cbaf55676eae2) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30nativesdk-rpm: export RPM_ETCCONFIGDIR and MAGIC in environment like ↵Martin Jansa
RPM_CONFIGDIR * the paths in wrapper don't work for rpmdeps which is installed in ${libdir}/rpm unlike other wrapped bins from ${bindir} these relative paths don't work there * replace environment.d-rpm.sh with here-doc so that we can use OE variables * in the end it might be better to just get rid of the wrappers at this point and depend on environment.d to always set right values * the wrappers were added in: commit 760103cdaed3e820888d8984ec0b76cfc831d534 Author: Ovidiu Panait <ovidiu.panait@windriver.com> Date: Fri May 25 10:48:29 2018 +0800 nativesdk-rpm: Add wrappers for nativesdk support When installing the SDK to a non-default path, running "rpm --showrc" from the sdk will produce the following error: error: Unable to open /opt/windriver/wrlinux-small/10.17.41/sysroots/x86_64-wrlinuxsdk-linux/usr/lib/rpm/rpmrc for reading: No such file or directory. Fix this by adding wrappers that dynamically export the RPM_CONFIGDIR, RPM_ETCCONFIGDIR and MAGIC environment variables, pointing to the proper sdk locations. * the rpm.sh in environment.d a bit later: commit 5f16fd0bf774314c79572daf4ba7e4a8ae209ba1 Author: hongxu <hongxu.jia@windriver.com> Date: Wed Jul 29 01:22:06 2020 -0700 nativesdk-rpm: adjust RPM_CONFIGDIR paths dynamically While installing/extracting SDK to a non-default dir(not /opt), run rpm failed: $ python3 -c "import rpm" |error: Unable to open /opt/windriver/wrlinux-graphics/20.31/sysroots/ x86_64-wrlinuxsdk-linux/usr/lib/rpm/rpmrc for reading: No such file or directory. This patch adds a flexible way to configure RPM_CONFIGDIR in SDK. (From OE-Core rev: fef6161e843151bbbc8a618913c6b3648ec24ba2) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30libsm: 1.2.3 > 1.2.4Kai Kang
(From OE-Core rev: be040e300542534a7af89b29ae98610bed24e0c4) Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30libx11: 1.8.1 -> 1.8.3Kai Kang
Update libx11 from 1.8.1 to 1.8.3. * add LICENSE 'ISC' which is added by https://github.com/freedesktop/xorg-libX11/commit/a04b84f0 * adjust the ordering according to https://www.openembedded.org/wiki/Styleguide#Ordering_and_grouping (From OE-Core rev: c2d949a82c1022af90b4a51a7e9de211bc5dec4c) Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30libx11-compose-data: 1.6.8 -> 1.8.3Kai Kang
Update libx11-compose-data from 1.6.8 to 1.8.3 * add 'ISC' to LICENSE because of commit https://github.com/freedesktop/xorg-libX11/commit/a04b84f0 * adjust ordering according to https://www.openembedded.org/wiki/Styleguide#Ordering_and_grouping (From OE-Core rev: 517d1b68c1b3965c3c936040e063787dafcedc1a) Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30xorg-lib-common.inc: set default value of XORG_EXTKai Kang
It replaced tar.bz2 tar archieves with tar.xz from the middle of 2021 on page https://www.x.org/releases/individual/lib/. So set the default value of XORG_EXT with 'tar.xz', and update related recipes accordingly. (From OE-Core rev: 4584178c42dfa1f0a9676e94a473627d8e25d157) Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30rust-llvm: Fix build on latest muslKhem Raj
latest musl has removed lfs64 functions (From OE-Core rev: a896c862416197fc9aab89bb297fbfef2e2e3463) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30rust,libstd-rs: Fix build with latest muslKhem Raj
newer musl do not provide lfs64 functions anymore since off_t is always 64bit on musl using normal functions would suffice (From OE-Core rev: 0c602e0d26b89d3504be7bfecb2a65188f5eb0a1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30rust: Do not use open64 on musl in getrandom crateKhem Raj
LFS64 functions are deprecated in latest musl (From OE-Core rev: 94c898807d024de02d0b8c19dfd7141d16a55915) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30devtool: process local files only for the main branchAlexander Kanavin
devtool modify/upgrade are not currently equipped to handle conditional local files in SRC_URI, and provide only the main no-override set in a workspace under source/component/oe-local-files/ (this is done via meta/classes/devtool-source.bbclass). On the other hand, updating the changes from workspace into a recipe is run iteratively against all overrides; this works for patches (as they all are directed into their own override branches in the workspace git source tree), but breaks down when trying to match local files in a workspace against local files in overridden SRC_URI lists, resulting in bad recipe breakage. Implementing multiple sets of local files is significant work; let's for now simply not touch local files in recipes except when on the no-override variant. (From OE-Core rev: fa86726aaa33ed52a3ca99f5c63ee6b8b2e4da5e) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30wic: implement bootloader --passwordSergei Zhmylev
Currently the only way to specify a password for bootloader is to supply a complete user-defined bootloader config file to the build process. This patch introduces a --password paramenter in order to simplify bootloaders hardening. (From OE-Core rev: 1105613a63bf382e29e20fe0ce3157d2a3962408) Signed-off-by: Sergei Zhmylev <s.zhmylev@yadro.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30kmod: enable openssl support by defaultMikko Rapeli
linux-yocto kernel adds openssl-native dependency by default even when module signing is still optional. kmod should enable openssl support too. This helps see details of signed kernel modules and debug issues with module signing. For small systems this can still be disabled. modinfo output shows bad signing info when kernel signing is enabled but openssl support is missing from kmod: root@qemux86-64:~# dmesg|grep 509 [ 0.750905] ACPI: PCI: Interrupt link LNKG configured for IRQ 11 [ 0.950039] Asymmetric key parser 'x509' registered [ 1.241727] Loading compiled-in X.509 certificates [ 1.267863] Loaded X.509 cert 'Build time autogenerated kernel key: 48bcd79439f61aaf8fc19ec0882439d64db73820' root@qemux86-64:~# lsmod Module Size Used by sch_fq_codel 20480 1 root@qemux86-64:~# modinfo sch_fq_codel filename: /lib/modules/5.19.9-yocto-standard/kernel/net/sched/sch_fq_codel.ko description: Fair Queue CoDel discipline license: GPL author: Eric Dumazet depends: retpoline: Y intree: Y name: sch_fq_codel vermagic: 5.19.9-yocto-standard SMP preempt mod_unload sig_id: PKCS#7 signer: sig_key: sig_hashalgo: unknown signature: modinfo with openssl enabled in kmod: root@qemux86-64:~# modinfo sch_fq_codel filename: /lib/modules/5.19.9-yocto-standard/kernel/net/sched/sch_fq_codel.ko description: Fair Queue CoDel discipline license: GPL author: Eric Dumazet depends: retpoline: Y intree: Y name: sch_fq_codel vermagic: 5.19.9-yocto-standard SMP preempt mod_unload sig_id: PKCS#7 signer: Build time autogenerated kernel key sig_key: 07:9A:C4:36:96:98:6E:5B:73:CF:C8:40:A6:57:D9:03:5E:27:8D:25 sig_hashalgo: sha512 signature: 21:4D:F0:E2:E0:7C:8E:31:A0:96:12:68:06:0D:FA:0D:E2:17:45:64: 51:94:7E:B0:97:DD:EB:59:89:CA:1A:C3:10:E7:7C:4D:5D:F0:5D:B6: 2A:61:D3:BF:89:7A:0D:CD:A2:39:57:1B:C6:B5:7D:C1:DB:6F:D9:36: 29:7A:07:18:F5:22:9F:9A:33:4D:38:BC:79:C8:51:8B:82:0F:B4:09: 08:37:52:11:98:50:7E:19:28:0F:13:2E:03:A5:E8:F8:D9:E7:DF:61: 18:AC:22:FE:96:BD:D0:55:96:9E:C9:1C:15:C9:0B:9A:5A:FD:D0:C0: 8F:41:12:5B:EA:4B:E5:5D:4D:EA:D5:2E:E5:80:D4:51:CC:63:97:F3: 4B:39:CC:B6:A1:83:F5:EF:2F:A1:22:CD:CA:BC:DB:82:C0:E4:AB:13: 5D:C5:F3:BC:B7:3E:B4:16:BF:87:1D:AC:69:43:1F:78:2A:5F:E2:63: 52:A2:DA:FC:F9:C0:BA:D8:1A:FE:58:4E:6A:D8:DE:BE:F8:F6:C2:59: CE:F5:0A:A0:15:A3:01:BC:B6:70:36:4E:5F:D6:9B:B0:DE:93:15:3E: 35:37:38:D9:01:2B:72:2F:D3:74:A4:AD:F4:5F:52:74:44:E1:C9:D3: A9:87:BC:93:58:8A:82:DB:14:6F:E0:4D:AF:8E:B5:3D:92:20:8B:4A: 04:54:6C:21:F1:76:DF:08:A9:0A:A5:D5:D0:17:CA:98:B5:F4:9F:F6: 9C:8F:DA:09:C2:37:FB:36:23:D1:25:27:4C:DB:9B:43:19:EB:55:1C: DA:32:04:A5:B1:97:F7:A3:3B:82:55:FD:BD:6D:90:BB:61:E6:D3:93: 42:CB:FD:4A:1B:3E:03:43:7D:E3:85:32:91:45:C9:B4:CD:DC:B7:07: 37:58:8A:4A:49:5F:F7:26:41:E1:BB:A1:64:B5:86:00:17:9D:D7:81: 31:BA:DC:BF:04:CC:11:55:B1:C6:24:83:43:33:34:2D:BF:00:74:26: 6A:EC:56:90:C7:1B:C2:78:5C:7F:25:2D:78:BD:C5:D9:7D:69:6A:32: 5D:EF:48:6C:21:64:47:2A:FE:34:3C:58:8D:9E:D7:42:76:BE:89:84: 8D:62:9D:62:DE:7C:88:C4:5F:AA:13:20:6B:90:53:16:4E:06:EE:8A: DE:F7:EA:F8:92:03:7D:84:B7:0C:9F:A0:52:B7:5E:21:BF:37:6A:C9: 34:6D:69:1E:4A:CC:48:F2:0A:6C:B8:AD:83:C0:8F:76:CC:43:0E:29: 17:A9:22:F3:0B:59:A9:87:24:AD:84:CD:EE:E2:C3:93:F7:A8:11:ED: 9A:CC:DA:7F:9D:73:06:5C:A7:1A:6A:54 (From OE-Core rev: 9a9a9c6ebc7ecbda538c4636ddca477f9ba98c44) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30oe-setup-build: add a tool for discovering config templates and setting up ↵Alexander Kanavin
builds This is the last (I believe) piece of the puzzle in setting up builds from nothing without having to write custom scripts or use external tools. After layers have been fetched and placed into their respective locations, one would surely want to proceed to the actual build, and here's how: 1. Without arguments or with 'list-config-templates', the tool simply walks the ../.. of its location (which is the parent dir of poky/oe-core), and prints what templates it has found, as seen below. If the following is not enough information, adding '-v' will also print conf-notes.txt for each of the templates: $ oe-setup-build Available build configuration templates (re-run with -v to see their descriptions): /srv/work/alex/poky/scripts/oe-setup-build setup-build-env -c /srv/work/alex/poky/meta-poky/conf/templates/default will create a build configuration in /srv/work/alex/build-meta-poky-default /srv/work/alex/poky/scripts/oe-setup-build setup-build-env -c /srv/work/alex/meta-alex/conf/templates/configuration-gizmo will create a build configuration in /srv/work/alex/build-meta-alex-configuration-gizmo /srv/work/alex/poky/scripts/oe-setup-build setup-build-env -c /srv/work/alex/meta-alex/conf/templates/configuration-gadget will create a build configuration in /srv/work/alex/build-meta-alex-configuration-gadget 2. Then the user picks one command of the above and runs it. This will land them in a shell ready to run bitbake: $ oe-setup-build setup-build-env -c /srv/work/alex/meta-alex/conf/templates/configuration-gizmo Running: TEMPLATECONF=/srv/work/alex/meta-alex/conf/templates/configuration-gizmo . /srv/work/alex/poky/oe-init-build-env /srv/work/alex/build-meta-alex-configuration-gizmo && /bin/bash You had no conf/local.conf file. This configuration file has therefore been created for you from /srv/work/alex/meta-alex/conf/templates/configuration-gizmo/local.conf.sample You may wish to edit it to, for example, select a different MACHINE (target hardware). See conf/local.conf for more information as common configuration options are commented. You had no conf/bblayers.conf file. This configuration file has therefore been created for you from /srv/work/alex/meta-alex/conf/templates/configuration-gizmo/bblayers.conf.sample To add additional metadata layers into your configuration please add entries to conf/bblayers.conf. The Yocto Project has extensive documentation about OE including a reference manual which can be found at: https://docs.yoctoproject.org For more information about OpenEmbedded see the website: https://www.openembedded.org/ This configuration template will set up a build for the purposes of supporting gizmo. Please refer to meta-alex/README for additional details and available bitbake targets. 3. The full set of command line options is: $ oe-setup-build -h usage: oe-setup-build [-h] {list-config-templates,setup-build-env} ... A script that discovers available build configuration templates and sets up a build environment based on one of them positional arguments: {list-config-templates,setup-build-env} list-config-templates List available configuration templates setup-build-env Set up a build environment and open a shell session with it, ready to run builds. optional arguments: -h, --help show this help message and exit $ oe-setup-build list-config-templates -h usage: oe-setup-build list-config-templates [-h] [--topdir TOPDIR] [-v] optional arguments: -h, --help show this help message and exit --topdir TOPDIR Where to look for available build configuration templates (default is /srv/work/alex). -v Print a description for each available build configuration template. $ oe-setup-build setup-build-env -h usage: oe-setup-build setup-build-env [-h] -c template_path [-b build_path] [--no-shell] optional arguments: -h, --help show this help message and exit -c template_path Use a build configuration template in template_path to set up a build environment (run this script with 'list-config-templates' to see what is available) -b build_path Set up a build directory in build_path (run this script with 'list-config-templates' to see where it would be by default) --no-shell Create a build directory but do not start a shell session with the build environment from it. 4. There's also a selftest that runs a basic check for template discovery and build setup, and an added hint in oe-setup-layers about how to proceed (as it is really not user-friendly to fetch the layer repos successfully and then exit without a word). (From OE-Core rev: 2419a306ec46b31e1910eb986859d2213b5c584d) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: Add lockRichard Purdie
(Bitbake rev: 90349725782775d5554988146ac2fd289ecc1dad) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: add debugRichard Purdie
(Bitbake rev: 1667d3498695a350253d27fdbe90995545f7d2c7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: server/process: Add debug to show which handlers are activeRichard Purdie
Add some logging to show when handlers are added/removed to allow a better idea of what the server code is doing from the server log file. (Bitbake rev: b476bc77f2c30d9fcecd7890cab75e88b1975e68) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: cache: Drop reciever side counting for SiggenRecipeInfoRichard Purdie
Joshua Watt pointed out maintaining the counting on both sides of the connection isn't needed. Remove the receiver side counting and simplify the code, also allowing errors if the counts do go out of sync. (Bitbake rev: 42122a5dcc58aabf6057cfaa7264ced902961df4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: cooker: Ensure we clean up active idle handlersRichard Purdie
When the cooker shutdown method is called, ensure we clean up any active idle handlers before we exit as these could have trees of processes in them and these need to be notified and reaped. Ensure at actual shutdown when the idle loop has been terminated we don't trigger the idle loop call though as it will no longer be active at that point. (Bitbake rev: b8ca9b49dfe6bfce40a06f213abbf8301e823ef0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: cooker/cookerdata: Rework the way the datastores are resetRichard Purdie
As far as I could tell, the current code could result in some strange situations where some data was set back to the original data store copy but the multiconfig data was not restored. There are also some changes made to the datastore which did not persist. The data store was also being reset at every client reset, which seems a little excessive if we can reset it to the original condition properly. Move the __depends -> __base_depends rename into databuilder along with the __bbclasstype change so these are saved in the original data. Tweak the databuilder code to be clearer and easier to follow on which copies are where, then save copies of all the mc datastores. Finally, drop the cache invalidation upon reset for the base config as we shouldn't need that now (oe-selftest -r tinfoil works with memory resident bitbake which was the original reproducer requiring that change). (Bitbake rev: 029af1392df4b579710ad77b05b54c0f930a4b7c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: server/process: Improve exception loggingRichard Purdie
Currently if either idle functions loop suffers a traceback, it is silently dropped and there is no log message to say what happened. This change at least means the traceback is in the cooker log, making some debugging possible. (Bitbake rev: 1da62765c996bad466533f351e168ae00cfe8736) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: event: Always use threadlockRichard Purdie
With the move to a server idle thread, we always need threading. The existing accessor functions could end up turning this off! I was going to hold the lock whilst changing it, check if the value was already set, cache the result and also fix the event code to always release the lock with a try/finally. Instead, disable the existing functions and use a with: block to handle the lock, keeping things much simpler. (Bitbake rev: 8618d7641132a2c1a373cc2536037f051877ab8f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: knotty: Avoid looping with tracebacksRichard Purdie
If there are events queued and there is an exception in the main loop of the UI code, it will print tracebacks on the console indefinitely. Avoid that by improving the loop exit conditions. (Bitbake rev: 4c765be99a8a8647f93f7b9e0e4fae52fa6c01a0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: process: Improve async command execution with idle interactionRichard Purdie
When running a new async command, the previous one might not have finished executing in the idle handler. Add some code to use the event logic to wait for the idle loop to finish for 30s before saying the server is busy. This avoids build failures when a UI quickly starts the next async command before the code has finished shutdown/cleanup from the last one. (Bitbake rev: 4a8fb751a19afe5433b23815a037eb5f6ec49208) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: process: Improve client disconnect/idle syncRichard Purdie
When clients are disconnecting, we need to ensure things are in sync with the idle thread. Use a threading event to show when things drop back to idle (there is only one always present idle handler for inotify). Later patches should be able to clean up the inotify handler to work differently and avoid hardcoded values. If we're not idle at client disconnect, shut down the server to solve the dilemma. Not ideal but shouldn't happen much in practise and would be restarted. (Bitbake rev: f719060d4834ca8391b5b979e5e32048c04d1107) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: server/process: Improve idle loop exit codeRichard Purdie
When idle handlers want to exit, returning "False" isn't very clear and also causes challenges with the ordering of the removing the idle handler and marking that no async command is running. Use a specific class to signal the exit condition allowing clearer code and allowing the async command to be cleared after the handler has been removed, reducing any opportunity for races. (Bitbake rev: 7c7a49d5a521cf03b95eee57a83373b09f2f4906) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: server/process: Run idle commands in a separate idle threadRichard Purdie
When bitbake is off running heavier "idle" commands, it doesn't service it's command socket which means stopping/interrupting it is hard. It also means we can't "ping" from the UI to know if it is still alive. For those reasons, split idle command execution into it's own thread. The commands are generally already self containted so this is easier than expected. We do have to be careful to only handle inotify poll() from a single thread at a time. It also means we always have to use a thread lock when sending events since both the idle thread and the command thread may generate log messages (and hence events). The patch does depend on a couple of previous fixes to the builtins locking in event.py and the heartbeat enable/disable changes. (Bitbake rev: 165fa755ef7b6d18dd27b8540376676cb9b851e7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: event: Add enable/disable heartbeat codeRichard Purdie
Currently heartbeat events are always generated by the server whilst it is active. Change this so they only appear when builds are running, which is when most code would expect to be executed. This removes a number of races around changes in the datastore which can happen outside of builds. (Bitbake rev: a871abb09ceb3de3e05219054db5cbc468352ba0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: knotty: Ping the server/cooker periodicallyRichard Purdie
We've seeing failures where the UI hangs if the server disappears. Ping the cooker/server if we've not had any events in the last minute so we can check if it is still alive. (Bitbake rev: 4ba00da8200c11cd12ce840bcedb80caf864c06a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: cooker: Ensure commands clean up any parser processesRichard Purdie
When finishing a command, we need to ensure any parsing processes that may have been started are cleaned up before we reset the cooker state. (Bitbake rev: 0c46906b65563597ab4b014dd0209d2246988e7c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-30bitbake: command: Tweak finishAsyncCommand ordering to avoid racesRichard Purdie
(Bitbake rev: 55bae2a97a11587d23b1301096adbc7901cc4f7e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-29bitbake: tinfoil: Ensure CommandExit is handledRichard Purdie
By inspection, tinfoil handles two of the three command exit cases but one is missing. Add the CommandExit case in case this is the cause of one of our recipetool/devtool hangs. Regardless, the fix is necessary. (Bitbake rev: eadddd94835b6b6a8517dfed3d29e6dbb2d35988) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-29bitbake: cooker: Ensure cache is cleared for partial resetsRichard Purdie
We're still seeing occasional SiggenRecipeInfo coherency issues, add some further reset points into the parsing code to ensure the cache is cleared before reparsing. (Bitbake rev: 26ed783caf11dc9ebf53d3790681eb44c0c360f0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-29bitbake: event: builtins fix for 'd' deletionRichard Purdie
I've been seeing event handlers where 'd' seems to disappear half way through event handler execution. This is problematic when multiple threads are active since this code assumes single threading. The easiest fix is to change the handler function calls to contain d as a parameter as we do elsewhere for other functions. This will break any non-text handlers but I was only able to spot one of those in runqueue. It will also break handlers than call functions that assume 'd' is in the global namespace but those failures should be obvious and we can fix those to pass d around. This solution avoids manipulating builtins which was always a horrible thing to do anyway and solves the issue without needing locking, thankfully. (Bitbake rev: 1e12f0a4b592dacd006d370ec29cd71d2a44312e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-29bitbake: cache/siggen: Fix cache issues with signature handlingRichard Purdie
There is a bug in the current cache code where the restored data structures were "inverted" leading to some very weird issues, not sure how anything worked like that, this patch fixes it. Also fix some issues with multiconfig cache ordering problems by resetting the stream counters when appropriate. (Bitbake rev: cd06beb948eff5eaf2d474f5b127d51a61b0b2ef) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28oeqa/runtime/rust: Add cargo testAlex Kiernan
(From OE-Core rev: f41a4e3d4c82b6332c5d52ad8fb38e32c7aee74b) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28packagegroup-rust-sdk-target: Add cargoAlex Kiernan
(From OE-Core rev: ea23ff72507768e2201211e488632208b9180296) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28cargo: Drop exclude from worldAlex Kiernan
On-target cargo now builds/runs. (From OE-Core rev: eb8b8c5247a32f2bd6b680de6f1a999dc2fcbc5f) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28cargo: Include crossbeam-utils patchAlex Kiernan
We need patched crossbeam-utils in cargo as well as rust, move cargo alongside rust so they can both use the same patch. (From OE-Core rev: 39402790724014a39b265ee1978396a0514fdc98) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28cargo: Extend DEBUG_PREFIX_MAP to cover vendorAlex Kiernan
The cargo build builds vendored libgit and curl, but these exist outside ${S} which DEBUG_PREFIX_MAP covers. (From OE-Core rev: c874ef5eafb88d361b96e014739d7a3a640536d9) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28cargo: Merge .inc into .bbAlex Kiernan
(From OE-Core rev: 15170dbc0579f57436730b1fc1c2f471aa0dea54) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28rust: Move musl-x86 fix for `__stack_chk_fail_local` to rust-sourceAlex Kiernan
Any consumer of rust-source (potentially) needs this, so move to rust-source.inc (From OE-Core rev: 3c88cf98361a8f1c6f5183cc8887cccfad9d08ba) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28rust: Merge .inc into .bbAlex Kiernan
(From OE-Core rev: a09bcc7db13a7308f523d985332e96461b8feeec) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28packagegroup-core-sdk: Add SDK toolchain language selection supportAlex Kiernan
Use SDK_TOOLCHAIN_LANGS to allow different language support to be selected within SDKs. Initially supported options are rust and go. (From OE-Core rev: 1ad7bb050accd930c85b6c51721046867394f629) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28packagegroup-rust-sdk-target: Add Rust SDK target packagegroupAlex Kiernan
(From OE-Core rev: 5bfa5bfa942a29f6670213933e456ed00c43a245) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-28rust-llvm: Update LLVM_VERSION to match embedded versionAlex Kiernan
(From OE-Core rev: e75f16c5f0d3e70ae08efd7d61a7e7d0c9380e72) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>