diff options
Diffstat (limited to 'debian/patches')
-rw-r--r-- | debian/patches/1063738-revert-c432c9ef.patch | 23 | ||||
-rw-r--r-- | debian/patches/3039-os-data-file-no-o-direct.patch | 32 | ||||
-rw-r--r-- | debian/patches/MDEV-32975-chartset-collation-fix-php.patch | 45 | ||||
-rw-r--r-- | debian/patches/series | 3 |
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 |