summaryrefslogtreecommitdiffstats
path: root/meta/classes-global/sanity.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* The poky repository master branch is no longer being updated.Richard Purdie2025-11-071-1114/+0
| | | | | | | | | | | | | | | | | | | | | You can either: a) switch to individual clones of bitbake, openembedded-core, meta-yocto and yocto-docs b) use the new bitbake-setup You can find information about either approach in our documentation: https://docs.yoctoproject.org/ Note that "poky" the distro setting is still available in meta-yocto as before and we continue to use and maintain that. Long live Poky! Some further information on the background of this change can be found in: https://lists.openembedded.org/g/openembedded-architecture/message/2179 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: Remove tool version repetition for gcc, patch, git, make, tarAndreas Stergiopoulos2025-10-161-10/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit mainly changes the way that error messages are printed when sanity checking for the version numbers of gcc, patch, git, make and tar. It affects the following functions: check_patch_version(), check_make_version(), check_gcc_version(), check_tar_version(), check_git_version() Before this commit, the minimum version number and the error string were hard-coded string literals which the programmer had to maintain manually and independently. With this change, the version is defined once in each function and then used both for checking and for error printing. Additionally, the affected error messages have been made to spill over multiple lines for better source code readability. Link to the relevant discussion: https://lists.openembedded.org/g/openembedded-core/topic/115491380#msg224131 This change has been tested by changing the version string and making sure that the test fails and the proper minimum version is reported in the error message. Suggested-By: Yoann Congal <yoann.congal@smile.fr> (From OE-Core rev: 27a4ce7b34946200e35adfab1ace512a531fc560) Signed-off-by: Andreas Stergiopoulos <andreas.stergiopoulos@smile.fr> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Update minimum gcc version to 10.1Antonin Godard2025-10-021-6/+3
| | | | | | | | | | | | | | | | | | | Since commit 19004950ad56 ("sanity: Check if the C++ toolchain supports --std=gnu++20") host GCC must support "--std=gnu++20", which became available in 10.1. This is already reflected in the documentation [1] but not here. Update the sanity check on GCC and raise the minimum version to 10.1. Remove the dead link to www.softwarecollections.org. [1]: https://git.yoctoproject.org/yocto-docs/commit/?id=0e538c102bfcb7184c76c2401e8cb878168c4434 Cc: Yoann Congal <yoann.congal@smile.fr> (From OE-Core rev: 871cc04305fe7483a4c256f38fa63a67cef82183) Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Add sanity test for 'bad' gcc installs on ubuntu 24.04Richard Purdie2025-07-091-0/+7
| | | | | | | | | | | Installing emacs on Ubuntu 24.04 pulls in emacs-gtk which leads to libgcc-14-dev despite gcc being 13. This breaks libcxx-native and compiler-rt-native builds. We've tried various ways of addressing this buit they don't work. Instead, detect this situation and tell the user to either install or remove a package. (From OE-Core rev: 087b2730bb2446ad5ea98c233e349d2787c17ff1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Reference gcc/g++ directlyRichard Purdie2025-07-031-6/+6
| | | | | | | | | | | | | BUILD_CC and BUILD_CXX can be overridden on a per recipe context now so these tests don't make sense in this form any more. They assume gcc/g++ so lets just use those directly. This fixes things to work with toolchain selection for the native case. (From OE-Core rev: cc93781667cf4f6971bcb9319ab8ab21320852de) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity/utils: Directly use gcc, not BUILD_CCRichard Purdie2025-07-031-6/+3
| | | | | | | | | The test/helper is written assuming gcc, so just call that and stop accessing BUILD_CC which may be set to clang. (From OE-Core rev: 0a165a93693a293f08cb0d7e2dfa1016803a917a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake.conf/pseudo: Switch from exclusion list to inclusion listRichard Purdie2025-05-121-2/+2
| | | | | | | | | | | | | | | | | Currently, pseudo tracks all files referenced within its presence unless they're listed in an exclusion list. The exclusion list has grown to be fairly unwieldy. This patch swaps PSEUDO_IGNORE_PATHS for PSEUDO_INCLUDE_PATHS which in theory should be easier and more explicit to maintain. This change does drop many directories from pseudo coverage including /home and /tmp. There may be adapatations needed for recipes/classes using pseudo in specific ways. (From OE-Core rev: 2502da81709f25de499277b28d33c915638c45f6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Check if the C++ toolchain supports --std=gnu++20Yoann Congal2025-03-201-0/+5
| | | | | | | | | | | | This is needed to build nodejs from meta-oe. Check this early to avoid an error later in the build. Fixes [YOCTO #15804] (From OE-Core rev: 19004950ad5691ef51f7fcf946558bd0de561403) Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Refactor "C++ toolchain support this flag" checkYoann Congal2025-03-201-5/+5
| | | | | | | | | This can be use to check for other flags. (From OE-Core rev: 42d012e8414736d89618422fb6f9bce9e4a2a391) Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Bump minimum python version requirement to 3.9Richard Purdie2025-03-201-3/+3
| | | | | | | | | | | | | | | | Since Ubuntu 20.04 is heading to EoL and that we're having other issues on that platform needing buildtools anyway, we're about to lose the last python 3.8 platform we were supporting. Bump the minimum version to 3.9 since there are many developers wanting access to newer python features. This likely won't be seen since the bitbake minimum has also been increased but helps for documentation purposes. (From OE-Core rev: c3db241c6e97420ca0705d1535a7cdd0c273b761) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Check for non ascii chars in TOPDIRSofiane HAMAM2025-02-201-0/+9
| | | | | | | | | | | | | | Some modules (like Perl's MakeMaker) do not support non ASCII characters in build folder's path, this would cause build failures of software that does not support non ASCII. A sanity check is added to warn the user. Fixes [YOCTO #15764] (From OE-Core rev: 2b3be97a0d0d60d026786a4465b24b6f6752ba32) Signed-off-by: Sofiane HAMAM <sofiane.hamam@smile.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Add test for functional c++ toolchainChristos Gavros2025-01-271-0/+25
| | | | | | | | | | | | Users reported issues caused by missing the right libstdc++-version-dev. A new function 'check_cpp_toolchain' added in sanity.bbclass to test linking libstdc++ [YOCTO #15712] (From OE-Core rev: 611c1a26212dfbfe8d0640d9fefe5df49f7b69b8) Signed-off-by: Christos Gavros <gavrosc@yahoo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: Lower the length of TMPDIR limit to 400Changqing Li2025-01-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When TMPDIR has length 410, bitbake uninative-tarball will fail at do_populate_sdk with error: Failed to open backup database: "TMPDIR/work/x86_64-nativesdk-pokysdk-linux/uninative-tarball/1.0/sdk/image/var/lib/dnf/history.sqlite" sqlite3 has a hardcode max pathname limit 512, refer [1], and there is a check, refer [2], pathname + 8 > max path name limit(512) is not allowed. So the pathname length need to <= 504. While, length of "TMPDIR/work/x86_64-nativesdk-pokysdk-linux/uninative-tarball/1.0/sdk/image/var/lib/dnf/history.sqlite" is 505, so error happened. We had met similar issue [3], and refer the comments, upstream reject the change of the hardcode length, see [4][5]. This patch try to improve and workaround this issue by lower max TMPDIR length to 400, at least for distro name length <=13, the build can success. [1] https://github.com/sqlite/sqlite/blob/master/src/os_unix.c#L180 [2] https://github.com/sqlite/sqlite/blob/master/src/pager.c#L4777 [3] https://bugzilla.yoctoproject.org/show_bug.cgi?id=12374 [4] https://sqlite.org/cgi/src/tktview/c060923a5422590b3734 [5] https://sqlite.org/forum/forumpost/0b1b8b5116 (From OE-Core rev: da1c0998bdaf5def7ae94f44a33b9a505edc99c1) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: skip check_userns for non-local uidChangqing Li2024-10-221-0/+2
| | | | | | | | | | | | | Bitbake preserve network for non-local uid, refer [1], so check_userns is not needed for non-local uid [1] https://git.openembedded.org/bitbake/commit/?id=4eafae7904bae6e5c6bc50356e8a9077f2e207fa (From OE-Core rev: 808d0cece22bcbee15236717e158da247cbedaf1) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: check for working user namespacesRoss Burton2024-09-131-0/+24
| | | | | | | | | | | | | | | | If user namespaces are not available (typically because AppArmor is blocking them), alert the user. We consider network isolation sufficiently important that this is a fatal error, and the user will need to configure AppArmor to allow bitbake to create a user namespace. [ YOCTO #15592 ] (From OE-Core rev: b6af956fe6e876957a49d4abf425e8c789bf0459) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Check if tar is gnutarSimone Weiß2024-05-311-0/+3
| | | | | | | | | | | | | | In sanity.bbclass the tar version is checked as tar needs to be recent enough for reproducible builds. Tar could also be provided by other means then gnutar, but we mean the version of gnutar in the check. Hence we also should ensure that the installed tar is gnutar. [YOCTO #14205] (From OE-Core rev: bdef30bd887cd208d7822dd7853d33e24a6b7a4c) Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Use diff instead of meld by defaultKhem Raj2024-04-111-1/+1
| | | | | | | | | | | meld fallback assumes that user has a gnome desktop its better to fallback to good old diff tool which will most distributions on build host will carry (From OE-Core rev: d027236eac2a136b06903d4a47adbc50ccd6b7c6) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: raise_sanity_error if /tmp is noexecMichal Sieron2024-02-131-0/+4
| | | | | | | | | | | | | Older meson versions save temporary scripts in /tmp. Similarly some recipies also do that (e.g. ccan in sbsigntool). As this can lead to unexpected build failures with no simple way to workaround, make such setup a fatal error. (From OE-Core rev: ee93a8e89322143252040bd5bc99259c5efff831) Signed-off-by: Michal Sieron <michalwsieron@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: Check for additional native perl modules.Philip Balister2024-01-031-1/+1
| | | | | | | | | | | | | | | Since we use the build systems native perl, we need to check that all perl modules required for a build are installed. For a default Fedora 39 install, autoconf-native and libxcrypt both fail to build due to missing perl modules. After taking careful notes, this commits adds checks for File::Compare, File::Copy, open, and FindBin. [YOCTO #14691] (From OE-Core rev: 3d09e759f838a7ce66fd1fb6e6a6653abce9e3a4) Signed-off-by: Philip Balister <philip@balister.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Add GCP fetcher to list of supported protocolsEmil Ekmečić2023-08-141-1/+2
| | | | | | | | | | | If accepted, this patch should merge with the corresponding BitBake patch titled "fetch2: add Google Cloud Platform (GCP) fetcher". (From OE-Core rev: 1e2e596bcdff031d7d7dc1d6f6adbb03d9ec2995) Signed-off-by: Emil Ekmečić <eekmecic@snap.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: Update minimum gcc version to 8.0Mark Hatle2023-04-041-3/+3
| | | | | | | | | | | | | | With a gcc older then 8.0, mesa-native will fail to build with the error: sorry, unimplemented: non-trivial designated initializers not supported According to https://docs.mesa3d.org/install.html?highlight=gcc+version#compile the required minimum compiler version is now GCC 8.0. (From OE-Core rev: aa466053bf8a4b7998a462f0b49372d3a68a28e3) Signed-off-by: Mark Hatle <mark.hatle@amd.com> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/conf: move default configuration templates into meta/conf/templates/defaultAlexander Kanavin2023-02-161-3/+3
| | | | | | | | This sets the ground for standardizing (and enforcing) the location of configuration templates: let's start with the default one. Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Fix small typosYoann Congal2023-01-261-4/+4
| | | | | | | | | | | | | * reproducibile -> reproducible * distrubution -> distribution * Joined lines gone awry * and and -> and (From OE-Core rev: 60196e7512e97c2509256403dad5c8a23dce32fc) Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Update minimum python version to 3.8Richard Purdie2022-12-121-3/+3
| | | | | | | | | Bitbake is moving to a minimum python version of 3.8, update OE-Core to match to make things consistent. (From OE-Core rev: cc05bc04156122fd6f918191a9cec7bc0392415e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity: Drop data finalize callRichard Purdie2022-11-141-9/+2
| | | | | | | | | | | This call was effectively like update_data and no longer did anything in bitbake. Drop it as it is obsolete. (From OE-Core rev: d3eb4531aae28a07cb7e52ed5fe1102445d2effd) 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>
* sanity.bbclass: do not check for presence of distutilsAlexander Kanavin2022-11-111-3/+1
| | | | | | | | | | | | | | | This will be removed in 3.12 and has been deprecated for a while. If anything breaks because of its absence on the host, this would expose the breakage so it can be fixed. icu source specifically does not refer to distutils anywhere. (From OE-Core rev: 8e3a5b0709384f2b455a82ac1e8e212686fe4456) 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>
* sanity: check for GNU tar specificallyRoss Burton2022-10-291-0/+8
| | | | | | | | | | | | | We need the system tar to be GNU tar, as we reply on --xattrs. Some distributions may be using libarchive's tar binary, which is definitely not as featureful, so check for this and abort early with a clear message instead of later with mysterious errors. (From OE-Core rev: 7dd2b1cd1bb10e67485dab8600c0787df6c2eee7) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* own-mirrors: add crateAdrian Freihofer2022-10-251-1/+1
| | | | | | | | | | Support downloading crate files from a mirror at SOURCE_MIRROR_URL. (From OE-Core rev: aebf4f183267a1e2f073078ade0ddc916ceed53f) 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>
* sanity: add a comment to ensure CONNECTIVITY_CHECK_URIS is correctShubham Kulkarni2022-08-211-0/+1
| | | | | | | | | | | | | | | In sanity.bbclass, in function check_connectivity : Connectivity is tested by fetching URIs in variable CONNECTIVITY_CHECK_URIS. If none is accessible, the status error is ambiguous. It says to ensure the host's network is correctly configured but never if the remote is available. (From OE-Core rev: 9865176df6b6362a410b0fc3c115d942462dc338) Signed-off-by: Shubham Kulkarni <skulkarni@mvista.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Update classes to match new bitbake class scope functionalityRichard Purdie2022-08-121-0/+1028
Move classes to classes-global or classes-recipe as appropriate to take advantage of new bitbake functionality to check class scope/usage. (From OE-Core rev: f5c128008365e141082c129417eb72d2751e8045) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>