Skip to content

feat: add source-built MySQL client packages - #185

Merged
Sunrisepeak merged 9 commits into
mcpplibs:mainfrom
wellwei:codex/add-mysql-source-packages
Aug 8, 2026
Merged

feat: add source-built MySQL client packages#185
Sunrisepeak merged 9 commits into
mcpplibs:mainfrom
wellwei:codex/add-mysql-source-packages

Conversation

@wellwei

@wellwei wellwei commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

wellwei and others added 9 commits August 8, 2026 18:11
The vendored libmysqlclient staging repo now defines HAVE_SYS_RESOURCE_H
(plus the other POSIX macros upstream configure.cmake pairs with them) and
carries Windows support sources; tag 8.4.6 was force-moved to the repaired
commit, so the linux/macosx archives changed. mcpp-index still declares only
linux+macosx for this package.
Linux toolchain glibc >= 2.38 declares strlcat/strlcpy; vendored config now
defines HAVE_STRLCAT/HAVE_STRLCPY there so crypt_genhash_impl.cc uses libc
instead of its static fallback. Tag 8.4.6 updated again.
The connector install hook fails with only an empty E_INTERNAL on macOS CI
with no build log. Add stdout diagnostics (pcall wrapper, step values, run()
error dump) to locate the failing step. Temporary diagnostic commit.
xlings swallows install-hook stdout/log.error, so the previous stdout
diagnostics never reached the Actions log. Write every step (including a
descriptor-load marker) to $HOME/.mcpp/registry/data/mcpp_mysql_connector_cpp_build.log,
which validate.yml's 'find ... -name mcpp_*_build.log' dump tail-prints.
check_mirror_urls/check_package_name execute the descriptor with only import
stubbed; top-level path.join crashed lint. Make diag lazy and a no-op unless
the xlings runtime's path global is present.
Root cause (from CI diagnostics): pkginfo.install_dir('compat:openssl')
returns nil when openssl was installed into the shared registry cache by the
sibling libmysqlclient member instead of this member's local xpkgs, so the
install hook bailed with only an empty E_INTERNAL.

- declare compat:libmysqlclient/compat:openssl as xpm deps so the resolver
  records them for this package
- add find_dep_install_dir() fallback scanning the known xpkgs roots
  (member-local + $MCPP_HOME/registry/data/xpkgs)
- write the hook trace + failure reason to
  $HOME/.mcpp/registry/data/mcpp_mysql_connector_cpp_build.log, which the
  validate.yml find-dump tail-prints (log.error/stdout are swallowed)
- macOS: sanitize PATH to /usr/bin:/bin:/usr/sbin:/sbin so a GNU libtool on
  PATH (conda/homebrew) cannot shadow Apple's libtool in the CMake merge
CI reached CMake configure for the first time and failed with exit 127:
resolve_tool fell back to bare 'cmake' because the xim cmake macOS payload is
CMake.app/Contents/bin/cmake, not bin/cmake, and the previous fix replaced
PATH entirely so the fallback had nothing to resolve. Handle the .app layout
for an absolute path and prepend /usr/bin:/bin:/usr/sbin:/sbin to the existing
PATH (system libtool wins, tools stay reachable).
A dev-machine PATH containing spaces (e.g. 'Library/Application Support/...')
split the env command line and failed CMake configure with exit 127. Wrap the
prepended PATH value in single quotes (sh_quote).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants