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

Helmut Grohne helmut at subdivi.de
Thu Nov 10 05:34:53 UTC 2016


On Wed, Nov 09, 2016 at 11:33:07PM +0200, Otto Kekäläinen wrote:
> Or if we move the plugins to a separate package, called maybe
> mariadb-plugin-clientauth that would contain these two files? Then the
> libmariadbclient18 package would stay "clean". I would however need to
> depend on the mariadb-plugin-clientauth package however..

I note that this way resolves the policy issue if and only if those
plugins are ABI-compatible across multiple ABI-incompatible mariadb
releases. The purpose of having no unversioned files in the shared
library package is to have them coinstallable (e.g. libmariadbclient18
and libmariadbclient19). If they depend on a mariadb-plugin-clientauth,
then libmariadbclient18 must work with at least the next version of
those plugins after an ABI bump. Is that a reasonable assumption?

If instead you were to depend on mariadb-plugin-clientauth-$VER and
would have those mariadb-plugin-client-auth-$VER packages conflict with
each other, then policy would still be violated in spirit, because you
cannot install libmariadbclient18 and libmariadbclient19 due to
conflicting dependencies.

Solving this now will make the next ABI bump much less painful.

> And it was still unclear to me if the libmariadbclient18 and
> libmariadbd packages should have "Multi-Arch: same" or what? That is
> what we strive for with the above changes, right?

The plugin location issues are kinda orthogonal. Moving the plugins is
required by the policy to better support ABI bumps, not to support
multiarch. It just happens that multiarch benefits from that. In
general, trying to make lib* packages Multi-Arch: same is a good idea.

In terms of multiarch, having mariadb-plugin-clientauth is probably not
useful. You can mark libmariadbclient18 Multi-Arch: same after moving
those plugins, but since libmariadbclient18 will depend on
mariadb-plugin-clientauth, it can only be coinstalled for multiple
architectures if mariadb-plugin-clientauth can. The latter doesn't use
multiarch paths, so it cannot become Multi-Arch: same. Thus this split
is not useful to multiarch and still might resolve the policy issue.

Really, the only way to make libmariadbclient18 client useful with
multiarch is to move these plugins to architecture-specific locations.
If that cannot be done, its multiarch capability will be severely
limited. It's not entirely clear how much multiarch we actually need
though. Only after switching default-libmysqlclient-dev to Arch:any will
we see how many source packages will need libmariadbclient18 to be
Multi-Arch: same for cross compiling (and the answer usually is "few").
You shall find the detailed answer on
http://bootstrap.debian.net/cross_all.html (<- huge) approximately one
week after uploading default-libmysqlclient-dev.

Helmut



More information about the pkg-mysql-maint mailing list