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