Hi, today I was thinking about some missing semantics in OE's DEPENDS variable and had the idea of reusing the way we write SRC_URI entries for them. The issues: 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. In order to express this, I would write: DEPENDS += "llvm;strong=true" 2) Minimum & Maximum supported versions Some recipes cannot be built with certain versions of other recipes. DEPENDS += "automake-native;minver=1.10" 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'. -- I know this brings in a lot of complicated things to think about, e.g. what is the result of: foo.inc: DEPENDS = "bar;minver=0.8;maxver=0.9" foo_1.0: require foo.inc DEPENDS += "bar;minver=1.0" Perhaps to many components in OE already expect DEPENDS to be a whitespace separated list of words and we should be add another variable whose only purpose is to set properties for existing DEPENDS entries: foo_1.0: require foo.inc # Replaces value from foo.inc DEPENDSPROPS = "bar;minver=1.0" -- My main concern is that the knowledge about which recipe can live in harmony with another is currently implicit. There is no way to express this except by writing a comment (which is almost never done). Regards Robert