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: