Skip to content

Support compilation on ubuntu-resolute stemcells#108

Draft
abg wants to merge 4 commits intomainfrom
feature/support-ubuntu-resolute
Draft

Support compilation on ubuntu-resolute stemcells#108
abg wants to merge 4 commits intomainfrom
feature/support-ubuntu-resolute

Conversation

@abg
Copy link
Copy Markdown
Member

@abg abg commented Apr 21, 2026

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
Copy link
Copy Markdown
Member

mkocher commented Apr 24, 2026

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
Copy link
Copy Markdown
Member

mkocher commented Apr 24, 2026

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
Copy link
Copy Markdown
Member Author

abg commented Apr 28, 2026

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 added 4 commits April 29, 2026 00:20
Sourced from: http://www.dest-unreach.org/socat/download/socat-1.8.1.1.tar.bz2
Verified via: [Debian source control:
socat_1.8.1.1-1.dsc](https://deb.debian.org/debian/pool/main/s/socat/socat_1.8.1.1-1.dsc)
using key `7D887DC8BA7BBBA7B835E3BADCE310E7864CC8BF`
Digest: `sha256:5ebc636b7f427053f98806696521653a614c7e06464910353cbf54e2327adc1b`
Project checksum: http://www.dest-unreach.org/socat/download.sha256sum
This completes the removal of all MySQL v5.7 support from the release.

Percona XtraDB Cluster v8.0 still depends on percona-xtrabackup v2.4
_binaries_ and will fail if they are not present.

These old binaries are required _just in case_ the cluster upgrades from
a Percona XtraDB Cluster v5.7 version. However, pxc-release explicitly
rejects upgrades from old MySQL v5.7 data directories (this transtion
should be completed under pxc/1.1.x versions) so percona-xtrabackup is
no longer required.

Since the Percona XtraDB Cluster v8.0 wsrep_sst_xtrabackup-v2 script
requires the pxb-2.4/bin path to exist, the existing binaries are
stubbed with a simple bash script that echos an expected version when
the "pxb-2.4/bin/xtrabackup --version" option is passed and fails loudly
otherwise.

Removing provides two benefits:
- Mitigate CVE scans against EOL software
- Enable compilation support on ubuntu-resolute stemcells without
  patching GPLv2 Percona XtraBackup v2.4 source.
- 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
@abg abg force-pushed the feature/support-ubuntu-resolute branch from 039c613 to cfe0e9d Compare April 29, 2026 05:25
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