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]

