build.py: Preserve sigdata files in the stamps directory

Leaving the sigdata files around can aid debugging and doesn't harm
anything. This is the easiest way to allow this to happen.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
data_smart: Improve get_hash to account for overrides and key expansion

An issue was uncovered where changing:

IMAGE_INSTALL_append = "X"

to

IMAGE_INSTALL_append = "X Y"

in local.conf would not get noticed by bitbake. The issue is that
the configuration hash doesn't account for overrides or key expansion.

This patch improves get_hash to account for these. This means the hash
does account for changes like the above.

[YOCTO #3503]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
hob: modified how the existence of a variable is checked

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
uievent: Fix an init race

There is a race where the registerEventHandler() server call may happen in
a different thread to the main UI, causing the main UI to see
httplib.CannotSendRequest exceptions.

This moves the call into the main thread, removing the init race and fixing
errors I was seeing with the xmlrpc backend.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
xmlrpc: Unbreak the transport by adding a missing logfile name

I appreciate a fixed value is suboptimal but this is better than not
working at all!

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
BBHandler: Ensure parser state engine is correctly reset for new parsing

The classes variable in particular could be in an odd state if parsing of a
previous recipe had abruptly ended.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Revert "BBHandler: Ensure parser state engine is correctly reset for new parsing"

This reverts commit 3dc5e896a97154914cee6c47900e3bb2a2627cdb.
BBHandler/ast: Simplify/fix EXPORT_FUNCTIONS usage

The current usage of EXPORT_FUNCTIONS is rather problematic since a class
list (classes) is passed into the ast statement and cached as it was
when first parsed. This class list may be different in other cases but
is locked once in the cache.

Worse, the construction of classes can be broken by exceptions during parsing
at the wrong moments since the state of the parser is not always reset
correctly. This can lead to leakage of other classes into the classes list.

The current EXPORT_FUNCTIONS implementation looks at the last two currently
inherited classes and sets up an indirect function call view the second last
class inherited, e.g.:

 do_configure calls gnomebase_do_configure
 gnomebase_do_configure calls autotools_do_configure

This intermediary doesn't seem to serve a useful purpose.

This patch therefore makes builds deterministic and fixes various cache problems
and indirection by removing the intermediaries and simply performing
directly mapping for the cases where its needed.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
BBhandler/data: Fix __inherit_cache duplication

The inherits cache contains duplicate entries, some with the full patch, some
just starting classes/xxx. This is a waste of parse time and potentially
error prone. This patch fixes various pieces of code so the absolute paths are
always preferred and work correctly. The inherits_class function did not work
with full paths so the patch fixes this.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
command: Add missing import traceback

Without this, if an exception occurs the server will silently crash
with no feedback to the user about why (since traceback isn't imported).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
command: Fix getCmdLineAction bugs

Executing "bitbake" doesn't get a sane message since the None return value
wasn't being handled correctly. Also fix msg -> cmd_action['msg'] as
otherwise an invalid variable is accessed which then crashes the server
due to the previous bug.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bin/bitbake, bb/__init__: Move BBDEBUG handling to bin/bitbake

The method this older code was accessing doesn't exist. A library shouldn't
be changing behaviour based on the environment anyway when sepcific function
calls exist to correctly setup the logging. Fix the crash if BBDEBUG was used
by moving the code to bin/bitbake.

[YOCTO #3319]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
data_smart/BBHandler: Fix SkipParse exception handling

If SkipParse is raised from something which isn't anonymous python, it wasn't
being handled correctly. This improves the handling for example from within inline
python.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake.vim: detect *.bbappend files in ftdetect automatically

Currently, *.bb and *.bbclass files are automatically highlighted and
detected as a bitbake file. Since *.bbappend files are also bitbake
files, vim plugin should automatically detect and highlight it as well.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
git.py: A bit of tidying up regarding grammar and supported protocols.

Doc cleanup, no functional change.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
knotty: use bb.error instead of print

Change to use bb.error instead of print, or maybe that was desired (?)
Also remove a tab, while in the neighborhood.

Signed-off-by: Mihai Lindner <mihaix.lindner@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
hob/bitbake: custom image is now using the base image

Till now, a custom image made in Hob was using only the packages from
the base image. Now it is using everything declared in the base image.
Also next to hob-image.bb, it creates another .bb file which is used
in building process. Those images are ignored by git.

[YOCTO #2601]
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
hob: use base image only if it was set

As it is, when you create a new image from scratch, hob gives an error.
This is because of the patch for #2601.

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
world-image: add extra target

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>