Am Donnerstag, 16. Februar 2012, 10:43:01 schrieb Carsten Munk:

> Hi,


> One of the discussion points about my SB2-OBS patch is that we ought

> to work towards a common strategy for denoting these special kind of

> dependencies in prjconf instead of using "SB2install" "CBinstall" etc.


> Daniel Gollub suggested that we work with N amount of 'sysroots' and N

> rpm databases and I tend to agree. Right now in SB2 I distinguish

> between host (/) and target /target, but it might be more flexible to

> do with N targets instead.


> The question is of course, can we effectively work with multiple

> dependency trees (maybe even across schedulers?) within the current

> code and how do we do it best?


> Adrian suggested something like Preinstall($hostarch) to indicate that

> this needs to be preinstalled on host architecture.


Thinking again about it, specify an arch here makes not much sense.


Better something like this in spec files:


BuildRequire(host): gcc

BuildRequire(target): libqt4-devel


Since this is not supported by rpm yet, we would need to have something like


#!BuildRequire(host): gcc

#!BuildRequire(target): libqt4-devel


So when a


BuildRequire: gcc


appears later in the spec file (for plain rpm non-cross building), OBS can see that it has it already, but it knows already for which architecture it needs it.


The prjconf Preinstall, Support and Require lines could also support the (host) and (target) extensions.


> My suggestion

> would be perhaps to indicate through configuration where to put

> things, for example, Roots: host=/ armv7l=/opt/cross/armv7l, etc, so

> we can do dynamic labeling and telling what location on the build

> filesystem things should go in.


Yes, similar to Hostarch: directive, we could add a Targetpath: directive...


just thinking loud.



> What are your thoughts?


> BR

> Carsten Munk


Adrian Schroeter

SUSE Linux Products GmbH