user-manual-metadata: Removed reference to openembedded core.

Deleted the sentence referencing OpenEmbedded Core.  If we want
BitBake to be as generic as possible, we need to only use oe-core
references when absolutely necessary, or to explain usage.

Signed-off-by: Bill Traynor <wmat@alphatroop.com>
user-manual-metadata: Expanded the description of recipes.

Expanded the description of recipes to make the paragraph
similar in content to how recipes were described in the
introduction.

Signed-off-by: Bill Traynor <wmat@alphatroop.com>
user-manual-metadata: small expansion of the class data description.

Expanded the description of class data to be similar to the
description from the introduction, section 1.6.

Signed-off-by: Bill Traynor <wmat@alphatroop.com>
user-manual-intro: Fixed a typo.

Fixed a misspelling of the word additional.

Signed-off-by: Bill Traynor <wmat@alphatroop.com>
user-manual-intro: Changed title to Introduction.

Changed the title of the chapter to Introduction from
BitBake User Manual.

Signed-off-by: Bill Traynor <wmat@alphatroop.com>
fetch2: Fix AUTOINC handling

AUTOINC was meant to appear once at the start of the version string.
The list of names may not be sorted meaning it could get inserted in
the middle. This patch simplifies the code and ensures it appears at
the start.

Include cache version bump to ensure the cache picks up these changes.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
runqueue: Split runqueue to use bitbake-worker

This is a pretty fundamental change to the way bitbake operates. It
splits out the task execution part of runqueue into a completely
separately exec'd process called bitbake-worker.

This means that the separate process has to build its own datastore and
that configuration needs to be passed from the cooker over to the
bitbake worker process.

Known issues:

* Hob is broken with this patch since it writes to the configuration
  and that configuration isn't preserved in bitbake-worker.
* We create a worker for setscene, then a new worker for the main task
  execution. This is wasteful but shouldn't be hard to fix.
* We probably send too much data over to bitbake-worker, need to
  see if we can streamline it.

These are issues which will be followed up in subsequent patches.

This patch sets the groundwork for the removal of the double bitbake
execution for psuedo which will be in a follow on patch.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
runqueue: Move the bitbake-worker execution to a higher level

The worker was being executed by each execution queue so would get
constructed twice for each build. This is wasteful so move execution
to the main runqueue so we only have to start the worker once.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
runqueue: Abstract the start and teardown worker functions

We're going to need a fakeroot/pseudo version of the worker so
abstract the code to start the worker process.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
runqueue: Spawn a separate worker for fakeroot tasks

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
prserv: Adapt autostart to bitbake-worker

With the change to bitbake-worker we need to ensure the workers know
how to contact the PR service, the magic 0 port and singleton is
no longer enough.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake: Bump minimum python version to 2.7.3

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake: Update version to 1.19.1

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake: Add event mask flag support

Add a flag to event handlers which lists the events a given handler wishes to
process. By default event handlers recieve all events but this means
we can stop running code in many cases if we know it doesn't want the event.

This is part of the fix for YOCTO #3812, but implements filtering only
for class event handlers; the other part (events filter for UIs) will be
the subject of a different patch.

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
xmlrpc: removes the event servers controller

XMLRPC API ran a XMLRPC server at port+2 in order
to provide endpoints to register an event server
in which to dump the events.

This is no longer used, so we remove it.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
runqueue: Improve handling of failing setscene tasks with hard dependencies

If a setscene task has a hard dependency on a task like pseudo-native, its
expected that the setscene task will not run unless the dependency is met.

This adds code to ensure that is the case, otherwise a bug would show up
with a usecase like:

bitbake gnome-common
bitbake pseudo-native -c cleansstate
bitbake gnome-common -c clean
bitbake gnome-common

With the double wrapper script environment, we'd not see issues like
this as it would be masked. The problem theoretically affects code like
useradd too as well as anything using a sstate postinstall.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
compat/server/utils: Jettison pre python 2.7.3 workarounds

Now we've moved to require python 2.7.3, we can jettison the compatibility
workarounds/hacks for older python versions.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
utils: Fix multiprocessing pool reference

Interestingly the previous version comparision was broken and we were always using
the compatibility code, masking this bug. Oops.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
knotty, xmlrpc: add observer-only mode

I add an observer only mode for the knotty UI and
the XMLRPC server that will allow the UI to register
a callback with a server in order to receive events.

The observer-UI is able to send read-only commands to the
server, and also is able to register as an event handler.

Read-only commands are the commands that do not change
the state of the server and have been marked as such in
the command module.

The observer can switch to a full client if it calls addClient
at any time, and the server has no other client running.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
knotty, bitbake: add option to terminate a remote server

I add an option to terminate a remote server gracefully
as not to need a kill command.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>