Hi Thorsten & Reiner,

Quoting Thorsten Glaser (2020-03-14 18:26:24)
> >Enabling M-A:foreign for musl-tools is unfortunately currently not
> >possible. It's not arch:all, as it ships a few arch-dependent files.
> 
> That’s true for other packages as well.
> 
> A package can, generally, be made Multi-Arch: foreign, if it, and
> all of its dependencies, can be used on a foreign system which has
> the capability to execute its code (e.g. i386 on an amd64 system,
> or anything with qemu-user-static).

you are right. Even arch:any packages are allowed to have a m-a:foreign
annotation. Unfortunately, there are more conditions than the one you name
before it is correct to mark a given package as m-a:foreign.

> >E.g. the spec file, /usr/bin/musl-gcc (which hardcodes the arch-dependent
> >path to the spec file), and /usr/bin/musl-ldd, which is a symlink to
> >libc.so.
> 
> Yes, but that’d be deliberate. Installing a foreign-architecture
> musl-tools would then enable one to cross-compile. At least that’s
> the idea. I’m not completely sure it’s the right way or even a good
> way, or whether it’ll break $things, which is why I added the two “cross”
> guys in Cc.

I only had a very quick look at what musl-tools does but I do not think that it
is correct to mark it as m-a:foreign. /usr/bin/musl-ldd is a direct symlink to
/lib/x86_64-linux-musl/libc.so and /usr/bin/musl-gcc just calls /usr/bin/cc
with /usr/lib/x86_64-linux-musl/musl-gcc.specs as a spec file. Both of these
things make the interface provided by the package musl-tools architecture
dependent. This means that a package that musl-tools:amd64 will give you
different functionality compared to musl-tools:i386.

For more context, read this handy write-up by Helmut:

https://wiki.debian.org/DependencyHell#Multi-Arch:_foreign

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to