Jakub Wilk <[email protected]> writes:

> If a package is marked as "Multi-Arch: same", it should be
> co-installable with itself. This is currently not the case because of
> the two files mentioned in my original mail:
>
> Selecting previously unselected package libmariadbclient18:amd64.
> Preparing to unpack .../libmariadbclient18_5.5.36-1_amd64.deb ...
> Unpacking libmariadbclient18:amd64 (5.5.36-1) ...
> Selecting previously unselected package libmariadbclient18:i386.
> Preparing to unpack .../libmariadbclient18_5.5.36-1_i386.deb ...
> Unpacking libmariadbclient18:i386 (5.5.36-1) ...
> dpkg: error processing archive 
> /var/cache/apt/archives/libmariadbclient18_5.5.36-1_i386.deb (--unpack):
> trying to overwrite shared '/usr/lib/mysql/plugin/dialog.so', which is 
> different from other instances of package libmariadbclient18:i386

Otto: So apparently the problem here is the client-side plugins. IIUC,
pluggable authentication uses shared objects (like dialog.so) that are loaded
on demand by libmariadbclient. So to install both 32-bit and 64-bit client
library on amd64, we will need to put the client plugins under an
architecture-specific name. Like /usr/lib32/mysql/plugin/dialog.so or
whatever. Then 32-bit and 64-bit applications, running on the same 64-bit
system, can each load the correct plugin into their library.

I am not sure about the correct file/directory names to use. I believe that 
libc,
for example, does dynamic loading of eg. resolver libraries, so it must be
solving the similar problem. Maybe looking at how that works could be a good
start.

Wrt. the build scripts, presumably the path /usr/lib/mysql/plugin/ comes from
somewhere and could be overridden with the appropriate CMake directive; maybe
Serg (Cc:'ed) could help with how to do this.

Hope this helps,

 - Kristian.


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to