Rebase to 10.11.9

Resolves: RHEL-25575 RHEL-37872
This commit is contained in:
Michal Schorm 2024-06-12 07:59:42 +02:00
parent b987f635d7
commit 3918b8fe3a
4 changed files with 60 additions and 23 deletions

View File

@ -1,16 +0,0 @@
Currently, the CMAKE script is able to aither use the system library, or download a bundle.
We don't have FMT as a system library in RHEL, and we can't *download* a bundle during build time.
So we download the bundle ourselves, add it as additional package sources, and redirect the CMAKE
so it would search for it on the correct - local - location.
--- mariadb-10.11.6/cmake/libfmt.cmake 2023-11-08 16:51:39.000000000 +0100
+++ mariadb-10.11.6/cmake/libfmt.cmake_patched 2024-01-10 17:29:18.004421343 +0100
@@ -15,7 +15,7 @@ MACRO(BUNDLE_LIBFMT)
ExternalProject_Add(
libfmt
PREFIX "${dir}"
- URL "https://github.com/fmtlib/fmt/archive/refs/tags/8.0.1.zip"
+ URL "${CMAKE_BINARY_DIR}/bundles/8.0.1.zip"
URL_MD5 e77873199e897ca9f780479ad68e25b1
INSTALL_COMMAND ""
CONFIGURE_COMMAND ""

31
mariadb-libfmt.patch Normal file
View File

@ -0,0 +1,31 @@
MariaDB upstream uses an old version (8.0) of the FMT library, unlike Fedora which packs a current one (10.2)
https://src.fedoraproject.org/rpms/fmt
https://github.com/MariaDB/server/blob/10.11/cmake/libfmt.cmake#L18
There is a breaking change between the FMT library version 8 and 10.
Sergei Golubchik from MariaDB upstream noticed that and decided to not rebase to the newer version for now. In the same commit:
https://github.com/MariaDB/server/commit/b5c367cd88e37091ab5f8dab0396c01c97d037e2
He also fixed the CMake file controlling the FMT library.
It now correctly detects, whether the system version is able to compile a given code in an expected way.
The incompatibility between FMT library version has been reported both agains Fedora and FMT upstream
https://bugzilla.redhat.com/show_bug.cgi?id=2266807
The upstream created a patch and Fedora backported it
https://src.fedoraproject.org/rpms/fmt/c/7d6d6e2c33e845b3cbf3fcaf83f14dfeddfa8a70?branch=rawhide
but only in F40 and later.
To avoid potential issues on systems with FMT library between 8.0 and the one with the fix backported,
introduce a bundling mechanism for use on such distributions.
We pre-download the sources archive and supply the CMake with it, instead of the web URL.
--- mariadb-10.11.7/cmake/libfmt.cmake 2024-02-01 18:44:35.000000000 +0100
+++ mariadb-10.11.7/cmake/libfmt.cmake_patched 2024-06-06 23:27:10.770987424 +0200
@@ -15,7 +15,7 @@ MACRO(BUNDLE_LIBFMT)
ExternalProject_Add(
libfmt
PREFIX "${dir}"
- URL "https://github.com/fmtlib/fmt/releases/download/11.0.1/fmt-11.0.1.zip"
+ URL "file:///${dir}/fmt-11.0.1.zip"
URL_MD5 5f3915e2eff60e7f70c558120592100d
INSTALL_COMMAND ""
CONFIGURE_COMMAND ""

View File

@ -117,7 +117,14 @@ ExcludeArch: %{ix86}
%bcond_without unbundled_pcre %bcond_without unbundled_pcre
%else %else
%bcond_with unbundled_pcre %bcond_with unbundled_pcre
%global pcre_bundled_version 10.42 %global pcre_bundled_version 10.44
%endif
# To avoid issues with a breaking change in FMT library, bundle it on systems where FMT wasn't fixed yet
# See mariadb-libfmt.patch for detailed description.
%bcond_without bundled_fmt
%if %{with bundled_fmt}
%global fmt_bundled_version 11.0.1
%endif %endif
# Use main python interpretter version # Use main python interpretter version
@ -157,7 +164,7 @@ ExcludeArch: %{ix86}
%global sameevr %{epoch}:%{version}-%{release} %global sameevr %{epoch}:%{version}-%{release}
Name: mariadb Name: mariadb
Version: 10.11.6 Version: 10.11.9
Release: 1%{?with_debug:.debug}%{?dist} Release: 1%{?with_debug:.debug}%{?dist}
Epoch: 3 Epoch: 3
@ -166,7 +173,9 @@ URL: http://mariadb.org
License: GPLv2 and LGPLv2 License: GPLv2 and LGPLv2
Source0: https://downloads.mariadb.org/interstitial/mariadb-%{version}/source/mariadb-%{version}.tar.gz Source0: https://downloads.mariadb.org/interstitial/mariadb-%{version}/source/mariadb-%{version}.tar.gz
Source1: https://github.com/fmtlib/fmt/archive/refs/tags/8.0.1.zip %if %{with bundled_fmt}
Source1: https://github.com/fmtlib/fmt/releases/download/%{fmt_bundled_version}/fmt-%{fmt_bundled_version}.zip
%endif
Source2: mysql_config_multilib.sh Source2: mysql_config_multilib.sh
Source3: my.cnf.in Source3: my.cnf.in
Source6: README.mariadb-docs Source6: README.mariadb-docs
@ -219,7 +228,8 @@ Patch9: %{pkgnamepatch}-ownsetup.patch
# Patch10: Fix cipher name in the SSL Cipher name test # Patch10: Fix cipher name in the SSL Cipher name test
Patch10: %{pkgnamepatch}-ssl-cipher-tests.patch Patch10: %{pkgnamepatch}-ssl-cipher-tests.patch
Patch11: %{pkgnamepatch}-fmt_bundle.patch # Patch13: bundle the FMT library
Patch13: %{pkgnamepatch}-libfmt.patch
BuildRequires: make BuildRequires: make
BuildRequires: cmake gcc-c++ BuildRequires: cmake gcc-c++
@ -449,6 +459,8 @@ Recommends: %{name}-backup%{?_isa} = %{sameevr}
%{?with_connect:Suggests: %{name}-connect-engine%{?_isa} = %{sameevr}} %{?with_connect:Suggests: %{name}-connect-engine%{?_isa} = %{sameevr}}
%{?with_pam:Suggests: %{name}-pam%{?_isa} = %{sameevr}} %{?with_pam:Suggests: %{name}-pam%{?_isa} = %{sameevr}}
%{?with_bundled_fmt:Provides: bundled(fmt) = %{fmt_bundled_version}}
Suggests: mytop Suggests: mytop
Suggests: logrotate Suggests: logrotate
@ -744,6 +756,11 @@ rm -r extra/wolfssl
rm -r storage/columnstore rm -r storage/columnstore
rm -r debian rm -r debian
%if %{with bundled_fmt}
mkdir -p redhat-linux-build/extra/libfmt/
cp %{SOURCE1} redhat-linux-build/extra/libfmt/
%endif
# Remove JAR files that upstream puts into tarball # Remove JAR files that upstream puts into tarball
find . -name "*.jar" -type f -exec rm --verbose -f {} \; find . -name "*.jar" -type f -exec rm --verbose -f {} \;
# Remove testsuite for the mariadb-connector-c # Remove testsuite for the mariadb-connector-c
@ -757,7 +774,9 @@ rm -r storage/rocksdb/
%patch4 -p1 %patch4 -p1
%patch7 -p1 %patch7 -p1
%patch9 -p1 %patch9 -p1
%patch11 -p1 %if %{with bundled_fmt}
%patch -P13 -p1
%endif
# The test in Patch 10 has been recently updated by upstream # The test in Patch 10 has been recently updated by upstream
# and the test was disabled in the testuite run # and the test was disabled in the testuite run
# main.ssl_cipher [ disabled ] MDEV-17184 - Failures with OpenSSL 1.1.1 # main.ssl_cipher [ disabled ] MDEV-17184 - Failures with OpenSSL 1.1.1
@ -1702,6 +1721,9 @@ fi
%endif %endif
%changelog %changelog
* Tue Aug 13 2024 Michal Schorm <mschorm@redhat.com> - 3:10.11.9-1
- Rebase to 10.11.9
* Mon Dec 18 2023 Michal Schorm <mschorm@redhat.com> - 3:10.11.6-1 * Mon Dec 18 2023 Michal Schorm <mschorm@redhat.com> - 3:10.11.6-1
- Rebase to 10.11.6 - Rebase to 10.11.6

View File

@ -1,2 +1,2 @@
SHA512 (mariadb-10.11.6.tar.gz) = 3d77f7be4a26d5a36af56150a5f8ed5e21adeed9bc8ea1bd694e47a25a571bd73468eada7c96e0dfe5a6c81bef625abf71a56d228cf43a738e555e3c0d824a6a SHA512 (mariadb-10.11.9.tar.gz) = a51680babed106ad52a8a9d57fb1db82fca02fd3eff7ef3f2cc3dd89bd9608e9f78ca5a11335a6be8d22950ca8caf1e859bd19550ab3fe129b73b856674cfdc0
SHA512 (8.0.1.zip) = 53f781e33ffb3bc38d743b81c5755a7d71dce95dcf5cdf23d5b4cf880a8f29189ca1b790272ee8586cbcd552648bae040247e572b2a97cd8b3631c284873f57d SHA512 (fmt-11.0.1.zip) = 77aa8371f1cb7f4bbac694fab7612bfba646c9ea784b18f5bfcf84187222e57f60c92f62c30096b9d6d2733790ff0f6ec55d7c024cbbbb3d0c51d9511cc67c19