On 2022-01-16 12:56 -0500, Tong Sun wrote: > On Fri, Jan 14, 2022 at 4:42 PM Tong Sun wrote: > > I have a question regarding marking > golang-github-danverbraganza-varcaser-dev Multi-Arch: foreign > what's the purpose of it? > > I did find an explanation from https://wiki.debian.org/Multiarch/HOWTO: > > > If a package is marked 'Multi-Arch: foreign', then it can satisfy > > dependencies of a package of a different architecture (e.g > > 'debhelper:amd64' will satisfy a dependency on debhelper for > > any-architecture package). > > Yet, I'm unable to digest that -- e.g., why an arm64 architecture > needs dependencies of a package from amd64?
I find it helpful to think of packages as 'tools' or
'libraries'. Tools are those packages marked MA:foreign, and their use
is architecture-independent. e.g. 'doxygen' or 'ps2pdf' does the same
thing whatever arch you run them on - they spit out some
documentation. If when cross-building for arm64 (on amd64) the build
asks for 'ps2pdf' to process a file, it's fine if that dependency is
fulfilled by the amd64 ('foreign arch') version. For things like
libraries the build-dependency can only be satisfied by a
matching-arch (arm64 in this case) package, because library linking
only works between libraries of the same architecture.
The point being than when cross-building on amd64 you cannot run most
other architecture tools. Only amd64 (and i386) will actually work, so
it is usless to satisfy a build-dependency for something that will
actually get run ('tools') with an arm64 arch package.
Does that help?
>
> I guess I don't understand the concept and implication of Debian's
> cross built, as I see that easygen is being cross built without
> 'Multi-Arch: foreign', yet golang-github-danverbraganza-varcaser-dev
> is not, despite having the 'Multi-Arch: foreign' .
>
> https://buildd.debian.org/status/package.php?p=easygen vs.
> https://buildd.debian.org/status/package.php?p=golang-github-danverbraganza-varcaser
This is not cross-building. This is native building. Cross-building is
building one package on a machine of another architecture.
Wookey
--
Principal hats: Linaro, Debian, Wookware, ARM
http://wookware.org/
signature.asc
Description: PGP signature

