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

Re: Bug#688701: dpkg-dev: dpkg-checkbuilddeps fails when run from pdebuild-cross



Control: severity -1 minor

On Sun, 14 Oct 2012 13:04:22 +0200
Guillem Jover <guillem@debian.org> wrote:

Thanks Guillem, sorry I didn't get a chance to reassign this bug
earlier. It's clearly not a dpkg problem.

> On Sun, 2012-10-07 at 03:37:09 +0200, Guillem Jover wrote:
> > On Mon, 2012-09-24 at 23:46:10 +0200, Gilles Filippini wrote:
> > > Package: dpkg-dev
> > > Version: 1.16.8
> > > Severity: normal

This is a bug in the cross-building dependency resolution process, yes.
The bug is that there is no such thing as a cross-build dependency
resolver in Debian or Emdebian for use with packages processed by
dpkg-cross.

It has nothing to do with dpkg-dev. It is also not something which the
current cross-building dependency resolution process can actually fix
- the workaround just needs to be documented / forced to avoid
expecting dependencies to be resolvable.

> > > The change introduced to dpkg-checkbuilddeps in release 1.16.2, to check
> > > build-dependencies against the target architecture (-a<arch>) breaks
> > > cross-building with pdebuild-cross: dpkg-checkbuilddeps complains about
> > > missing build-deps while they are correctly pulled by xapt + dpkg-cross.

embuilddeps can (and should) install the dependencies for both
architectures which would allow dpkg-checkbuilddeps to find the right
dependencies for the *native* architecture. dpkg-checkbuilddeps will not
be able to resolve dependencies handled by dpkg-cross and MultiArch
cannot yet deliver a full cross-build support environment in Debian.

> > Well, xapt + dpkg-cross mangle and repack foregin packages to make
> > them installable on the native system, so the fact that this breaks
> > now with multiarch is kind of expected.

Exactly. dpkg-cross and MultiArch are *not* compatible in any way.
MultiArch packages can be *forced* into dpkg-cross compliance but the
two methods are completely independent. For any one package cross-build,
only one method can be used to provide the cross dependencies. MultiArch
isn't ready for cross-compilation in Debian yet, so we're left with
dpkg-cross.

> > > Workaround: add "-d" to DEBBUILDOPTS into
> > > /etc/pdebuild-cross/pdebuild-cross.rc to inhibit dpkg-checkbuilddeps.

Correct.

If this needs to be documented in the manpage or simply enforced for
certain versions of dpkg then that is the only step to be taken for
this bug. No other fix is available in a world where dpkg-cross is
still necessary because dependency resolution based on packages
installed by dpkg-cross is not supported by any tool in Debian or
Emdebian.

> > You should preferibly get packages switched to multiarch. But maybe
> > given that pdebuild-cross seems to be relying currently on xapt +
> > dpkg-cross, then the workaround might need to be applied there for
> > the time being. Otherwise there's really no bug in dpkg.

Correct. 

The solution will be MultiArch.

pdebuild-cross will not support MultiArch, there will be no need for it
once enough -dev packages are properly converted to MultiArch. When
dpkg-cross is finally removed, pdebuild-cross and xapt will be removed
as well.

-- 


Neil Williams
=============
http://www.linux.codehelp.co.uk/

Attachment: pgpkpKakZ2ZZQ.pgp
Description: PGP signature


Reply to: