diff --git a/config/blobs.yml b/config/blobs.yml index 1f9cd4e44..b5f1bdeff 100644 --- a/config/blobs.yml +++ b/config/blobs.yml @@ -6,10 +6,6 @@ Percona-XtraDB-Cluster-8.4.8-8.tar.gz: size: 506801118 object_id: 5b721094-02b7-4a5e-500e-028ba04fdc8a sha: sha256:dab67ec69fe96f2beeaa9c4d5b9c6bc82bcdd970ae9f732f7dd32d622c829666 -boost_1_59_0.tar.bz2: - size: 70389425 - object_id: 7344fc77-b911-45c2-5467-c6d5fcab6d29 - sha: sha256:727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca boost_1_77_0.tar.bz2: size: 110361537 object_id: d962752f-1ab7-4896-41d9-8deed29397ca @@ -30,10 +26,6 @@ libev-4.33.tar.gz: size: 569527 object_id: 0ea3b0f6-7b83-4fe5-7ff8-966bcc56ab73 sha: sha256:507eb7b8d1015fbec5b935f34ebed15bf346bed04a11ab82b8eee848c4205aea -percona-xtrabackup-2.4.29.tar.gz: - size: 64667518 - object_id: f196e2a0-e2ba-43ef-7d91-4319f8e6b927 - sha: sha256:c59f0d612ec6a0f530ca3645546fb8af690f62d3ecbd70d33f30d3f56d9e842e percona-xtrabackup-8.0.35-35.tar.gz: size: 447852862 object_id: cfe465d2-d13b-46a9-64f1-8ebb44bd7e08 @@ -42,10 +34,10 @@ percona-xtrabackup-8.4.0-5.tar.gz: size: 432646274 object_id: edf66c32-e051-4a55-561a-bd67bb8a13bb sha: sha256:fadcf27efd2a2596f689388659e2ff5c36debcc051a55974ac8bb4a83c015f57 -pkg-config_0.29.2.orig.tar.gz: - size: 2016830 - object_id: ca3d829d-016e-4acd-6509-9d1766884b9d - sha: sha256:6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591 +pkgconf-2.5.1.tar.xz: + size: 328064 + object_id: 74152211-babf-41d2-794a-2f1abcd5f998 + sha: sha256:cd05c9589b9f86ecf044c10a2269822bc9eb001eced2582cfffd658b0a50c243 procps-ng-4.0.5.tar.xz: size: 1517672 object_id: e196e815-f7be-462d-64f0-feaac1caffe0 diff --git a/packages/percona-xtrabackup-2.4/packaging b/packages/percona-xtrabackup-2.4/packaging index 0307b870d..e8341220f 100644 --- a/packages/percona-xtrabackup-2.4/packaging +++ b/packages/percona-xtrabackup-2.4/packaging @@ -1,57 +1,20 @@ #!/usr/bin/env bash -set -o errexit -set -o nounset - -main() { - install_build_dependencies - unpack_source - build_and_install -} - -install_build_dependencies() { - tar -xf libaio_*.tar.xz - cd libaio-*/ - make -j "$(nproc)" install prefix="${BOSH_INSTALL_TARGET}" - cd - - - tar -xf libev-*.tar.gz - cd libev-*/ - ./configure --prefix=/usr/local --disable-static - make -j "$(nproc)" install - ./configure --prefix="${BOSH_INSTALL_TARGET}" --libdir="${BOSH_INSTALL_TARGET}/lib/private" --disable-static - make -j "$(nproc)" install-exec - cd - -} - -unpack_source() { - tar -xf boost_1_59_0.tar.bz2 - tar -xf percona-xtrabackup-*.tar.gz -} - -build_and_install() { - cd percona-xtrabackup-*/ - mkdir bld && cd bld - - export LIBRARY_PATH="${BOSH_INSTALL_TARGET}/lib:${BOSH_INSTALL_TARGET}/lib/private" - export LD_LIBRARY_PATH="${BOSH_INSTALL_TARGET}/lib" - export CPLUS_INCLUDE_PATH="${BOSH_INSTALL_TARGET}/include" - export C_INCLUDE_PATH="${BOSH_INSTALL_TARGET}/include" - - # shellcheck disable=SC2016 - cmake .. \ - -DBUILD_CONFIG=xtrabackup_release \ - -DCMAKE_CXX_COMPILER=g++ \ - -DCMAKE_C_COMPILER=gcc \ - -DCMAKE_INSTALL_PREFIX="${BOSH_INSTALL_TARGET}" \ - -DCMAKE_INSTALL_RPATH='$ORIGIN/../lib/private;$ORIGIN/../lib' \ - -DINSTALL_MYSQLTESTDIR= \ - -DWITH_BOOST=../../boost_1_59_0 \ - -DWITH_MAN_PAGES=OFF \ - -DWITH_SSL=system - - make -j "$(nproc)" install/strip - rm -fr "${BOSH_INSTALL_TARGET}/man/" -} - -main +set -o errexit -o nounset + +mkdir -p "${BOSH_INSTALL_TARGET}/bin" +script="${BOSH_INSTALL_TARGET}/bin/xtrabackup" +cat >"$script" <<'EOF' +#!/bin/bash + +for arg in "$@";do + if [[ $arg == "--version" ]]; then + echo "xtrabackup version 2.4.29" + exit 0 + fi +done + +echo >&2 "MySQL v5.7 is not supported under this configuration." +exit 1 +EOF +chmod 0755 "${script}" diff --git a/packages/percona-xtrabackup-2.4/spec b/packages/percona-xtrabackup-2.4/spec index 492c70124..63209325f 100644 --- a/packages/percona-xtrabackup-2.4/spec +++ b/packages/percona-xtrabackup-2.4/spec @@ -3,8 +3,4 @@ name: percona-xtrabackup-2.4 dependencies: [] -files: -- boost_1_59_0.tar.bz2 -- percona-xtrabackup-2.4*.tar.gz -- libev-*.tar.gz -- libaio_*.tar.xz +files: [] diff --git a/packages/percona-xtrabackup-8.0/packaging b/packages/percona-xtrabackup-8.0/packaging index f84149ee1..b47fd6fa9 100755 --- a/packages/percona-xtrabackup-8.0/packaging +++ b/packages/percona-xtrabackup-8.0/packaging @@ -3,6 +3,13 @@ set -o errexit set -o nounset +# Workaround for uutils coreutils 0.7.0 (ubuntu-resolute): its `install -D` +# replaces symlink path components with real directories instead of following +# them. Resolve the real path so libaio's `make install` (which uses +# `install -D`) writes to the correct location on persistent disk. +# See https://github.com/uutils/coreutils/issues/11469 +BOSH_INSTALL_TARGET=$(readlink -f "${BOSH_INSTALL_TARGET}") + main() { install_build_dependencies unpack_source @@ -10,12 +17,11 @@ main() { } install_build_dependencies() { - tar -xf pkg-config_*.tar.gz - cd pkg-config-*/ - ./configure --prefix=/usr \ - --with-internal-glib \ - --with-pc-path=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig + tar -xf pkgconf-*.tar.xz + cd pkgconf-*/ + ./configure --prefix=/usr make -j "$(nproc)" install + ln -sf pkgconf /usr/bin/pkg-config cd - tar -xf libaio_*.tar.xz diff --git a/packages/percona-xtrabackup-8.0/spec b/packages/percona-xtrabackup-8.0/spec index 6bf47d8f0..43574e208 100644 --- a/packages/percona-xtrabackup-8.0/spec +++ b/packages/percona-xtrabackup-8.0/spec @@ -8,5 +8,5 @@ files: - percona-xtrabackup-8.0*.tar.gz - libev-*.tar.gz - libaio_*.tar.xz -- pkg-config_*.tar.gz +- pkgconf-*.tar.xz - procps-ng-*.tar.xz diff --git a/packages/percona-xtrabackup-8.4/packaging b/packages/percona-xtrabackup-8.4/packaging index 7a53c1019..e1c0234f6 100644 --- a/packages/percona-xtrabackup-8.4/packaging +++ b/packages/percona-xtrabackup-8.4/packaging @@ -3,6 +3,13 @@ set -o errexit set -o nounset +# Workaround for uutils coreutils 0.7.0 (ubuntu-resolute): its `install -D` +# replaces symlink path components with real directories instead of following +# them. Resolve the real path so libaio's `make install` (which uses +# `install -D`) writes to the correct location on persistent disk. +# See https://github.com/uutils/coreutils/issues/11469 +BOSH_INSTALL_TARGET=$(readlink -f "${BOSH_INSTALL_TARGET}") + main() { install_build_dependencies unpack_source @@ -10,12 +17,11 @@ main() { } install_build_dependencies() { - tar -xf pkg-config_*.tar.gz - cd pkg-config-*/ - ./configure --prefix=/usr \ - --with-internal-glib \ - --with-pc-path=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig + tar -xf pkgconf-*.tar.xz + cd pkgconf-*/ + ./configure --prefix=/usr make -j "$(nproc)" install + ln -sf pkgconf /usr/bin/pkg-config cd - tar -xf libaio_*.tar.xz diff --git a/packages/percona-xtrabackup-8.4/spec b/packages/percona-xtrabackup-8.4/spec index 02ba1796f..6c57ab9a8 100644 --- a/packages/percona-xtrabackup-8.4/spec +++ b/packages/percona-xtrabackup-8.4/spec @@ -7,5 +7,5 @@ files: - libaio_*.tar.xz - libev-*.tar.gz - percona-xtrabackup-8.4*.tar.gz -- pkg-config_*.tar.gz +- pkgconf-*.tar.xz - procps-ng-*.tar.xz diff --git a/packages/percona-xtradb-cluster-8.0/packaging b/packages/percona-xtradb-cluster-8.0/packaging index e0b512e87..7cff68882 100644 --- a/packages/percona-xtradb-cluster-8.0/packaging +++ b/packages/percona-xtradb-cluster-8.0/packaging @@ -4,6 +4,13 @@ set -o errexit set -o nounset set -o pipefail +# Workaround for uutils coreutils 0.7.0 (ubuntu-resolute): its `install -D` +# replaces symlink path components with real directories instead of following +# them. Resolve the real path so libaio's `make install` (which uses +# `install -D`) writes to the correct location on persistent disk. +# See https://github.com/uutils/coreutils/issues/11469 +BOSH_INSTALL_TARGET=$(readlink -f "${BOSH_INSTALL_TARGET}") + main() { install_build_dependencies install_runtime_dependencies @@ -11,13 +18,11 @@ main() { } install_build_dependencies() { - tar -xf pkg-config_*.tar.gz - cd pkg-config-*/ - ./configure \ - --prefix=/usr \ - --with-internal-glib \ - --with-pc-path=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig + tar -xf pkgconf-*.tar.xz + cd pkgconf-*/ + ./configure --prefix=/usr make -j "$(nproc)" install + ln -sf pkgconf /usr/bin/pkg-config cd - tar -xf libaio_*.orig.tar.xz @@ -28,7 +33,9 @@ install_build_dependencies() { tar -xf boost_*.tar.bz2 cd boost_*/ ./bootstrap.sh --with-libraries=program_options,system - ./b2 -j "$(nproc)" link=static + ./b2 -j "$(nproc)" cxxstd=17 cxxflags="-fPIC" cflags="-fPIC" + mkdir -p "${BOSH_INSTALL_TARGET}/lib/private" + cp --preserve=all ./stage/lib/libboost_program_options.so.* "${BOSH_INSTALL_TARGET}/lib/private/" cd - tar -xf check_*.tar.gz @@ -80,7 +87,9 @@ build() { cmake .. \ -DBUILD_CONFIG=mysql_release \ -DBOOST_ROOT="${boost_dir}" \ + -DBoost_DIR="$(readlink -f "${boost_dir}"/stage/lib/cmake/Boost-*/)" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_C_FLAGS="-std=gnu17" \ -DMINIMAL_RELWITHDEBINFO=OFF \ -DCMAKE_CXX_COMPILER=g++ \ -DCMAKE_C_COMPILER=gcc \ @@ -100,7 +109,7 @@ build() { -DWITH_AUTHENTICATION_KERBEROS=OFF \ -DWITH_PERCONA_AUTHENTICATION_LDAP=OFF \ -DWITH_BOOST="${boost_dir}" \ - -DWITH_ICU=system \ + -DWITH_ICU=bundled \ -DWITH_READLINE=system \ -DWITH_ROUTER=OFF \ -DWITH_GROUP_REPLICATION=OFF \ diff --git a/packages/percona-xtradb-cluster-8.0/spec b/packages/percona-xtradb-cluster-8.0/spec index d533eafcd..72e3859c3 100644 --- a/packages/percona-xtradb-cluster-8.0/spec +++ b/packages/percona-xtradb-cluster-8.0/spec @@ -8,5 +8,5 @@ files: - boost_1_77_0.tar.bz2 - check_*.tar.gz - libaio_*.orig.tar.xz -- pkg-config_*.tar.gz +- pkgconf-*.tar.xz - socat-*.tar.bz2 diff --git a/packages/percona-xtradb-cluster-8.4/packaging b/packages/percona-xtradb-cluster-8.4/packaging index 13871d460..664d6adf1 100644 --- a/packages/percona-xtradb-cluster-8.4/packaging +++ b/packages/percona-xtradb-cluster-8.4/packaging @@ -4,6 +4,13 @@ set -o errexit set -o nounset set -o pipefail +# Workaround for uutils coreutils 0.7.0 (ubuntu-resolute): its `install -D` +# replaces symlink path components with real directories instead of following +# them. Resolve the real path so libaio's `make install` (which uses +# `install -D`) writes to the correct location on persistent disk. +# See https://github.com/uutils/coreutils/issues/11469 +BOSH_INSTALL_TARGET=$(readlink -f "${BOSH_INSTALL_TARGET}") + main() { install_build_dependencies install_runtime_dependencies @@ -11,13 +18,11 @@ main() { } install_build_dependencies() { - tar -xf pkg-config_*.tar.gz - cd pkg-config-*/ - ./configure \ - --prefix=/usr \ - --with-internal-glib \ - --with-pc-path=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig + tar -xf pkgconf-*.tar.xz + cd pkgconf-*/ + ./configure --prefix=/usr make -j "$(nproc)" install + ln -sf pkgconf /usr/bin/pkg-config cd - tar -xf libaio_*.orig.tar.xz @@ -28,7 +33,9 @@ install_build_dependencies() { tar -xf boost_*.tar.bz2 cd boost_*/ ./bootstrap.sh --with-libraries=program_options,system - ./b2 -j "$(nproc)" link=static + ./b2 -j "$(nproc)" cxxstd=17 cxxflags="-fPIC" cflags="-fPIC" + mkdir -p "${BOSH_INSTALL_TARGET}/lib/private" + cp --preserve=all ./stage/lib/libboost_program_options.so.* "${BOSH_INSTALL_TARGET}/lib/private/" cd - tar -xf check_*.tar.gz @@ -80,7 +87,9 @@ build() { cmake .. \ -DBUILD_CONFIG=mysql_release \ -DBOOST_ROOT="${boost_dir}" \ + -DBoost_DIR="$(readlink -f "${boost_dir}"/stage/lib/cmake/Boost-*/)" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_C_FLAGS="-std=gnu17" \ -DMINIMAL_RELWITHDEBINFO=OFF \ -DCMAKE_CXX_COMPILER=g++ \ -DCMAKE_C_COMPILER=gcc \ @@ -99,7 +108,8 @@ build() { -DWITH_AUTHENTICATION_FIDO=OFF \ -DWITH_AUTHENTICATION_KERBEROS=OFF \ -DWITH_PERCONA_AUTHENTICATION_LDAP=OFF \ - -DWITH_ICU=system \ + -DWITH_BOOST="${boost_dir}" \ + -DWITH_ICU=bundled \ -DWITH_READLINE=system \ -DWITH_ROUTER=OFF \ -DWITH_GROUP_REPLICATION=OFF \ diff --git a/packages/percona-xtradb-cluster-8.4/spec b/packages/percona-xtradb-cluster-8.4/spec index 547c1513b..f511cdda7 100644 --- a/packages/percona-xtradb-cluster-8.4/spec +++ b/packages/percona-xtradb-cluster-8.4/spec @@ -8,5 +8,5 @@ files: - boost_1_77_0.tar.bz2 - check_*.tar.gz - libaio_*.orig.tar.xz -- pkg-config_*.tar.gz +- pkgconf-*.tar.xz - socat-*.tar.bz2