summaryrefslogtreecommitdiffstats
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/1063738-revert-c432c9ef.patch23
-rw-r--r--debian/patches/3039-os-data-file-no-o-direct.patch32
-rw-r--r--debian/patches/MDEV-32975-chartset-collation-fix-php.patch45
-rw-r--r--debian/patches/series3
4 files changed, 103 insertions, 0 deletions
diff --git a/debian/patches/1063738-revert-c432c9ef.patch b/debian/patches/1063738-revert-c432c9ef.patch
new file mode 100644
index 00000000..d13fa9db
--- /dev/null
+++ b/debian/patches/1063738-revert-c432c9ef.patch
@@ -0,0 +1,23 @@
+Date: Wed, 21 Feb 2024 20:34:12 -0800
+Subject: [PATCH] Revert compile_time_assert() changes from "MDEV-32862 MYSQL struct in C/C and server differs"
+
+This partially reverts commit c432c9ef19bf6ff40ab9551bcae202d7e1319878 which
+most likely caused the regression that broke builds on many 32-bit platforms.
+
+--- 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))
diff --git a/debian/patches/3039-os-data-file-no-o-direct.patch b/debian/patches/3039-os-data-file-no-o-direct.patch
new file mode 100644
index 00000000..3a55269f
--- /dev/null
+++ b/debian/patches/3039-os-data-file-no-o-direct.patch
@@ -0,0 +1,32 @@
+Forwarded: https://github.com/MariaDB/server/pull/3039
+Origin: https://patch-diff.githubusercontent.com/raw/MariaDB/server/pull/3039.patch
+From: Daniel Black <daniel@mariadb.org>
+Date: Fri, 2 Feb 2024 11:38:00 +1100
+Subject: [PATCH] MDEV-33095 MariaDB-backup - no OS_DATA_FILE_NO_O_DIRECT on
+ some platforms
+
+Postfix for a6290a5bc5f3cba096854595c354d19d9267743d, in 10.11
+where OS_DATA_FILE_NO_O_DIRECT gets used. Same #ifdef conditions
+as other uses of OS_DATA_FILE_NO_O_DIRECT.
+
+Noticed on aarch64-macos builder.
+---
+ extra/mariabackup/xtrabackup.cc | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+--- a/extra/mariabackup/xtrabackup.cc
++++ b/extra/mariabackup/xtrabackup.cc
+@@ -2428,7 +2428,12 @@ static bool innodb_init()
+ os_file_delete_if_exists_func(ib_logfile0.c_str(), nullptr);
+ os_file_t file= os_file_create_func(ib_logfile0.c_str(),
+ OS_FILE_CREATE, OS_FILE_NORMAL,
+- OS_DATA_FILE_NO_O_DIRECT, false, &ret);
++#if defined _WIN32 || defined HAVE_FCNTL_DIRECT
++ OS_DATA_FILE_NO_O_DIRECT,
++#else
++ OS_DATA_FILE,
++#endif
++ false, &ret);
+ if (!ret)
+ {
+ invalid_log:
diff --git a/debian/patches/MDEV-32975-chartset-collation-fix-php.patch b/debian/patches/MDEV-32975-chartset-collation-fix-php.patch
new file mode 100644
index 00000000..4fa54955
--- /dev/null
+++ b/debian/patches/MDEV-32975-chartset-collation-fix-php.patch
@@ -0,0 +1,45 @@
+Origin: https://github.com/MariaDB/server/commit/1b37cb71f44549c94acf8914cf93d43a4293a449
+Bug: https://jira.mariadb.org/browse/MDEV-32975
+From: Alexander Barkov <bar@mariadb.com>
+Date: Fri, 26 Jan 2024 13:12:03 +0400
+Subject: [PATCH] MDEV-32975 Default charset doesn't work with PHP MySQLi
+ extension
+
+When sending the server default collation ID to the client
+in the handshake packet, translate a 2-byte collation ID
+to the ID of the default collation for the character set.
+---
+ sql/sql_acl.cc | 21 ++++++++++++++++++++-
+ 1 file changed, 20 insertions(+), 1 deletion(-)
+
+--- a/sql/sql_acl.cc
++++ b/sql/sql_acl.cc
+@@ -13354,8 +13354,27 @@ static bool send_server_handshake_packet
+ *end++= 0;
+
+ int2store(end, thd->client_capabilities);
++
++ CHARSET_INFO *handshake_cs= default_charset_info;
++ if (handshake_cs->number > 0xFF)
++ {
++ /*
++ A workaround for a 2-byte collation ID: translate it into
++ the ID of the primary collation of this character set.
++ */
++ CHARSET_INFO *cs= get_charset_by_csname(handshake_cs->cs_name.str,
++ MY_CS_PRIMARY, MYF(MY_WME));
++ /*
++ cs should not normally be NULL, however it may be possible
++ with a dynamic character set incorrectly defined in Index.xml.
++ For safety let's fallback to latin1 in case cs is NULL.
++ */
++ handshake_cs= cs ? cs : &my_charset_latin1;
++ }
++
+ /* write server characteristics: up to 16 bytes allowed */
+- end[2]= (char) default_charset_info->number;
++ end[2]= (char) handshake_cs->number;
++
+ int2store(end+3, mpvio->auth_info.thd->server_status);
+ int2store(end+5, thd->client_capabilities >> 16);
+ end[7]= data_len;
diff --git a/debian/patches/series b/debian/patches/series
index a84dbe36..8ea54cc5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -10,3 +10,6 @@ fix-spelling-libmariadb.patch
2980-riscv-use-rdtime.patch
install-files-into-usr.patch
1006531-hurd-no-auth-socket.patch
+3039-os-data-file-no-o-direct.patch
+1063738-revert-c432c9ef.patch
+MDEV-32975-chartset-collation-fix-php.patch