[MDEV-6135] Extra shared libs (dialog.so and mysql_clear_password.so) should be in same directory as libmysqlclient.so Created: 2014-04-18  Updated: 2020-04-14  Resolved: 2020-04-14

Status: Closed
Project: MariaDB Server
Component/s: Platform Debian
Affects Version/s: 5.5.38, 10.0.12
Fix Version/s: 10.5.3

Type: Bug Priority: Minor
Reporter: Otto Kekäläinen Assignee: Otto Kekäläinen
Resolution: Fixed Votes: 0
Labels: debian, packaging

Issue Links:
Blocks
blocks MDEV-6284 Merge downstream Debian/Ubuntu packag... Closed
blocks MDEV-7664 Multi-Arch support for Debian packages Closed
is blocked by MDEV-6284 Merge downstream Debian/Ubuntu packag... Closed
is blocked by MDEV-7664 Multi-Arch support for Debian packages Closed

 Description   

Current MariaDB libmysqlclient/libmariadbclient package has the files:

usr/lib/*/libmariadbclient.so.*
usr/lib/mysql/plugin/dialog.so
usr/lib/mysql/plugin/mysql_clear_password.so

According to Debian policy, in a package like this all of these files should be in /usr/*/.., for example like this:

usr/lib/x86_64-linux-gnu/libmariadbclient.so
usr/lib/x86_64-linux-gnu/dialog.so
usr/lib/x86_64-linux-gnu/mysql_clear_password.so

How does dialog.so and mysql_clear_password.so work, can they safely be moved like this to another location, or will it break their refrencing or something?

Please advice on how to fix this. A patch would be even better.

Debian bug with https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739452 against mariadb-5.5 (Severity: important).



 Comments   
Comment by Sergei Golubchik [ 2014-04-18 ]

What does the debian policy say exactly? Please, provide a link.

These files cannot be moved, they are plugins that are loaded (with dlopen()) by libmariadbclient.so from the plugin directory.

Comment by Otto Kekäläinen [ 2014-04-26 ]

It's actually not in the policy yet, thus I cannot provide a link but the new comments at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739452 describes the issue better.

Comment by Sergei Golubchik [ 2014-04-28 ]

Okay, so all architecture-dependent .so files should be in /usr/lib64 (or /usr/lib32) on debian? This can be easily done.

Comment by Elena Stepanova [ 2014-06-20 ]

Added versions to get it back on the radar. If it's not relevant anymore, it should be closed.

Comment by Otto Kekäläinen [ 2014-06-20 ]

Yes, this is still waiting for a fix. As of 5.5.38 at least the path has not changed and the bug is open in Debian. The fix should be easy, just move the plugin path, right?

Comment by Sergei Golubchik [ 2014-12-18 ]

I don't see an issue here. Our libmariadbclient18.deb package is consistent. It does not have Multi-Arch: Same (as far as I understand, it's Multi-Arch: no by default), it puts libmysqlclient.so.18.0.0 in /usr/lib. So it has to put dialog.so and mysql_clear_password.so in /usr/lib too.

When we'll have new deb packaging, then dialog.so and mysql_clear_password.so will go in /usr/lib/x86_64-linux-gnu/ just as libmysqlclient.so.18.0.0 will. Either way client plugins should always go together with the client library.

Comment by Sergei Golubchik [ 2014-12-18 ]

Ah, right, sorry. This issue is — see issue links — blocked by MDEV-6284. It cannot be done until the blocker issue is done.

Comment by Andrii Nikitin (Inactive) [ 2016-11-03 ]

The problem is still here in recent internal release 10.2.3 http://buildbot.askmonty.org/buildbot/builders/kvm-deb-trusty-amd64/builds/3854
revision c6713f651f5a50709273d14ce5732f7ef3409737 :

% find / | grep mysql_clear_password
/usr/lib/mysql/plugin/mysql_clear_password.so

The way I understand referenced debian bug - to be able install both 32bit and 64bit packages at the same time - the mariadb plugins must be in architecture-specific folder, i.e. in:

/usr/lib/x86_64-linux-gnu/...

Comment by Otto Kekäläinen [ 2016-11-03 ]

See also: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842454#24

Comment by Otto Kekäläinen [ 2016-11-26 ]

The issue MDEV-7664 must be fixed first, and once libmariadb.so.3 installs in a multi-arch directory in upstream (as it does in Debian.org already) then we can look at fixing the client plugins (in the same way as done in Debian.org already).

Comment by Daniel Black [ 2018-02-11 ]

Plugin paths probably fixed by:

https://github.com/MariaDB/mariadb-connector-c/commit/c1a5ed4d13c7bbe9eda6465ecc8dec9324e836a0#diff-87364c4677e09f50088671831b8ad597R93

Comment by Otto Kekäläinen [ 2020-03-14 ]

This can would be solved via https://jira.mariadb.org/browse/CONC-456

Comment by Otto Kekäläinen [ 2020-04-14 ]

This was closed via https://github.com/MariaDB/server/commit/87a7968c23d32880920d129c0e3f467495dce10d and https://github.com/MariaDB/server/commit/4bc31a904f22290801075deed949733ba2133974

Generated at Thu Feb 08 07:09:37 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.