Support compilation on ubuntu-resolute stemcells - #108
Conversation
|
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. |
|
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. |
f637a2f to
039c613
Compare
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.
Thanks. Apparently I broke something when rebasing and hadn't redeployed. Rebased on main and fixed the socat blob pattern issue. |
039c613 to
cfe0e9d
Compare
cfe0e9d to
d1bdfb3
Compare
d1bdfb3 to
7ef0874
Compare
|
Rebased on main to keep the PR fresh. |
7ef0874 to
1f86040
Compare
eb2ea10 to
b8d11b8
Compare
- 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
c5c167f to
f1ca95f
Compare
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.cmakemodule 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.