Mir fails to cross-build with newer sbuild versions
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
High
|
Alexandros Frantzis | ||
abi-compliance-checker (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
When trying to cross-build Mir with sbuild version >= 0.68.0, the build fails with:
sbuild-
This is caused by a change ([1]) in the way sbuild installs build-deps for the package under build. Previously sbuild used the 'apt-get build-dep' command, but recent versions calculate the build-deps manually (using the Dpkg perl module) and install the -dummy package instead.
This change isn't a problem in and of itself, but unfortunately uncovers a problem in the cmake-data and abi-compliance-
The previous 'apt-get build-dep' way worked because APT is patched in ubuntu (but not in debian) to consider packages with architecture 'all' as 'Multi-Arch: foreign' ([1],[2]). The Dpkg perl modules don't contain such a patch.
[1] https:/
[2] https:/
[3] https:/
Related branches
- Mir CI Bot: Approve (continuous-integration)
- Alexandros Frantzis (community): Abstain
- Cemil Azizoglu (community): Approve
-
Diff: 11 lines (+0/-1)1 file modifieddebian/control (+0/-1)
description: | updated |
Changed in mir: | |
milestone: | none → 0.25.0 |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Suggested solution is:
* Remove cmake-data from the build-dep list, since cmake depends on it anyway checker from the build-deps. We don't perform any ABI checks in our cross-build job.
* During CI cross-builds remove abi-compliance-
Other solutions that I considered and rejected:
* Mark abi-compliance- checker as ':native' in the build-deps. This makes sbuild build-dep installation happy, but still fails during the actual package build, because dpkg-checkbuilddeps doesn't use packages with architecture 'all' to satisfy ':native' build-deps. Not sure what the right behavior for dpkg-checkbuilddeps should be.
* Fix the abi-compliance- checker package to support Multi-Arch. This is the ideal solution and should be eventually done for future releases. However, backporting the change to older releases is not too appealing at this point (we need to unblock Mir CI).