summaryrefslogtreecommitdiffstats
path: root/meta/classes
AgeCommit message (Collapse)Author
2022-10-29create-spdx.bbclass: remove unused SPDX_INCLUDE_PACKAGEDMichael Opdenacker
[YOCTO #14948] Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2022-10-26externalsrc.bbclass: Remove a trailing slash from ${B}Peter Kjellerstedt
The trailing slash in ${B} caused -fdebug-prefix-map=${B}=... to not match as intended, resulting in ${TMPDIR} ending up in files in ${PN}-dbg when externalsrc was in use, which in turn triggered buildpath QA warnings. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2022-10-26externalsrc.bbclass: fix git repo detectionMartin Jansa
* fix issue introduced in: https://git.openembedded.org/openembedded-core/commit/?id=95fbac8dcad6c93f4c9737e9fe13e92ab6befa09 * it added check for s_dir + git-dir (typically '.git') isn't the same as ${TOPDIR} + git-dir, but due to copy-paste issue it was just comparing it with s_dir + git-dir again, resulting in most external repos (where git-dir is '.git') to be processed as regular directory (not taking advantage of git write-tree). * normally this wouldn't be an issue, but for big repo with a lot of files this added a lot of checksums in: d.setVarFlag('do_compile', 'file-checksums', '${@srctree_hash_files(d)}') and I mean *a lot, e.g. in chromium build it was 380227 paths which still wouldn't that bad, but the checksum processing in siggen.py isn't trivial and just looping through all these checksums takes very long time (over 1000sec on fast NVME drive with warm cache) and then https://git.openembedded.org/bitbake/commit/?id=b4975d2ecf615ac4c240808fbc5a3f879a93846b made the processing a bit more complicated and the loop in get_taskhash() function took 6448sec and to make things worse there was no output from bitbake during that time, so even with -DDD it looks like this: DEBUG: virtual/libgles2 resolved to: mesa (langdale/oe-core/meta/recipes-graphics/mesa/mesa_22.2.0.bb) Bitbake still alive (no events for 600s). Active tasks: Bitbake still alive (no events for 1200s). Active tasks: Bitbake still alive (no events for 1800s). Active tasks: Bitbake still alive (no events for 2400s). Active tasks: Bitbake still alive (no events for 3000s). Active tasks: Bitbake still alive (no events for 3600s). Active tasks: Bitbake still alive (no events for 4200s). Active tasks: Bitbake still alive (no events for 4800s). Active tasks: Bitbake still alive (no events for 5400s). Active tasks: Bitbake still alive (no events for 6000s). Active tasks: DEBUG: Starting bitbake-worker without -DDD it will get stuck for almost 2 hours in: "Initialising tasks..." before it finally writes sstate summary like: "Sstate summary: Wanted 3102 Local 0 Mirrors 0 Missed 3102 Current 1483 (0% match, 32% complete)" * fix the copy&paste typo to use git work-tree in most cases, but be aware that this issue still exists for huge local source trees not in git [YOCTO #14942] Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2022-10-26create-spdx: Remove ";name=..." for downloadLocationKeiya Nobuta
Signed-off-by: Keiya Nobuta <nobuta.keiya@fujitsu.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2022-10-25own-mirrors: add crateAdrian Freihofer
Support downloading crate files from a mirror at SOURCE_MIRROR_URL. Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-10-25externalsrc: move back to classesRoss Burton
The externalsrc class was moved to classes-recipe as part of oe-core f5c1280, but it can be used in both recipe and global contexts so move it back to classes/. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-09-17icecc.bbclass: fix filename of recipe in commentUlrich Ölmann
The character '%' is not a valid part of a recipe filename and has been used here only to suggest a wildcard regarding the recipe's version, see reply [1] in a companioned thread. Correct that by using the current recipe version instead. [1] https://lists.yoctoproject.org/g/docs/message/3165 Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-09-09classes: Update overlayfs classes to use new bitbake functionalityVyacheslav Yurkov
OverlayFS classes belong to a recipe scope Signed-off-by: Vyacheslav Yurkov <v.yurkov@precitec.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-09-07icecc.bbclass: delete 'rm' commandUlrich Ölmann
The removed command was explicitly marked as transitional in commit [1] roughly three years ago, so finally clean up. [1] 40d74cb1d0dd ("icecc: Export ICECC_CC and friends via wrapper-script") Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-09-07icecc.bbclass: fix typosUlrich Ölmann
Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-09-02cve-check: close cursors as soon as possibleRoss Burton
We can have multiple processes reading the database at the same time, and cursors only release their locks when they're garbage collected. This might be the cause of random sqlite errors on the autobuilder, so explicitly close the cursors when we're done with them. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2022-08-31classes: cve-check: Get shared database lockJoshua Watt
The CVE check database needs to have a shared lock acquired on it before it is accessed. This to prevent cve-update-db-native from deleting the database file out from underneath it. [YOCTO #14899] Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-18distrooverrides: Move back to classes whilst it's usage is clarifiedRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-14create-spdx: handle links to inaccessible locationsPeter Marko
When a link is pointing to location inaccessible to build user (e.g. "/root/something"), filepath.is_file() throws "PermissionError: [Errno 13] Permission denied". Fix this by first checking if it is a link. Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12archiver.bbclass: some recipes that uses the kernelsrc bbclass uses the ↵Jose Quaresma
shared source This fix a race that happens when building some of the followning recipes with kernel at same time. The kernelsrc uses the kernel shared source dir as their source S = "${STAGING_KERNEL_DIR}" and this will cause a race in the do_unpack_and_patch task, when bitbake runs the bb.build.exec_func('do_unpack', d) because do_unpack will clean the source dir on startup. | ok: note that S != "${STAGING_KERNEL_DIR} for this ones openembedded-core/meta/recipes-kernel/perf/perf.bb:inherit kernelsrc meta-openembedded/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb:inherit kernelsrc autotools-brokensep | broken meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb:inherit kernelsrc kernel-arch bash-completion meta-openembedded/meta-oe/recipes-kernel/spidev-test/spidev-test.bb:inherit bash-completion kernelsrc kernel-arch meta-openembedded/meta-oe/recipes-kernel/intel-speed-select/intel-speed-select.bb:inherit kernelsrc meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb:inherit bash-completion kernelsrc kernel-arch The issue can be replicated with: INHERIT += "archiver" ARCHIVER_MODE[src] = "original" ARCHIVER_MODE[diff] = "1" And: R=<recipe> bitbake -c cleansstate virtual/kernel $R && bitbake $R 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>
2022-08-12classes: Update classes to match new bitbake class scope functionalityRichard Purdie
Move classes to classes-global or classes-recipe as appropriate to take advantage of new bitbake functionality to check class scope/usage. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12insane: Update to allow for class layout changesRichard Purdie
Make the code more generic to allow for the potential incomming class layout changes. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12classes: Add SPDX license identifiersRichard Purdie
As stated in our top level license files, the license is MIT unless otherwise stated. Add SPDX identifers accordingly. Replace older license statementa with the standardised syntax. Also drop "All Rights Reserved" expression as it isn't used now, doesn't mean anything and is confusing. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12classes: Add copyright statements to files without oneRichard Purdie
Where there isn't a copyright statement, add one to make it explicit. Also drop editor config lines where they were present. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12testexport: Use IMAGE_CLASSES for testimageRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12testexport: Fix to work as an image classRichard Purdie
The class is mainly an image based class but one recipe does need to look at values shared with the class and isn't an image. Move this to a conf file instead, avoiding the need to pollute all recipes globally. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12rust: Remove unneeded RUST_TARGETGENS settingsRichard Purdie
These match the default from the class so drop them. We then always generate all targets so remove the configuration from the class. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12buildhistory: Only use image-artifact-names as an image classRichard Purdie
The class only makes sense in the conext of images, not globally so include as such. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-09rust-common: Remove conflict with utils create_wrapperRichard Purdie
utils already has a create_wrapper function which I tried to use from cargo and got unexpected results. Rename the rust function to avoid this conflict of named. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust: Drop cross/crosssdkRichard Purdie
Now that target config json is provided by rust-target-config.bbclass, the need for the cross and crosssdk recipes is removed. Drop them and simplify dependencies accordingly. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust-common: Set rustlibdir to match target expectationRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust-common: Simplify libc handlingRichard Purdie
The current libc handling code is simply wrong in many cases. Simplify it to a check of the triplet for musl handling which is much simpler and less error prone when handling things like nativesdk targets. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust-target-config: Make target workaround genericRichard Purdie
Ensure the 'target' data is set for both HOST and TARGET queries as appropriate to work correctly in cross configurations. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust-common: Update to match cross targetsRichard Purdie
Tweak the armv7 workaround to work for cross environments and as a host triplet and not just as a target. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08cargo_common: Handle build SYS as well as HOST/TARGETRichard Purdie
Improve the common class to handle BUILD_SYS as well as host and target, removing the need to a workaround in the rust recipe. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust-common/rust: Improve bootstrap BUILD_SYS handlingRichard Purdie
Move the "unknown" vendor workaround used during bootstrap to a central location so it is applied consistently to all RUST_BUILD_SYS values rather than some subset. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust: Generate per recipe target configuration filesRichard Purdie
Instead of generating target configuration files centrally and often getting it wrong, or having trouble finding the right set, generate them dynamically from the bbclass into WORKDIR per recipe. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust-target-config: Show clear error when target isn't definedRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust: Switch to use RUST_XXX_SYS consistentlyRichard Purdie
The code was using a mixture of XXX_SYS and RUST_XXX_SYS. Use RUST_XXX_SYS consistently and add the variables to the global exclsion on signatures as they're reflected in the directory triplets and trying to filter them out the hashes separately is too painful. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust-common: Rework wrappers to handle muslRichard Purdie
For musl we need to be able to add a library to the end of the linker commandline. Rework the wrapper code to be able to do this through a new variable. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust-common: Drop export directive from wrappersRichard Purdie
These variables don't need to be exported into the environment, which reduces the scope of rebuilds when variable values change. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust-common: Add CXXFLAGSRichard Purdie
Similarly to CC and CCLD, handle CXX flags too. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08rust-target-config: Add mips n32 target informationRichard Purdie
Add MIPS n32 target information. This appears to be correct but building libstd-rs for the target doesn't work. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08populate_sdk_base: Disable rust SDK for MIPS n32Richard Purdie
The n32 MIPS rust SDK doesn't quite build (libstd-rs fails with an llvm register issue). Disable it for now, someone with interest in having it working can fix if/as/when. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08nativesdk: Clear TUNE_FEATURESRichard Purdie
Similarly to what native.bbclass does, clear TUNE_FEATURES since these aren't appropriate to the nativesdk build. This saves us having to change down signature issues due to data in this variable. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-04image_types_wic.bbclass: fix cross binutils dependencyChen Qi
Enable multilib and wic at the same time and we'll meet the following error. ERROR: Nothing PROVIDES 'virtual/i686-wrsmllib32-linux-binutils' Adjust the dependency to take multilib into consideration. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2022-08-04create-spdx: ignore packing control files from ipk and debJose Quaresma
Otherwise spdx can have references for data that is not packed in the package delivered because this contol data is temporarly and only exist while the package is been write. During do_package_write_ipk task in do_package_ipk the control files is cleaned up at the end. This can create a race condiction when the do_create_spdx task runs the add_package_files function and these files is been deleted at same time in the task do_package_write_ipk. ERROR: alsa-topology-conf-1.2.5.1-r0 do_create_spdx: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: <module> 0001: *** 0002:do_create_spdx(d) 0003: File: '/srv/oe/build/conf/../../layers/openembedded-core/meta/classes/create-spdx.bbclass', lineno: 567, function: do_create_spdx 0563: package_doc.add_relationship(package_doc, "DESCRIBES", spdx_package) 0564: 0565: package_archive = deploy_dir_spdx / "packages" / (package_doc.name + ".tar.zst") 0566: with optional_tarfile(package_archive, archive_packaged) as archive: *** 0567: package_files = add_package_files( 0568: d, 0569: package_doc, 0570: spdx_package, 0571: pkgdest / package, File: '/srv/oe/build/conf/../../layers/openembedded-core/meta/classes/create-spdx.bbclass', lineno: 234, function: add_package_files 0230: info.mtime = source_date_epoch 0231: 0232: archive.addfile(info, f) 0233: *** 0234: sha1 = bb.utils.sha1_file(filepath) 0235: sha1s.append(sha1) 0236: spdx_file.checksums.append(oe.spdx.SPDXChecksum( 0237: algorithm="SHA1", 0238: checksumValue=sha1, File: '/srv/oe/bitbake/lib/bb/utils.py', lineno: 559, function: sha1_file 0555: """ 0556: Return the hex string representation of the SHA1 checksum of the filename 0557: """ 0558: import hashlib *** 0559: return _hasher(hashlib.sha1(), filename) 0560: 0561:def sha384_file(filename): 0562: """ 0563: Return the hex string representation of the SHA384 checksum of the filename File: '/srv/oe/bitbake/lib/bb/utils.py', lineno: 528, function: _hasher 0524: 0525:def _hasher(method, filename): 0526: import mmap 0527: *** 0528: with open(filename, "rb") as f: 0529: try: 0530: with mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) as mm: 0531: for chunk in iter(lambda: mm.read(8192), b''): 0532: method.update(chunk) Exception: FileNotFoundError: [Errno 2] No such file or directory: '/srv/oe/build/tmp-lmp/work/all-lmp-linux/alsa-topology-conf/1.2.5.1-r0/packages-split/alsa-topology-conf/CONTROL/control' ERROR: Logfile of failure stored in: /srv/oe/build/tmp-lmp/work/all-lmp-linux/alsa-topology-conf/1.2.5.1-r0/temp/log.do_create_spdx.998864 INFO: recipe alsa-topology-conf-1.2.5.1-r0: task do_create_spdx: Failed Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2022-08-04classes/sanity: Add comment about github & gitlab archivesJoshua Watt
Add a comment so that users grepping for "github" or "gitlab" will find this code (since the regex wont). Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-02uboot-config.bbclass: Raise error for bad keyTom Hochstein
If an invalid key is used, the class ignores the error, with an indeterminate result. In my case, the problem surfaced in do_deploy: ``` | cp: cannot stat '/.../build/tmp/work/imx6qdlsabresd-fsl-linux-gnueabi/u-boot-imx-mfgtool/2022.04-r0/deploy-u-boot-imx-mfgtool/u-boot.imx': No such file or | directory ``` The root cause of this was that the uboot config key did not match a valid option. With the fix, the error is caught by the class: ``` ERROR: Nothing PROVIDES 'u-boot-imx-mfgtool' u-boot-imx-mfgtool was skipped: The selected UBOOT_CONFIG key ['mfgtool'] has no match in dict_keys(['sd-fslc', 'sd-imx', 'sd-optee-imx', 'sata-imx', 'mfgtool-imx']). ``` Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2022-08-02wic: depend on cross-binutilsRoss Burton
Wic can build an unified kernel image, but this needs the cross-objcopy from binutils. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2022-07-28create-spdx: Fix supplier fieldMihai Lindner
The correct field name is "supplier" according to SPDX schema. The "supplier" field translates to "PackageSupplier", but that's for tag-value format. Signed-off-by: Mihai Lindner <mihai.lindner@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-07-28toolchain-scripts.bbclass: adjust toolchain_create_tree_env_script to better ↵Alexander Kanavin
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. 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-07-28archiver.bbclass: remove unsed do_deploy_archives[dirs]Jose Quaresma
Remove as commit b3afe7d redifines it. https://git.openembedded.org/openembedded-core/commit/?id=b3afe7d9bd25a943e947de3ec064ea245173c5a8 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>
2022-07-28populate_sdk_base: Fix mingw override nameRichard Purdie
Correct the override name used for rust toolchain removal from the mingw sdk. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-07-28populate_sdk: Add SDK toolchain language selection supportRichard Purdie
Add a new variable SDK_TOOLCHAIN_LANGS to allow different language support to be selected within SDKs. Initially supported options are rust and go. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>