Skip to content

Add openSUSE Leap 16.0 and SLES 16.0 support (real MySQL) - #44

Merged
jsokol merged 2 commits into
mainfrom
feature/opensuse-leap-sles-16-support
Sep 20, 2026
Merged

jsokol merged 2 commits into
mainfrom
feature/opensuse-leap-sles-16-support

Conversation

@jsokol

@jsokol jsokol commented Sep 20, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds openSUSE Leap 16.0 and SLES 16.0 as supported OSes, both through one setup_suse()/uninstall_suse() code path that installs real MySQL Community Server (never MariaDB) via the existing SLES-15-targeted repo RPM, which installs and runs cleanly on both.
  • SLES 16.0 is independently CI-tested (not just via its openSUSE proxy): SUSE's free, unauthenticated BCI image (registry.suse.com/bci/bci-base:16.0) carries its own public SLE_BCI repo with no paid SCC subscription needed, unlike SLES 15 or RHEL.
  • Fixes a pre-existing bug in tests/verify-install.sh: the PHP-extension-loaded check loop had a misplaced pipe that silently swallowed every check's PASS/FAIL output and counters into grep -q, making those 8 checks per OS inert on every platform's CI run, not just the new ones.
  • Adds a runtime NOTE: printed by the setup script when the detected OS is supported but not independently CI-tested (currently RHEL, which rides CentOS Stream's coverage).
  • Documents SLES 15 and other explicitly-unsupported versions/rebuilds (openSUSE Tumbleweed, older Ubuntu/Debian/CentOS/RHEL, RHEL-compatible rebuilds) in the README with the specific reason for each, rather than leaving them undocumented.

Test plan

  • Fresh openSUSE Leap 16.0 container: install → verify-install.sh (35/35) → uninstall → verify-uninstall.sh (13/13), all clean.
  • Fresh SLES 16.0 container (via the free BCI image): install → verify-install.sh (43/43) → uninstall → verify-uninstall.sh (13/13), all clean.
  • Confirmed via zypper/ldd that the SLES-15-targeted MySQL Community Server RPM has no missing shared libraries and runs correctly on both Leap 16.0 and SLES 16.0.
  • Confirmed the fixed verify-install.sh extension-check loop now prints real, meaningful PASS/FAIL results instead of being silently swallowed.
  • Isolated logic test of validate_os_and_version() confirming the new untested-OS NOTE: fires for RHEL but not for CentOS Stream or SLES 16.0.
  • CI run on this PR (adds opensuse-leap-16 and sles-16 to the matrix).

jsokol and others added 2 commits September 20, 2026 12:05
…x silently-inert PHP extension checks

Both share one setup_suse()/uninstall_suse() code path (real MySQL
Community Server, never MariaDB), verified end-to-end (install ->
verify -> uninstall -> verify) against real containers for each:
openSUSE Leap 16.0, and SLES 16.0 via SUSE's free, unauthenticated BCI
image (registry.suse.com/bci/bci-base:16.0), which needs no paid SCC
subscription to test, unlike SLES 15 or RHEL.

Also:
- Fixes tests/verify-install.sh's PHP-extension-loaded loop, where a
  misplaced pipe silently swallowed every check's PASS/FAIL output and
  counters into `grep -q` on every OS's CI run, not just these new ones.
- Adds a runtime NOTE when the detected OS is supported but not
  independently CI-tested (currently RHEL, which rides CentOS Stream's
  coverage).
- Documents SLES 15 and other explicitly-unsupported versions/rebuilds
  in the README, with the specific reason for each.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… file in CI

start_mysqld() called mysqld_pre_systemd bare, trusting mysqld's own
log-error config to write the init Note to /var/log/mysql/mysqld.log.
That held locally, but GitHub Actions runners reproducibly sent it to
stdout/stderr instead, so set_up_database()'s later `grep Note` found
nothing and the install died silently under set -e right after
"Configuring MySQL..." on both opensuse-leap-16 and sles-16 in CI,
despite passing repeatedly in local Docker Desktop testing.

Mirrors the CentOS shim's existing pattern: redirect the initialize
call into the log file explicitly, and pre-touch/chown that file to
mysql:mysql first so mysqld (which drops root before opening it) can
actually write to it - a bare shell redirect otherwise creates the
file root-owned and unwritable, which is what broke the first attempt
at this fix locally.

Re-verified end-to-end (install -> verify -> uninstall -> verify) on
fresh openSUSE Leap 16.0 and SLES 16.0 containers after this fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsokol
jsokol merged commit 756cb30 into main Sep 20, 2026
16 checks passed
@jsokol
jsokol deleted the feature/opensuse-leap-sles-16-support branch September 20, 2026 17:35
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