"lcov" source package: entry "Multi-Arch: foreign" missing in debian/control file
Audience
lcov
binary package shall be installable as build dependency for arm64 architecture.
Background
Bosch DMS team has a source package with following build dependencies:
Build-Depends:
cmake,
libgtest-dev,
googletest,
lcov,
debhelper-compat (= 13)
Following commands are executed in SDK or Docker (v2023):
dpkg --add-architecture arm64
apt-get update
apt-get install -y build-essential crossbuild-essential-arm64
apt-get build-dep -y -aarm64 .
Result:
user@titan:~/titan/cmake-hello-world$ sudo apt-get build-dep -y -aarm64 .
Note, using directory '.' to get the build dependencies
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
builddeps:.:arm64 : Depends: lcov:arm64 but it is not installable
E: Unable to correct problems, you have held broken packages.
Pre-analysis
The entry "Multi-Arch: foreign" is missing in the control file of "lcov" source package. Also latest Debian source (https://salsa.debian.org/mckinstry/lcov/-/blob/debian/latest/debian/control) does not have the "Multi-Arch: foreign" entry. According https://wiki.debian.org/CrossBuildPackagingGuidelines#Architecture_qualifiers the definition of "Multi-Arch: foreign" within the build dependency package is the preferred solution else the usage of ":native" qualifier can cause build failures if the "Multi-Arch: foreign" entry is added to the build dependency package later.
According https://wiki.debian.org/CrossBuildPackagingGuidelines#Architecture_qualifiers "lcov:native" could be used as dependency entry instead of "lcov" to fix the build dependency installation issue. But this is not the preferred solution as described by previous section and the given link.
Outcomes
Management data
This section is for management only, it should be the last one in the description.
Phabricator link: https://phabricator.apertis.org/T9754