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

Re: your mail



On Mon, Apr 18, 2016 at 10:52:40AM +0200, Emilio Pozuelo Monfort wrote:
> On 18/04/16 10:45, Adam Borowski wrote:
> > I've done a source-only upload of arch-test (arch:all) but it is still held
> > in "BD-Uninstallable" state, with the claimed reason being:
> > 
> > Dependency installability problem for arch-test on all:
> > arch-test build-depends on missing:
> > - amd64:binutils-x86-64-linux-gnu
> > 
> > which is wrong as declared build-dependencies include:
> > binutils-x86-64-linux-gnu [!amd64 !i386 !x32]
> > 
> > 
> > Sbuild's build-dependency resolution works ok, it built fine at home for me
> > on amd64 i386 x32.  On armhf it fails for unrelated reasons, namely
> > binutils-{m68k,s390x,sh4,sparc64}-linux-gnu missing, but as far as I'm
> > aware, that's ok for an arch:all package.
> > 
> > Thus, it looks like it's something wrong with wanna-build.
> 
> No. arch:all != arch:amd64.

Removing this dependency would cause a FTBFS.  "arch:all" is a property of
the produced binary, not of the build machine.  The B-Deps do change
according to the build architecture despite the result being
arch-independent.

For example, another existing package:
====================================================================
Source: openhackware
Build-Depends: debhelper (>= 9), gcc-powerpc-linux-gnu [!powerpc]

Package: openhackware
Architecture: all
====================================================================

Just like arch-test, openhackware is buildable everywhere[1], and like it,
it uses [!native] qualifier.  I wonder why wanna-build succeeds for
openhackware but not arch-test -- perhaps it ignores the qualifier?  That'd
work on amd64!=powerpc but not for amd64 !amd64.


> Anyway, why is your package arch:all if it ships ELF binaries?

For the same reason qemu BIOS packages ship binary code while being arch:all
-- it's meant for use on foreign architectures.  In the case of arch-test,
there's an ELF binary for each of 24 different architectures, ie, for
everyone 23 of those are foreign.

I see no relevant piece in the Policy; lintian says the following:

N:    If this package contains binaries or objects for cross-compiling or
N:    binary blobs for other purposes independent of the host architecture
N:    (such as BIOS updates or firmware), please add a Lintian override.



Meow!

[1]. At least in principle -- we don't have cross-toolchains built for many
_host_ archs.
-- 
A tit a day keeps the vet away.


Reply to: