Comment 2 for bug 739151

Revision history for this message
Steve Langasek (vorlon) wrote : Re: [Bug 739151] [NEW] dpkg-cross does not do sensible things with multi-arch: same packages

On Tue, Mar 22, 2011 at 01:54:32AM -0000, Wookey wrote:
> In general the right thing for dpkg-cross to do with multiarch
> packages is nothing, at least in terms of moving files about. What you
> want here is the ability to leave the files just where they are but
> still have the 'make a package for a different arch' functionality?

> Or do you in fact want the functionality of moving files into the
> 'old' locations even if they start in the multiarch ones (because
> something about the build process needs it)? That seems very horrid

We do actually need dpkg-cross, when called on these packages, to "cross"
them - copying the contents to the /usr/armel-linux-gnueabi/ heirarchy -
because these resulting Arch: all crossed packages need to be installed on a
system, and such packages are *not* allowed to install contents to
/usr/lib/armel-linux-gnueabi, which policy reserves for packages of
Architecture: armel.

> > I've checked with dpkg-cross 2.6.2 from Debian unstable; the same
> > problem is present there.

> The multiarch behaviour of what's in cvs (2.6.3) is different from 2.6.2. It
> essentially tries to do nothing.

> $ dpkg-cross -b -a amd64 libc6_2.13-0ubuntu8_amd64.deb
> dpkg-cross: Skipping the 'libc6_2.13-0ubuntu8_amd64.deb' Multi-Arch package.

> So that's better than the previous messing it up, and is a prefectly
> reasonable way of fixing this bug. (i.e now it does something
> sensible). But that doesn't help armel-cross-toolchain-base.

I think this is probably good default behavior for dpkg-cross when faced
with a multi-arch package, but yes, we definitely need an override.

> > So the armel cross-compiler in the archive isn't buildable
> > until this is resolved.

> I think we can all agree that the _correct_ fix for this is to allow
> cross-arch dependencies and have the cross-toolchains built in a less-gross
> way, but as we're not going to be there for a bit it seems like
> allowing dpkg-cross --convert-anyway to make
> libc6_2.13-0ubuntu8_amd64.deb into
> libc6-amd64-cross_2.13-0ubuntu8_all.deb
> might be a reasonable things to do.

> --convert-anyway is currently used for 'convert when the package would
> otherwise be null'. Extending it to cover 'convert even when it
> multiarch and normally we'd do nothing' doesn't seem unreasonable. Can
> anyone think of a reason why a different option (--force-cross?) should
> be used?

I can't think of a reason for a separate option offhand.

Thanks,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
<email address hidden> <email address hidden>