[packages/python3-mysql-connector] Default to utf8 on servers older than 5.5.3, which have no utf8mb4 (connect to MySQL 5.0 failed with

arekm arekm at pld-linux.org
Fri Oct 9 18:00:48 CEST 2026


commit d4f7f7d509595e70d62858d97c0eb251dc92be5a
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Fri Oct 9 18:00:01 2026 +0200

    Default to utf8 on servers older than 5.5.3, which have no utf8mb4 (connect to MySQL 5.0 failed with 1115); rel 3

 pre-5.5.3-charset.patch      | 56 ++++++++++++++++++++++++++++++++++++++++++++
 python3-mysql-connector.spec |  4 +++-
 2 files changed, 59 insertions(+), 1 deletion(-)
---
diff --git a/python3-mysql-connector.spec b/python3-mysql-connector.spec
index 0b5023f..4c5e1bb 100644
--- a/python3-mysql-connector.spec
+++ b/python3-mysql-connector.spec
@@ -17,7 +17,7 @@ Name:		python3-%{pname}
 # check documentation to see which version is GA (we don't want devel releases)
 # https://dev.mysql.com/downloads/connector/python/
 Version:	9.7.0
-Release:	2
+Release:	3
 License:	GPL v2
 Group:		Libraries/Python
 Source0:	http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-%{version}-src.tar.gz
@@ -29,6 +29,7 @@ Patch2:		plugin-dir.patch
 Patch3:		tests-config-leak.patch
 Patch4:		tests-webauthn-probe.patch
 Patch5:		tests-restart-race.patch
+Patch6:		pre-5.5.3-charset.patch
 URL:		http://dev.mysql.com/doc/connector-python/en/
 BuildRequires:	mysql%{mysql_ver}-devel
 BuildRequires:	protobuf-devel >= 3.0.0
@@ -59,6 +60,7 @@ MySQL Connector/Python to protokół klient-serwer MySQL-a.
 %patch -P3 -p1
 %patch -P4 -p1
 %patch -P5 -p1
+%patch -P6 -p1
 
 %build
 export MYSQL_CAPI=%{_bindir}/mysql_config%{mysql_ver}
diff --git a/pre-5.5.3-charset.patch b/pre-5.5.3-charset.patch
new file mode 100644
index 0000000..f83d2c4
--- /dev/null
+++ b/pre-5.5.3-charset.patch
@@ -0,0 +1,56 @@
+diff -urN a/mysql-connector-python/lib/mysql/connector/abstracts.py b/mysql-connector-python/lib/mysql/connector/abstracts.py
+--- a/mysql-connector-python/lib/mysql/connector/abstracts.py	2026-03-26 11:06:51.000000000 +0100
++++ b/mysql-connector-python/lib/mysql/connector/abstracts.py	2026-10-09 17:25:01.356303271 +0200
+@@ -76,6 +76,7 @@
+     CONN_ATTRS_DN,
+     DEFAULT_CONFIGURATION,
+     DEPRECATED_METHOD_WARNING,
++    MYSQL_DEFAULT_CHARSET_ID_50,
+     MYSQL_DEFAULT_CHARSET_ID_57,
+     MYSQL_DEFAULT_CHARSET_ID_80,
+     OPENSSL_CS_NAMES,
+@@ -1348,7 +1349,9 @@
+                 return MYSQL_DEFAULT_CHARSET_ID_57
+ 
+             self.__charset_id = (
+-                MYSQL_DEFAULT_CHARSET_ID_57
++                MYSQL_DEFAULT_CHARSET_ID_50
++                if self._server_version < (5, 5, 3)
++                else MYSQL_DEFAULT_CHARSET_ID_57
+                 if self._server_version < (8, 0)
+                 else MYSQL_DEFAULT_CHARSET_ID_80
+             )
+diff -urN a/mysql-connector-python/lib/mysql/connector/aio/abstracts.py b/mysql-connector-python/lib/mysql/connector/aio/abstracts.py
+--- a/mysql-connector-python/lib/mysql/connector/aio/abstracts.py	2026-03-26 11:06:51.000000000 +0100
++++ b/mysql-connector-python/lib/mysql/connector/aio/abstracts.py	2026-10-09 17:25:01.364380452 +0200
+@@ -84,6 +84,7 @@
+     CONN_ATTRS_DN,
+     DEFAULT_CONFIGURATION,
+     DEPRECATED_METHOD_WARNING,
++    MYSQL_DEFAULT_CHARSET_ID_50,
+     MYSQL_DEFAULT_CHARSET_ID_57,
+     MYSQL_DEFAULT_CHARSET_ID_80,
+     OPENSSL_CS_NAMES,
+@@ -1154,7 +1155,9 @@
+ 
+             self.__charset = charsets.get_by_id(
+                 (
+-                    MYSQL_DEFAULT_CHARSET_ID_57
++                    MYSQL_DEFAULT_CHARSET_ID_50
++                    if self._server_info.version_tuple < (5, 5, 3)
++                    else MYSQL_DEFAULT_CHARSET_ID_57
+                     if self._server_info.version_tuple < (8, 0)
+                     else MYSQL_DEFAULT_CHARSET_ID_80
+                 )
+diff -urN a/mysql-connector-python/lib/mysql/connector/constants.py b/mysql-connector-python/lib/mysql/connector/constants.py
+--- a/mysql-connector-python/lib/mysql/connector/constants.py	2026-03-26 11:06:51.000000000 +0100
++++ b/mysql-connector-python/lib/mysql/connector/constants.py	2026-10-09 17:25:01.317673561 +0200
+@@ -48,6 +48,8 @@
+ """Expected `typecode` when decoding VECTOR values from
+ MySQL (blob) to Python (array.array).
+ """
++# utf8_general_ci; servers before 5.5.3 have no utf8mb4
++MYSQL_DEFAULT_CHARSET_ID_50 = 33
+ MYSQL_DEFAULT_CHARSET_ID_57 = 45
+ MYSQL_DEFAULT_CHARSET_ID_80 = 255
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/python3-mysql-connector.git/commitdiff/d4f7f7d509595e70d62858d97c0eb251dc92be5a



More information about the pld-cvs-commit mailing list