[bitbake-devel] [PATCH 6/7] bitbake: event: adding events to allow bbclasses to push custom info

Richard Purdie richard.purdie at linuxfoundation.org
Mon Sep 16 13:46:47 UTC 2013


On Mon, 2013-09-16 at 14:33 +0100, Alex DAMIAN wrote:
> From: Alexandru DAMIAN <alexandru.damian at intel.com>
> 
> We add a new event that will be triggered by the
> package-building class, containing the information
> about the currently built package.
> 
> Adding an event that will passi information about the
> content of each package file that gets built.
> 
> Knotty UI will ignore these events by default.
> 
> Maybe a mechanism for using a single generic event is in order ?
> 
> Signed-off-by: Alexandru DAMIAN <alexandru.damian at intel.com>
> ---
>  bitbake/lib/bb/event.py     | 16 ++++++++++++++++
>  bitbake/lib/bb/ui/knotty.py |  2 ++
>  2 files changed, 18 insertions(+)
> 
> diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
> index 67cfcea..7dd9236 100644
> --- a/bitbake/lib/bb/event.py
> +++ b/bitbake/lib/bb/event.py
> @@ -589,6 +589,22 @@ class PackageInfo(Event):
>          Event.__init__(self)
>          self._pkginfolist = pkginfolist
>  
> +class SinglePackageInfo(Event):
> +    """
> +    Single Package Information sent on emit_pkgdata
> +    """
> +    def __init__(self, data):
> +        Event.__init__(self)
> +        self._data = data
> +
> +class PackageFileSizes(Event):
> +    """
> +    Event that contains information about the file sizes contained in a package.
> +    """
> +    def __init__(self, data):
> +        Event.__init__(self)
> +        self._data = data
> +
>  class SanityCheck(Event):
>      """

Your explanation in the commit message isn't as detailed as it could
be. 

I'm guessing but I suspect the problem we have is that the event cannot
be rebuilt on the other side of an XMLRPC connection without having the
event class in a common namespace?

This is therefore a hack to allow the event to exist in all the client
side namespaces.

Ideally we should really have an API which allows the classes themselves
to declare their event formats and not require adding to event.py every
time a new piece of code/event is added.

Presumably there is some change required to OE-Core in order for this
get used to?

Is the PackageFileSizes not contained in the other event data?

I appreciate we allowed PackageInfo in but I didn't like it at the time,
I like it even less now I see we're just going to keep doing this :(.

>      Event to issue sanity check
> diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py
> index 0211b50..03baa75 100644
> --- a/bitbake/lib/bb/ui/knotty.py
> +++ b/bitbake/lib/bb/ui/knotty.py
> @@ -477,6 +477,8 @@ def main(server, eventHandler, params, tf = TerminalFilter):
>  
>              # ignore
>              if isinstance(event, (bb.event.BuildBase,
> +                                  bb.event.PackageFileSizes,
> +                                  bb.event.SinglePackageInfo,
>                                    bb.event.StampUpdate,
>                                    bb.event.ConfigParsed,
>                                    bb.event.RecipeParsed,


Given the event masking that is now in knotty, do we need to do this?
Can't we remove this block?

Cheers,

Richard





More information about the bitbake-devel mailing list