Skip to content

Support compilation on ubuntu-resolute stemcells - #108

Merged
abg merged 1 commit into
mainfrom
feature/support-ubuntu-resolute
Aug 14, 2026
Merged

Support compilation on ubuntu-resolute stemcells#108
abg merged 1 commit into
mainfrom
feature/support-ubuntu-resolute

Conversation

@abg

@abg abg commented Apr 21, 2026

Copy link
Copy Markdown
Member

Feature or Bug Description

Enable support for deploying pxc-release against ubuntu-resolute stemcells by adapting to changes in the cmake and GCC toolchains, among other changes.

Primary changes:

  • Workaround: install: install -D replaces symlink path components with real directories breaks our build system uutils/coreutils#11469

  • Use dynamically linked libboost_program_options
    Current galera cmake configuration does not like static linking under resolute cmake+gcc toolchains. This avoids needing to custom patch (GPLv2) build configuration.

    The libboost_program_options.so is now installed under the Percona XtraDB Cluster lib/private directory similar to other MySQL vendored thirdparty libraries.

    This largely impacts the galera arbitrator daemon (bin/garbd) which is currently unused by pxc-release.

  • Adjust Boost configuration to adapt to cmake v4.2 removing builtin FindBoost.cmake module in favor of the boost provided by modern boost v1.70.0+
    See: https://cmake.org/cmake/help/latest/policy/CMP0167.html

  • Workaround legacy libtirpc conventions by using -std=gnu17 CFLAGS

  • ubuntu-resolute stemcells no longer provide libicu-dev packages, so use the bundled version instead

Motivation

Supporting Percona package compilation under ubuntu-resolute.

Related Issue

Extracted and cleaned up from the larger PR #102 for easier review.

Based on #104 (socat bump), #107 (switch to pkgconf) and #106 (stubbing percona-xtrabackup-2.4) which each provider smaller improvement and are necessary for ubuntu-resolute support.

@mkocher

mkocher commented Apr 24, 2026

Copy link
Copy Markdown
Member

Following up on your comment in #102 - libicu-dev is no longer a dependency of libxml2-dev (see https://packages.ubuntu.com/resolute/libxml2-dev vs https://packages.ubuntu.com/noble/libxml2-dev), which was how it was ending up on the stemcell.

Should we add it in as a directly installed package in Resolute? We generally like to keep the stemcell small-but-not-too-small.

@mkocher

mkocher commented Apr 24, 2026

Copy link
Copy Markdown
Member

I tried deploying this branch and it and ran into a minor snag with the blob pattern for socat expecting a .tar.gz and the new blob being a .tar.bz2. Once I fixed that it compiled and deployed cleanly.

@abg
abg force-pushed the feature/support-ubuntu-resolute branch from f637a2f to 039c613 Compare April 28, 2026 16:18
@abg

abg commented Apr 28, 2026

Copy link
Copy Markdown
Member Author

Following up on your comment in #102 - libicu-dev is no longer a dependency of libxml2-dev (see https://packages.ubuntu.com/resolute/libxml2-dev vs https://packages.ubuntu.com/noble/libxml2-dev), which was how it was ending up on the stemcell.

Should we add it in as a directly installed package in Resolute? We generally like to keep the stemcell small-but-not-too-small.

Yeah, I saw the libxml2 change. I guess pxc-release was depending on an transitive stemcell dependency.

I don't think we need to pull in libicu just for pxc-release. Using MySQL's bundled libicu is the right path forward. MySQL uses this library for REGEXP comparisons and the bundled / vendored variant provides a more stable target across stemcells.

I tried deploying this branch and it and ran into a minor snag with the blob pattern for socat expecting a .tar.gz and the new blob being a .tar.bz2. Once I fixed that it compiled and deployed cleanly.

Thanks. Apparently I broke something when rebasing and hadn't redeployed.

Rebased on main and fixed the socat blob pattern issue.

@abg
abg force-pushed the feature/support-ubuntu-resolute branch from 039c613 to cfe0e9d Compare April 29, 2026 05:25
@abg
abg force-pushed the feature/support-ubuntu-resolute branch from cfe0e9d to d1bdfb3 Compare May 6, 2026 16:02
@abg
abg force-pushed the feature/support-ubuntu-resolute branch from d1bdfb3 to 7ef0874 Compare June 5, 2026 18:13
@abg

abg commented Jun 5, 2026

Copy link
Copy Markdown
Member Author

Rebased on main to keep the PR fresh.

@abg
abg force-pushed the feature/support-ubuntu-resolute branch from 7ef0874 to 1f86040 Compare August 4, 2026 15:02
@abg
abg marked this pull request as ready for review August 4, 2026 15:03
@abg
abg force-pushed the feature/support-ubuntu-resolute branch 2 times, most recently from eb2ea10 to b8d11b8 Compare August 12, 2026 17:18
- Workaround: uutils/coreutils#11469

- Use dynamically linked libboost_program_options

  Current galera cmake configuration does not like static linking under
  resolute cmake+gcc toolchains.  This avoids needing to custom patch
  (GPLv2) build configuration.

  The libboost_program_options.so is now installed under the Percona
  XtraDB Cluster lib/private directory similar to other MySQL vendored
  thirdparty libraries.

  This largely impacts the bin/garbd binary (currently unused by
  pxc-release)

- Adjust Boost configuration to adapt to cmake v4.2 removing builtin
  FindBoost.cmake module in favor of the boost provided by modern boost
  v1.70.0+

- Workaround legacy libtirpc conventions by using -std=gnu17 CFLAGS

- ubuntu-resolute stemcells no longer provide libicu-dev packages, so
  use the bundled version instead

- replace chpst with runuser in galera-agent service script

- (e2e-tests) correct too strict test assertions that fail under
  ubuntu-resolute and remove an unnecessary syslog test
@abg
abg force-pushed the feature/support-ubuntu-resolute branch from c5c167f to f1ca95f Compare August 14, 2026 16:00
@abg
abg merged commit 1dfba03 into main Aug 14, 2026
2 checks passed
@abg
abg deleted the feature/support-ubuntu-resolute branch August 14, 2026 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

2 participants