[debian-mysql] Bug#842454: default-libmysqlclient-dev is unsatisfiable for cross builds

Andreas Beckmann anbe at debian.org
Mon Nov 7 17:12:41 UTC 2016


On 2016-11-03 14:07, Helmut Grohne wrote:
> On Thu, Nov 03, 2016 at 11:05:16AM +0100, Andreas Beckmann wrote:
>> I think you rather want
>>
>> Architecture: all
>> Multi-Arch: allowed
> 
> Sadly that's neither correct nor possible. M-A:allowed is not permitted
> on Arch:all packages.

Right, that should be

Architecture: all
Multi-Arch: foreign

(I always mix up allowed and foreign in this context.)

I just verified that this is sufficient to have a package

Package: test-default-libmysqlclient-dev
Architecture: any
Depends:
 default-libmysqlclient-dev,

built for i386 and install it on a amd64 chroot.

> And even if it was allowed, it would be wrong. Consider source package
> foo, which wants to link the mysql client library. If it Build-Depends:
> default-libmysqlclient-dev, then its dependency is cross-unsatisfiable,
> because no package provides default-libmysqlclient-dev for non-native
> architectures. If it Build-Depends: default-libmysqlclient-dev:any, it
> gets the build architecture library when it wanted the host architecture
> library.

In general, how does it work to have arch:all build-depends (marked as
m-a: foreign and depending on arch:any packages) in cross-build scenarios?

IMO it is wrong to require -dev packages to be arch:any if they could be
arch:all + m-a:foreign.


Andreas



More information about the pkg-mysql-maint mailing list