aboutsummaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/build.py
AgeCommit message (Collapse)Author
2011-08-15build.py: Fix cut and paste errorRichard Purdie
(Bitbake rev: a1980fc89e45be6fbd4a193aaa8142e8bebcf3f4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-15bitbake/logging: Overhaul internal logging processRichard Purdie
At the moment it bugs me a lot that we only have one effective logging level for bitbake, despite the logging module having provision to do more advanced things. This patch: * Changes the core log level to the lowest level we have messages of (DEBUG-2) so messages always flow through the core logger * Allows build.py's task logging code to log all the output regardless of what output is on the console and sets this so log files now always contain debug level messages even if these don't appear on the console * Moves the verbose/debug/debug-domains code to be a UI side setting * Adds a filter to the UI to only print the user requested output. The result is more complete logfiles on disk but the usual output to the console. There are some behaviour changes intentionally made by this patch: a) the -v option now controls whether output is tee'd to the console. Ultimately, we likely want to output a message to the user about where the log file is and avoid placing output directly onto the console for every executing task. b) The functions get_debug_levels, the debug_levels variable, the set_debug_levels, the set_verbosity and set_debug_domains functions are removed from bb.msg. c) The "logging" init function changes format. d) All messages get fired to all handlers all the time leading to an increase in inter-process traffic. This could likely be hacked around short term with a function for a UI to only request events greater than level X. Longer term, having masks for event handlers would be better. e) logger.getEffectiveLevel() is no longer a reliable guide to what will/won't get logged so for now we look at the default log levels instead. [YOCTO #304] (Bitbake rev: 45aad2f9647df14bcfa5e755b57e1ddab377939a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-06-28bitbake: Add task specific stamp file supportRobert Yang
This patch, based on proof of concept code from Richard adds code to bitbake to allow individual tasks to optionally specify their stamp file using the stamp-base flag. This takes the same form as the STAMP variable but can be specified on a per task basis. Code is also added to runqueue to ensure that if two tasks share the same stamp file, only one will be executed at once. A significant usecase for this code is to share source code (${S}) between recipes where separate build directories (${B}) are used. (Bitbake rev: 41bef02bef8379590ba012319aebe05068a8081e) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-06-24runqueue.py: Add umask task controlMark Hatle
The umask for a task can now be set as: task[umask] = 022 task[umask] = '022' If specified as a text string, it must be octal. (This is due to recipe parsing where it's always set to a string.) [RP tweaked to use None instead of -1] (Bitbake rev: a5caaaaba8f0db1af5d8f2e610021d6d4b56894e) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-06-08bitbake/build.py: Drop exec_shell environment as its now unneededRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-06-08bitbake/cooker.py: Misc sync with upstreamRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-25build/siggen: Ensure a task signature file is generated for each task that ↵Richard Purdie
is executed Tracing down signature changes and dependencies is hard unless the complete task chain can be evaultated. Since we have the data available at task exeuction time, writing it to disk makes sense. This change is suboptimal internal knowledge stamp_internal() has leaks into make_stamp() and the concepts used by this code need revisiting but the change brings enough usability benefit to warrant its inclusion despite that. Addresses issue [YOCTO #1074] (Bitbake rev: 139b8a625818225c358a1b8363518d7ed6913188) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-06build: fix dir removal tracebackChris Larson
This one is to cover the case where the current directory vanishes out from under us, so os.getcwd() raises an OSError. (Bitbake rev: 7a29ab534388c0095f7f826b16c5cff343927d10) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-06build: in exec_func, mkdirhier ${T}Chris Larson
This should fix the -c clean traceback people are seeing. (Bitbake rev: 416d24912fcef1d82ce2c02855accd86a29e76b2) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-06Initial work on getting bitbake working under pypyChris Larson
- use os.chmod, not os.fchmod, as the latter is missing under pypy - rearrange our imports a bit - don't die if sqlite3 is missing shared cache support (Bitbake rev: f229824dc9c453adf6067500e2bf6761536e4f2f) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-03-29Revert "bitbake/gcc: Enable a shared common source tree"Richard Purdie
This reverts commit 12b163dbd81cafafec1ebe3c4039c65af60ee261 as it was an unintended change for master
2011-03-28bitbake/gcc: Enable a shared common source treeRichard Purdie
This patch is a quick proof of concept to show how source code could be shared between recipes which use ${B} to have a separate build directory compared to source directory ${S}. Issues: a) gcc uses sed and creates config files against ${S} which means the directory should not be shared. Need to change the way that works. b) Could be extended to cover eglibc except there is a patch applied against nativesdk versions which again makes the source incompatible. c) Need to clean up the layout in work-shared and make a directory level deeper to ensure patch separation. d) clean task does not remove stamps Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-03-03build: add missing newlineChris Larson
(Bitbake rev: a7aa0415bdaa458a941004bf8dd8bbfeddd6ef5a) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-03-03build: switch to old cwd handlingChris Larson
We want this to ensure the user can run the run. script from anywhere. (Bitbake rev: a600b79ecefc95eeb266c3f362c7160fa8c948c1) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-02-23bitbake/build.py: Fix TaskFailed parametersRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-02-07bitbake: event/build: Drop stdout specific handling for python messages as ↵Richard Purdie
this is no longer needed with newer log handling Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-27bitbake/build.py: When looking up extra stamp info for setscene tasks, use ↵Richard Purdie
the real taskname (Fixed based on a bug reported by Dongxiao Xu <dongxiao.xu@intel.com>) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-18bitbake: Introduce stamp-extra-info task flag into stamp filenamesDongxiao Xu
For certain tasks, we need additional information in build stamp file other than the task name and file name. stamp-extra-info is introduced as a task flag which is appended to the stamp file name. [Code simplifcations/tweaks from Richard] Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-17bitbake/build.py: Allow FuncFailed error to have an optional messageRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-17bitbake/build.py: Rename message field to avoid DeprecationWarning: ↵Richard Purdie
BaseException.message warning Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-12build: remove duplicate import of utilsBernhard Reutner-Fischer
(Bitbake rev: 86c6434f093ce5e55d1febfb424a8e595ffc2d17) Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-12*: use utils.remove() some moreBernhard Reutner-Fischer
(Bitbake rev: d3489b141cac1197324661680fe38b8a88bc49b4) Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-07bitbake/build.py: Fix del_stamp work correctly after recent stamp function ↵Richard Purdie
changes Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-06bitbake build/siggen/runqueue: Fix stampfile parametersRichard Purdie
The current parameters are not useful to the stampfile generator function as they can't uniquely define a task. This updated things so the parameters can identify unique tasks. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-06bitbake build.py: Stamp handling improvementsRichard Purdie
* Move stamp file deletion out of the internal stamp helper function * Add a new function to return the path to a stamp for a given task Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-06bitbake build.py: Use localdata for stamp handling, not dRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-06bitbake/build.py: Ditch the extract_stamp function as its just going to ↵Richard Purdie
complicate improving the stamp handling functions Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-06build: use logger.isEnabledFor, not getEffectiveLevelChris Larson
I think this is less confusing, and avoids needing to know about the *range* of logging levels, instead simply asking what we really want to know. (Bitbake rev: dc2264387617586b5c0a61e126c75edde5e7abcd) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-05bitbake: build.py: Logging of None was losing the logs so force this to ↵Richard Purdie
stdout so we can see function execution failures Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-05bitbake: Misc syncups with bitbake upstream, mostly whitespace and a missed ↵Richard Purdie
line from the last UI commit Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-05bitbake: build.py logging updatesRichard Purdie
python tasks calling shell functions using exec_func() would show the log file as /dev/null. It makes most sense for all the task logging to be setup centrally by exec_task(), at least with the current code base in Poky. This commit will need discussion in relation to upstream bitbake and the IO redirection could be better handled using a context manager (although task contexts shouldn't ever nest). Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04Use os.devnull, not /dev/nullChris Larson
(Bitbake rev: ce5ab0fc524a1c2c48c4c39d6fc8aae23019207b) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04build: fix FuncFailed for the no logfile caseChris Larson
(Bitbake rev: 3a4b5eb20e41bd3cecd9d7e8dff7d076d8a7bb9a) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04build: ensure LogTee has a valid name propertyChris Larson
(Bitbake rev: 0ebb46e25261cfc85aaef2790cba7c1ec057c306) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04build: fix -D with shell functionsChris Larson
(Bitbake rev: 1c8be64732fdf4f3a608c090b3dc92065d6058d6) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04build: send logging messages to the log file for python functionsChris Larson
(Bitbake rev: ee1cce6ab21ddda60a7a070d03e98ff8485a5e71) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04build: use a contextmanager for locksChris Larson
Also don't bother passing logfile to exec_func_python, at least until we start adding the logfile as a file handler to the bitbake logger. (Bitbake rev: f99ee4680c9f67b7ed13fc06044ba2382f9a782c) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04build: use bb.process instead of os.systemChris Larson
(Bitbake rev: 53740977521bc81ffa37adfa7bbeb8f2a80ea165) build: write logfiles per task, not per function Based on d14f9bf6 from poky, reworked for master and other cleanup. (Bitbake rev: beadff2eca1eb95f0411115dd72ddb4c3c44c604) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04Fix FuncFailed constructionChris Larson
(Bitbake rev: 085e66f9c14123ea2c0f1e34f7737cf77071f86d) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04Restore FuncFailed argument compatibilityChris Larson
(Bitbake rev: c07cc08f7fd503ac3013ccc43c79198c4c3b7b29) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04Only reference logfiles that existChris Larson
(Bitbake rev: 760f647ba044009150ee219869fc9dea171a7535) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04Fix bitbake -k issue introduced by build exception cleanupChris Larson
A SystemExit from a python function wasn't being raised as a FuncFailed, which resulted in it not being caught by the exception handlers in the runqueue for the worker process, which resulted in a SystemExit exit, rather than os._exit, which causes all manner of problems when used in a forked process. This fixes it by ensuring we raise a FuncFailed when seeing exceptions which aren't instances of Exception. (Bitbake rev: dafe92fe9f387450d9f9e9ff41c99388998b7495) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-04Simplify build exception handlingChris Larson
- Drop EventException - Use FuncFailed as the primary function failure exception, using TaskFailed for the event (leaving it up to the process running exec_{func,task} to display the more detailed information available in the exception). - Switch InvalidTask to an exception rather than an event, as that's a critical issue. - Reduce the number of messages shown to the user when a task fails -- they don't need to be told it fails 12 times. Work remains in this area though. (Bitbake rev: 06b742aae2b8013cbb269cc30554cff89e3a5667) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
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-11-06bitbake: Add support for 'noexec' tasksRichard Purdie
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-11bitbake/build.py: Write logfiles on a per task basis, not per functionRichard Purdie
Per function logging made it hard to track down what was happening so switch to logging on a per task basis. [BUGID #383] Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-01build.py: Add a symlink for the loggingMark Hatle
[BUGID #375] When configuring for the log file output, we generate a symlink to the target filename. This link uses the same file naming, but without the active pid, making it easier to see which log file is the last one generated. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2010-09-13bitbake/build.py: Set BB_FILENAME to represent the .bb file being built ↵Richard Purdie
(including any virtual prefix) Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-31bitbake/data.py: Add emit_func() and generate_dependencies() functionsRichard Purdie
These functions allow generation of dependency data between funcitons and variables allowing moves to be made towards generating checksums and allowing use of the dependency information in other parts of bitbake. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-08-20bitbake: Correctly route events from the worker to the serverRichard Purdie
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>