summaryrefslogtreecommitdiffstats
path: root/meta/classes
Commit message (Collapse)AuthorAgeFilesLines
...
* create-spdx: Fix supplier fieldMihai Lindner2022-07-281-3/+3
| | | | | | | | | | | The correct field name is "supplier" according to SPDX schema. The "supplier" field translates to "PackageSupplier", but that's for tag-value format. (From OE-Core rev: ca8db0e0a2860ac1e3f537471fa71b43c3be0a58) Signed-off-by: Mihai Lindner <mihai.lindner@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* toolchain-scripts.bbclass: adjust toolchain_create_tree_env_script to better ↵Alexander Kanavin2022-07-281-9/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | replicate (e)SDK Specifically: 1. Place the environment setup file into $B and not into $TMPDIR, so that the recipe using the class can itself better decide what to do with the file. 2. Use global, unified sysroots (provided through build-sysroots recipe) and not recipe-specific ones, as this allows flexible on-the-fly management of what libraries are available to build applications, without having to modify any recipes, similar to eSDK 'extensible' part. This also requires adjustment of the sstate sametune_samegsigs test, as meta-ide-support becomes dependent on $MACHINE (unified sysroots have it in their paths) and needs to be excluded from the test. 3. Add a few missing settings that have been added to SDK environment files. 4. Add a snippet to the environment setup file that also runs the relocation scripts. In regular SDKs this is executed by the SDK installer, in direct SDK we can do it when setting up the environment. (From OE-Core rev: db5dfd78ae441201778b1175f4fb9a3eba994899) 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>
* archiver.bbclass: remove unsed do_deploy_archives[dirs]Jose Quaresma2022-07-281-1/+0
| | | | | | | | | | | | Remove as commit b3afe7d redifines it. https://git.openembedded.org/openembedded-core/commit/?id=b3afe7d9bd25a943e947de3ec064ea245173c5a8 (From OE-Core rev: cf5e155a9c76a6e4ed7145118e7367ab6f2f53f2) Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_base: Fix mingw override nameRichard Purdie2022-07-281-1/+1
| | | | | | | | Correct the override name used for rust toolchain removal from the mingw sdk. (From OE-Core rev: 8aeb0dfe6508daea51db4f0992eed194e925fdd7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk: Add SDK toolchain language selection supportRichard Purdie2022-07-281-2/+15
| | | | | | | | | Add a new variable SDK_TOOLCHAIN_LANGS to allow different language support to be selected within SDKs. Initially supported options are rust and go. (From OE-Core rev: 0026b5687147410e4c7140ca5133089ebb51d9d4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* native: Clear TUNE_FEATURES/ABIEXTENSIONRichard Purdie2022-07-281-0/+2
| | | | | | | | | | Some recipes reference these. Rather than continually trying to chase down the references and taskhash issues, clear the variables for an easier life and simpler code. These wouldn't convey anything useful in a native build. (From OE-Core rev: f8edeead263708889d31a7ff578ef8274cb678b4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-target-config: Allow the targets generated to be configurableRichard Purdie2022-07-281-2/+8
| | | | | | | | | Remove further code duplication by allowing the main function to be configurable. (From OE-Core rev: 2d4b35a0db1220e7a7f1b6776223aa4d40a3f246) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-target-config: Create new class to contain target json config generationRichard Purdie2022-07-281-0/+368
| | | | | | | | | | | | | Currently most of the rust recipes use this code but it is all piecemeal. Turn the code into a class where things can start to be rationalised. Ultimately some of the data and python code should be moved to a python library but one step at a time. No functionality changes. (From OE-Core rev: 3795285cbf362e13b8151bfdbe1bce999ac28641) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel.bbclass: pass LD also in savedefconfigMartin Jansa2022-07-251-1/+1
| | | | | | | | | | | | | | * similar to: https://git.openembedded.org/openembedded-core/commit/?id=66c1f4b0abd3483759f9e4141a80f982eaf8ccfd https://git.openembedded.org/openembedded-core/commit/?id=36fe2efc91fec5a52374a2dc4814a69076a2d28e but for savedefconfig task * otherwise with ld-is-gold it will fail with: gold linker is not supported as it is not capable of linking the kernel proper. (From OE-Core rev: f0c9e1bf35289afa63f040bbc13ca1755e4db0f9) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* base/reproducible: Change Source Date Epoch generation methodsRichard Purdie2022-07-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | In bc, we found that there are files newer than Changelog (e.g. scan.l) which means after install runs, the timestamp is clamped to SDE which means "bitbake bc -C compile" would then try and regenerate generated files and complain flex was missing. Rather than assuming Changelog/NEWS are magic for dates, drop that scan method and scan all unpacked files. This shouldn't be that slow as they'd be in the disk cache already after an unpack. For bc, this changes SDE by about two minutes and avoids the problems rebuilding. Add a version comment to the task definition as changes in python library code won't trigger a rebuild and we need one here. (From OE-Core rev: 32dda0ad91a9e7946351c897578b4c97ae142341) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gobject-introspection-data: Disable cache for g-ir-scannerTom Hochstein2022-07-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An intermittent failure occurs in libical-native do_compile: | Traceback (most recent call last): | File "/.../build/tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/python3.10/shutil.py", line 813, in move | os.rename(src, real_dst) | OSError: [Errno 18] Invalid cross-device link: '/tmp/g-ir-scanner-cache-adxo_2bq' -> '/home/bamboo/.cache/g-ir-scanner/bab9a83d2cd93e62ed005a2c1d4f89ae75c67251' | | During handling of the above exception, another exception occurred: | | Traceback (most recent call last): | File "/.../tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/pkgconfig/../../../usr/bin/g-ir-scanner", line 99, in <module> | sys.exit(scanner_main(sys.argv)) | File "/.../tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/gobject-introspection/giscanner/scannermain.py", line 590, in scanner_main | transformer = create_transformer(namespace, options) | File "/.../tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/gobject-introspection/giscanner/scannermain.py", line 409, in create_transformer | transformer.register_include(include_obj) | File "/.../tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/gobject-introspection/giscanner/transformer.py", line 140, in register_include | self._parse_include(filename) | File "/.../tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/gobject-introspection/giscanner/transformer.py", line 230, in _parse_include | self._parse_include(dep_filename) | File "/.../tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/gobject-introspection/giscanner/transformer.py", line 225, in _parse_include | self._cachestore.store(filename, parser) | File "/.../tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/gobject-introspection/giscanner/cachestore.py", line 153, in store | shutil.move(tmp_filename, store_filename) | File "/.../tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/python3.10/shutil.py", line 833, in move | copy_function(src, real_dst) | File "/.../tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/python3.10/shutil.py", line 435, in copy2 | copystat(src, dst, follow_symlinks=follow_symlinks) | File "/.../tmp/work/x86_64-linux/libical-native/3.0.14-r0/recipe-sysroot-native/usr/lib/python3.10/shutil.py", line 374, in copystat | lookup("utime")(dst, ns=(st.st_atime_ns, st.st_mtime_ns), | FileNotFoundError: [Errno 2] No such file or directory A similar issue is described in a fix for gobject-introspection-native. https://github.com/openembedded/openembedded-core/commit/d3c48ff7d19e86b2338b1778f9563969bba3d336 The problem was fixed there by setting the environment variable GI_SCANNER_DISABLE_CACHE to disable the use of $HOME/.cache. Extend the fix to users of gobject-instropection by promoting the fix to the bbclass. (From OE-Core rev: 35d5f707f6bb2ce5e9ab908e66e1ea9eeac754b1) Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-fitimage.bbclass: add padding algorithm property in config nodesLUIS ENRIQUEZ2022-07-192-0/+5
| | | | | | | | | | This allows choosing padding algorithm when building fitImage. It may be pkcs-1.5 or pss. (From OE-Core rev: 29d5336c728b28890bbaadebf0ccff00ad90a64d) Signed-off-by: LUIS ENRIQUEZ <luis.enriquez@se.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs-postcommands.bbclass: move host-user-contaminated.txt to ${S}Ming Liu2022-07-191-1/+1
| | | | | | | | | | | | | This is to ensure host-user-contaminated.txt would be removed before do_rootfs runs, since ${S} is in cleandirs of do_rootfs, otherwise, a host-user-contaminated.txt file that generated from previous builds could be used which is wrong. (From OE-Core rev: 54a3fd63e684d070fad962be97e549f3af7ac111) Signed-off-by: Ming Liu <liu.ming50@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Fix kernel source handling when not using externalsrcAlejandro Hernandez Samaniego2022-07-161-1/+1
| | | | | | | | | | | | | | | | | | | | Previous commit c725bdb29b266 broke kernel source handling, this was due to the code expecting the sources to be in a different directory, this did not happen when using externalsrc since sources were found in the expected directories. Pass work-shared to the check to allow sources to be found in the proper directory, allowing these to be packaged in the next step. To test this we grabbed a commit where we knew the buildpaths QA test should flag a file inside the kernel sources, with the previous commit the QA warning wasnt flagged since no sources where there, with this fix the buildpaths QA warning gets flagged properly. (From OE-Core rev: 2714a8ef8c7b3c66d50f27f4f52fe2fe4db39b00) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alhe@linux.microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Use the python3 ThreadPoolExecutor instead of the OE ThreadedPoolJose Quaresma2022-07-151-13/+19
| | | | | | | | | | | For the FetchConnectionCache use a queue where each thread can get an unsed connection_cache that is properly initialized before we fireup the ThreadPoolExecutor. (From OE-Core rev: eb6a6820928472ef194b963b606454e731f9486f) Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: introduce UBOOT_MKIMAGE_KERNEL_TYPEMing Liu2022-07-153-2/+5
| | | | | | | | | | | | | | | | Sometimes an end user might want to choose another kernel type argument for uboot-mkimage other than "kernel", for instance: "kernel_noload". Let's introduce a variable UBOOT_MKIMAGE_KERNEL_TYPE to support that, and it could be used by BSP layers as well. (From OE-Core rev: e288686e97de1265eeeaf452141e1473867efb1b) (From OE-Core rev: 4eb7bbcc2f08b25387a15b7e4a89ef199783c973) Signed-off-by: Ming Liu <liu.ming50@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Avoid stripping signed kernel modules in splitdebuginfoChristoph Lauer2022-07-151-0/+5
| | | | | | | | | | | | Since commit d756b346f248df47b0540644adb1d0f17bcc4b6e kernel modules are stripped by the functions 'runstrip' and 'splitdebuginfo'. Signed modules must not be stripped. Function 'runstrip' avoids this by running is_kernel_module_signed. Apply the same check to splitdebuginfo. (From OE-Core rev: 6859226652339b19cbc7bdfec074fe2016cdee60) (From OE-Core rev: dc0f0413eabfd50f78d887f73f808d40a314fbd8) Signed-off-by: Christoph Lauer <christoph.lauer@xtronic.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane: Drop debug exclusion from buildpaths testRichard Purdie2022-07-151-3/+0
| | | | | | | | | Once, we didn't have reproducible debug info and weren't sure how we'd get it. This is long since fixed so we can drop this exclusion as obsolete. (From OE-Core rev: dab0d98eee0e196fb24c16334982b5d568caa313) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane: Reword staging to refer to populate_sysrootRichard Purdie2022-07-151-7/+4
| | | | | | | | | 'staging' is a term lost in time. This code now operates on the sysroots, adjust the naming and messages to be more correct/appropriate. (From OE-Core rev: 5753b6bc5b106ab5fd3652c24ef6a1f94f983424) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane: Add buildpaths to WARN_QA by defaultRichard Purdie2022-07-151-1/+1
| | | | | | | | | | | | | | | | | This was never enabled originally as there were a ton of warnings and we weren't able to fix them. Now we have reproducibile builds, this can be enabled by default as there shouldn't be such paths any longer. This is known to work well for OE-Core, other layers may have variable quaility but enabling it will start to hint to other layers and maintainers that these issues need fixing. It also will give developers early warning of reproducibility issues, rather than us catching them on the YP autobuilder. (From OE-Core rev: 54715c054eac8cf8214a5a390f722567efed54e0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: remove obsolete PEP517_BUILD_APIRoss Burton2022-07-144-8/+0
| | | | | | | | | This variable is no longer used, so remove it from the python_* classes. (From OE-Core rev: 49b6c5a656eecbc51489823e37bc07918173e8d2) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python_pep517: use picobuild instead of manually calling the APIRoss Burton2022-07-141-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling the PEP-517 API directly mostly works, but sometimes doesn't. For example we don't verify build dependencies, which led to the cbor2 ugprade silently failing to actually package anything. The standard frontend is pypa/build, but for source-based distributions that can be annoying to build as it depends on the following packages: - tomli - pep517 - packaging - pyparsing Manually bootstrapping those recipes is possible, but tedious. Picobuild is another frontend (written by myself) which is designed explicitly to be used programatically by source-based distributions: it doesn't support builds inside virtual environments as we're building distribution packages, and it vendors the dependencies for bootstrapping if they're not available. Over time more packages are expected to move to using Flit to build which makes the bootstrapping process slightly easier, and tomli will be integrated into Python 3.11, so it's possible that in the future we drop picobuild and switch to build. This change means the PEP517_BUILD_API variable is obsolete, so remove it. (From OE-Core rev: 35104958181d18fd67b73943b9310c813d62b14d) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* python3-flit-core: bootstrap explicitlyRoss Burton2022-07-141-0/+5
| | | | | | | | | | | Add a method to python_flit_core.bbclass that does a manual build with flit explicitly, and use that to bootstrap python3-flit-core-native which can build itself. (From OE-Core rev: e902578c2c9aacdc83dcfa517bc1e57667fcc460) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bin_package: install into base_prefixPascal Bach2022-07-121-1/+2
| | | | | | | | | This makes the bin_package.bbclass work properly with the native class. (From OE-Core rev: ad330b6d4b6e2ba051b5c6c437e07a183831f757) Signed-off-by: Pascal Bach <pascal.bach@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-arch: Fix buildpaths leaking into external module compilesRichard Purdie2022-07-121-1/+1
| | | | | | | | | | | | Building external kernel modules like lttng-modules was showing build paths inside the debug symbols for the modules and breaking build reproducibility. Fix this by adding in the mapping needed to map the kernel build directory to something more approriate on target. (From OE-Core rev: b56dc9009ba93174de6bf4c01e17808ef249dc5c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* testimage : remove curl-ptest from rpm indexYogesh Tyagi2022-07-081-0/+3
| | | | | | | | | | | | | | When creating rpm index for dnf runtime tests, currently all the package starting with curl are getting included. Now curl-ptest is getting enabled through another patch but we don't want rpm index to be created for curl-ptest since it fetches lot of perl dependencies. This patch removes curl-ptest from rpm index. (From OE-Core rev: 830663cee1eabdecdd473f4589a6c03b6e6c409b) Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* utils: create_cmdline_shebang_wrapper preserve permission and ownershipPaulo Neves2022-07-041-0/+3
| | | | | | | | | | | | | | | The .real command was not given the same permissions and ownership as the original pre-wrap file and this is now fixed. A situation where the original pre-wrap file did not have write permissions would cause a failure in the wrapping is also fixed. Test update also included. (From OE-Core rev: 47973fd4f3fbb0af1a0d1bc2c39f2900a963177d) Signed-off-by: Paulo Neves <ptsneves@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* utils: create_cmdline_shebang_wrapper whitespace and sed refactorPaulo Neves2022-07-041-5/+5
| | | | | | | | | | Correct whitespace to match the rest of the code in utils. Refactored sed expression with a simpler equivalent. (From OE-Core rev: 68f49af704a4e808ad274d689e884923776edfec) Signed-off-by: Paulo Neves <ptsneves@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane: Fix buildpaths test to work with special devicesRichard Purdie2022-07-041-2/+4
| | | | | | | | | | | If enabled, the buildpaths test hangs in psplash as it tries to open a fifo and read from it, hanging indefinitely. Tweak the test to ignore fifo/socket/device files. (From OE-Core rev: 2567edb7e0a8c5ca9a88d6940491bf33bfe0eff9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Fix base directory for debugsource files when using externalsrcAlejandro Hernandez Samaniego2022-07-041-3/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While executing do_package, bitbake checks for a list of debug source files and uses a pattern to match the ones to be included in copydebugsources. Previously when externalsrc was in use either directly or by using devtool, the source location changed and this pattern no longer matched, hence debug source files failed to be included in the corresponding package. Check when the source directory isnt the default (based on WORKDIR), and change the pattern used to match debug source files if that is the case, allowing us to perform do_package properly. Workaround debugsource.list containing paths from the host by moving debug source files away from the host directory structure to avoid host contamination (this seems to happen when packages use $TMPDIR/work-shared and externalsrc is in use). Test matrix included using: - devtool to use externalsrc automatically - externalsrc with a non-devtool based source directory - No externalsrc at all Tested the following packages to be working: - glibc ($TMPDIR/work-shared based) - libxcrypt ($TMPDIR/work based) [YOCTO 8015] (From OE-Core rev: a887bd96fd0a15398e8077ea79df5070971866e4) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alhe@linux.microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* utils: Add cmdline_shebang_wrapper util.Paulo Neves2022-07-011-0/+34
| | | | | | | | | | | | Useful to work around shebang relocation issues, where shebangs are too long or have arguments in them, thus preventing them from using the /usr/bin/env shebang. (From OE-Core rev: 6edc1fffcbe1405d8c309a75643d7d6cd9a92848) Signed-off-by: Paulo Neves <ptsneves@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane.bbclass: Make do_qa_staging check shebangsPaulo Neves2022-07-011-1/+15
| | | | | | | | | | | | | | | | | | As reported in the bug report [1], there was no check for shebang sizes on native scripts and now this is fixed. The path scope of the qa_staging was increased from just checking libdir to all the relevant SYSROOT_DIRS. It is possible to skip this check through INSANE_SKIP. [1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=11053 (From OE-Core rev: 377fe11bc0d6939ab1aaebab1bf4e55adca1ab15) Signed-off-by: Paulo Neves <ptsneves@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve-check: hook cleanup to the BuildCompleted event, not CookerExitRoss Burton2022-06-301-1/+1
| | | | | | | | | | | | | | | | | | The cve-check class writes temporary files to preserve state across the build, and cleans them up in a CookerExit handler. However, in memory-resident builds the cooker won't exit in between builds, so the state isn't cleared and the CVE report generation fails: NOTE: Generating JSON CVE summary ERROR: Error adding the same package twice Easily solved by hooking to BuildCompleted, instead of CookerExit. (From OE-Core rev: fccdcfd301de281a427bfee48d8ff47fa07b7259) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildstats.bbclass: correct sampling of system statsAryaman Gupta2022-06-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | The last time of sampling would be updated within the SystemStats class but not re-recorded into the datastore, leading to multiple samples being collected in the same second in the sample function of buildstats.py. Fix this to collect and store only one sample per second within a certain tolerance to deal with variation in the arrival time. This fix elimates the spikiness of sampled data, in cases where the difference between the current and the last sample is taken. Previously, since many samples per second were recorded, certain types of data would result in a very small elapsed time and hence a small numerical difference. For example, the CPU usage from /proc/stat is a running total of usage and taking the difference between data collected 0.1 seconds apart would result in usage appearing lower than it actually was. (From OE-Core rev: 0e2df45ab066bb4ad2c4f8622ee9c1a8ecdea9cb) Signed-off-by: Aryaman Gupta <aryaman.gupta@windriver.com> Signed-off-by: Randy MacLeod <randy.macleod@windriver.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* npm: use npm_registry to cache packageEnrico Scholz2022-06-281-6/+9
| | | | | | | | | | | | | | | | | | With nodejs 16, the simple 'npm cache add' approach does not work anymore because its fetcher implementation downloads also meta information from the registry. We have to generate these information and add them to the cache. There is no direct support in 'npm' for task so we have to implement it manually. This implementation consists of a openembedded python module (in oe-core) and a nodejs version specific helper (in oe-meta). (From OE-Core rev: 019b9c341d539939098962c228c1fd5c99331312) Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* npm: disable 'audit' + 'fund'Enrico Scholz2022-06-281-0/+2
| | | | | | | | | 'audit' can cause extra network traffic; 'fund' is not needed. (From OE-Core rev: 7a09a50bbe4c258ad6dc80889b0a9d2e5f554675) Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* npm: take 'version' directly from 'package.json'Enrico Scholz2022-06-281-6/+1
| | | | | | | | | | We know the content of 'package.json' from earlier patches; there is no need to parse the tarball name to extract the version. (From OE-Core rev: f553e528e76f7e3925ed1c0950d96e73aec37da9) Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* npm: return content of 'package.json' in 'npm_pack'Enrico Scholz2022-06-281-4/+4
| | | | | | | | | | We have to read 'package.json' to calculate the name of the tarball. This content is interesting for later patches. (From OE-Core rev: d67367e389c492ae90f9021066d6a4d5ebcf68e5) Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* npm: replace 'npm pack' call by 'tar czf'Enrico Scholz2022-06-281-6/+29
| | | | | | | | | | | | | | | | | | | | | 'npm pack' is a maintainer tool which tries to execute 'prepare' and similar scripts. This fails usually in OE because it requires completely installed 'node_modules'. Earlier nodejs versions supported an undocumented 'ignore-scripts' option. This has been removed in nodejs 16. We could patch 'package.json' and remove the unwanted scripts. But this might complicate local workflows (applying patches) and installed packages will contain the modified 'package.json'. Instead of, package it manually by 'tar czf'. As a sideeffect, 'do_configure' is running much faster now. (From OE-Core rev: 68b480d64ffb6750699cc8fa00d2ac0bc6a2e58a) Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* base.bbclass: Correct the test for obsolete license exceptionsPeter Kjellerstedt2022-06-271-2/+2
| | | | | | | | | | | The test for obsolete licenses used in INCOMPATIBLE_LICENSE_EXCEPTIONS tried to match the "<package>:<license>" tuples with the obsolete licenses and thus never matched anything. (From OE-Core rev: 3ad994d95815eefed2a72b675c7a323b3ed38191) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: Add ftps to accepted URI protocols for mirrors sanityDavid Bagonyi2022-06-251-1/+1
| | | | | | | | (From OE-Core rev: 10f3a9d5173ef4bf92ff4a7d8aef0cd2cb23e4d4) Signed-off-by: David Bagonyi <david.bagonyi@gmail.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* ptest.bbclass: Honor PARALLEL_MAKE, PARALLEL_MAKEINSTniko.mauno@vaisala.com2022-06-251-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since oe_runmake wrapper doesn't by default involve PARALLEL_MAKE outside do_compile() nor PARALLEL_MAKEINST outside do_install(), enable parallellized make by default when oe_runmake is invoked from do_compile_ptest() or do_install_ptest() by declaring wrapper task specific EXTRA_OEMAKE overrides in fashion similar to do_compile and do_install overrides in meta/conf/bitbake.conf. Parallel make can still be disabled by resetting bbclass specific PTEST_PARALLEL_MAKE and PTEST_PARALLEL_MAKEINST variables in recipe e.g. if a race issue needs to be avoided without modifying source code. Tested by issuing following command sequence on a 32-core build host: $ bitbake -c clean util-linux && bitbake --skip-setscene -c compile util-linux && time bitbake --skip-setscene -c compile_ptest_base util-linux and found that before this change the result was real 0m34.684s user 0m0.753s sys 0m0.131s and after this change real 0m9.868s user 0m0.749s sys 0m0.150s (From OE-Core rev: 5c09d2a017add8bd34142c6c1543e2d0f9ead286) Signed-off-by: Niko Mauno <niko.mauno@vaisala.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane.bbclass: host-user-contaminated: Correct per package home pathAhmed Hossam2022-06-251-1/+1
| | | | | | | | | | | | | The current home path that is compared against is incorrect as it is missing the package name, this patch adds it. [YOCTO #14553] (From OE-Core rev: ae8f22d9e2694eea5ede3b31c6f3bca404ea4a5a) Signed-off-by: Ahmed Hossam <Ahmed.Hossam@opensynergy.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-uboot.bbclass: Use vmlinux.initramfs when INITRAMFS_IMAGE_BUNDLE setRaju Kumar Pothuraju2022-06-251-0/+6
| | | | | | | | | | | | | | vmlinux file doesnot have the initramfs image when INITRAMFS_IMAGE_BUNDLE was set. Use vmlinux.initramfs in uboot_prep_kimage when INITRAMFS_IMAGE_BUNDLE set based on the implementation in kernel.bbclass do_bundle_initramfs function, https://github.com/openembedded/openembedded-core/blob/master/meta/classes/kernel.bbclass#L316-L317 to be able to use proper linux.bin file in creation of fitImage. (From OE-Core rev: e0a4e45e067d9fdb67a7d223aea463f259469035) Signed-off-by: Raju Kumar Pothuraju <raju.kumar-pothuraju@xilinx.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Add python3-hatchling (from meta-oe)Ross Burton2022-06-221-0/+5
| | | | | | | | | | | Recipes in core are now needing to use the Hatch build system, so move the hatchling recipe and class from meta-oe to oe-core. (From OE-Core rev: 846e806181f1349be29cbce78c5041735dfd7e6f) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs-postcommands.bbclass: correct commentsMichael Opdenacker2022-06-171-4/+4
| | | | | | | | (From OE-Core rev: 41ade8e9a14c867e146a545be8d2d9c151b6855f) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve-check: add support for Ignored CVEsMarta Rybczynska2022-06-171-13/+30
| | | | | | | | | | | | | | | | Ignored CVEs aren't patched, but do not apply in our configuration for some reason. Up till now they were only partially supported and reported as "Patched". This patch adds separate reporting of Ignored CVEs. The variable CVE_CHECK_REPORT_PATCHED now manages reporting of both patched and ignored CVEs. (From OE-Core rev: c773102d4828fc4ddd1024f6115d577e23f1afe4) Signed-off-by: Marta Rybczynska <marta.rybczynska@huawei.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* archiver: don't use machine variables in shared recipesJose Quaresma2022-06-151-2/+7
| | | | | | | | | | | | | | | | | | | | When using multiconfig with the same TMP folder we can have races because the shared recipes like gcc-source run twice. ARCHIVER_OUTDIR = ${ARCHIVER_TOPDIR}/${TARGET_SYS}/${PF}/ which includes TARGET_SYS and between the two different MACHINE values, this changes from 'arm-poky-linux-gnueabi' to 'aarch64-poky-linux'. This leads to the task running twice, once for each multiconfig. To solve this we need to store the shared output in a common place for all machines and in this way the stamps will be the same for each machine so the gcc-source will on run once regardless of the machine used. (From OE-Core rev: 5abe497aad39a6ce8d72556fcdda1938a0f8c1bc) Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/create-spdx: Add SPDX_PRETTY optionJoshua Watt2022-06-151-6/+16
| | | | | | | | | | | Adds an option to make the SPDX more human-readable (at the expense of a larger files) (From OE-Core rev: 4799594b26f77ed259dc661bf077519b338390c8) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-buildinfo: Improve and extend to SDK coverage tooRichard Purdie2022-06-111-6/+22
| | | | | | | | | | | | Rename the default file from "build" to "buildinfo" since this is more obvious to anyone looking in an image. Add SDK_BUILDINFO_FILE and allow the same information to be written into SDK images. This will be useful for buildtools-tarball and uninative-tarball. (From OE-Core rev: 38b9525f1d5377288922e7cbac3f30afe6046242) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>