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)