summaryrefslogtreecommitdiff
path: root/meta/classes/sanity.bbclass
AgeCommit message (Collapse)AuthorFiles
2013-05-24sanity.bbclass: Drop dubious printRichard Purdie1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-13sanity.bbclass: Attach the missing value to a format string.Peter Seebach1
The tuning changes to sanity.bbclass were almost right, but one of the messages had a %s with no % operator. Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
2013-05-09class/lib: Fix up various file access methodsRichard Purdie1
There are various bits of cruft that have built up around our file accesses. This patch cleans some of them up, specifically: * Remove pointless "from __builtin__ import file" * Use open(), not file() * Wrap file usage in a with container to ensure files are closed * Add missing .close() calls in some cases Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09classes/lib: Fix getcmdstatus breakageRichard Purdie1
I mistakenly thought subprocess had getcmdstatus in python 2. It doesn't so lets add a wrapper and have this work in both worlds. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09sanity/patch.py: Remove commands module usageRichard Purdie1
The commands module is removed in python3. Use the subprocess module instead and the pipes module to replace the mkargs usage. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09classes/lib: Update to use print as a function callRichard Purdie1
In python 3 print is a function call. In some cases bb.note is a more appropriate call to make. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09sanity.bbclass: Use open(), not file()Richard Purdie1
file() syntax is removed in python 3, use open() instead. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09clases/lib: Use modern exception syntaxRichard Purdie1
Update older code to use modern exception handling syntax which is the form accepted by python 3. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-04-13classes/sanity: fix handling of bblayers.conf updatingPaul Eggleton1
Fix the fairly long-standing problem of treating a newer bblayers.conf in the same manner as an older one (reporting that it had been updated even if nothing was done). The recent work to do a reparse without having to manually re-run bitbake turned this from an annoyance into an endless loop, so it had to be fixed. As part of fixing this the following changes have been made: * Extensions are now implemented using a function list, so distro layers can add their own functions which should either succeed (indicating they have successfully updated the file) or raise an exception (indicating nothing could be done). The functions are called in succession until one succeeds, at which point we reparse. * If we can't do the update, the error message now says "older/newer" instead of just "older" since we only know the version is different. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-22fix march sanity check issueZhenhua Luo1
1. check if gcc_test is really generate before os.remove("gcc_test") to avoid following error: ERROR: Execution of event handler 'check_sanity_eventhandler' failed Traceback (most recent call last): File "check_sanity_eventhandler(e)", line 4, in check_sanity_eventhandler(e=<bb.event.ConfigParsed object at 0x3151450>) File "sanity.bbclass", line 107, in check_sanity(sanity_data=<bb.data_smart.DataSmart object at 0x11ba110>) File "sanity.bbclass", line 22, in check_gcc_march(sanity_data=<bb.data_smart.DataSmart object at 0x11ba110>) OSError: [Errno 2] No such file or directory: 'gcc_test' 2. set result to False when build failed with -march=native to ensure -march=native is appended to BUILD_CFLAGS when host gcc really supports this flag, otherwise following error appears when build native packages. | cap_text.c:1: error: bad value (native) for -march= switch | cap_text.c:1: error: bad value (native) for -mtune= switch Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-07sanity.bbclass:check if necessary to add march to BUILD_CFLAGSHongxu Jia1
1, There are a set of GCC built-in functions for atomic memory access. The definition given in the Intel documentation allows only for the use of the types int, long, long long as well as their unsigned counterparts. GCC will allow any integral scalar or pointer type that is 1, 2, 4, 8 or 16 bytes in length, suffix `_n' where n is the size of the data type.Such as: __sync_fetch_and_add_n __sync_fetch_and_sub_n __sync_fetch_and_or_n __sync_fetch_and_and_n __sync_fetch_and_xor_n __sync_fetch_and_nand_n The above builtins are intended to be compatible with those described in the Intel Itanium Processor-specific Application Binary Interface, section 7.4. 2, The glib-2.0-native and qemu-native invoke the above builtin function with suffix `_4', and glib-2.0-native uses __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 to test the existance. 3, Not all above builtin functions are supported by all target processors.Such as i386 does not support the functions with suffix `_4', but i486 or later support. 4, Prior to GCC 4.5, on the Intel's processor, the default arch is i386 unless GCC is built with the --with-arch switch. Since GCC 4.5 the default arch is implied by the target. 5, If your host GCC is older than 4.5 and it is built without the --with-arch switch, when you use the GCC to compile target, you should specify -march to tell GCC what the target's arch is, otherwise i386 is used as default. Above all, when use older GCC to compile glib-2.0-native or glib-2.0-native, and the GCC incorrectly uses i386 as default, the above builtin function with suffix `_4' is not referenced. We should have a check in sanity.bbclass to tell the user if necessary to add march to BUILD_CFLAGS in this situation. http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/_005f_005fsync-Builtins.html#_005f_005fsync-Builtins http://gcc.gnu.org/ml/gcc-help/2009-06/msg00037.html http://gcc.gnu.org/gcc-4.5/changes.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47460 http://llvm.org/bugs/show_bug.cgi?id=11174 http://download.intel.com/design/itanium/downloads/245370.pdf [YOCTO #3563] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-03-02sanity.bbclass: always use oe.lsb.distro_identifier methodMartin Jansa1
* even when /etc/redhat-release or /etc/SuSE-release exists * don't read /etc/lsb-release manually, NATIVELSBSTRING is not reading it too Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-01sanity: use lsb distro_identifierMartin Jansa1
* distro_identifier returns lsb_data['Distributor ID']-lsb_data['Release'] which in some cases is different then lsb_release -d -s, e.g. Distributor ID: Ubuntu Description: Ubuntu 12.04 LTS Release: 12.04 Codename: precise But we probably don't need to sanity list each point release in LTS and sstate is already using distro_identifier as prefix for native sstate archives * This will need update to SANITY_TESTED_DISTROS (at least s/Ubuntu 12.04 LTS/Ubuntu-12.04/g etc), that's why sending as RFC first. Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-02-19sanity: check_path_length: replace tab with 8 spacesMartin Jansa1
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15sanity.bbclass: when bblayers.conf is updated, it invokes a reparseCristiana Voicu1
When bblayers.conf is updated(when sanity check is running), it should tell to bitbake to reparse configuration files. I will send a patch to bitbake-devel, with the actions needed in bitbake and hob. [YOCTO #3213] Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-02-07sanity.bbclass: Check for DISPLAY for qemutests in BB_ORIGENV nowRichard Purdie1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-24sanity.bbclass: Ensure tmpdir exists when running the checkRichard Purdie1
This avoids tracebacks from bitbake if the directory doesn't already exist. [YOCTO #3640] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-31multilib: fix allarch/kernel/module-base multilib issuesConstantin Musca1
- skip the non-packagegroup allarch recipes in multilib_virtclass_handler - extend PROVIDES/RPROVIDES for allarch recipes which are not packagegroups - use variants from MULTILIB_GLOBAL_VARIANTS (lib32 lib64 libx32) to create additional pkgdata files for multilib allarch: ${pkgdatadir}/${variant}-${PN} and ${pkgdatadir}/runtime/${variant}-${pkg} - use variants from MULTILIB_VARIANTS to create additional pkgdata files for multilib kernel/module-base recipes - add a sanity check to determine if the current multilib is in MULTILIB_GLOBAL_VARIANTS [YOCTO #2918] [YOCTO #3440] [YOCTO #3565] [YOCTO #3568] Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-11-19bitbake.conf/sanity: Separate versions and PN stamp components into separate ↵Richard Purdie1
directories for WORKDIR and STAMP This means some of the hacks we have to tell where the package name ends and the version starts in the directory layout becomes obsolete, simplifying the work of some of the cleanup scripts. It also makes the layout slightly more intuitive to the user. It does force a rebuild onto the user but it will reuse sstate successfully. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-18sanity.bbclass: trigger network tests explicitlyBogdan Marinescu1
The network tests in sanity.bbclass can now be trigerred explicitly by firing the NetworkTest event. This is part of the fix for bug #3026. [YOCTO #3026] Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-02sanity.bbclass: Fix invalid test for network errorBogdan Marinescu1
The test for network error in sanity.bbclass was negated. Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28sanity: Added explicit network error status in SanityCheckFailed eventBogdan Marinescu1
If we fail a network test, a special flag is set in the SanityChekFailed event. This helps Hob identify the network error properly and display a special message to the user. [YOCTO #3025] Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-09-28sanity.bbclass: bblayers.conf should be updated automaticallyConstantin Musca1
- add check_bblayers_conf bitbake function which does the bblayers.conf v4 -> v5 update if necessary (every layer should make its specific bblayers.conf upgrades appending to the check_bblayers_conf function) - we ask the user to re-run bitbake because we can't trigger reparsing without being invasive [YOCTO #3082] Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-09-12classes/sanity: remove obsolete codePaul Eggleton1
We can now rely upon the minimum BitBake version having the SanityCheckFailed event, so remove the code to handle if this is not there. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-09-12classes/sanity: skip tune checks if machine is invalidPaul Eggleton1
If there is no valid machine configuration it's almost guaranteed that the tune checks will fail, so just suppress them in that case. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-09-05sanity.bbclass: Move back to running at ConfigParsed timeRichard Purdie1
If we don't do this, users can get extremely confused errors since the sanity tests happen too late (after parsing) and don't see the warnings. Also cleanup messages about merging configuration file changes to give better hints at where the updated files may be. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21meta/classes: Various python whitespace fixesRichard Purdie1
It was pointed out we have a number of weird indentations in the python functions. This patch cleans up 3, 7 and other weird indentations for the core bbclass files. It also fixes some wierd (odd) shell function indentation which my searches picked up. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-20classes/sanity: remove texi2html from required host utilitiesPaul Eggleton1
texi2html is not actually required to build world of OE-Core anymore, so we don't need to mandate it. The only difference without it (verified with buildhistory) is that groff doesn't produce HTML documentation; the rest of its docs are still produced and packaged and no other packages are affected. Part of the work towards [YOCTO #2423]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-20sanity: display the parsed BBPATH when complaining about CWD elementsRoss Burton1
Many people don't understand the nuances of PATH/BBPATH, so help them by clarifying the warning and displaying the parsed list element-by-element. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-19Remove a number of unneeded import os/bb callsRichard Purdie1
The bb and os modules are always imported so having these extra import calls are a waste of space/execution time. They also set a bad example for people copy and pasting code so clean them up. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-18sanity: display the parsed PATH when complaining about CWD elementsRoss Burton1
Many people don't understand the nuances of PATH, so help them by clarifying the warning and displaying the parsed PATH element-by-element. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-18bitbake.conf: Add git-native to ASSUME_PROVIDEDRichard Purdie1
Originally, git was something new, not installed everywhere and had commandline stability problems. This has changed and git it no longer makes sense to continually build this when the system installed version is likely sufficient. This speeds up build since recipes no longer have to wait for git-native to build if they're fetched from a git:// SRC_URI. Also add git to the sanity checks and drop the no unneeded svn reference. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09sanity.bbclass: the tmpdir can't be longer than 410Robert Yang1
There will be errors when the length of the tmpdir is longer than 410: 1) Longer than 420: Can't exec "/bin/sh": Argument list too long at /usr/lib/perl/5.10/IO/File.pm line 66. This error happens on both Ubuntu 10.04 and 10.10 when the pkg needs run "autoreconf", this is because it passes many files with absolute path to aclocal, aclocal passes them to perl, this is a limitation of the perl on Ubuntu 10.04 and 10.10, and the perl-native is not ready at this very early stage. 2) Longer than 490: bitbake/lib/bb/persist_data.py", line 197, in connect(database=...) > return sqlite3.connect(database, timeout=5, isolation_level=None) OperationalError: unable to open database file This error happens on Ubuntu 10.04, 10.10 and Fedora 17. This is because the length of the database in sqlite3 module (host's) can't be longer than 490 (or little smaller). The python-native is not ready at this very early stage. The 2 errors are host related, I think that limit the length of the TMPDIR to 410 is OK for most of the build, rarely build sets TMPDIR's longer than 410. [YOCTO #2434] Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2012-06-13sanity.bbclass: warn the user if BBPATH contains wrong entriesLaurentiu Palcu1
If BBPATH references the working directory, the user is warned and asked to fix the problem. [Yocto #1465] Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30classes/sanity: fix a couple of grammatical errors in messagesPaul Eggleton1
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30classes/sanity: send sanity check failure as a separate event for HobPaul Eggleton1
In order to show a friendlier error message within Hob that does not bury the actual sanity error in our typical preamble about disabling sanity checks, use a separate event to indicate that sanity checks failed. This change is intended to work together with the related change to BitBake, however it has a check to ensure that it does not fail with older versions that do not include that change. Fixes [YOCTO #2336]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30classes/sanity: remove broken TARGET_ARCH checkPaul Eggleton1
The variable name has been typo'd as TARGE_ARCH since it was introduced some time ago, so the check has never worked. Fixing the typo shows that the test is not quite functional, so let's just remove it: http://lists.linuxtogo.org/pipermail/openembedded-core/2011-October/010613.html Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30meta: replace os.system with subprocess.callRobert Yang1
Replace os.system with subprocess.call since the older function would fail (more or less) silently if the executed program cannot be found More info: http://docs.python.org/library/subprocess.html#subprocess-replacements [YOCTO #2454] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24sanity.bbclass: check sanity at BuildStarted rather than ConfigParsedJoshua Lock1
This enables a user to use bitbake -e even when the sanity checks are failing. Signed-off-by: Joshua Lock <josh@linux.intel.com>
2012-05-24sanity.bbclass: catch an extra exception in check_create_long_filenameJoshua Lock1
The call to bb.mkdirhier() in check_create_long_filename() can fail with an OSError, explicitly catch this and report something useful to the user. Signed-off-by: Joshua Lock <josh@linux.intel.com>
2012-05-24sanity.bbclass: add extra information when SSTATE_CACHE unusableJoshua Lock1
If the user does not have write permissions to SSTATE_CACHE, detected by the check_create_long_filename() test failing with a "Permission denied" value in strerror, then suggest they might want to use the location as an entry in SSTATE_MIRRORS. Signed-off-by: Joshua Lock <josh@linux.intel.com>
2012-05-24sanity.bbclass: add newline to check_create_long_filename failure messageJoshua Lock1
Each failure in the sanity message should be reported on a new line. Signed-off-by: Joshua Lock <josh@linux.intel.com>
2012-05-24sanity.bbclass: data.getVar(VAR, obj, exp) -> obj.getVar(VAR, exp)Joshua Lock1
Replace calls to data.getVar(VARIABLE, data_object, expand) to direct calls to the getVar method the the data_object. Signed-off-by: Joshua Lock <josh@linux.intel.com>
2012-05-24sanity.bbclass: copy the data store and finalise before running checksJoshua Lock1
At the ConfigParsed event the datastore has yet to be finalised and thus appends and overrides have not been set. To ensure the sanity check is being run against the configuration values the user has set call finalize() on a copy of the datastore and pass that for all sanity checks. Signed-off-by: Joshua Lock <josh@linux.intel.com>
2012-05-24Revert "sanity.bbclass: check user can read and write to SSTATE_DIR"Joshua Lock1
This has caused problems for several users, including the Yocto Project autobuilder. Since the message was added in order to be more user friendly revert the change. This reverts commit 0c0c4efbf92bcf0f8942f17c18525a4b4ed1798c.
2012-05-17sanity.bbclass: check user can read and write to SSTATE_DIRJoshua Lock1
The user needs read and write permissions to SSTATE_DIR, check whether they have sufficient permissions and if not recommend use of SSTATE_MIRRORS. Signed-off-by: Joshua Lock <josh@linux.intel.com>
2012-05-11sanity.bbclass: Detect empty $PATH components tooPeter Seebach1
Empty components in $PATH have the same effect as a . in $PATH, and are a common side-effect of inserting a misspelled or unset shell variable in $PATH. Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
2012-05-09sanity.bbclass: Implement initial toolchain sanity checksPeter Seebach1
This introduces a sanity check for the toolchain, which verifies each tuning (including any multilibs), producing meaningful diagnostics for problems, and also provides some higher-level tuning features. The TUNEVALID and TUNECONFLICT/TUNECONFLICTS settings were not implemented. Listed one or two missing features in TUNEVALID, also (in a previous patch) fixed the references to features which didn't exist. This patch also provides a whitelisting mechanism (which is completely unused) to allow vendors providing prebuilt toolchain components to restrict tunings to those based on or compatible with a particular ABI. Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
2012-04-24sanity.bbclass: Add a new case to issue sanity_check()Dongxiao Xu1
Judge if "SanityCheck" event is received, it will issue the sanity_check() and send "SanityCheckPassed" back if succeeded. Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23sanity.bbclass: add variable to disable the sanity checksJoshua Lock1
It's useful for Hob to be able to disable the sanity checks completely without marking them as passed so that the user can get into the GUI to configure their settings, etc. Add a variable, DISABLE_SANITY_CHECKS, to do so. Signed-off-by: Joshua Lock <josh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>