State of libmysql?

php.internals

Nikita Popov

7 years ago
Hi internals, Building PHP 7.4 against libmysql rather than mysqlnd has been broken for quite a while and only recently noticed in https://github.com/php/php-src/pull/4316. Clearly none of us are using libmysql and none of our CI jobs test it. Now that it compiles again, there are many build warnings, as well as about 10 failing PDO MySQL tests and 20 failing MySQLi tests. This is not good. I think that we either need an interested party to support these bindings, or else drop support for building against libmysql. Regards, Nikita

Remi Collet

7 years ago
Le 28/06/2019 à 14:59, Nikita Popov a écrit :
> Hi internals, > > Building PHP 7.4 against libmysql rather than mysqlnd has been broken for > quite a while and only recently noticed in > https://github.com/php/php-src/pull/4316. Clearly none of us are using > libmysql and none of our CI jobs test it. Now that it compiles again, there > are many build warnings, as well as about 10 failing PDO MySQL tests and 20 > failing MySQLi tests. > > This is not good. I think that we either need an interested party to > support these bindings, or else drop support for building against libmysql.
+1 to drop support for libmysqlclient. BTW license is NOT compatible with PHP. Remi

Johannes Schlueter

7 years ago
On Fri, 2019-06-28 at 15:04 +0200, Remi Collet wrote:
> Le 28/06/2019 à 14:59, Nikita Popov a écrit : > > Hi internals, > > > > Building PHP 7.4 against libmysql rather than mysqlnd has been > > broken for > > quite a while and only recently noticed in > > https://github.com/php/php-src/pull/4316. Clearly none of us are > > using > > libmysql and none of our CI jobs test it. Now that it compiles > > again, there > > are many build warnings, as well as about 10 failing PDO MySQL > > tests and 20 > > failing MySQLi tests. > > > > This is not good. I think that we either need an interested party > > to > > support these bindings, or else drop support for building against > > libmysql.
I think andrey did some experiments reccently. I haven't looked into it in a while. There are sometimes benefits where some operations can be used via libmysql, but not mysqlnd, while mysqlnd has benefits. Dropping libmysql-support would make the code easier, but also limit abilities. (especially in case where mariadb and mysql protocol diverge)
> +1 to drop support for libmysqlclient. > > BTW license is NOT compatible with PHP.
I am no lawyer, but imo that is incorrect. a) libmysql is licensed under GPL+universal FOSS exception, which allows combination with OSI-approved licenses, to which PHP License belongs https://oss.oracle.com/licenses/universal-foss-exception/ b) there is a commercial version of libmysql, which doesn't have GPL's virality johannes

Nikita Popov

7 years ago
On Fri, Jun 28, 2019 at 5:00 PM Johannes Schlüter <johannes@schlueters.de> wrote:
> On Fri, 2019-06-28 at 15:04 +0200, Remi Collet wrote: > > Le 28/06/2019 à 14:59, Nikita Popov a écrit : > > > Hi internals, > > > > > > Building PHP 7.4 against libmysql rather than mysqlnd has been > > > broken for > > > quite a while and only recently noticed in > > > https://github.com/php/php-src/pull/4316. Clearly none of us are > > > using > > > libmysql and none of our CI jobs test it. Now that it compiles > > > again, there > > > are many build warnings, as well as about 10 failing PDO MySQL > > > tests and 20 > > > failing MySQLi tests. > > > > > > This is not good. I think that we either need an interested party > > > to > > > support these bindings, or else drop support for building against > > > libmysql. > > I think andrey did some experiments reccently. I haven't looked into it > in a while. There are sometimes benefits where some operations can be > used via libmysql, but not mysqlnd, while mysqlnd has benefits. > Dropping libmysql-support would make the code easier, but also limit > abilities. (especially in case where mariadb and mysql protocol > diverge) >
I think that having libmysql support is in principle valuable, but it needs to be maintained. I'd prefer to have no libmysql support over having broken support. Is there anyone who is interested in fixing the current test failures? I think it will be manageable to maintain this code once we have a clean CI build set up, but someone with MySQL familiarity needs to bring the tests in shape first. Nikita