(moving this to debian-dpkg@ for a more on-topic list) Quoting Guillem Jover (2021-12-08 20:10:22) > The swig package is arch:all m-a:foreign, which is disallowed as the > target of a :native arch-qualified dependency, and thus the dependency > is not satisfiable. See: > > > https://git.hadrons.org/cgit/debian/dpkg/dpkg.git/tree/doc/multiarch.txt?h=pu/doc-multiarch-spec > > BTW, you might want to rise this kind of question in the > debian-cross@l.d.o mailing list.
I hope this is not yet written down anywhere but what is the rationale for disallowing a foo:native dependency on a m-a:foreign package? I see that the table in the doc-multiarch-spec branch mirrors the original table from https://wiki.ubuntu.com/MultiarchCross where foo:native on m-a:foreign is also disallowed. It makes sense that the other disallowed combinations are with foo:any as :any explicitly exists for m-a:allowed packages. But why also disallow :native for m-a:foreign? I would argue that: a) this argues the principle of least surprise -- if I am writing my Build-Depends and I know I want the build-architecture version of the package, then a package that explicitly claims to satisfy foreign architecture should satisfy the :native relationship b) if we mark a package that was m-a:no before as m-a:foreign, then we now also have to clean up all the B-D that were using :native before IMHO, that table cell should not be "disallowed" but "any, preferably DEB_BUILD_ARCH" just as it is for a normal B-D foo on a m-a:forein package. So what is the reason for this being disallowed in practice? Thanks! cheers, josch P.S.: whatever the reply to my query probably makes a good text for the "XXX Document discrepancies and their rationale" part of multiarch.txt :)
signature.asc
Description: signature