-
Story
-
Resolution: Won't Do
-
Undefined
-
None
-
None
-
None
-
False
-
-
False
-
-
Add package 'mysqlclient' into the RHAI pipeline onboarding collection.
The package requires builder repository onboarding before it can be added to the RHAI pipeline. This ticket is blocked by the builder onboarding ticket.
Summary
Here is the executive summary formatted as a JIRA comment in JIRA wiki markup:
Executive Summary: mysqlclient Packaging Analysis
mysqlclient is a moderate complexity C-extension package (4/10) that provides a Python interface to MySQL/MariaDB databases. No pre-built Linux wheels exist on PyPI — only Windows wheels and source distributions are published — so a source build is the only option for Linux targets. The build compiles a single C source file (
_mysql.c
, ~3,000 lines) and requires MySQL/MariaDB client development headers and libraries at build time. The package has zero Python runtime dependencies, making dependency management straightforward. The latest release is v2.2.8 (2026-02-10), which requires Python >= 3.10 and setuptools >= 77.
The primary build requirement is the
mariadb-connector-c-devel
RPM package, which provides the necessary C headers and pkg-config
.pc
file for automatic library detection. The full set of build-time RPM dependencies is:
gcc
,
python3-devel
,
mariadb-connector-c-devel
, and
pkgconfig
. At runtime, only
mariadb-connector-c
(providing
libmariadb.so.3
) is needed. No critical packaging issues or blockers exist. Fedora already packages this successfully as
python-mysqlclient
using the same MariaDB connector approach, confirming build reproducibility on Red Hat platforms. If pkg-config detection fails, the environment variables
MYSQLCLIENT_CFLAGS
and
MYSQLCLIENT_LDFLAGS
can be set manually as a fallback.
The license is GPL-2.0-or-later, which is fully compatible with Red Hat distribution. The C source additionally carries a dual BSD-style permissive license, providing extra redistribution flexibility. The C extension is architecture-specific but GPU-agnostic — a single wheel built on x86_64 RHEL will work across all index variants (CPU, CUDA, ROCm) for a given Python version.
Recommended Build Command
# RHEL 9 / UBI 9
dnf install -y gcc python3-devel mariadb-connector-c-devel pkgconfig
pip wheel mysqlclient==2.2.8 --no-binary mysqlclient
Key Takeaways
- No blockers — the build is straightforward and well-established on RHEL
- Single system dependency —
mariadb-connector-c-devel
(build) /
mariadb-connector-c
(runtime)
- Zero Python dependencies at runtime
- Fallback alternative:
PyMySQL
(pure Python, no compilation) if build constraints arise, though mysqlclient is preferred for performance and Django compatibility
- Verify that
mariadb-connector-c-devel
is available in the target UBI/RHEL build repositories
- blocks
-
AIPCC-10691 Onboard mysqlclient into the AIPCC Builder
-
- In Progress
-
- mentioned on