[debian-mysql] Introducing default-mysql-* metapackages

Otto Kekäläinen otto at debian.org
Tue Aug 16 08:36:15 UTC 2016


Hello!

2016-08-16 7:44 GMT+03:00 Rene Engelhard <rene at debian.org>:
> On Sun, Jul 10, 2016 at 05:22:22PM +0300, Otto Kekäläinen wrote:
>> Hello maintainers of packages that depend in MySQL/MariaDB!
>
> Not everyone is required to read -devel. Mailing them where they read
> it (and be it Cc'ing them) would be better.
>
> I am subscribed to -devel but still missed this mail (though I knew there
> was something ongoing)

That is why we'll send a mail about this to debian-devel-announce soon
to get more visibility.

>> BEFORE: Build-Depends: libmysqlclient-dev
>> AFTER: Build-Depends: default-libmysqlclient-dev
>>
>> BEFORE: Depends: mysql-server | virtual-mysql-server OR Depends:
>> mariadb-server | virtual-mysql-server
>> AFTER: Depends: default-mysql-server | virtual-mysql-server
>>
>> BEFORE: Depends: mysql-client | virtual-mysql-client OR Depends:
>> mariadb-client | virtual-mariadb-client
>> AFTER: Depends: default-mysql-client | default-mysql-client
>                                          ^^^^^^^^^^^^^^^^^^^^
> ITYM virtual-mysql-client :)

Yes, sorry for the typo.

>> If a maintainer knows that his/her package only works with one
>> variant, then the package can depend directly on that package and not
>> use the default-mysql-* (matches one) or virtual-mysql-* (matches any)
>> schemes. Please get in touch if this applies to you. At the moment
>> there should be no such packages, but in the future cases like this
>> can arise when MySQL and MariaDB develop diverging feature sets.
>
> Well, I know of packages needing MySQL 5.7 and/or failing to build against
> MariaDB for other reasons. e.g. mysql-connector-c++. Upstream is Oracle,
> so they obviously won't care about MariaDB..

Yes, this scheme is very flexible and in cases like
mysql-connector-c++ the package can depend explicitly on the MySQL
package and not the default package. The same applies also for some
packages that use features available in MariaDB but not available in
MySQL.

>> Packages built against default-mysqlclient-dev and link using
>> "-lmysqlclient" will end up with a shared library dependency on either
>> libmysqlclient.so.X or libmariadbclient.so.X depending on the default
>> defined by the release team at build time. These will be provided by
>> the libmysqlclient18 (soon to be libmysqlclient20) and
>> libmariadbclient18 packages, which will be co-installable. Packages
>> which require particular functionality available from only one of the
>> forks may Build-Depend directly on libmysqlclient-dev or
>> libmariadbclient-dev and then link using "-lmysqlclient" or
>> "-lmariadbclient" respectively. Again, please get in touch if this
>> applies to you.
>
> See above.
>
> So this one could still use libmysqlclient-dev?

Yes

> Or we keep a working version with MariaDB, but then again there's other
> packages like mysql-workbench also wanting 1.1.7 (and thus MySQL 5.7)...

I think mysql-workbench works just fine with MariaDB, it only
complains about the version string not being what it assumes as it
thinks 10.0 < 5.x and it requires 5.x or later. Somebody should patch
mysql-workbench to do proper version string comparison.

>> The default-mysql-* metapackages will be uploaded to Experimental soon
>> and to Unstable once we are confident there are no regressions. Once
>> they are available in Unstable, we will announce this on
>
> I have seen those accepted in unstable this morning so.. :)

Yes, it was uploaded 12 hours ago. I didn't have time to announce it
just yet. Stay tuned :)



More information about the pkg-mysql-maint mailing list