Skip to content

feat: build MariaDB for Linux - #28

Closed
sineld wants to merge 5 commits into
flock-php:mainfrom
sineld:feat/linux-mariadb
Closed

sineld wants to merge 5 commits into
flock-php:mainfrom
sineld:feat/linux-mariadb

Conversation

@sineld

@sineld sineld commented Oct 19, 2026

Copy link
Copy Markdown

Builds on #25 (and #24 below it). Only the last commit, feat: build MariaDB for Linux, is new here. I'll rebase once those are in.

MariaDB (10.11, 11.4, 11.8, 12.3) built from source for linux-x64 and linux-arm64. MariaDB publishes no arm64 binary tarballs, and its x86-64 ones need the system's libaio and OpenSSL.

How

  • packages/mariadb/linux/build.sh: the macOS configuration in the manylinux_2_28 container that feat: build PostgreSQL, Valkey and Redis for Linux #25 introduced, so glibc 2.28 and later:
    • Same as macOS: a static OpenSSL (OPENSSL_VERSION), bundled zlib and PCRE, the STANDALONE layout, and the same plugins and tools left out.
    • Client line editing: the container's libedit with ncurses, bundled in lib/ by scripts/linux/bundle.sh. WITH_LIBEDIT/WITH_READLINE are off, meaning MariaDB's bundled copies aren't used.
    • No libaio, no liburing, no systemd: InnoDB then does its I/O with its own threads. The package doesn't depend on libaio.so.1, which Ubuntu 24.04 renamed (feat: mirror MySQL and MongoDB for Linux #27 has the same problem with MySQL).
  • scripts/linux/bundle.sh: a library it bundles under the LGPL now gets its source package published next to the archive. Here that's libxcrypt (libcrypt.so.1, for ENCRYPT()).
    • Where the source goes: it lands in sources/, which build-service.yml already uploads (as for Valkey's MSYS2 runtime on Windows). The source RPM comes from AlmaLinux's vault.
    • Exempt: GCC's runtime libraries (libatomic here), which the GCC Runtime Library Exception covers.
  • versions.json: linux-x64 and linux-arm64 builds for mariadb, with MIN_GLIBC 2.28.

Testing

On my fork with publish off (https://github.com/sineld/binaries/actions/workflows/build-service.yml):

MariaDB linux-x64 linux-arm64
10.11.19, 11.4.13, 11.8.9, 12.3.3 ✓ build, readelf, smoke on AlmaLinux 8 ✓
  • Smoke test (smoke-service.sh): mariadb-install-db, the server on 127.0.0.1, an InnoDB table with JSON, and shutdown.
  • 12.3.3 for arm64:
    • It passed the same smoke test outside a container on Ubuntu 24.04 (119 MB).
    • Its lib/ has libatomic, libcrypt, libedit, libncurses and libtinfo, with their licenses.
  • 11.8.9 after the source-package change: built again on both platforms. Each build uploaded libxcrypt-4.1.1-6.el8.src.rpm next to the package. PostgreSQL 18.6, which bundles nothing under the LGPL, uploaded none.

@sineld

sineld commented Oct 27, 2026

Copy link
Copy Markdown
Author

Closing: superseded by #34, see #24 (comment).

@sineld sineld closed this Oct 27, 2026
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.

1 participant