[oe] RFC: thinking about DEPENDS properties

Phil Blundell pb at reciva.com
Tue Jan 27 11:29:55 UTC 2009


On Tue, 2009-01-27 at 12:07 +0100, Robert Schuster wrote:
> 1) Strong dependencies
> 
> Some recipes have a strong dependency on another recipe. Take llvm as an
> example. llvm puts a bunch of static libraries (.a) and object code
> files into staging which another program links to. So, if llvm is
> recompiled (e.g. changed CFLAGS or applied a patch) those having a
> dependency on llvm should be recompiled as well.

I'm not exactly sure what the concrete difference is between a "strong"
and a "weak" dependency in this view of the world.  Even for packages
with just shared libraries, a change in the depended-on header files
or .so files could easily cause a difference in the dependent binaries.

> 2) Minimum & Maximum supported versions
> Some recipes cannot be built with certain versions of other recipes.
> 
> DEPENDS += "automake-native;minver=1.10"

Bitbake already has a notation for this: you can write:

DEPENDS += "automake-native (>= 1.10)"

and the current parser will accept it although the version information
is ignored.  It would just be a small matter of programming to teach
bitbake to do something useful with that data.

> If the distro uses a lower automake version OE should error out when
> someone tries to build that recipe:
> 
> ERROR: Recipe 'foo' needs at least 'automake-native 1.10' but
> 'PREFERRED_VERSION_automake-native' is set to '1.9.6'.

Not that this was really your point, but the version check shouldn't be
looking at PREFERRED_VERSION_anything.  What matters is the specific
version that you end up trying to build, which might be quite different
to the preferred one for a variety of reasons.

p.






More information about the Openembedded-devel mailing list