summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/process.py
Commit message (Collapse)AuthorAgeFilesLines
* bitbake: process: Improve _logged_communicate bufferingRichard Purdie2012-06-251-13/+33
| | | | | | | | | | | | | | | | | | | | | | | | | There are two problems with the _logged_communicate that are both caused as a result of buffering I/O issues: 1) log truncation when python fails 2) While a bitbake task is running it is impossible to see what is going on if it is only writing a small incremental log that is smaller than the buffer, or you get only a partial log, up until the task exists. It is worse in the case that stderr and stdout are separate file handles, because previous code blocks on the read of stdout and then stderr, serially. The right approach is simply to use select() to determine if there is data available and also flush the log before exiting. This is based on a patch from Jason Wessel <jason.wessel@windriver.com> with some changes to flush upon exit, abstract the non blocking file descriptor setup and drop the buffer size parameter. (Bitbake rev: 361fb71e907aa84c28ecec79fefc6ca39c39172f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* make exception handling syntax consistentScott Garman2011-06-151-1/+1
| | | | | | | | | | Update exception handling syntax to use the modern style: except ExcType as localvar (Bitbake rev: dbf5f42b06bef81749b13aa99945cc1292a6676d) Signed-off-by: Scott Garman <scott.a.garman@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* process.py: Avoid deprecation warningRichard Purdie2011-02-141-4/+4
| | | | | | bitbake/lib/bb/process.py:15: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* parse.ast: avoid code duplication for inheritChris Larson2011-01-061-5/+1
| | | | | | | (Bitbake rev: 0b11a3d4eab84b372fd45b9537cf0327008daf8d) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: Fix process.py to accept None as the log optionRichard Purdie2011-01-051-1/+1
| | | | Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
* process: fix handling of the input argumentChris Larson2011-01-041-16/+19
| | | | | | | | | When using a logfile, we weren't sending input to the child process. (Bitbake rev: 5ec4ca7e45bdf6d259503fc67155395e89ba6329) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
* process: handle OSErrors other than file not foundChris Larson2011-01-041-3/+7
| | | | | | | (Bitbake rev: 7d80a5355cb540aae8d3082c1efebb72da4f93c6) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
* Fix PWD issue with new exec_func_shellChris Larson2011-01-041-2/+0
| | | | | | | | | | | | | | | | The previous attempt was incorrect. The issue isn't that subprocess fails to set PWD, it's that PWD is in the metadata, inherited from the environment, and is re-exported, overwriting the actual accurate one in the shell environment with the old one from the metadata. So, ensure that PWD in the metadata is not exported. We can ditch this when the environment handling is reworked (e.g. poky's commit to do so). (Bitbake rev: 2c8683234acf514706b2b69f5b29405485e664dd) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
* build: set PWD in the subprocess preexec hookChris Larson2011-01-041-3/+4
| | | | | | | (Bitbake rev: efa5485c8f9d488ba058c40734cc55296d3de6eb) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
* process: add subprocess-based bitsChris Larson2011-01-041-0/+107
(Bitbake rev: c63e55564a8840083dbd8634b10fe6f76d1f1354) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>