2016-09-28 15:07:49 |
Alexandros Frantzis |
description |
When trying to cross-build Mir with sbuild version >= 0.68.0, the build fails with:
sbuild-build-depends-mir-dummy:armhf : Depends: cmake-data:armhf but it is not installable
Depends: abi-compliance-checker:armhf but it is not installable
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-checker packages. In particular, the two packages are not multi-arch ready and sbuild can't know that it needs to install their native/build (amd64) version, using the host (armhf) version instead.
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://anonscm.debian.org/cgit/buildd-tools/sbuild.git/commit/?id=e227c8f3e10edd78bc71350380f559c481634b79
[2] https://wiki.debian.org/Multiarch/CrossDependencies
[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666772 |
When trying to cross-build Mir with sbuild version >= 0.68.0, the build fails with:
sbuild-build-depends-mir-dummy:armhf : Depends: cmake-data:armhf but it is not installable
Depends: abi-compliance-checker:armhf but it is not installable
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-checker packages. In particular, the two packages are not multi-arch ready and sbuild can't know that it needs to install their native/build (amd64) version, so it uses the host (armhf) version instead.
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://anonscm.debian.org/cgit/buildd-tools/sbuild.git/commit/?id=e227c8f3e10edd78bc71350380f559c481634b79
[2] https://wiki.debian.org/Multiarch/CrossDependencies
[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666772 |
|