Prefer MariaDB Connector/C for Spine builds - #613
Closed
somethingwithproof wants to merge 2 commits into
Closed
Conversation
Discover mariadb_config before mysql_config while retaining MySQL and Percona-compatible fallback linking. Validate both headers and client symbols instead of relying on filename probes. Exercise MariaDB Connector/C and MySQL Connector/C across the GCC and Clang build matrix and update the build documentation. Closes Cacti#612 Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
xmacan
approved these changes
Sep 4, 2026
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The no-config-tool fallback can detect headers under non-default prefixes but fail to add corresponding library search paths, causing avoidable link failures in valid installations.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR updates Spine’s build and CI configuration to prefer MariaDB Connector/C while retaining compatibility with MySQL/Percona client libraries, and refreshes documentation to reflect the preferred dependency.
Changes:
- Reworks
configure.acto prefermariadb_config(withmysql_configsupport) and validates availability viamysql.h+mysql_initrather than probing library filenames. - Expands CI to build/test across a compiler (gcc/clang) × client (MariaDB/MySQL Connector/C) matrix.
- Updates installation docs and changelog to note MariaDB Connector/C as the preferred packaging dependency.
File summaries
| File | Description |
|---|---|
README.md |
Documents MariaDB Connector/C dev package as preferred over MySQL Connector/C. |
INSTALL |
Mirrors the README dependency guidance for Cygwin prerequisites. |
configure.ac |
Switches client discovery to config-tool flags when available; otherwise uses header + link checks. |
CHANGELOG |
Adds an entry tracking the feature/issue work for connector discovery changes. |
.github/workflows/ci.yml |
Adds CI build matrix for gcc/clang and MariaDB/MySQL client dev packages. |
Review details
- Files reviewed: 5/5 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
… from The fallback discovery scanned seven prefixes for mysql.h but only added -L paths when MYSQL_DIR was set, so a client installed under any other prefix compiled and then failed to link. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Member
Author
Member
Author
|
Superseded by #618. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
mariadb_configwhile retainingmysql_configsupportValidation
make checkwith MariaDB Connector/C (4/4 passed)make checkwith MySQL Connector/C (4/4 passed)actionlint .github/workflows/ci.ymlgit diff --checkCoordination
PR #597 overlaps
configure.acand CI structurally but retains the prior connector discovery. It should rebase after this PR and preserve these checks; no implementation is duplicated here.Closes #612