[CONC-287] CONC/C devel design Created: 2017-10-16  Updated: 2019-01-23  Resolved: 2019-01-23

Status: Closed
Project: MariaDB Connector/C
Component/s: None
Affects Version/s: 3.0.2
Fix Version/s: N/A

Type: Task Priority: Major
Reporter: Michal Schorm Assignee: Georg Richter
Resolution: Not a Bug Votes: 0
Labels: None
Environment:

Fedora - all



 Description   

Hello,
I have a question about connectors design.

In server 10.2, devel header files are placed in '/usr/include/mysql' and '/usr/include/mysql/server'

However the connectors (both C and ODBC) still use old design, in which '/usr/include' was used directly.

Shouldn't CONC/C install its files to same location as C-library part of server?
Shouldn't CONC/ODBC require those updatet paths?

Maybe I overlooked something, but in Fedora, I maintain directory tree as mentioned above. And I think it is a right way, to use mysql directory, instead of polluting '/usr/include'



 Comments   
Comment by Sergei Golubchik [ 2017-10-16 ]

You've misunderstood a little bit. All server headers are installed under $INSTALL_DIR/server, and CON/C headers are never installed under $INSTALL_DIR/server. So there are no path conflicts. All clients should use $INSTALL_DIR. And udfs, plugins (including storage engines) and clients linking with embedded server should use $INSTALL_DIR/server.

Comment by Michal Schorm [ 2017-10-16 ]

The server / client header files separation is fine.

I had different thing on my mind.
In server versions < 10.2, client header files were stored under "/usr/include/"
In new server 10.2, they are stored in "/usr/include/mysql" (Which, as far as I understand, is MariaDB new desing, which came at the same time as separation server header files to "$INSTALL_DIR/server")

In connectors, client header files are stored under old location - "/usr/include/".
And the question is - shouldn't they move to the "/usr/include/mysql" too? (to mirror chnages of client part build with server)

Comment by Sergei Golubchik [ 2018-08-10 ]

Looking at https://github.com/MariaDB/mariadb-connector-c/blob/v3.0.6/cmake/install.cmake Connector/C seems to prefer "mariadb" in the path, like /usr/lib/mariadb (both for tarballs and RPM), /usr/include/mariadb (only for tarballs), etc.

So I don't think the patch to use /usr/include/mysql will be accepted. I'd just set INSTALL_INCLUDEDIR from the spec file, like

cmake -DINSTALL_INCLUDEDIR=/usr/include/mysql

I suspect you're doing it already

Comment by Michal Schorm [ 2019-01-02 ]

Yes, I'm specifying the cmake argument, putting everything under "/usr/include/mysql" (and deeper in the hierarchy).

This ticket can be closed

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