[CONCPP-30] Connector/C++ binary tarball for RHEL/CentOS has duplicate libraries Created: 2020-08-17  Updated: 2020-11-15  Resolved: 2020-11-15

Status: Closed
Project: MariaDB Connector/C++
Component/s: General
Affects Version/s: 0.9.3
Fix Version/s: 0.9.4

Type: Bug Priority: Major
Reporter: Geoff Montee (Inactive) Assignee: Lawrin Novitsky
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

PM Planning: DOCS_BUG

 Description   

The Connector/C++ binary tarball for RHEL/CentOS currently has two directories for shared libraries:

  • lib/
  • lib64/

The lib directory has the following contents:

$ ls -lR mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib
mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib:
total 8
drwxr-xr-x 2 geoff geoff 4096 Aug 14 11:24 mariadb
drwxr-xr-x 2 geoff geoff 4096 Aug 14 11:24 pkgconfig
 
mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib/mariadb:
total 4332
-rw-r--r-- 1 geoff geoff 2877446 Aug 14 11:24 libmariadbclient.a
lrwxrwxrwx 1 geoff geoff      15 Aug 14 11:24 libmariadb.so -> libmariadb.so.3
-rwxr-xr-x 1 geoff geoff 1553536 Aug 14 11:21 libmariadb.so.3
lrwxrwxrwx 1 geoff geoff      18 Aug 14 11:24 libmysqlclient.a -> libmariadbclient.a
lrwxrwxrwx 1 geoff geoff      18 Aug 14 11:24 libmysqlclient_r.a -> libmariadbclient.a
lrwxrwxrwx 1 geoff geoff      15 Aug 14 11:24 libmysqlclient_r.so -> libmariadb.so.3
lrwxrwxrwx 1 geoff geoff      15 Aug 14 11:24 libmysqlclient.so -> libmariadb.so.3
 
mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib/pkgconfig:
total 4
-rw-r--r-- 1 geoff geoff 483 Aug 14 11:21 libmariadb.pc

The lib64 directory has the following contents:

$ ls -lR mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib64
mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib64:
total 4
drwxr-xr-x 3 geoff geoff 4096 Aug 14 11:24 mariadb
 
mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib64/mariadb:
total 36628
-rwxr-xr-x 1 geoff geoff 35945208 Aug 14 11:24 libmariadbcpp.so
-rw-r--r-- 1 geoff geoff  1553536 Aug 14 11:21 libmariadb.so.3
drwxr-xr-x 2 geoff geoff     4096 Aug 14 11:24 plugin
 
mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib64/mariadb/plugin:
total 656
-rwxr-xr-x 1 geoff geoff  65944 Aug 14 11:24 auth_gssapi_client.so
-rwxr-xr-x 1 geoff geoff  60168 Aug 14 11:24 caching_sha2_password.so
-rwxr-xr-x 1 geoff geoff 391824 Aug 14 11:24 client_ed25519.so
-rwxr-xr-x 1 geoff geoff  52896 Aug 14 11:24 dialog.so
-rwxr-xr-x 1 geoff geoff  36872 Aug 14 11:24 mysql_clear_password.so
-rwxr-xr-x 1 geoff geoff  52176 Aug 14 11:24 sha256_password.so

I think these two directories should be consolidated into a single directory or at least cleaned up. Why do both directories have libmariadb.so.3? Both of them seem to be identical:

$ file mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib/mariadb/libmariadb.so.3
mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib/mariadb/libmariadb.so.3: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=8898fafa0af5e5f5196b1b10a7d20bf57b31efc7, with debug_info, not stripped
$ file mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib64/mariadb/libmariadb.so.3
mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib64/mariadb/libmariadb.so.3: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=8898fafa0af5e5f5196b1b10a7d20bf57b31efc7, with debug_info, not stripped
$ diff mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib/mariadb/libmariadb.so.3 mariadb-connector-cpp-0.9.3-beta-centos8-amd64/lib64/mariadb/libmariadb.so.3



 Comments   
Comment by Lawrin Novitsky [ 2020-09-25 ]

The problem here is that C/C++ itself install C/C files into lib64, but C/C installs into lib. And cpack settings from C/C subproject get also propagated into parent C/C++ project. Thus C/C libraries get installed twice in different directories. On other platforms they just get installed into same directory. I suspect C/ODBC packages have the same issue. Or at least had. I vaguely remember dealing with that problem somehow

Comment by Lawrin Novitsky [ 2020-11-15 ]

Commit 91cd28a

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