[MDEV-22735] MySQL 8.0 / libmysqlclient21 incompatible it's own libmysqlclien20 and with MariaDB /usr/share/mysql/charsets Created: 2020-05-28 Updated: 2020-08-22 Resolved: 2020-05-28 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Platform Debian |
| Affects Version/s: | 10.3, 10.4, 10.5, 10.6 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Otto Kekäläinen | Assignee: | Unassigned |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Description |
|
If was discovered that the contents of /usr/share/mysql/charsets in MySQL 8.0 is incompatible with previous versions of MySQL and MariaDB. This causes issues on e.g. Ubuntu, where users have both MySQL 8.0 and MariaDB 10.3 available in the repositories (in Ubuntu 20.04). Both of the servers cannot be co-installed at the same time, but some parts of the clients can, and certainly software compiled against on client library can run with the other. If was reported that if MythTV is compiled with libmysqlclient21, it will crash when running when /usr/share/mysql/charsets from MariaDB 10.3 is installed. To mitigate this diversion in /usr/share/mysql/charsets compatibility, next version of MariaDB (10.5 or 10.6) could start using charsets in its own path, e.g. /usr/share/mariadb/charsets See also:
|
| Comments |
| Comment by Alexander Barkov [ 2020-05-28 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I have a set of mariadb packages (provided by the operating system) installed on my Fedora box:
I'm not 100% sure, but it seems the problem is to be fixed by the package maintainer, by passing a proper path value when compiling the package. In Fedora it seems to have been already fixed, according to the above `rpm -ql` output. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-05-28 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Is there some build log or something where I could see the full file list of Fedora? I can't find any configuration option for the charsets path specifically. Does this mean that the entire /usr/share/mysql should be moved to /usr/share/mariadb? Build logs output a list of all packages and the files they include in autobake-deb.sh. See as an example the end of the log at http://buildbot.askmonty.org/buildbot/builders/kvm-deb-bionic-amd64/builds/4850/steps/compile/logs/stdio | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-05-28 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The cmake/install_layout.cmake implies that both RPM and DEB are configured to install their stuff in /usr/share/mysql:
> I have a set of mariadb packages (provided by the operating system) installed on my Fedora box: Are you now talking about what we have in github.com/mariadb/server 10.5 and publish at downloads.mariadb.org or something else? This issue is about fixing stuff in upstream MariaDB 10.5 (or 10.6) and comments about something else don't help much in debugging this issue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Alexander Barkov [ 2020-05-28 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi Otto. I think Fedora overrides the entire /share directory:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-05-28 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
As said, info about downstream Fedora without info what actually upstream github.com/mariadb/server produces isn't helpful, it is just a distraction. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Alexander Barkov [ 2020-05-28 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
> Are you now talking about what we have in github.com/mariadb/server 10.5 and publish at downloads.mariadb.org or something else? Yes, I'm talking about the official sources available either from https://github.com/MariaDB/server or from https://downloads.mariadb.org/. The instructions like INSTALL_MYSQLSHAREDIR_RPM in cmake/install_layout.cmake set the default value, which can be overwritten by a package maintainer. Fixing the default value sounds like a good idea for me though. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Golubchik [ 2020-05-28 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This is Ubuntu packaging bug. MySQL developers are fully aware that 8.0 has introduced incompatible changes into *.sys files and broke backward compatibility, and that these files cannot be used by older libraries. This is why MySQL 8.0 installs *.sys files into /usr/share/mysql-8.0 to make it possible to have old and new libraries installed side by side. Apparently Ubuntu maintainers decided to override this and put new incompatible files over old ones. And they got this bug. MariaDB sys files are compatible with previous releases of MySQL and MariaDB, that's why they should go into the old location. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-06-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
As documentation, here is proof of Sergei's claim above:
|