summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/providers.py
AgeCommit message (Collapse)Author
2014-03-10bitbake: providers/runqueue/taskdata: Optimise logger.debug callsRichard Purdie
A run of "bitbake bash -c unpack" when the task has already been completed resulted in about 9000 calls to logger.debug(). With this patch which comments out some noisy/less usefull logging and moves other logging calls outside loops, this number is reduced to 1000 calls. This results in cleaner logs and gives a small but measurable 0.15s speedup. The log size dropped from 900kb to 160kb. (Bitbake rev: d2677f084fe1d8846db77d89ef5e6ffb18dc171a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-09bitbake: providers.py: enhance the runtime debug degbug messgaeRobert Yang
The runtime provider debug message is the same as the build time debug message, make them different would be better. [YOCTO #5067] (Bitbake rev: 92b624cbc2711d3d859994099fb63918dfd0031a) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-07-29bitbake: providers.py: print a debug message for dynamic pacakgeRobert Yang
We can't know the dynamic pacakge's name exactly, there might be a problem, for example, when we use: IMAGE_INSTALL_append += "ncurses-lib12344" The ncurses-lib12344 matches ncurses' dynamic packages pattern: PACKAGES_DYNAMIC = "^${PN}-lib.*" so there is no errors before the rootfs creation though there is no ncurses-lib12344. We can warn this, but I think that we'd better not since there are many dynamic packages, or there would be too many warnings, for example, the perl and kernel modules, maybe we can print a debug message for it. [YOCTO #4798] (Bitbake rev: df372ca057f0c8c2152223b3e26ad9a30958bab6) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09bitbake: providers: Remove pointless lambda sort functionRichard Purdie
This lambda function is equivalent to the default sort used by sorted, so we can simply remove this. The syntax isn't compatible with python 3. (Bitbake rev: da8550fc884596222daa3f8794dce1abd01e5612) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-03bitbake: providers.py: Fix PREFERRED_VERSION containing epochsRichard Purdie
For some reason the code calls int() on the epoch component of any PREFERRED_VERSION. Since this is compared against strings, the comparison would always fail. This removes the stray cast and allows epochs in preferred_version to work correctly. [YOCTO #3187] (Bitbake rev: 117b47553970fc5307374cbf500744b7c302efb4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11bitbake: bitbake: Abort build if runtime dependency conflictWenzong Fan
Currently if there are multiple preferred providers available for a runtime dependency, bitbake will print an Error message and let the build go on. Anyways the build should abort while any Errors occured. [YOCTO #2734] (Bitbake rev: 5f81a714f4fca785780bef555b419f0250e5ec1c) Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-05meta/classes: Convert to use appendVar and appendVarFlagsRichard Purdie
(From OE-Core rev: 3b57de68e70e77dbc03c0616a83a29a2e99e40b4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-01bitbake-layers: improve show-overlayed outputPaul Eggleton
Make the following improvements to the show-overlayed subcommand: * Show recipes that are overlayed when the version is higher or lower, not just when it is the same. This gives a much better picture of the influence each layer is having over the metadata used for building. This can be disabled with the -s option if you just want to see recipes with the same version as before. * Default to showing name (PN), layer and version rather than the full path and filename. The old style formatting can be used by specifying the -f option. * Mark skipped recipes as such in the output, and print them in the correct sorted place in the list rather than at the end * Prefix/suffix title line with === so it can be filtered out easily in shell scripts if desired (Bitbake rev: 43b473275d3cb2e60a14e4a52cdc4654b3f4e5e7) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-10bitbake: Add BBHandledException exception classRichard Purdie
We have a problem knowing when to show the user debug information and when not to since the code has already shown the user suitable information about why a failure is occurring. This patch adds a bb.BBHandledException exception class which can be used to identify those exceptions which don't need further explanation to the user. This patch uses this class for the bb.providers exceptions and ensures the command handling code correctly filters the exceptions meaning that "bitbake invalid" now shows an simple error message and not a python traceback. [YOCTO #1141 partial] (Bitbake rev: eac9249b40ae1e3aa21e016010c862664e59a8d4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-27bitbake: Update users of getVar/setVar to use the data store functions directlyRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-15lib/bb/providers: make "checking PREFERRED_PROVIDER_%s" a debug messageDenys Dmytriyenko
In verbose mode there are hundreds of these "checking PREFERRED_PROVIDER_%s" messages, cluttering the output and obscuring the more important resulting "selecting %s to satisfy runtime %s due to %s" messages. Individual "checking" lines are more suited for debug mode, similar to "sorted providers for %s are: %s", hence convert logger.verbose() to logger.debug(). (Bitbake rev: 85dfbec26abb5b944758f5c4749b7df16c0fb2e6) Signed-off-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-27bitbake/providers: list PREFERRED_VERSION candidates when unavailablePaul Eggleton
If the specified PREFERRED_VERSION is not available then list the available versions in the output. (PR is omitted.) (Bitbake rev: eea5ff9f34bb9b2e29f5fa43deb80d4aa6ef7ddc) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-06-01providers.py: Correct PREFERRED_VERSION handlingRichard Purdie
Overrides on the right are the highest priority and in this case, pn-PN and PN should take priority over any other override so fix the code to do this. Also, since overrides will have been processed by bitbake, we shouldn't then be specifically looking up PREFERRED_VERSION_${PN} but just using PREFERRED_VERSION. This patch corrects the behaviours to match what the code is expected to do. (Bitbake rev: 606f1acc6fb8ccec45d6a52ed6ae6dc128011402) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-20bitbake/providers.py: Fix runtime providers problemsRichard Purdie
Take a real world testcase where you have two recipes, each of which contains PACKAGES_DYNAMIC = "gdk-pixbuf-loaders-*" and recipes which RDEPEND on some gdk-pixbuf-loaders-xxx package. To select between these you need to set a PREFERRED_PROVIDER. These are specified in the PN namespace so the locgical conclusion is that setting PREFERRED_PROVIDER_gdk-pixbuf = "gtk+" should work. It doesn't and instead checks crazy things. The code was correctly finding the two possible providers, gtk+ and gdk-pixbuf. It was however only accepting PREFERRED_PROVIDER_gtk+ = "gdk-pixbuf" to resolve this problem which reads as the exact opposite to what was wanted. This patch changes the code to do something that makes sense. I suspect that before these changes it was pretty much a null operation rubber stamping the single provider case. For Poky at least it exposes a few cases where -nativesdk recipes were providing the same things as their normal counterparts but these are genuine bugs in the metadata. I've also attempted to make the multiple provider error message human readable as I counldn't understand it and I doubt anyone else could either. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-04Switch bitbake internals to use logging directly rather than bb.msgChris Larson
We use a custom Logger subclass for our loggers This logger provides: - 'debug' method which accepts a debug level - 'plain' method which bypasses log formatting - 'verbose' method which is more detail than info, but less than debug (Bitbake rev: 3b2c1fe5ca56daebb24073a9dd45723d3efd2a8d) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-02Formatting cleanupsChris Larson
(Bitbake rev: 2caf134b43a44dad30af4fbe33033b3c58deee57) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-07-01bitbake: providers.py: Fix typoRichard Purdie
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22bitbake/providers: Fix merge errorRichard Purdie
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-22Avoid unnecessary calls to keys() when iterating over dictionaries.Chris Larson
dict objects provide an __iter__ method for the iteration which gives you the keys, so calling keys directly is unnecessary, and isn't really a best practice. The only time you really need to call the keys is if there's a danger of the dict changing out from underneith you, either due to external forces or due to modification of the iterable in the loop. Iterations over os.environ are apparently subject to such changes, so they must continue to use keys(). As an aside, also switches a couple spots to using sorted() rather than creating a temporary list with keys() and sorting that. (Bitbake rev: 5b6ccb16c6e71e23dac6920cd2df994d67c2587b) Signed-off-by: Chris Larson <clarson@mvista.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-16bitbake: Revert "providers.py: sort eligible providers by DEFAULT_PREFERENCE"Richard Purdie
This breaks preferred providers functionality This reverts commit ee9afccf33b220a21b74fab279925eeb4771249b. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-02-15bitbake: providers.py: sort eligible providers by DEFAULT_PREFERENCEBernhard Reutner-Fischer
(Bitbake rev: ee9afccf33b220a21b74fab279925eeb4771249b) Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-20bitbake: Switch to bitbake-dev version (bitbake master upstream)Richard Purdie
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-01-12bitbake: Apply modified version of a patch from Martin Jansa ↵Richard Purdie
<martin.jansa@gmail.com> to allow wildcards at the end of PREFERRED_VERSION strings Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-07-23bitbake: Make sure regexp patterns are consistent in providers.pyRichard Purdie
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2009-07-23bitbake: Add a cache around PACKAGES_DYNAMIC regexps to help performance a bitRichard Purdie
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2008-10-06bitbake providers.py: Fix message typo and improve debug infoRichard Purdie
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5416 311d38ba-8fff-0310-9ca6-ca027cbcb966
2008-09-03bitbake providers.py: Sync with upstreamRichard Purdie
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5125 311d38ba-8fff-0310-9ca6-ca027cbcb966
2008-05-13bitbake: Sync with 1.8 branchRichard Purdie
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4463 311d38ba-8fff-0310-9ca6-ca027cbcb966
2008-05-04bitbake: Sync with 1.8 branch upstream for PREFERRED_PROVIDERS message ↵Richard Purdie
improvements and BB_STAMP_WHITELIST functionality git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4411 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-10-21bitbake: providers.py: Fix perferred_version variable handlingRichard Purdie
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2947 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-09-02bitbake: Update to latest bitbake-1.8 branchRichard Purdie
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2651 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-08-15bitbake: Sync with upstream 1.8 branchRichard Purdie
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2497 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-08-08providers.py: Also add pn-PN syntax to overrides when evalutating ↵Richard Purdie
PREFERRED_VERSION git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2416 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-04-01bitbake: Update to 1.8.1 (inc. various bug fixes, epoch support)Richard Purdie
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1419 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-01-08bitbake: Sync with upstream. Richard Purdie
* File licence headers were sanitised causing most of the diff. * cooker.py was created from bin/bitbake. * cvs fetcher port option was added * The -f force option was fixed to work correctly * Multiple entries in rrecrdeps are now handled correctly (allows adding do_deploy to image depends) git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1129 311d38ba-8fff-0310-9ca6-ca027cbcb966
2006-11-16bitbake: Upgrade from 1.4 -> 1.7.4ishRichard Purdie
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@863 311d38ba-8fff-0310-9ca6-ca027cbcb966