Rebase to 10.11.7

This commit is contained in:
Michal Schorm 2024-06-06 23:00:57 +02:00
parent 57325b1f99
commit 948e9f4103
6 changed files with 85 additions and 28 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/*/
/*.rpm
/*.tar.gz
/*.zip

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/archive/refs/tags/8.0.1.zip"
+ URL "file:///${dir}/8.0.1.zip"
URL_MD5 e77873199e897ca9f780479ad68e25b1
INSTALL_COMMAND ""
CONFIGURE_COMMAND ""

View File

@ -1,13 +0,0 @@
diff -up mariadb-10.3.9/mysql-test/main/ssl_cipher.test.fixtest mariadb-10.3.9/mysql-test/main/ssl_cipher.test
--- mariadb-10.3.13/mysql-test/main/ssl_cipher.test 2019-02-20 08:59:09.000000000 +0100
+++ mariadb-10.3.13/mysql-test/main/ssl_cipher.test_patched 2019-02-22 11:22:01.250256060 +0100
@@ -97,7 +97,9 @@ drop user mysqltest_1@localhost;
let $restart_parameters=--ssl-cipher=AES128-SHA;
source include/restart_mysqld.inc;
connect (ssl_con,localhost,root,,,,,SSL);
+--replace_regex /TLS_AES_.*/AES128-SHA/
SHOW STATUS LIKE 'Ssl_cipher';
+--replace_regex /TLS_AES_.*/AES128-SHA/
SHOW STATUS LIKE 'Ssl_cipher_list';
disconnect ssl_con;
connection default;

View File

@ -1,6 +1,6 @@
# Plain package name for cases, where %%{name} differs (e.g. for versioned packages)
%global majorname mariadb
%define package_version 10.11.6
%define package_version 10.11.7
%define majorversion %(echo %{package_version} | cut -d'.' -f1-2 )
# Set if this package will be the default one in distribution
@ -15,7 +15,7 @@
# The last version on which the full testsuite has been run
# In case of further rebuilds of that version, don't require full testsuite to be run
# run only "main" suite
%global last_tested_version 10.11.6
%global last_tested_version 10.11.7
# Set to 1 to force run the testsuite even if it was already tested in current version
%global force_run_testsuite 0
@ -109,6 +109,13 @@
%global pcre_bundled_version 10.42
%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 bundled_fmt 0
%if %{with bundled_fmt}
%global fmt_bundled_version 8.0.1
%endif
# Include systemd files
%global daemon_name %{majorname}
%global daemon_no_prefix %{majorname}
@ -136,7 +143,7 @@
Name: %{majorname}%{majorversion}
Version: %{package_version}
Release: 4%{?with_debug:.debug}%{?dist}
Release: 1%{?with_debug:.debug}%{?dist}
Epoch: 3
Summary: A very fast and robust SQL database server
@ -144,6 +151,9 @@ URL: http://mariadb.org
License: GPLv2 and LGPLv2
Source0: https://downloads.mariadb.org/interstitial/mariadb-%{version}/source/mariadb-%{version}.tar.gz
%if %{with bundled_fmt}
Source1: https://github.com/fmtlib/fmt/archive/refs/tags/8.0.1.zip
%endif
Source2: mysql_config_multilib.sh
Source3: my.cnf.in
Source6: README.mariadb-docs
@ -188,9 +198,10 @@ Patch4: %{majorname}-logrotate.patch
Patch7: %{majorname}-scripts.patch
# Patch9: pre-configure to comply with guidelines
Patch9: %{majorname}-ownsetup.patch
# Patch10: Fix cipher name in the SSL Cipher name test
Patch10: %{majorname}-ssl-cipher-tests.patch
# Patch12: fixes of RocksDB for GCC 13
Patch12: rocksdb-6.8-gcc13.patch
# Patch13: bundle the FMT library
Patch13: %{majorname}-libfmt.patch
# This macro is used for package/sub-package names in the entire specfile
%if %?mariadb_default
@ -270,7 +281,7 @@ BuildRequires: perl(warnings)
# for running some openssl tests rhbz#1189180
BuildRequires: openssl openssl-devel
BuildRequires: fmt-devel
%{!?with_bundled_fmt:BuildRequires: fmt-devel >= 10.2.1-4}
Requires: bash coreutils grep
@ -452,6 +463,8 @@ Recommends: %{pkgname}-backup%{?_isa} = %{sameevr}
%{?with_connect:Suggests: %{pkgname}-connect-engine%{?_isa} = %{sameevr}}
%{?with_pam:Suggests: %{pkgname}-pam%{?_isa} = %{sameevr}}
%{?with_bundled_fmt:Provides: bundled(fmt) = %{fmt_bundled_version}}
Suggests: mytop
Suggests: logrotate
@ -760,6 +773,11 @@ sources.
%prep
%setup -q -n %{majorname}-%{version}
%if %{with bundled_fmt}
mkdir -p redhat-linux-build/extra/libfmt/
mv %{SOURCE1} redhat-linux-build/extra/libfmt/
%endif
# Remove JAR files that upstream puts into tarball
find . -name "*.jar" -type f -exec rm --verbose -f {} \;
# Remove testsuite for the mariadb-connector-c
@ -772,15 +790,12 @@ rm -r storage/rocksdb/
%patch -P4 -p1
%patch -P7 -p1
%patch -P9 -p1
# The test in Patch 10 has been recently updated by upstream
# and the test was disabled in the testuite run
# main.ssl_cipher [ disabled ] MDEV-17184 - Failures with OpenSSL 1.1.1
# Keeping the patch commented out, need to revisit
# once the test is re-enabled by upstream in some future release
#%patch -P10 -p1
%if %{with rocksdb}
%patch -P12 -p1 -d storage/rocksdb/rocksdb/
%endif
%if %{with bundled_fmt}
%patch -P13 -p1
%endif
# generate a list of tests that fail, but are not disabled by upstream
cat %{SOURCE50} | tee -a mysql-test/unstable-tests
@ -882,7 +897,7 @@ fi
-DCONC_WITH_SSL=%{?with_clibrary:ON}%{!?with_clibrary:NO} \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBFMT=system \
-DWITH_LIBFMT=%{?with_bundled_fmt:bundled}%{!?with_bundled_fmt:system} \
-DLZ4_LIBS=%{?with_lz4:/usr/%{_lib}/liblz4.so}%{!?with_lz4:} \
-DWITH_INNODB_LZ4=%{?with_lz4:ON}%{!?with_lz4:OFF} \
-DWITH_ROCKSDB_LZ4=%{?with_lz4:ON}%{!?with_lz4:OFF} \
@ -1721,12 +1736,17 @@ fi
%endif
%changelog
* Thu Jun 06 2024 Michal Schorm <mschorm@redhat.com> - 3:10.11.7-1
- Rebase to 10.11.7
- Patch 10 removed, the main.ssl_cipher test has been fixed
and re-enabled by upstream and now passes on all architectures
* Tue Apr 09 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 3:10.11.6-4
- Fix my.cnf dependency
* Wed Feb 7 2024 Filip Janus <fjanus@redhat.com> - 3:10.11.6-3
- Rename macros related to demodularization
* Wed Jan 31 2024 Filip Janus <fjanus@redhat.com> - 3:10.11.6-2
- Apply demodularization
- the default stream builds mariadb.rpm

View File

@ -91,3 +91,20 @@ rpl.rpl_rewrite_db_sys_vars :
rpl.rpl_semi_sync_wait_point :
rpl.rpl_trigger :
rpl.rpl_upgrade_master_info :
# Fails since 10.11.7
main.mdev375 :
oqgraph.social :
perfschema.show_aggregate :
archive.archive :
spider/bugfix.ddl_log :
spider/bugfix.mdev_28218 :
spider/bugfix.mdev_28218_mixed :
spider/bugfix.mdev_30370 :
spider/bugfix.mdev_32683 :
spider/bugfix.plugin_load_add_all :
spider/bugfix.plugin_load_add_spider :
spider/bugfix.udf_mysql_func_early :
spider/bugfix.udf_mysql_func_early_init_file :

View File

@ -1 +1,2 @@
SHA512 (mariadb-10.11.6.tar.gz) = 3d77f7be4a26d5a36af56150a5f8ed5e21adeed9bc8ea1bd694e47a25a571bd73468eada7c96e0dfe5a6c81bef625abf71a56d228cf43a738e555e3c0d824a6a
SHA512 (mariadb-10.11.7.tar.gz) = a6ebc9ba88b52e5d339b176b6fa48c03fcbe5bb590740a02c1bbd083a3d62e619937e645de2504a9f9adeed2f67127fab0307dece524b7c5217ad5df0f3ccc71
SHA512 (8.0.1.zip) = 53f781e33ffb3bc38d743b81c5755a7d71dce95dcf5cdf23d5b4cf880a8f29189ca1b790272ee8586cbcd552648bae040247e572b2a97cd8b3631c284873f57d