aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-dbs/mysql
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-dbs/mysql')
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb-native_10.11.7.bb (renamed from meta-oe/recipes-dbs/mysql/mariadb-native_10.6.4.bb)5
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb.inc74
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch84
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch19
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-25785-Add-support-for-OpenSSL-3.0.patch381
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch170
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-Remove-the-compile_time_assert-lines.patch43
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch2
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch69
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch82
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch34
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/lfs64.patch21
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch2
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch2
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/run-ptest20
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch2
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb_10.11.7.bb63
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb_10.6.4.bb27
-rw-r--r--meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb4
19 files changed, 577 insertions, 527 deletions
diff --git a/meta-oe/recipes-dbs/mysql/mariadb-native_10.6.4.bb b/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.7.bb
index e38726d3f9..578357b480 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb-native_10.6.4.bb
+++ b/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.7.bb
@@ -2,7 +2,9 @@ require mariadb.inc
inherit native
PROVIDES += "mysql5-native"
-DEPENDS = "ncurses-native zlib-native bison-native libpcre2-native"
+DEPENDS = "ncurses-native zlib-native bison-native libpcre2-native \
+gnutls-native fmt-native \
+"
RDEPENDS:${PN} = ""
PACKAGES = ""
@@ -16,5 +18,6 @@ do_install() {
install -m 0755 sql/gen_lex_token ${D}${bindir}/
install -m 0755 extra/comp_err ${D}${bindir}/
install -m 0755 scripts/comp_sql ${D}${bindir}/
+ install -m 0755 strings/uca-dump ${D}${bindir}/
}
diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc
index 51e6ddbf71..33da32fb28 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -1,7 +1,7 @@
SUMMARY = "A robust, scalable, and reliable SQL server"
HOMEPAGE = "http://mariadb.org"
SECTION = "libs"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b1becf0cfa3366e0f4d854d1d264f311"
SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
@@ -12,7 +12,6 @@ SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
file://mysql-systemd-start \
file://configure.cmake-fix-valgrind.patch \
file://support-files-CMakeLists.txt-fix-do_populate_sysroot.patch \
- file://c11_atomics.patch \
file://fix-arm-atomic.patch \
file://0001-Fix-library-LZ4-lookup.patch \
file://0001-innobase-Define-__NR_futex-if-it-does-not-exist.patch \
@@ -20,11 +19,15 @@ SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
file://ssize_t.patch \
file://mm_malloc.patch \
file://sys_futex.patch \
- file://0001-MDEV-25785-Add-support-for-OpenSSL-3.0.patch \
+ file://cross-compiling.patch \
+ file://0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch \
+ file://lfs64.patch \
+ file://0001-Add-missing-includes-cstdint-and-cstdio.patch \
+ file://0001-Remove-the-compile_time_assert-lines.patch \
+ file://0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch \
"
SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch"
-
-SRC_URI[sha256sum] = "75bf9b147a95d38160d01a73b098d50a1960563b46d16a235971fff64d99643c"
+SRC_URI[sha256sum] = "5239a245ed90517e96396605cd01ccd8f73cd7442d1b3076b6ffe258110e5157"
UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases"
@@ -32,7 +35,7 @@ S = "${WORKDIR}/mariadb-${PV}"
BINCONFIG_GLOB = "mysql_config"
-inherit cmake gettext binconfig update-rc.d useradd systemd multilib_script
+inherit cmake gettext binconfig update-rc.d systemd multilib_script pkgconfig
MULTILIB_SCRIPTS = "${PN}-server:${bindir}/mariadbd-safe \
${PN}-setupdb:${bindir}/mariadb-install-db"
@@ -41,10 +44,6 @@ INITSCRIPT_PACKAGES = "${PN}-server ${PN}-setupdb"
INITSCRIPT_NAME:${PN}-server = "mysqld"
INITSCRIPT_PARAMS:${PN}-server ?= "start 45 5 . stop 45 0 6 1 ."
-USERADD_PACKAGES = "${PN}-setupdb"
-USERADD_PARAM:${PN}-setupdb = "--system --home-dir /var/mysql -g mysql --shell /bin/false mysql"
-GROUPADD_PARAM:${PN}-setupdb = "--system mysql"
-
INITSCRIPT_NAME:${PN}-setupdb = "install_db"
INITSCRIPT_PARAMS:${PN}-setupdb ?= "defaults 44 44"
@@ -62,20 +61,26 @@ FILES:${PN}-setupdb = "${sysconfdir}/init.d/install_db \
${bindir}/mysql-systemd-start \
"
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} lz4 openssl"
+EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'"
+
PACKAGECONFIG:class-native = ""
-PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam"
+PACKAGECONFIG[pam] = "-DPLUGIN_AUTH_PAM=YES,-DPLUGIN_AUTH_PAM=NO,libpam"
PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind"
PACKAGECONFIG[krb5] = ", ,krb5"
-PACKAGECONFIG[zstd] = "-DWITH_ROCKSDB_ZSTD=ON,-DWITH_ROCKSDB_ZSTD=OFF,zstd"
+PACKAGECONFIG[lz4] = ", ,lz4"
+PACKAGECONFIG[openssl] = "-DWITH_SSL='system',-DWITH_SSL='bundled',openssl"
# MariaDB doesn't link properly with gold
# https://mariadb.atlassian.net/browse/MDEV-5982
TARGET_CFLAGS += "-fuse-ld=bfd"
LDFLAGS += " -pthread"
+
BUILD_CFLAGS += "-fuse-ld=bfd"
BUILD_CXXFLAGS += "-fuse-ld=bfd"
+LDFLAGS:x86:toolchain-clang = "-latomic"
+
EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
-DWITH_JEMALLOC=no \
-DWITHOUT_TOKUDB=TRUE \
@@ -92,9 +97,10 @@ EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
-DINSTALL_SYSCONFDIR:PATH=${sysconfdir} \
-DMYSQL_DATADIR:PATH=/var/mysql \
-DCAT_EXECUTABLE=`which cat` \
+ -DSTACK_DIRECTION=1 \
+ -DHAVE_SYSTEM_LIBFMT_EXITCODE=0 \
-DCMAKE_AR:FILEPATH=${AR}"
-EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper "
# With Ninja it fails with:
# make: *** No rule to make target `install'. Stop.
@@ -103,6 +109,11 @@ OECMAKE_GENERATOR = "Unix Makefiles"
ARM_INSTRUCTION_SET:armv4 = "arm"
ARM_INSTRUCTION_SET:armv5 = "arm"
+do_compile:prepend:class-target () {
+ # remove the buildpath
+ sed -i -e "s:CMAKE_SYSROOT:CMAKE_SYSROOT_PLACE_HOLDER:g" ${S}/libmariadb/mariadb_config/mariadb_config.c.in
+}
+
do_configure:append() {
# handle distros with different values of ${libexecdir}
libexecdir2=`echo ${libexecdir} | sed -e 's+/usr/++g'`
@@ -118,18 +129,12 @@ do_generate_toolchain_file:append:class-native () {
sed -i "/set( CMAKE_SYSTEM_PROCESSOR/d" ${WORKDIR}/toolchain.cmake
}
-do_configure:prepend:class-target () {
- # Write out a qemu wrapper that will be used by cmake
- # so that it can run target helper binaries through that.
- qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
- cat > ${WORKDIR}/qemuwrapper << EOF
-#!/bin/sh
-$qemu_binary "\$@"
-EOF
- chmod +x ${WORKDIR}/qemuwrapper
-}
do_compile:prepend:class-target () {
+ # These need to be in-tree or make will think they need to be built,
+ # and since we're cross-compiling that is disabled
+ cp ${STAGING_BINDIR_NATIVE}/comp_err ${S}/extra
+ cp ${STAGING_BINDIR_NATIVE}/comp_sql ${S}/scripts
if [ "${@bb.utils.contains('PACKAGECONFIG', 'krb5', 'yes', 'no', d)}" = "no" ]; then
if ! [ -e ${B}/include/openssl/kssl.h ] ; then
mkdir -p ${B}/include/openssl
@@ -139,6 +144,7 @@ do_compile:prepend:class-target () {
echo "#endif" >>${B}/include/openssl/kssl.h
fi
fi
+ install -D ${RECIPE_SYSROOT_NATIVE}/usr/bin/uca-dump ${B}/strings/uca-dump
}
SYSROOT_PREPROCESS_FUNCS += "mariadb_sysroot_preprocess"
@@ -173,6 +179,13 @@ do_install() {
if [ -f ${D}${datadir}/doc/README ]; then
mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/
fi
+
+ # mini-benchmark used for Gitlab-CI to run on every commit to catch
+ # if there are severe performance regressions.
+ # remove it to avoid introducing bash dependency
+ if [ -f ${D}${datadir}/mysql/mini-benchmark ]; then
+ rm -rf ${D}${datadir}/mysql/mini-benchmark
+ fi
if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
pam_so=$(find ${D} -name pam_user_map.so)
if [ x"${pam_so}" != x ]; then
@@ -203,7 +216,7 @@ RDEPENDS:${PN}-client = "perl perl-module-getopt-long perl-module-file-temp \
RDEPENDS:${PN}-server = "perl perl-module-getopt-long perl-module-data-dumper \
perl-module-file-basename perl-module-file-path perl-module-sys-hostname \
perl-module-file-copy perl-module-file-temp perl-module-posix \
- ${PN}-client ${PN}-setupdb libdbi-perl libdbd-mysql-perl"
+ ${PN}-client ${PN}-setupdb libdbi-perl libdbd-mysql-perl lzo"
RDEPENDS:${PN}-leftovers = "perl perl-module-cwd perl-module-benchmark perl-module-getopt-long \
perl-module-posix perl-module-data-dumper perl-module-sigtrap perl-module-threads \
perl-module-threads-shared perl-module-io-socket perl-module-sys-hostname perl-module-file-copy \
@@ -215,6 +228,17 @@ RDEPENDS:${PN}-setupdb = "coreutils"
# Allow old code to link to the backward compatible library
RDEPENDS:libmysqlclient-dev = "libmysqlclient-r-dev"
+PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess"
+src_package_preprocess () {
+ # Trim build paths from comments in generated sources to ensure reproducibility
+ sed -i -e "s,${S}/sql/,,g" \
+ -e "s,${B}/sql/,,g" \
+ ${B}/sql/yy_oracle.hh \
+ ${B}/sql/yy_mariadb.cc \
+ ${B}/sql/yy_mariadb.hh \
+ ${B}/sql/yy_oracle.cc
+}
+
FILES:libmysqlclient = "\
${libdir}/libmysqlclient.so.* \
${libdir}/libmariadb.so.* \
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
new file mode 100644
index 0000000000..f8ccb998be
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
@@ -0,0 +1,84 @@
+From 68100b1f2243304289b9a9a35e8fb0e1bb0cf70f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 24 Jan 2023 21:40:43 -0800
+Subject: [PATCH] Add missing includes <cstdint> and <cstdio>
+
+This is needed with GCC 13 and newer [1]
+
+[1] https://www.gnu.org/software/gcc/gcc-13/porting_to.html
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ .../rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h | 1 +
+ storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h | 1 +
+ .../rocksdb/rocksdb/table/block_based/data_block_hash_index.h | 1 +
+ storage/rocksdb/rocksdb/util/slice.cc | 1 +
+ storage/rocksdb/rocksdb/util/string_util.h | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h b/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
+index 963c1d8e..73487edd 100644
+--- a/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
++++ b/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
+@@ -5,6 +5,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include "rocksdb/rocksdb_namespace.h"
+
+ struct CompactionIterationStats {
+diff --git a/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h b/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
+index c7f93b4c..3c2ab805 100644
+--- a/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
++++ b/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
+@@ -8,6 +8,7 @@
+ #pragma once
+ #ifndef ROCKSDB_LITE
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ #include "rocksdb/status.h"
+diff --git a/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h b/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
+index f356395f..32152217 100644
+--- a/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
++++ b/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
+@@ -5,6 +5,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+diff --git a/storage/rocksdb/rocksdb/util/slice.cc b/storage/rocksdb/rocksdb/util/slice.cc
+index 6db11cc9..c26b6a21 100644
+--- a/storage/rocksdb/rocksdb/util/slice.cc
++++ b/storage/rocksdb/rocksdb/util/slice.cc
+@@ -8,6 +8,7 @@
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+ #include <algorithm>
++#include <cstdint>
+ #include "rocksdb/slice_transform.h"
+ #include "rocksdb/slice.h"
+ #include "util/string_util.h"
+
+diff --git a/util/string_util.h b/util/string_util.h
+index 55d106fff02..11178fd1d7b 100644
+--- a/storage/rocksdb/rocksdb/util/string_util.h
++++ b/storage/rocksdb/rocksdb/util/string_util.h
+@@ -6,6 +6,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <sstream>
+ #include <string>
+ #include <unordered_map>
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch
index 0cf0560e11..d8671b76b0 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch
@@ -1,30 +1,33 @@
-From 1d7612b063eb1fc7bf97bc27b13e1de596748aa1 Mon Sep 17 00:00:00 2001
+From f15fbdf1244ca9ce01c5507660a86d685ed88bcf Mon Sep 17 00:00:00 2001
From: Sumit Garg <sumit.garg@linaro.org>
-Date: Wed, 8 Jan 2020 04:58:30 +0000
+Date: Mon, 21 Mar 2022 15:08:40 +0800
Subject: [PATCH] Fix library LZ4 lookup.
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
+Upstream-Status: Pending
+
cmake/FindLZ4.cmake | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/cmake/FindLZ4.cmake b/cmake/FindLZ4.cmake
-index e97dd63e2b0..2f4694e727c 100644
+index eebd859..094241c 100644
--- a/cmake/FindLZ4.cmake
+++ b/cmake/FindLZ4.cmake
@@ -1,5 +1,10 @@
--find_path(LZ4_INCLUDE_DIR NAMES lz4.h)
+-find_path(LZ4_INCLUDE_DIRS NAMES lz4.h)
-find_library(LZ4_LIBRARIES NAMES lz4)
+find_path(LZ4_INCLUDE_DIR
-+ NAMES lz4.h
++ NAMES lz4.h
+ NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
+
+find_library(LZ4_LIBRARIES
+ NAMES lz4
+ NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
- include(FindPackageHandleStandardArgs)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+ if(LZ4_INCLUDE_DIRS AND EXISTS "${LZ4_INCLUDE_DIRS}/lz4.h")
+ file(STRINGS "${LZ4_INCLUDE_DIRS}/lz4.h" LZ4_H REGEX "^#define LZ4_VERSION_[MR]")
--
-2.17.1
+2.25.1
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-25785-Add-support-for-OpenSSL-3.0.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-25785-Add-support-for-OpenSSL-3.0.patch
deleted file mode 100644
index ab6811c0f5..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-25785-Add-support-for-OpenSSL-3.0.patch
+++ /dev/null
@@ -1,381 +0,0 @@
-From 1b238e343506b43825092941d4cd294d9b866bef Mon Sep 17 00:00:00 2001
-From: Vladislav Vaintroub <wlad@mariadb.com>
-Date: Mon, 8 Nov 2021 18:48:19 +0100
-Subject: [PATCH] MDEV-25785 Add support for OpenSSL 3.0
-
-Summary of changes
-
-- MD_CTX_SIZE is increased
-
-- EVP_CIPHER_CTX_buf_noconst(ctx) does not work anymore, points
- to nobody knows where. The assumption made previously was that
- (since the function does not seem to be documented)
- was that it points to the last partial source block.
- Add own partial block buffer for NOPAD encryption instead
-
-- SECLEVEL in CipherString in openssl.cnf
- had been downgraded to 0, from 1, to make TLSv1.0 and TLSv1.1 possible
- (according to https://github.com/openssl/openssl/blob/openssl-3.0.0/NEWS.md
- even though the manual for SSL_CTX_get_security_level claims that it
- should not be necessary)
-
-- Workaround Ssl_cipher_list issue, it now returns TLSv1.3 ciphers,
- in addition to what was set in --ssl-cipher
-
-- ctx_buf buffer now must be aligned to 16 bytes with openssl(
- previously with WolfSSL only), ot crashes will happen
-
-- updated aes-t , to be better debuggable
- using function, rather than a huge multiline macro
- added test that does "nopad" encryption piece-wise, to test
- replacement of EVP_CIPHER_CTX_buf_noconst
-
-Upstream-Status: Backport [https://github.com/MariaDB/server/commit/1b238e343506b43825092941d4cd294d9b866bef]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- cmake/ssl.cmake | 8 ++
- include/ssl_compat.h | 3 +-
- mysql-test/lib/openssl.cnf | 2 +-
- mysql-test/main/ssl_cipher.result | 6 +-
- mysql-test/main/ssl_cipher.test | 2 +-
- mysys_ssl/my_crypt.cc | 46 +++++++-----
- unittest/mysys/aes-t.c | 121 ++++++++++++++++++++++--------
- 7 files changed, 133 insertions(+), 55 deletions(-)
-
-diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake
-index 7c2488be8bd..1bd46bc0f39 100644
---- a/cmake/ssl.cmake
-+++ b/cmake/ssl.cmake
-@@ -139,6 +139,13 @@ MACRO (MYSQL_CHECK_SSL)
- SET(SSL_INTERNAL_INCLUDE_DIRS "")
- SET(SSL_DEFINES "-DHAVE_OPENSSL")
-
-+ # Silence "deprecated in OpenSSL 3.0"
-+ IF((NOT OPENSSL_VERSION) # 3.0 not determined by older cmake
-+ OR NOT(OPENSSL_VERSION VERSION_LESS "3.0.0"))
-+ SET(SSL_DEFINES "${SSL_DEFINES} -DOPENSSL_API_COMPAT=0x10100000L")
-+ SET(CMAKE_REQUIRED_DEFINITIONS -DOPENSSL_API_COMPAT=0x10100000L)
-+ ENDIF()
-+
- SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
- SET(CMAKE_REQUIRED_LIBRARIES ${SSL_LIBRARIES})
- SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
-@@ -152,6 +159,7 @@ MACRO (MYSQL_CHECK_SSL)
- HAVE_X509_check_host)
- SET(CMAKE_REQUIRED_INCLUDES)
- SET(CMAKE_REQUIRED_LIBRARIES)
-+ SET(CMAKE_REQUIRED_DEFINITIONS)
- ELSE()
- IF(WITH_SSL STREQUAL "system")
- MESSAGE(FATAL_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support")
-diff --git a/include/ssl_compat.h b/include/ssl_compat.h
-index 9f4b6be8d95..affa9f2a448 100644
---- a/include/ssl_compat.h
-+++ b/include/ssl_compat.h
-@@ -24,7 +24,7 @@
- #define SSL_LIBRARY OpenSSL_version(OPENSSL_VERSION)
- #define ERR_remove_state(X) ERR_clear_error()
- #define EVP_CIPHER_CTX_SIZE 176
--#define EVP_MD_CTX_SIZE 48
-+#define EVP_MD_CTX_SIZE 72
- #undef EVP_MD_CTX_init
- #define EVP_MD_CTX_init(X) do { memset((X), 0, EVP_MD_CTX_SIZE); EVP_MD_CTX_reset(X); } while(0)
- #undef EVP_CIPHER_CTX_init
-@@ -74,7 +74,6 @@
- #endif
-
- #define DH_set0_pqg(D,P,Q,G) ((D)->p= (P), (D)->g= (G))
--#define EVP_CIPHER_CTX_buf_noconst(ctx) ((ctx)->buf)
- #define EVP_CIPHER_CTX_encrypting(ctx) ((ctx)->encrypt)
- #define EVP_CIPHER_CTX_SIZE sizeof(EVP_CIPHER_CTX)
-
-diff --git a/mysql-test/lib/openssl.cnf b/mysql-test/lib/openssl.cnf
-index b9ab37ac3a1..7cd6f748af2 100644
---- a/mysql-test/lib/openssl.cnf
-+++ b/mysql-test/lib/openssl.cnf
-@@ -9,4 +9,4 @@ ssl_conf = ssl_section
- system_default = system_default_section
-
- [system_default_section]
--CipherString = ALL:@SECLEVEL=1
-+CipherString = ALL:@SECLEVEL=0
-diff --git a/mysql-test/main/ssl_cipher.result b/mysql-test/main/ssl_cipher.result
-index 930d384eda9..66d817b7b41 100644
---- a/mysql-test/main/ssl_cipher.result
-+++ b/mysql-test/main/ssl_cipher.result
-@@ -61,8 +61,8 @@ connect ssl_con,localhost,root,,,,,SSL;
- SHOW STATUS LIKE 'Ssl_cipher';
- Variable_name Value
- Ssl_cipher AES128-SHA
--SHOW STATUS LIKE 'Ssl_cipher_list';
--Variable_name Value
--Ssl_cipher_list AES128-SHA
-+SELECT VARIABLE_VALUE like '%AES128-SHA%' FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher_list';
-+VARIABLE_VALUE like '%AES128-SHA%'
-+1
- disconnect ssl_con;
- connection default;
-diff --git a/mysql-test/main/ssl_cipher.test b/mysql-test/main/ssl_cipher.test
-index 36549d76d02..d4cdcffb276 100644
---- a/mysql-test/main/ssl_cipher.test
-+++ b/mysql-test/main/ssl_cipher.test
-@@ -98,6 +98,6 @@ let $restart_parameters=--ssl-cipher=AES128-SHA;
- source include/restart_mysqld.inc;
- connect (ssl_con,localhost,root,,,,,SSL);
- SHOW STATUS LIKE 'Ssl_cipher';
--SHOW STATUS LIKE 'Ssl_cipher_list';
-+SELECT VARIABLE_VALUE like '%AES128-SHA%' FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher_list';
- disconnect ssl_con;
- connection default;
-diff --git a/mysys_ssl/my_crypt.cc b/mysys_ssl/my_crypt.cc
-index e512eee9066..4d7ebc7bd27 100644
---- a/mysys_ssl/my_crypt.cc
-+++ b/mysys_ssl/my_crypt.cc
-@@ -29,11 +29,7 @@
- #include <ssl_compat.h>
- #include <cstdint>
-
--#ifdef HAVE_WOLFSSL
- #define CTX_ALIGN 16
--#else
--#define CTX_ALIGN 0
--#endif
-
- class MyCTX
- {
-@@ -100,8 +96,9 @@ class MyCTX_nopad : public MyCTX
- {
- public:
- const uchar *key;
-- uint klen, buf_len;
-+ uint klen, source_tail_len;
- uchar oiv[MY_AES_BLOCK_SIZE];
-+ uchar source_tail[MY_AES_BLOCK_SIZE];
-
- MyCTX_nopad() : MyCTX() { }
- ~MyCTX_nopad() { }
-@@ -112,7 +109,7 @@ class MyCTX_nopad : public MyCTX
- compile_time_assert(MY_AES_CTX_SIZE >= sizeof(MyCTX_nopad));
- this->key= key;
- this->klen= klen;
-- this->buf_len= 0;
-+ this->source_tail_len= 0;
- if (ivlen)
- memcpy(oiv, iv, ivlen);
- DBUG_ASSERT(ivlen == 0 || ivlen == sizeof(oiv));
-@@ -123,26 +120,41 @@ class MyCTX_nopad : public MyCTX
- return res;
- }
-
-+ /** Update last partial source block, stored in source_tail array. */
-+ void update_source_tail(const uchar* src, uint slen)
-+ {
-+ if (!slen)
-+ return;
-+ uint new_tail_len= (source_tail_len + slen) % MY_AES_BLOCK_SIZE;
-+ if (new_tail_len)
-+ {
-+ if (slen + source_tail_len < MY_AES_BLOCK_SIZE)
-+ {
-+ memcpy(source_tail + source_tail_len, src, slen);
-+ }
-+ else
-+ {
-+ DBUG_ASSERT(slen > new_tail_len);
-+ memcpy(source_tail, src + slen - new_tail_len, new_tail_len);
-+ }
-+ }
-+ source_tail_len= new_tail_len;
-+ }
-+
- int update(const uchar *src, uint slen, uchar *dst, uint *dlen)
- {
-- buf_len+= slen;
-+ update_source_tail(src, slen);
- return MyCTX::update(src, slen, dst, dlen);
- }
-
- int finish(uchar *dst, uint *dlen)
- {
-- buf_len %= MY_AES_BLOCK_SIZE;
-- if (buf_len)
-+ if (source_tail_len)
- {
-- uchar *buf= EVP_CIPHER_CTX_buf_noconst(ctx);
- /*
- Not much we can do, block ciphers cannot encrypt data that aren't
- a multiple of the block length. At least not without padding.
- Let's do something CTR-like for the last partial block.
--
-- NOTE this assumes that there are only buf_len bytes in the buf.
-- If OpenSSL will change that, we'll need to change the implementation
-- of this class too.
- */
- uchar mask[MY_AES_BLOCK_SIZE];
- uint mlen;
-@@ -154,10 +166,10 @@ class MyCTX_nopad : public MyCTX
- return rc;
- DBUG_ASSERT(mlen == sizeof(mask));
-
-- for (uint i=0; i < buf_len; i++)
-- dst[i]= buf[i] ^ mask[i];
-+ for (uint i=0; i < source_tail_len; i++)
-+ dst[i]= source_tail[i] ^ mask[i];
- }
-- *dlen= buf_len;
-+ *dlen= source_tail_len;
- return MY_AES_OK;
- }
- };
-diff --git a/unittest/mysys/aes-t.c b/unittest/mysys/aes-t.c
-index 34704e06749..cbec2760941 100644
---- a/unittest/mysys/aes-t.c
-+++ b/unittest/mysys/aes-t.c
-@@ -21,27 +21,96 @@
- #include <string.h>
- #include <ctype.h>
-
--#define DO_TEST(mode, nopad, slen, fill, dlen, hash) \
-- SKIP_BLOCK_IF(mode == 0xDEADBEAF, nopad ? 4 : 5, #mode " not supported") \
-- { \
-- memset(src, fill, src_len= slen); \
-- ok(my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_ENCRYPT, \
-- src, src_len, dst, &dst_len, \
-- key, sizeof(key), iv, sizeof(iv)) == MY_AES_OK, \
-- "encrypt " #mode " %u %s", src_len, nopad ? "nopad" : "pad"); \
-- if (!nopad) \
-- ok (dst_len == my_aes_get_size(mode, src_len), "my_aes_get_size");\
-- my_md5(md5, (char*)dst, dst_len); \
-- ok(dst_len == dlen && memcmp(md5, hash, sizeof(md5)) == 0, "md5"); \
-- ok(my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_DECRYPT, \
-- dst, dst_len, ddst, &ddst_len, \
-- key, sizeof(key), iv, sizeof(iv)) == MY_AES_OK, \
-- "decrypt " #mode " %u", dst_len); \
-- ok(ddst_len == src_len && memcmp(src, ddst, src_len) == 0, "memcmp"); \
-+
-+/** Test streaming encryption, bytewise update.*/
-+static int aes_crypt_bytewise(enum my_aes_mode mode, int flags, const unsigned char *src,
-+ unsigned int slen, unsigned char *dst, unsigned int *dlen,
-+ const unsigned char *key, unsigned int klen,
-+ const unsigned char *iv, unsigned int ivlen)
-+{
-+ /* Allocate context on odd address on stack, in order to
-+ catch misalignment errors.*/
-+ void *ctx= (char *)alloca(MY_AES_CTX_SIZE+1)+1;
-+
-+ int res1, res2;
-+ uint d1= 0, d2;
-+ uint i;
-+
-+ if ((res1= my_aes_crypt_init(ctx, mode, flags, key, klen, iv, ivlen)))
-+ return res1;
-+ for (i= 0; i < slen; i++)
-+ {
-+ uint tmp_d1=0;
-+ res1= my_aes_crypt_update(ctx, src+i,1, dst, &tmp_d1);
-+ if (res1)
-+ return res1;
-+ d1+= tmp_d1;
-+ dst+= tmp_d1;
-+ }
-+ res2= my_aes_crypt_finish(ctx, dst, &d2);
-+ *dlen= d1 + d2;
-+ return res1 ? res1 : res2;
-+}
-+
-+
-+#ifndef HAVE_EncryptAes128Ctr
-+const uint MY_AES_CTR=0xDEADBEAF;
-+#endif
-+#ifndef HAVE_EncryptAes128Gcm
-+const uint MY_AES_GCM=0xDEADBEAF;
-+#endif
-+
-+#define MY_AES_UNSUPPORTED(x) (x == 0xDEADBEAF)
-+
-+static void do_test(uint mode, const char *mode_str, int nopad, uint slen,
-+ char fill, size_t dlen, const char *hash)
-+{
-+ uchar key[16]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6};
-+ uchar iv[16]= {2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7};
-+ uchar src[1000], dst[1100], dst2[1100], ddst[1000];
-+ uchar md5[MY_MD5_HASH_SIZE];
-+ uint src_len, dst_len, dst_len2, ddst_len;
-+ int result;
-+
-+ if (MY_AES_UNSUPPORTED(mode))
-+ {
-+ skip(nopad?7:6, "%s not supported", mode_str);
-+ return;
-+ }
-+ memset(src, fill, src_len= slen);
-+ result= my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_ENCRYPT, src, src_len,
-+ dst, &dst_len, key, sizeof(key), iv, sizeof(iv));
-+ ok(result == MY_AES_OK, "encrypt %s %u %s", mode_str, src_len,
-+ nopad ? "nopad" : "pad");
-+
-+ if (nopad)
-+ {
-+ result= aes_crypt_bytewise(mode, nopad | ENCRYPTION_FLAG_ENCRYPT, src,
-+ src_len, dst2, &dst_len2, key, sizeof(key),
-+ iv, sizeof(iv));
-+ ok(result == MY_AES_OK, "encrypt bytewise %s %u", mode_str, src_len);
-+ /* Compare with non-bytewise encryption result*/
-+ ok(dst_len == dst_len2 && memcmp(dst, dst2, dst_len) == 0,
-+ "memcmp bytewise %s %u", mode_str, src_len);
-+ }
-+ else
-+ {
-+ int dst_len_real= my_aes_get_size(mode, src_len);
-+ ok(dst_len_real= dst_len, "my_aes_get_size");
- }
-+ my_md5(md5, (char *) dst, dst_len);
-+ ok(dst_len == dlen, "md5 len");
-+ ok(memcmp(md5, hash, sizeof(md5)) == 0, "md5");
-+ result= my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_DECRYPT,
-+ dst, dst_len, ddst, &ddst_len, key, sizeof(key), iv,
-+ sizeof(iv));
-+
-+ ok(result == MY_AES_OK, "decrypt %s %u", mode_str, dst_len);
-+ ok(ddst_len == src_len && memcmp(src, ddst, src_len) == 0, "memcmp");
-+}
-
--#define DO_TEST_P(M,S,F,D,H) DO_TEST(M,0,S,F,D,H)
--#define DO_TEST_N(M,S,F,D,H) DO_TEST(M,ENCRYPTION_FLAG_NOPAD,S,F,D,H)
-+#define DO_TEST_P(M, S, F, D, H) do_test(M, #M, 0, S, F, D, H)
-+#define DO_TEST_N(M, S, F, D, H) do_test(M, #M, ENCRYPTION_FLAG_NOPAD, S, F, D, H)
-
- /* useful macro for debugging */
- #define PRINT_MD5() \
-@@ -53,25 +122,15 @@
- printf("\"\n"); \
- } while(0);
-
--#ifndef HAVE_EncryptAes128Ctr
--const uint MY_AES_CTR=0xDEADBEAF;
--#endif
--#ifndef HAVE_EncryptAes128Gcm
--const uint MY_AES_GCM=0xDEADBEAF;
--#endif
-
- int
- main(int argc __attribute__((unused)),char *argv[])
- {
-- uchar key[16]= {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6};
-- uchar iv[16]= {2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7};
-- uchar src[1000], dst[1100], ddst[1000];
-- uchar md5[MY_MD5_HASH_SIZE];
-- uint src_len, dst_len, ddst_len;
-
- MY_INIT(argv[0]);
-
-- plan(87);
-+ plan(122);
-+
- DO_TEST_P(MY_AES_ECB, 200, '.', 208, "\xd8\x73\x8e\x3a\xbc\x66\x99\x13\x7f\x90\x23\x52\xee\x97\x6f\x9a");
- DO_TEST_P(MY_AES_ECB, 128, '?', 144, "\x19\x58\x33\x85\x4c\xaa\x7f\x06\xd1\xb2\xec\xd7\xb7\x6a\xa9\x5b");
- DO_TEST_P(MY_AES_CBC, 159, '%', 160, "\x4b\x03\x18\x3d\xf1\xa7\xcd\xa1\x46\xb3\xc6\x8a\x92\xc0\x0f\xc9");
---
-2.17.1
-
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch
new file mode 100644
index 0000000000..3e42535dad
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch
@@ -0,0 +1,170 @@
+From dae52f5916ef59434c93f0b716270f59dd0c3a94 Mon Sep 17 00:00:00 2001
+From: Jan Tojnar <jtojnar@gmail.com>
+Date: Sun, 7 Jan 2024 10:19:54 +0100
+Subject: [PATCH] MDEV-33439 Fix build with libxml2 2.12
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+libxml2 2.12.0 made `xmlGetLastError()` return `const` pointer:
+
+https://gitlab.gnome.org/GNOME/libxml2/-/commit/61034116d0a3c8b295c6137956adc3ae55720711
+
+Clang 16 does not like this:
+
+ error: assigning to 'xmlErrorPtr' (aka '_xmlError *') from 'const xmlError *' (aka 'const _xmlError *') discards qualifiers
+ error: cannot initialize a variable of type 'xmlErrorPtr' (aka '_xmlError *') with an rvalue of type 'const xmlError *' (aka 'const _xmlError *')
+
+Let’s update the variables to `const`.
+For older versions, it will be automatically converted.
+
+But then `xmlResetError(xmlError*)` will not like the `const` pointer:
+
+ error: no matching function for call to 'xmlResetError'
+ note: candidate function not viable: 1st argument ('const xmlError *' (aka 'const _xmlError *')) would lose const qualifier
+
+Let’s replace it with `xmlResetLastError()`.
+
+ALso remove `LIBXMLDOC::Xerr` protected member property.
+It was introduced in 65b0e5455b547a3d574fa77b34cce23ae3bea0a0
+along with the `xmlResetError` calls.
+It does not appear to be used for anything.
+
+Upstream-Status: Backport [https://github.com/MariaDB/server/pull/2983]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ storage/connect/libdoc.cpp | 39 +++++++++++++++++++-------------------
+ 1 file changed, 19 insertions(+), 20 deletions(-)
+
+diff --git a/storage/connect/libdoc.cpp b/storage/connect/libdoc.cpp
+index 67f22ce2..ab588dd4 100644
+--- a/storage/connect/libdoc.cpp
++++ b/storage/connect/libdoc.cpp
+@@ -93,7 +93,6 @@ class LIBXMLDOC : public XMLDOCUMENT {
+ xmlXPathContextPtr Ctxp;
+ xmlXPathObjectPtr Xop;
+ xmlXPathObjectPtr NlXop;
+- xmlErrorPtr Xerr;
+ char *Buf; // Temporary
+ bool Nofreelist;
+ }; // end of class LIBXMLDOC
+@@ -327,7 +326,6 @@ LIBXMLDOC::LIBXMLDOC(char *nsl, char *nsdf, char *enc, PFBLOCK fp)
+ Ctxp = NULL;
+ Xop = NULL;
+ NlXop = NULL;
+- Xerr = NULL;
+ Buf = NULL;
+ Nofreelist = false;
+ } // end of LIBXMLDOC constructor
+@@ -365,8 +363,8 @@ bool LIBXMLDOC::ParseFile(PGLOBAL g, char *fn)
+ Encoding = (char*)Docp->encoding;
+
+ return false;
+- } else if ((Xerr = xmlGetLastError()))
+- xmlResetError(Xerr);
++ } else if (xmlGetLastError())
++ xmlResetLastError();
+
+ return true;
+ } // end of ParseFile
+@@ -505,9 +503,9 @@ int LIBXMLDOC::DumpDoc(PGLOBAL g, char *ofn)
+ #if 1
+ // This function does not crash (
+ if (xmlSaveFormatFileEnc((const char *)ofn, Docp, Encoding, 0) < 0) {
+- xmlErrorPtr err = xmlGetLastError();
++ const xmlError *err = xmlGetLastError();
+ strcpy(g->Message, (err) ? err->message : "Error saving XML doc");
+- xmlResetError(Xerr);
++ xmlResetLastError();
+ rc = -1;
+ } // endif Save
+ // rc = xmlDocDump(of, Docp);
+@@ -546,8 +544,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
+ if (Nlist) {
+ xmlXPathFreeNodeSet(Nlist);
+
+- if ((Xerr = xmlGetLastError()))
+- xmlResetError(Xerr);
++ if (xmlGetLastError())
++ xmlResetLastError();
+
+ Nlist = NULL;
+ } // endif Nlist
+@@ -555,8 +553,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
+ if (Xop) {
+ xmlXPathFreeObject(Xop);
+
+- if ((Xerr = xmlGetLastError()))
+- xmlResetError(Xerr);
++ if (xmlGetLastError())
++ xmlResetLastError();
+
+ Xop = NULL;
+ } // endif Xop
+@@ -564,8 +562,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
+ if (NlXop) {
+ xmlXPathFreeObject(NlXop);
+
+- if ((Xerr = xmlGetLastError()))
+- xmlResetError(Xerr);
++ if (xmlGetLastError())
++ xmlResetLastError();
+
+ NlXop = NULL;
+ } // endif NlXop
+@@ -573,8 +571,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
+ if (Ctxp) {
+ xmlXPathFreeContext(Ctxp);
+
+- if ((Xerr = xmlGetLastError()))
+- xmlResetError(Xerr);
++ if (xmlGetLastError())
++ xmlResetLastError();
+
+ Ctxp = NULL;
+ } // endif Ctxp
+@@ -590,6 +588,7 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
+ /******************************************************************/
+ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp)
+ {
++ const xmlError *xerr;
+ xmlNodeSetPtr nl;
+
+ if (trace(1))
+@@ -649,11 +648,11 @@ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp)
+ } else
+ xmlXPathFreeObject(Xop); // Caused node not found
+
+- if ((Xerr = xmlGetLastError())) {
+- strcpy(g->Message, Xerr->message);
+- xmlResetError(Xerr);
++ if ((xerr = xmlGetLastError())) {
++ strcpy(g->Message, xerr->message);
++ xmlResetLastError();
+ return NULL;
+- } // endif Xerr
++ } // endif xerr
+
+ } // endif Xop
+
+@@ -1079,7 +1078,7 @@ void XML2NODE::AddText(PGLOBAL g, PCSZ txtp)
+ /******************************************************************/
+ void XML2NODE::DeleteChild(PGLOBAL g, PXNODE dnp)
+ {
+- xmlErrorPtr xerr;
++ const xmlError *xerr;
+
+ if (trace(1))
+ htrc("DeleteChild: node=%p\n", dnp);
+@@ -1122,7 +1121,7 @@ void XML2NODE::DeleteChild(PGLOBAL g, PXNODE dnp)
+ if (trace(1))
+ htrc("DeleteChild: errmsg=%-.256s\n", xerr->message);
+
+- xmlResetError(xerr);
++ xmlResetLastError();
+ } // end of DeleteChild
+
+ /* -------------------- class XML2NODELIST ---------------------- */
+--
+2.44.0
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-Remove-the-compile_time_assert-lines.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-Remove-the-compile_time_assert-lines.patch
new file mode 100644
index 0000000000..9a6e28297b
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-Remove-the-compile_time_assert-lines.patch
@@ -0,0 +1,43 @@
+From cc5f1d0759b367265a1a000287e2ec15c31eb518 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 26 Feb 2024 14:56:02 +0800
+Subject: [PATCH] Remove the compile_time_assert lines
+
+Remove the problematic compile_time_assert lines to fix the below build
+failure on 32-bit arm.
+ In file included from TOPDIR/build/tmp/work/cortexa15t2hf-neon-yoe-linux-gnueabi/mariadb/10.11.7/mariadb-10.11.7/tests/mysql_client_test.c:38:
+ TOPDIR/build/tmp/work/cortexa15t2hf-neon-yoe-linux-gnueabi/mariadb/10.11.7/mariadb-10.11.7/tests/mysql_client_fw.c:1438:3: error: 'compile_time_assert' declared as an array with a negative size
+ 1438 | compile_time_assert(sizeof(MYSQL) == 77*sizeof(void*)+656);
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Inappropriate [Upstream will bring the asset back
+ in a new way [1]]
+[1] https://jira.mariadb.org/browse/MDEV-33429
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ tests/mysql_client_fw.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/tests/mysql_client_fw.c b/tests/mysql_client_fw.c
+index c9e64678..5c0c7ce2 100644
+--- a/tests/mysql_client_fw.c
++++ b/tests/mysql_client_fw.c
+@@ -1430,14 +1430,6 @@ int main(int argc, char **argv)
+ tests_to_run[i]= NULL;
+ }
+
+-#ifdef _WIN32
+- /* must be the same in C/C and embedded, 1208 on 64bit, 968 on 32bit */
+- compile_time_assert(sizeof(MYSQL) == 60*sizeof(void*)+728);
+-#else
+- /* must be the same in C/C and embedded, 1272 on 64bit, 964 on 32bit */
+- compile_time_assert(sizeof(MYSQL) == 77*sizeof(void*)+656);
+-#endif
+-
+ if (mysql_server_init(embedded_server_arg_count,
+ embedded_server_args,
+ (char**) embedded_server_groups))
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch
index 6ed174113b..aba9b9d966 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch
@@ -13,6 +13,8 @@ tpool/aio_linux.cc:63:20: error: '__NR_io_getevents' was not declared in this sc
Upstream-Staus: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
tpool/aio_linux.cc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch
new file mode 100644
index 0000000000..456a2bad64
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch
@@ -0,0 +1,69 @@
+From f92f657973997df30afdb0032c88ad3a14ead46b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 23 Sep 2022 15:48:21 +0800
+Subject: [PATCH] sql/CMakeLists.txt: fix gen_lex_hash not found
+
+Fix the below do_compile issue in cross-compiling env.
+| make[2]: *** No rule to make target '/build/tmp/work/aarch64-poky-linux/mariadb/10.3.13-r0/mariadb-10.3.13/sql/gen_lex_hash', needed by 'sql/lex_hash.h'. Stop.
+| make[2]: *** No rule to make target '/build/tmp/work/aarch64-poky-linux/mariadb/10.3.13-r0/mariadb-10.3.13/sql/gen_lex_token', needed by 'sql/lex_token.h'. Stop.
+
+Upstream-Status: Inappropriate [oe build specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ sql/CMakeLists.txt | 30 ++++++++++++++++++++++--------
+ 1 file changed, 22 insertions(+), 8 deletions(-)
+
+diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
+index 241b482..27a3991 100644
+--- a/sql/CMakeLists.txt
++++ b/sql/CMakeLists.txt
+@@ -60,11 +60,18 @@ ${CMAKE_BINARY_DIR}/sql
+ ${CMAKE_SOURCE_DIR}/tpool
+ )
+
+-ADD_CUSTOM_COMMAND(
+- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h
+- COMMAND gen_lex_token > lex_token.h
+- DEPENDS gen_lex_token
++IF(NOT CMAKE_CROSSCOMPILING)
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h
++ COMMAND gen_lex_token > lex_token.h
++ DEPENDS gen_lex_token
++)
++ELSE()
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h
++ COMMAND gen_lex_token > lex_token.h
+ )
++ENDIF()
+
+ FIND_PACKAGE(BISON 2.4)
+
+@@ -372,11 +379,18 @@ IF(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
+ ADD_EXECUTABLE(gen_lex_hash gen_lex_hash.cc)
+ ENDIF()
+
+-ADD_CUSTOM_COMMAND(
+- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h
+- COMMAND gen_lex_hash > lex_hash.h
+- DEPENDS gen_lex_hash
++IF(NOT CMAKE_CROSSCOMPILING)
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h
++ COMMAND gen_lex_hash > lex_hash.h
++ DEPENDS gen_lex_hash
++)
++ELSE()
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h
++ COMMAND gen_lex_hash > lex_hash.h
+ )
++ENDIF()
+
+ MYSQL_ADD_EXECUTABLE(mariadb-tzinfo-to-sql tztime.cc)
+ SET_TARGET_PROPERTIES(mariadb-tzinfo-to-sql PROPERTIES COMPILE_FLAGS "-DTZINFO2SQL")
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch b/meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch
deleted file mode 100644
index 1c76ab3918..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 976468458d53d8bb71acf48ddfc852a60557acb9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= <vicentiu@mariadb.org>
-Date: Thu, 23 Jul 2020 00:02:21 -0700
-Subject: [PATCH] Link with libatomic to enable C11 atomics support
-
- Some architectures (mips) require libatomic to support proper
- atomic operations. Check first if support is available without
- linking, otherwise use the library.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- configure.cmake | 20 +++++++++++++++++++-
- mysys/CMakeLists.txt | 4 ++++
- sql/CMakeLists.txt | 4 ++++
- 3 files changed, 27 insertions(+), 1 deletion(-)
-
-diff --git a/configure.cmake b/configure.cmake
-index 4fc324a9..23a2ea91 100644
---- a/configure.cmake
-+++ b/configure.cmake
-@@ -862,7 +862,25 @@ int main()
- long long int *ptr= &var;
- return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
- }"
--HAVE_GCC_C11_ATOMICS)
-+HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
-+IF (HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
-+ SET(HAVE_GCC_C11_ATOMICS True)
-+ELSE()
-+ SET(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
-+ LIST(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
-+ CHECK_CXX_SOURCE_COMPILES("
-+ int main()
-+ {
-+ long long int var= 1;
-+ long long int *ptr= &var;
-+ return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
-+ }"
-+ HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
-+ IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
-+ SET(HAVE_GCC_C11_ATOMICS True)
-+ ENDIF()
-+ SET(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
-+ENDIF()
-
- IF(WITH_VALGRIND)
- SET(HAVE_valgrind 1)
-diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt
-index 6aab788f..91b9c393 100644
---- a/mysys/CMakeLists.txt
-+++ b/mysys/CMakeLists.txt
-@@ -154,6 +154,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY}
- ${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO})
- DTRACE_INSTRUMENT(mysys)
-
-+IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
-+ TARGET_LINK_LIBRARIES(mysys atomic)
-+ENDIF()
-+
- IF(HAVE_BFD_H)
- TARGET_LINK_LIBRARIES(mysys bfd)
- ENDIF(HAVE_BFD_H)
-diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
-index b9cd418f..d42e5017 100644
---- a/sql/CMakeLists.txt
-+++ b/sql/CMakeLists.txt
-@@ -222,6 +222,10 @@ ELSE()
- SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL})
- ENDIF()
-
-+IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
-+ TARGET_LINK_LIBRARIES(sql atomic)
-+ENDIF()
-+
- IF(MSVC OR CMAKE_SYSTEM_NAME MATCHES AIX)
- SET(libs_to_export_symbols sql mysys dbug strings)
- # Create shared library of already compiled object
---
-2.25.1
-
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch b/meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch
new file mode 100644
index 0000000000..d0d6e3c730
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch
@@ -0,0 +1,34 @@
+From 80be37351d995654f86b838f6b5ed47e8a90261b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 23 Sep 2022 12:05:17 +0800
+Subject: [PATCH] CMakeLists.txt: not include import_executables.cmake
+
+building failed since native does not generate import_executables.cmake
+In fact, our building system will export the needed commands.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ CMakeLists.txt | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f9e2b1b..34924ba 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -394,11 +394,6 @@ CHECK_LIBFMT()
+ ADD_SUBDIRECTORY(tpool)
+ CHECK_SYSTEMD()
+
+-IF(CMAKE_CROSSCOMPILING AND NOT DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
+- SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Path to import_executables.cmake from a native build")
+- INCLUDE(${IMPORT_EXECUTABLES})
+-ENDIF()
+-
+ #
+ # Setup maintainer mode options. Platform checks are
+ # not run with the warning options as to not perturb fragile checks
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/lfs64.patch b/meta-oe/recipes-dbs/mysql/mariadb/lfs64.patch
new file mode 100644
index 0000000000..7a685a6521
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/lfs64.patch
@@ -0,0 +1,21 @@
+Upstream-Status: Pending
+
+--- a/storage/connect/os.h
++++ b/storage/connect/os.h
+@@ -2,13 +2,15 @@
+ #ifndef _OS_H_INCLUDED
+ #define _OS_H_INCLUDED
+
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
++#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__))
+ typedef off_t off64_t;
+ #define lseek64(fd, offset, whence) lseek((fd), (offset), (whence))
+ #define open64(path, flags, mode) open((path), (flags), (mode))
+ #define ftruncate64(fd, length) ftruncate((fd), (length))
++#ifndef O_LARGEFILE
+ #define O_LARGEFILE 0
+ #endif
++#endif
+
+ #ifdef _AIX
+ #ifndef O_LARGEFILE
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch b/meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch
index 347fcd8516..6aa6c84882 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/storage/rocksdb/rocksdb/port/jemalloc_helper.h
+++ b/storage/rocksdb/rocksdb/port/jemalloc_helper.h
@@ -5,7 +5,7 @@
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch b/meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch
index a4deee6070..3787b74ad1 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Remove glibc specific function dependencies
Sourced from: https://git.alpinelinux.org/aports/tree/main/mariadb/ppc-remove-glibc-dep.patch
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/run-ptest b/meta-oe/recipes-dbs/mysql/mariadb/run-ptest
new file mode 100644
index 0000000000..2f905cd379
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/run-ptest
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# test case test-connect is excluded. Becasue this test case need following steps before running.
+# Without these steps, test case test-connect will fail.
+# 1. Disable 'skip-networking' in /etc/my.cnf
+# $ sed -i '/skip-networking/s/^/#/g' /etc/my.cnf
+# 2. Restart mysqld.service
+# $ systemctl restart mysqld
+# 3. Set password for MySQL user "root"
+# $ mysql -u root
+# MariaDB [(none)]> SET PASSWORD FOR "root"@"localhost" = PASSWORD("myReallyStrongPwd");
+# MariaDB [(none)]> FLUSH PRIVILEGES;
+
+# If test-connect is included, please uncomment these lines.
+#export MASTER_MYPORT=3306
+#export MYSQL_TEST_HOST=127.0.0.1
+#export MYSQL_TEST_USER=root
+#export MYSQL_TEST_PASSWD=myReallyStrongPwd
+
+ctest --force-new-ctest-process -E test-connect | sed -u 's/\*\*\*/ /g' | awk '/Test +#/{gsub(/Passed/,"PASS"); gsub(/Failed/,"FAIL"); gsub(/Skipped/,"SKIP"); print $6": "$4; fflush();}'
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch b/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch
index 4f9a4e9b0e..233d9e6af6 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch
@@ -7,7 +7,7 @@ Comment out the logic which for suse as it introduces
below do_populate_sysroot error:
ERROR: mariadb-native-10.3.13-r0 do_populate_sysroot: sstate found an absolute path symlink /build/tmp/work/x86_64-linux/mariadb-native/10.3.13-r0/sysroot-destdir/build/tmp/work/x86_64-linux/mariadb-native/10.3.13-r0/recipe-sysroot-native/usr/sbin/rcmysql pointing at /build/tmp/work/x86_64-linux/mariadb-native/10.3.13-r0/recipe-sysroot-native/etc/init.d/mysql. Please replace this with a relative link.
-Upstream-Status: Inappropriate[oe build specific]
+Upstream-Status: Inappropriate [oe build specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.11.7.bb b/meta-oe/recipes-dbs/mysql/mariadb_10.11.7.bb
new file mode 100644
index 0000000000..b1d1355e2b
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb_10.11.7.bb
@@ -0,0 +1,63 @@
+require mariadb.inc
+
+inherit ptest
+inherit useradd
+
+SRC_URI += "${@bb.utils.contains('PTEST_ENABLED', '1', 'file://run-ptest', '', d)}"
+DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'rsync-native', '', d)}"
+RDEPENDS:${PN}-ptest += "cmake sed perl-module-test-more"
+
+do_install_ptest () {
+ rsync -a ${B}/unittest ${B}/dbug ${D}${PTEST_PATH} \
+ --exclude CMakeFiles \
+ --exclude cmake_install.cmake \
+ --exclude Makefile \
+ --exclude=*.a \
+ --exclude=*.h \
+ --exclude=*.o \
+ --exclude=*.so \
+ --exclude=*.d \
+ --exclude=*.txt
+ install -m 0755 -d ${D}${PTEST_PATH}/storage
+ rsync -a ${B}/storage/maria ${B}/storage/perfschema ${B}/storage/innobase ${D}${PTEST_PATH}/storage \
+ --exclude CMakeFiles \
+ --exclude cmake_install.cmake \
+ --exclude Makefile \
+ --exclude=*.a \
+ --exclude=*.h \
+ --exclude=*.o \
+ --exclude=*.so \
+ --exclude=*.d \
+ --exclude=*.txt
+ cp -r ${B}/CTestTestfile.cmake ${D}${PTEST_PATH}
+ sed -i -e 's#${WORKDIR}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+}
+
+DEPENDS += "mariadb-native bison-native boost libpcre2 curl ncurses \
+ zlib libaio libedit libevent libxml2 gnutls fmt lzo zstd"
+
+PROVIDES += "mysql5 libmysqlclient"
+
+USERADD_PACKAGES = "${PN}-setupdb"
+USERADD_PARAM:${PN}-setupdb = "--system --home-dir /var/mysql -g mysql --shell /bin/false mysql"
+GROUPADD_PARAM:${PN}-setupdb = "--system mysql"
+
+RPROVIDES:${PN} += "mysql5"
+RREPLACES:${PN} += "mysql5"
+RCONFLICTS:${PN} += "mysql5"
+
+RPROVIDES:${PN}-dbg += "mysql5-dbg"
+RREPLACES:${PN}-dbg += "mysql5-dbg"
+RCONFLICTS:${PN}-dbg += "mysql5-dbg"
+
+RPROVIDES:${PN}-leftovers += "mysql5-leftovers"
+RREPLACES:${PN}-leftovers += "mysql5-leftovers"
+RCONFLICTS:${PN}-leftovers += "mysql5-leftovers"
+
+RPROVIDES:${PN}-client += "mysql5-client"
+RREPLACES:${PN}-client += "mysql5-client"
+RCONFLICTS:${PN}-client += "mysql5-client"
+
+RPROVIDES:${PN}-server += "mysql5-server"
+RREPLACES:${PN}-server += "mysql5-server"
+RCONFLICTS:${PN}-server += "mysql5-server"
diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.6.4.bb b/meta-oe/recipes-dbs/mysql/mariadb_10.6.4.bb
deleted file mode 100644
index 04dfb42234..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb_10.6.4.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-require mariadb.inc
-
-inherit qemu
-
-DEPENDS += "qemu-native bison-native boost libpcre2 curl openssl ncurses zlib libaio libedit libevent libxml2"
-
-PROVIDES += "mysql5 libmysqlclient"
-
-RPROVIDES:${PN} += "mysql5"
-RREPLACES:${PN} += "mysql5"
-RCONFLICTS:${PN} += "mysql5"
-
-RPROVIDES:${PN}-dbg += "mysql5-dbg"
-RREPLACES:${PN}-dbg += "mysql5-dbg"
-RCONFLICTS:${PN}-dbg += "mysql5-dbg"
-
-RPROVIDES:${PN}-leftovers += "mysql5-leftovers"
-RREPLACES:${PN}-leftovers += "mysql5-leftovers"
-RCONFLICTS:${PN}-leftovers += "mysql5-leftovers"
-
-RPROVIDES:${PN}-client += "mysql5-client"
-RREPLACES:${PN}-client += "mysql5-client"
-RCONFLICTS:${PN}-client += "mysql5-client"
-
-RPROVIDES:${PN}-server += "mysql5-server"
-RREPLACES:${PN}-server += "mysql5-server"
-RCONFLICTS:${PN}-server += "mysql5-server"
diff --git a/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb b/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
index 43fc69073f..15f6b6fb9a 100644
--- a/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
+++ b/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
@@ -1,7 +1,7 @@
SUMMARY = "Python interface to MySQL"
HOMEPAGE = "https://github.com/farcepest/MySQLdb1"
SECTION = "devel/python"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://GPL-2.0;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "mysql5"
@@ -16,7 +16,7 @@ SRC_URI[sha256sum] = "811040b647e5d5686f84db415efd697e6250008b112b6909ba77ac059e
S = "${WORKDIR}/${SRCNAME}-${PV}"
-PNBLACKLIST[mysql-python] ?= "${@bb.utils.contains('I_SWEAR_TO_MIGRATE_TO_PYTHON3', 'yes', '', 'python2 is out of support for long time, read https://www.python.org/doc/sunset-python-2/ https://python3statement.org/ and if you really have to temporarily use this, then set I_SWEAR_TO_MIGRATE_TO_PYTHON3 to "yes"', d)}"
+SKIP_RECIPE[mysql-python] ?= "${@bb.utils.contains('I_SWEAR_TO_MIGRATE_TO_PYTHON3', 'yes', '', 'python2 is out of support for long time, read https://www.python.org/doc/sunset-python-2/ https://python3statement.org/ and if you really have to temporarily use this, then set I_SWEAR_TO_MIGRATE_TO_PYTHON3 to "yes"', d)}"
inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "setuptools", "", d)}