[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Policy changes which completely break apt-cross



Hi,

On Thu, Jul 01, 2010 at 11:04:57AM +0200, Goswin von Brederlow wrote:

[That assumes working multiarch.]

> I don't think so. What would you change in the conversion? With
> sysroot=/ the include files don't need to be moved to
> /usr/triplet/include, the /usr/include is just fine. 

The cross compiler can only look at /usr/include when we have multiarch.
It is likely that we switch over the cross compiler before the multiarch
transition is completed, but doing this before even the basic
infrastructure is in place and the major libraries are converted is just
asking for trouble.

> Do i remember correctly that dpkg-cross by default skips the package if
> the result would be empty? But yes, empty (except for /usr/share/doc/*)
> packages have to be handled corectly.

Yes. We have two ways of handling this: installing the empty package so
the dependency is fulfilled, or dropping the dependency. I'm in favour
of the latter, however it requires that dependencies are converted
first.

Looking at the Contents file is an optimization on top of that.

> Just thought about something. The contents file tells you if the package
> contains usefull files. It does not tell you wether the dependency chain
> ends there or crosses into the native chain. Even if bar is an empty
> package the architecture decides how the dependencies must be followed:

That's what I mean with "heuristic". I don't know of any cases where
that makes any difference, so the "terminate at empty package" approach
is good enough for me. The correct approach would be to further descend,
but since we always end up at libc somehow, we also need a mechanism to
drop chains involving empty packages that do not add any value.

[example]

> This does asume that Arch: all package do not need to be converted ever
> like I said above.

Right, and that condition is not given currently. Once we have enough
core libraries converted to multiarch that setting cross compilers to
look at /usr/include will not break too many packages in curious,
interesting and subtle ways, this is the next step ahead.

   Simon


Reply to: