[OE-core] [PATCH 2/4] recipes: add x11 to required DISTRO_FEATURES

Richard Purdie richard.purdie at linuxfoundation.org
Mon Jul 28 13:18:30 UTC 2014


On Thu, 2014-07-24 at 17:22 +0200, Martin Jansa wrote:
> On Thu, Jul 24, 2014 at 02:52:45PM +0100, Burton, Ross wrote:
> > On 24 July 2014 14:42, Martin Jansa <martin.jansa at gmail.com> wrote:
> > > +REQUIRED_DISTRO_FEATURES = "x11"
> > 
> > Now I'm wondering why this is the solution.
> > 
> > If you attempt to build e.g. gnome-desktop explicitly without the x11
> > distro feature you understandably get an error message, because
> > gnome-desktop depends on libx11 which sanity checks the distro
> > features.  This seems correct.
> > 
> > Presumably you're problem is that you're running world builds and
> > they're producing errors on gnome-desktop because they can't satisfy a
> > dependency on libx11.  It seems that bubbling up the
> > REQUIRED_DISTRO_FEATURES tests isn't the right thing to do here - why
> > can't SkipPackage be handled specially, so if you do bitbake -k world
> > and libx11 emits SkipPackage, anything that has unsatisfiable
> > dependencies because of this is also skipped?
> 
> We discussed this many months ago and IIRC the conclusion was that user
> should explicitly say that he wants to skip the recipes which depend on
> something skipped (so that he is aware of what he is missing).
> 
> At that time there wasn't REQUIRED_DISTRO_FEATURES support, so I've
> created huge list of PNBLACKLISTs to blacklist everything not available
> in our setup - so I can do world builds without ERRORs at the beginning.
> 
> REQUIRED_DISTRO_FEATURES seems to me like reasonable compromise, that's
> why I've sent this patchset to replace small part of my huge blacklist.
> 
> This is the list:
> https://github.com/openwebos/meta-webos/blob/master/conf/distro/include/webos-recipe-blacklist-world.inc
> 
> If someone has time to improve SkipPackage and we really want to skip
> all depending packages, I would be glad to test such patch (because it
> allows to easily drop all those blacklists for "depends-on-broken"
> components)

The question here is whether we want a system which calculates what it
thinks is right or that we declare it.

The risk is that if SkipPackage (now known as SkipRecipe) were to
automatically "spread", you could in theory break the toolchain, have
nothing buildable and "bitbake world" would return success.

Effectively the -k option to bitbake already does the SkipPackage
"spread" idea since bitbake just removes dependencies until it works. If
does that in a fairly verbose way but it does so deliberately so you can
see what is going on.

The alternative is to declare what a given recipe supports and then we
can know whether it should be skipped or not under a given circumstance.

Personally, I'm leaning towards a more declarative approach where we
specify what should and shouldn't be expected to work. I'm open to
discussion on it though...

Cheers,

Richard







More information about the Openembedded-core mailing list