Uploaded image for project: 'AI Platform Core Components'
  1. AI Platform Core Components
  2. AIPCC-10716

Add mysqlclient into the RHAI pipeline onboarding collection

    • Icon: Story Story
    • Resolution: Won't Do
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • False
    • Hide

      None

      Show
      None
    • 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

              Unassigned Unassigned
              aipcc-jira-bot@redhat.com AIPCC JIRABOT
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: