The MariaDB C/C++ connector requires SSL connections by default since versin 3.4.0:
https://mariadb.com/kb/en/mariadb-connector-c-3-4-0-release-notes/
However that was made possible by creation of 'zero configuration SSL':
https://mariadb.org/mission-impossible-zero-configuration-ssl/
The first LTS that contains it is MariaDB 11.4
Before that the SSL still can be set up, but it requires significant configuration.
The version we currently have in this distribution is MariaDB 10.11.
In order for all utilities and associated software to still work 'out of the box',
without extensive SSL configurations setup, I decided to disable this option.
--
This option is supposed to be re-enabled when MariaDB >= 11.4 is introduced
as the default MariaDB major version in the distribution.
--
Resolves: RHEL-55985 RHEL-69271 RHEL-69269
mariadb-connector-c is not part of the flatpak runtime, and therefore is
built in /app as a dependency of flatpaks which require it. Therefore,
my.cnf must respect %_sysconfdir rather than use /etc.
Since version 3.3.6, the build FTBFS with LTO flags.
Disable them as a temporary workaround, so the version 3.3.8,
which is required by mariadb-connector-odbc-3.1.20 could be built.
Reported as rhbz#2257198
MariaDB upstream switched from using the 3.2 major version of CONC-C to using 3.3 major version CONC-C silently between MariaDB 10.6.8 and 10.6.9 in this commit:
https://github.com/MariaDB/server/commit/c1ea55ddb0
on 08/2022. From that point on, all MariaDB versions 10.(>=6) are using the CONC-C 3.3, and the CONC-C 3.2 stopped being developed
https://mariadb.org/connector-c/all-releases/
abipkgdiff --d1 mariadb-connector-c-debuginfo-3.2.7-3.fc39.x86_64.rpm --d2 mariadb-connector-c-debuginfo-3.3.4-2.fc39.x86_64.rpm mariadb-connector-c-3.2.7-3.fc39.x86_64.rpm mariadb-connector-c-3.3.4-2.fc39.x86_64.rpm
================ changes of 'libmariadb.so.3'===============
Functions changes summary: 0 Removed, 3 Changed (189 filtered out), 0 Added functions
Variables changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added variable
3 functions with some indirect sub-type change:
[C] 'function int ma_pvio_register_callback(my_bool, void (int, MYSQL*, const uchar*, typedef size_t)*)' at ma_pvio.c:567:1 has some indirect sub-type changes:
parameter 2 of type 'void (int, MYSQL*, const uchar*, typedef size_t)*' has sub-type changes:
in pointed to type 'function type void (int, MYSQL*, const uchar*, typedef size_t)':
parameter 2 of type 'MYSQL*' has sub-type changes:
in pointed to type 'typedef MYSQL' at mysql.h:377:1:
underlying type 'struct st_mysql' at mysql.h:337:1 changed:
type size hasn't changed
2 data member changes (2 filtered):
type of 'NET net' changed:
underlying type 'struct st_net' at mariadb_com.h:271:1 changed:
type size hasn't changed
2 data member changes:
type of 'MARIADB_PVIO* pvio' changed:
in pointed to type 'typedef MARIADB_PVIO' at mariadb_com.h:255:1:
underlying type 'struct st_ma_pvio' at ma_pvio.h:73:1 changed:
type size changed from 768 to 896 (in bits)
2 data member insertions:
'size_t bytes_read', at offset 768 (in bits) at ma_pvio.h:87:1
'size_t bytes_sent', at offset 832 (in bits) at ma_pvio.h:88:1
no data member changes (5 filtered);
type of 'st_mariadb_net_extension* extension' changed:
in pointed to type 'struct st_mariadb_net_extension' at ma_common.h:99:1:
type size changed from 64 to 192 (in bits)
2 data member insertions:
'ma_compress_ctx* compression_ctx', at offset 64 (in bits) at ma_common.h:102:1
'MARIADB_COMPRESSION_PLUGIN* compression_plugin', at offset 128 (in bits) at ma_common.h:103:1
type of 'st_mysql_options options' changed:
type size hasn't changed
1 data member changes (1 filtered):
type of 'st_mysql_options_extension* extension' changed:
in pointed to type 'struct st_mysql_options_extension' at ma_common.h:51:1:
type size changed from 2688 to 3008 (in bits)
5 data member insertions:
'char* restricted_auth', at offset 2688 (in bits) at ma_common.h:84:1
'char* rpl_host', at offset 2752 (in bits) at ma_common.h:85:1
'unsigned short int rpl_port', at offset 2816 (in bits) at ma_common.h:86:1
'void (void*, enum enum_mariadb_status_info, variadic parameter type)* status_callback', at offset 2880 (in bits) at ma_common.h:87:1
'void* status_data', at offset 2944 (in bits) at ma_common.h:88:1
1 data member changes (2 filtered):
type of 'mysql_async_context* async_context' changed:
in pointed to type 'struct mysql_async_context' at ma_context.h:171:1:
type size changed from 1088 to 1152 (in bits)
1 data member insertion:
'addrinfo* pending_gai_res', at offset 384 (in bits) at ma_context.h:233:1
1 data member changes (2 filtered):
'my_context async_context' offset changed from 384 to 448 (in bits) (by +64 bits)
[C] 'function void mariadb_free_rpl_event(MARIADB_RPL_EVENT*)' at mariadb_rpl.c:88:1 has some indirect sub-type changes:
parameter 1 of type 'MARIADB_RPL_EVENT*' has sub-type changes:
in pointed to type 'typedef MARIADB_RPL_EVENT' at mariadb_rpl.h:297:1:
underlying type 'struct st_mariadb_rpl_event' at mariadb_rpl.h:259:1 changed:
type size changed from 1408 to 1472 (in bits)
2 data member insertions:
'uint8_t is_semi_sync', at offset 1408 (in bits) at mariadb_rpl.h:295:1
'uint8_t semi_sync_flags', at offset 1416 (in bits) at mariadb_rpl.h:296:1
1 data member change:
type of 'mariadb_rpl_event event_type' changed:
type size hasn't changed
1 enumerator insertion:
'mariadb_rpl_event::PARTIAL_UPDATE_ROWS_EVENT' value '39'
1 enumerator change:
'mariadb_rpl_event::MYSQL_EVENTS_END' from value '39' to '40' at mariadb_rpl.h:57:1
[C] 'function void mariadb_rpl_close(MARIADB_RPL*)' at mariadb_rpl.c:555:1 has some indirect sub-type changes:
parameter 1 of type 'MARIADB_RPL*' has sub-type changes:
in pointed to type 'typedef MARIADB_RPL' at mariadb_rpl.h:160:1:
underlying type 'struct st_mariadb_rpl' at mariadb_rpl.h:143:1 changed:
type size hasn't changed
1 data member insertion:
'uint8_t artificial_checksun', at offset 560 (in bits) at mariadb_rpl.h:159:1
no data member change (1 filtered);
================ end of changes of 'libmariadb.so.3'===============
Release notes:
https://mariadb.com/kb/en/mariadb-connector-c-330-release-notes/https://mariadb.com/kb/en/mariadb-connector-c-331-release-notes/https://mariadb.com/kb/en/mariadb-connector-c-332-release-notes/https://mariadb.com/kb/en/mariadb-connector-c-333-release-notes/https://mariadb.com/kb/en/mariadb-connector-c-334-release-notes/
Note:
The CONC-C 3.1 is still used to this day in MariaDB 10.5.
MariaDB 10.5.19 uses CONC-C 3.1.20
- %%cmake macro covers the %%{set_build_flags}, so they are not needed
That also means, the debug buildchnages to the build flags must be done AFTER the
%%cmake macro was used.
- %%cmake macro also covers the CMAKE_INSTALL_PREFIX="%%{_prefix}" option
- Default to %%cmake commands instead fo %%make commands
- Update the WITH_UNITTEST macro to the one upstream use now
- Introduce macro to enable / disable testusite (and building of the *-test subpackage)