[oe] [OE-core] [RFC] Layers, PRINC and bbappends

Koen Kooi koen at dominion.thruhere.net
Thu May 16 06:23:35 UTC 2013


Op 15 mei 2013, om 22:33 heeft Richard Purdie <richard.purdie at linuxfoundation.org> het volgende geschreven:

> On Tue, 2013-05-14 at 09:36 +0200, Koen Kooi wrote:
>> To avoid things like that in the future I have a few recommendations
>> I'd like to get feedback on:
> 
> In future can we please discuss this on the oe-core list or at least
> give a heads up there as this is pretty key to the core of the project
> and we've implicitly agreed to discuss architecture there? I appreciate
> this affects oe-devel layer maintainers too.

I meant to send it to oe-core, but I didn't check autocomplete. Anyway, seems I reached the people I wanted to reach :)

> 
>> 1) For a given BSP split it in multiple layers:
>> 	a) One 'core' BSP layer with only:
>> 		o Bootloader
>> 		o Kernel
>> 		o Tooling to build bootloader/kernel/image
>> 	b) One BSP layer with bbappends for shadow/netbase/xorg-conf/etc
>> 	c) One or more layers with bbappends for libav/clutter/etc[2]
> 
> You're missing d) which would presumably be everything not in a-c) e.g.
> binary graphics libs which aren't bbappends.

I'd group those with c)

> I have a feeling this will break more than it solves so I'm not keen on
> this and I think we need to dig deeper into the problem and find a
> better solution.

>> 
>> 2) *Never* use PRINC in type b) bbappends
>> 3) Avoid PRINC in general
> 
> Could we undergo some mass purge of PRINC from master branches and then
> change the PR values once and for all in the core recipes? We could make
> PRINC throw a bb.fatal() from that point onwards.

That would be nice.

> 
>> 4) make buildhistory.bbclass mandatory in OE-core
> 
> and force enable the PR backwards check?

Yes

> Again, I think the people
> you're trying to target to fix these issues are also the people who'd
> probably not have the history around to see the issues that most bother
> you.

True, but they'd have less plausible deniability :)

> I agree there are some issues here but I think we're going to need a
> more creative fix.
> 
> My personal view is we need to reduce the number of bbappends. One way
> to do this is to make a general/central bsp-files type recipe which
> generates all the standard packages (tscalibration data, xorg config and
> all the other single machine specific config files).
> 
> Yes, this would be a disruptive change but it would significantly clean
> up the BSP layers and hopefully make maintenance easier. It is on the
> Yocto project proposed features list although we've only got the idea,
> we haven't discussed with the community etc. Now would see as good a
> time as any.
> 
>> There's another use case that suffers from PRINC problems and that is
>> removing layers when they break parsing and the maintainer is slow to
>> push patches. With the current situation I have to choose between
>> "being able to do builds" and "having working feeds".
> 
> We have talked about a version wildcard for bbappend. You are still at
> the mercy of what the bbappend does though (e.g. when I include
> meta-raspberrypi, it changes the psplash logo, regardless of whether I'm
> building for the pi).
> 
> In many ways the bbappend is too easy and encourages anti-social
> behaviour.

The funny thing is that I've run into bb(appends) trying to be social and breaking things, e.g.

linux-yocto.bbappend:

SRC_URI = "git://foo"
SRCREV_mymachine = "1849032784092359023"
ANOTHER_VAR_mymachine = "meta"

And that breaks parsing for every machine that isn't named "mymachine". 

> I would recommend bouncing meta-rpi as being non yocto
> project compatible due to the psplash issue if it were to apply which it
> has not.
> 
>> During the last TSC meeting we discussed that there is currently no
>> way to force maintainers to behave. I think the most we can do is have
>> clear guidelines on the OE side and enforce those during the "Yocto
>> Project Compatible" process. 
> 
> How many layers apply for that status though?

Ideally all of them.

regards,

Koen

>> And have the layer index orange/red flag layers that do stupid things.
>> Come to think of it, that would actually be the most visible way to
>> go, having wikipedia style warning banners on the offending layers.
> 
> I think Paul had good feedback here.
> 
>> [1] It always happens after editing bblayers.conf and dragging in
>> major update to layers. Since I tend to do both at the same time I
>> can't say which action triggers it or if it's the combination.
>> [2] I spent 3 days trying to figure out why mesa was so *$(*$(@ broken
>> before I finally located the bbappends in meta-ti that were causing
>> this breakage
> 
> I do appreciate understanding where some of the problem arises from,
> thanks!
> 
> Cheers,
> 
> Richard
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core





More information about the Openembedded-devel mailing list