include $(TOPDIR)/rules.mk
PKG_NAME:=libmariadb
-PKG_VERSION:=3.4.1
+PKG_VERSION:=3.4.5
PKG_RELEASE:=1
PKG_SOURCE:=mariadb-connector-c-$(PKG_VERSION)-src.tar.gz
https://mirror.netcologne.de/mariadb/connector-c-$(PKG_VERSION) \
https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/connector-c-$(PKG_VERSION) \
https://dlm.mariadb.com/3907132/Connectors/c/connector-c-$(PKG_VERSION)
-PKG_HASH:=0a7f2522a44a7369c1dda89676e43485037596a7b1534898448175178aedeb4d
+PKG_HASH:=b17e193816cb25c3364c2cc92a0ad3f1d0ad9f0f484dc76b8e7bdb5b50eac1a3
PKG_BUILD_DIR:=$(BUILD_DIR)/mariadb-connector-c-$(PKG_VERSION)-src
Thus additionally link libmariadb to libucontext which is a library
providing these system calls on platforms not supporting them out of
the box - like musl based platforms.
---- a/libmariadb/CMakeLists.txt
-+++ b/libmariadb/CMakeLists.txt
-@@ -458,7 +458,7 @@ ELSE()
- SET_TARGET_PROPERTIES(libmariadb PROPERTIES LINKER_LANGUAGE C)
- ENDIF()
-
--TARGET_LINK_LIBRARIES(libmariadb LINK_PRIVATE ${SYSTEM_LIBS} ${CRYPTO_LIBS})
-+TARGET_LINK_LIBRARIES(libmariadb LINK_PRIVATE ${SYSTEM_LIBS} ${CRYPTO_LIBS} ${LIBUCONTEXT_POSIX} ${LIBUCONTEXT})
-
- SIGN_TARGET(libmariadb)
-
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -251,6 +251,14 @@ IF(UNIX)
+@@ -263,11 +263,19 @@ IF(UNIX)
SEARCH_LIBRARY(LIBPTHREAD pthread_getspecific "pthread;pthreads")
SEARCH_LIBRARY(LIBNSL gethostbyname_r "nsl_r;nsl")
SEARCH_LIBRARY(LIBSOCKET setsockopt socket)
+ ENDIF()
FIND_PACKAGE(Threads)
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LIBNSL} ${LIBBIND} ${LIBICONV} ${ZLIB_LIBRARY}
- ${LIBSOCKET} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
+- ${LIBSOCKET} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
++ ${LIBSOCKET} ${LIBUCONTEXT} ${LIBUCONTEXT_POSIX} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
+ SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBNSL} ${LIBBIND} ${LIBICONV}
+- ${LIBSOCKET} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
++ ${LIBSOCKET} ${LIBUCONTEXT} ${LIBUCONTEXT_POSIX} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD})
+ #remove possible dups from required libraries
+ LIST(LENGTH CMAKE_REQUIRED_LIBRARIES rllength)
+ IF(${rllength} GREATER 0)
--- a/include/ma_config.h.in
+++ b/include/ma_config.h.in
-@@ -28,6 +28,7 @@
+@@ -29,6 +29,7 @@
#cmakedefine HAVE_SYS_UN_H 1
#cmakedefine HAVE_UNISTD_H 1
#cmakedefine HAVE_UCONTEXT_H 1
+#cmakedefine HAVE_LIBUCONTEXT_POSIX 1
+ #cmakedefine HAVE_BOOST_CONTEXT_H 1
/*
- * function definitions - processed in LibmysqlFunctions.txt
--- a/include/ma_context.h
+++ b/include/ma_context.h
-@@ -32,7 +32,7 @@
- #define MY_CONTEXT_USE_X86_64_GCC_ASM
- #elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__i386__)
- #define MY_CONTEXT_USE_I386_GCC_ASM
+@@ -61,7 +61,7 @@
+ #define MY_CONTEXT_USE_AARCH64_GCC_ASM
+ #elif defined(HAVE_BOOST_CONTEXT_H)
+ #define MY_CONTEXT_USE_BOOST_CONTEXT
-#elif defined(HAVE_UCONTEXT_H)
+#elif defined(HAVE_UCONTEXT_H) || defined(HAVE_LIBUCONTEXT_POSIX)
#define MY_CONTEXT_USE_UCONTEXT
--- /dev/null
+From b10b76e5a2b983d86bd487873608abce8e0d507b Mon Sep 17 00:00:00 2001
+Date: Wed, 12 Feb 2025 15:17:39 +0100
+Subject: [PATCH] Fix compilation with GCC 15
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+| In file included from /builddir/build/BUILD/mariadb-connector-c-3.4.3-build/mariadb-connector-c-3.4.3-src/plugins/auth/dialog.c:23:
+| /builddir/build/BUILD/mariadb-connector-c-3.4.3-build/mariadb-connector-c-3.4.3-src/include/ma_global.h:687:25: error: ‘bool’ cannot be defined via ‘typedef’
+| 687 | typedef char bool; /* Ordinary boolean values 0 1 */
+| | ^~~~
+| /builddir/build/BUILD/mariadb-connector-c-3.4.3-build/mariadb-connector-c-3.4.3-src/include/ma_global.h:687:25: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
+---
+ include/ma_global.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/ma_global.h
++++ b/include/ma_global.h
+@@ -683,7 +683,7 @@ typedef unsigned long size_s; /* Size of
+ typedef int myf; /* Type of MyFlags in my_funcs */
+ typedef char my_bool; /* Small bool */
+ typedef unsigned long long my_ulonglong;
+-#if !defined(bool) && !defined(bool_defined) && (!defined(HAVE_BOOL) || !defined(__cplusplus))
++#if !defined(bool) && !defined(bool_defined) && (!defined(HAVE_BOOL) || !defined(__cplusplus)) && (__STDC_VERSION__ < 202300L)
+ typedef char bool; /* Ordinary boolean values 0 1 */
+ #endif
+ /* Macros for converting *constants* to the right type */