On Sun, Sep 30, 2018 at 12:02:39AM -0700, Tom Lee wrote: > You asked: > > The invocation however says "compile". Does it actually run a C compiler? > > > I don't believe so: the "compile" step should just be converting a > (textual) schema into some target source language (usually C++).
That's good and indicates that Multi-Arch: foreign is likely correct. Are you aware of any invocation where the output or behvaiour of any of the programs in the capnproto binary package is different when run of a different architecture? > The multiarch hinter says that the libcapnp-* packages should be > > Multi-Arch: same. > > > > I'm confused whether I should be adding Multi-Arch: foreign or Multi-Arch: > same. :) I'm also a little unclear of the implications of adding either -- > if you can give a high-level summary it'd be appreciated. I'm not > particularly familiar with multi-arch/cross-compilation as it pertains to > Debian at the moment. The property is per binary package. It is not uncommon (rather the norm) that different binary packages need different Multi-Arch values. The hinter says that you should mark libcapnp-* Multi-Arch: same and I was asking whether capnproto could be marked Multi-Arch: foreign. These are not in conflict. Rather that combination is quite common. Applying the hints is quite safe. The more difficult question is about capnproto (see above). After adding Multi-Arch: same to the libraries, it will become possible to install those packages for multiple architectures at the same time. Try for instance: "apt install libcapnp-dev:amd64 libcapnp-dev:i386". Then inspect the contents of either. Dependency resolution is not affected by Multi-Arch: same in any way (though dependency satisfiability is). On the other hand, Multi-Arch: foreign only influences dependency resolution: If say foo:i386 Depends: capnproto, it usually means capnproto:i386 (i.e. foo's architecture). The foreign marking tells apt and dpkg that capnproto:amd64 also satisfies the dependency. Hope this helps Helmut

