[poky] questions about bblayers idioms

Joshua Lock josh at openedhand.com
Tue Jan 25 02:15:06 PST 2011


On Tue, 2011-01-25 at 11:59 +1000, Angus Lees wrote:
> I've been trying to play nice and describe my poky changes in
> self-contained layers.
> I have accumulated a bunch of questions about some common problems
> I've hit, and I'm sorry if some of these are FAQs:

The layers are still new and I'm glad to see people using them, if
there's documentation missing we'll be glad to add it.


> 1. *.bbappend lets me modify *.bb files.  How do I incrementally
> modify other files?
> 
> Eg: I'd really like to add something to gcc-common.inc (for example).
> Do I need to add a family of gcc-*.bbappend files to hook in the
> common change?

That seems like it would work, I'm not sure if there's a neater
alternative...

> 
> 1a. How do I modify/fix a bbclass file?
> 
> In particular {siteinfo,insane}.bbclass need to be modified to add new
> architectures, which seems like a common task.
> Copying and modifying (as I have done), gets increasingly ugly now
> that I have two layers, which each want to add new architectures (one
> SDK, one target).

Not something I've tried either, but you should be able to use the
inclusion capabilities of BitBake to create a class which includes the
class from the core and adds whatever you require.

http://bitbake.berlios.de/manual/ch02.html#id869194

> 
> 2. BBCLASSEXTEND doesn't work in .bbappend files.
> 
> Is this correct?  I tried to add BBCLASSEXTEND+="nativesdk" to a
> .bbappend file but it didn't seem to have any effect.

Not sure, is this simply a case where the += syntax requires a space,
i.e try:

BBCLASSEXTEND += " nativesdk"
or
BBCLASSEXTEND =+ "nativesdk"

http://bitbake.berlios.de/manual/ch02.html#id868981

Though I can't see why we wouldn't take a change like that into the
core. 

> 
> 3. What is the standard idiom for picking up patches from layers?
> 
> I've been using something like this:
>  THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}"
>  FILESPATH =. "${@base_set_filespath(["${THISDIR}/${BP}"], d)}:"

In the emenlow layer we use:

FILESEXTRAPATHS := "${THISDIR}/${PN}"

THISDIR is already defined for you in base.bbclass

This is vaguely alluded to in the BSP document:
http://www.yoctoproject.org/docs/poky-ref-manual/poky-ref-manual.html#bsp-filelayout-kernel

> 
> But this gets increasingly more difficult once you have multiple
> layers and I had to use unique names for THISDIR in each layer :(
> Is there some better way to handle this?

Hopefully this will get you a bit further until someone better informed
comes along.

Regards,
Joshua
-- 
Joshua Lock
        Intel Open Source Technology Centre




More information about the poky mailing list