[OE-core] specific version dependenciews

Richard Purdie richard.purdie at linuxfoundation.org
Tue Mar 20 14:49:56 UTC 2012


On Tue, 2012-03-20 at 11:35 +0100, Wolfgang Denk wrote:
> Dear Richard,
> 
> In message <1332203843.9740.76.camel at ted> you wrote:
> ...
> > > Some MACHINEs require a package A (some library), but in specific
> > > versions: say machine X needs version A-1.2, while machine Y needs
> > > version A-1.5.
> > > 
> > > Package A itself depends on another package B (another library).
> > > 
> > > The problem is, that different versions of A require specific versions
> > > of B.  For example, to build A-1.2 we must use B-4.5, but to build
> > > A-1.5 we must use B-8.2.
> > > 
> > > I am aware that I can describe the dependencies at the top leven,
> > > stating for example that machine X needs A-1.2 and B-4.5, while
> > > machine Y needs A-1.5 and B-8.2.
> > > 
> > > However, this seems clumsy, as the version depency A->B is something
> > > that is only defined by the implementation of A, and I would like to
> > > keep it encapsulated at this level.
> > > 
> > > 
> > > Is there a clever way to describe such a multi-level dependency chain?
> > 
> > If you mark A and B as machine specific, the system should be able to
> > cope with the problem and set the preferred versions at the machine
> > level.
> 
> I'm sorry, but I don't understand what you mean.
> 
> How do I mark a package as machine specific?

PACKAGE_ARCH = "${MACHINE_ARCH}"

> And would setting "the preferred versions at the machine level" not be
> exactly what I am trying to avoid?
> 
> I don't want to make the machine descriptions aware of any version
> dependencies between A and B.  I would like to put this information
> into the description of A, so that when a specific version of A gets
> built, automatically the matching version of B will be chosen.
> 
> Can this be done?

You could write the dependency A in the form:

DEPENDS = "B-1.2"

where 1.2 is version of B you want. This has been known to work in the
past but isn't well supported/well tested. It can work since B PROVIDES
"${PN}-${PV}".

Cheers,

Richard





More information about the Openembedded-core mailing list