Add riscv64 support

This commit is contained in:
Andrew Lukoshko 2025-09-04 02:48:11 +00:00 committed by root
commit 54e52904fc
5 changed files with 73 additions and 90 deletions

View File

@ -3,7 +3,10 @@ that allow the client libraries to be linked with a non-GPL application,
so long as the application is under a license approved by Oracle.
For details see
http://www.mysql.com/about/legal/licensing/foss-exception/
'The Universal FOSS Exception, Version 1.0':
https://oss.oracle.com/licenses/universal-foss-exception/
A predecessor of that license exception is now deprecated 'FOSS License Exception':
http://www.mysql.com/about/legal/licensing/foss-exception/
Some innobase code from Percona and Google is under BSD license.
Some code related to test-suite is under LGPLv2.

View File

@ -1,15 +0,0 @@
https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine
https://fedoraproject.org/wiki/Changes/OpensslNoEngine
--- mysql-8.4.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc 2024-04-10 08:26:28.000000000 +0200
+++ mysql-8.4.0/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/network/xcom_network_provider_ssl_native_lib.cc_patched 2024-07-18 18:33:26.237771364 +0200
@@ -50,7 +50,9 @@
#include "my_compiler.h"
#endif
+#if !defined(OPENSSL_NO_ENGINE)
#include "openssl/engine.h"
+#endif
#include "xcom/retry.h"
#include "xcom/task_debug.h"

View File

@ -3,32 +3,21 @@ Software Collections. Removing these hard-coded paths should fix it.
Upstream report: https://mariadb.atlassian.net/browse/MDEV-6485
diff --git a/cmake/install_layout.cmake b/cmake/install_layout.cmake
index 9f7945d8..6734cdfd 100644
--- a/cmake/install_layout.cmake
+++ b/cmake/install_layout.cmake
@@ -105,7 +105,7 @@ IF(UNIX)
" Choose between ${VALID_INSTALL_LAYOUTS}" )
ENDIF()
- SET(SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc"
+ SET(SYSCONFDIR "/etc"
CACHE PATH "config directory (for my.cnf)")
MARK_AS_ADVANCED(SYSCONFDIR)
diff -Naur mysql-8.4.6/cmake/install_layout.cmake mysql-8.4.6_patched/cmake/install_layout.cmake
--- mysql-8.4.6/cmake/install_layout.cmake 2025-07-10 16:20:26.000000000 +0200
+++ mysql-8.4.6_patched/cmake/install_layout.cmake 2025-07-23 09:50:42.278223154 +0200
@@ -202,6 +202,7 @@
ELSE()
SET(INSTALL_SBINDIR_RPM "sbin")
ENDIF()
@@ -189,6 +189,7 @@ SET(INSTALL_SECURE_FILE_PRIVDIR_TARGZ ${secure_file_priv_path})
#
SET(INSTALL_BINDIR_RPM "bin")
SET(INSTALL_SBINDIR_RPM "sbin")
+SET(INSTALL_SYSCONFDIR_RPM "/etc")
#
IF(CMAKE_SYSTEM_PROCESSOR IN_LIST KNOWN_64BIT_ARCHITECTURES)
SET(INSTALL_LIBDIR_RPM "lib64/mysql")
diff --git a/mysys/my_default.cc b/mysys/my_default.cc
index 290f1666..8403425f 100644
--- a/mysys/my_default.cc
+++ b/mysys/my_default.cc
@@ -1570,12 +1570,12 @@ static const char **init_default_directories(MEM_ROOT *alloc) {
diff -Naur mysql-8.4.6/mysys/my_default.cc mysql-8.4.6_patched/mysys/my_default.cc
--- mysql-8.4.6/mysys/my_default.cc 2025-07-10 16:20:26.000000000 +0200
+++ mysql-8.4.6_patched/mysys/my_default.cc 2025-07-23 09:52:21.494414633 +0200
@@ -1693,12 +1693,12 @@
#else
@ -44,11 +33,10 @@ index 290f1666..8403425f 100644
#endif /* DEFAULT_SYSCONFDIR */
#endif
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
index 4149a764..b091d5e2 100644
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
@@ -288,9 +288,9 @@ IF(UNIX)
diff -Naur mysql-8.4.6/scripts/CMakeLists.txt mysql-8.4.6_patched/scripts/CMakeLists.txt
--- mysql-8.4.6/scripts/CMakeLists.txt 2025-07-10 16:20:26.000000000 +0200
+++ mysql-8.4.6_patched/scripts/CMakeLists.txt 2025-07-23 09:53:30.114124746 +0200
@@ -331,9 +331,9 @@
ENDIF(UNIX)
SET(prefix "${CMAKE_INSTALL_PREFIX}")
@ -60,11 +48,10 @@ index 4149a764..b091d5e2 100644
SET(datadir ${prefix}/${INSTALL_MYSQLSHAREDIR})
SET(libsubdir ${INSTALL_LIBDIR})
SET(pkgincludedir ${prefix}/${INSTALL_INCLUDEDIR})
diff --git a/scripts/mysqld_multi.pl.in b/scripts/mysqld_multi.pl.in
index 84dd4d7c..50397ddd 100644
--- a/scripts/mysqld_multi.pl.in
+++ b/scripts/mysqld_multi.pl.in
@@ -586,9 +586,7 @@ sub list_defaults_files
diff -Naur mysql-8.4.6/scripts/mysqld_multi.pl.in mysql-8.4.6_patched/scripts/mysqld_multi.pl.in
--- mysql-8.4.6/scripts/mysqld_multi.pl.in 2025-07-10 16:20:26.000000000 +0200
+++ mysql-8.4.6_patched/scripts/mysqld_multi.pl.in 2025-07-23 09:54:16.090991270 +0200
@@ -587,9 +587,7 @@
my %seen; # Don't list the same file more than once
return grep { defined $_ and not $seen{$_}++ and -f $_ and -r $_ }

View File

@ -2,8 +2,8 @@ ExcludeArch: %{ix86}
# Name of the package without any prefixes
%global majorname mysql
%global package_version 8.4.4
%define majorversion %(echo %{package_version} | cut -d'.' -f1-2 )
%global package_version 8.4.6
%global majorversion %(echo %{package_version} | cut -d'.' -f1-2 )
%global pkgnamepatch mysql
@ -21,7 +21,7 @@ ExcludeArch: %{ix86}
# 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 8.4.4
%global last_tested_version 8.4.6
# Set to 1 to force run the testsuite even if it was already tested in current version
%global force_run_testsuite 0
@ -108,9 +108,9 @@ Release: 2%{?with_debug:.debug}%{?dist}.alma.1
Summary: MySQL client programs and shared libraries
URL: http://www.mysql.com
# Exceptions allow client libraries to be linked with most open source SW,
# not only GPL code. See README.mysql-license
License: GPL-2.0-or-later AND LGPL-2.1-only AND BSL-1.0 AND BSD-2-Clause
# The the `Universal-FOSS-exception-1.0` exception allow client libraries to be linked with most open source SW, not only GPL code.
# Usage of the `Universal-FOSS-exception-1.0` in the SPDX license expression does not signify that we regard "Interfaces" as protected by copyright.
License: GPL-2.0-only AND ( GPL-2.0-only WITH Universal-FOSS-exception-1.0 ) AND GPL-2.0-or-later AND ( LGPL-2.0-only WITH Universal-FOSS-exception-1.0 ) AND ( GPL-3.0-or-later WITH Bison-exception-2.2 ) AND ( GPL-2.0-only OR BSD-2-Clause ) AND BSD-2-Clause AND BSL-1.0 AND Apache-2.0 AND MIT
Source0: https://cdn.mysql.com/Downloads/MySQL-8.4/mysql-%{version}.tar.gz
Source2: mysql_config_multilib.sh
@ -145,7 +145,6 @@ Patch5: %{pkgnamepatch}-paths.patch
Patch51: %{pkgnamepatch}-sharedir.patch
Patch52: %{pkgnamepatch}-rpath.patch
Patch56: %{pkgnamepatch}-flush-logrotate.patch
Patch57: %{pkgnamepatch}-openssl-engine.patch
# Patches taken from boost 1.59
Patch112: boost-1.57.0-mpl-print.patch
@ -176,10 +175,6 @@ BuildRequires: libquadmath-devel
%endif
BuildRequires: openssl
BuildRequires: openssl-devel
%if 0%{?fedora} >= 41
# Complement of mysql-openssl-engine.patch
BuildRequires: openssl-devel-engine
%endif
BuildRequires: perl-interpreter
BuildRequires: perl-generators
@ -256,9 +251,9 @@ Provides: bundled(rapidjson)
# https://github.com/martinus/unordered_dense
Provides: bundled(unordered_dense)
%{?with_conflicts_mariadb:Conflicts: mariadb}
%{?with_conflicts_mariadb:Conflicts: mariadb-any}
# Explicitly disallow installation of mysql + mariadb-server
%{?with_conflicts_mariadb:Conflicts: mariadb-server}
%{?with_conflicts_mariadb:Conflicts: mariadb-server-any}
%{?with_provides_community_mysql:Provides: community-mysql = %community_mysql_version}
%{?with_provides_community_mysql:Provides: community-mysql%{?_isa} = %community_mysql_version}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql <= %obsolete_community_mysql_version}
@ -270,20 +265,32 @@ Conflicts: %{majorname}%{?1:-%{1}}-any\
# Provide also mysqlX.X if default
%if %?mysql_default
%define mysqlX_if_default() %{expand:\
%define mysqlX_if_default_arched() %{expand:\
Obsoletes: mysql%{?1:-%{1}} < %{sameevr}\
Obsoletes: mysql%{majorversion}%{?1:-%{1}} < %{sameevr}\
Provides: mysql%{majorversion}%{?1:-%{1}} = %{sameevr}\
Provides: mysql%{majorversion}%{?1:-%{1}}%{?_isa} = %{sameevr}\
}
%define mysqlX_if_default_noarch() %{expand:\
Obsoletes: mysql%{?1:-%{1}} < %{sameevr}\
Obsoletes: mysql%{majorversion}%{?1:-%{1}} < %{sameevr}\
Provides: mysql%{majorversion}%{?1:-%{1}} = %{sameevr}\
}
%else
%define mysqlX_if_default() %{nil}
%define mysqlX_if_default_arched() %{nil}
%define mysqlX_if_default_noarch() %{nil}
%endif
%define add_metadata() %{expand:\
%define add_metadata_arched() %{expand:\
%conflict_with_other_streams %{**}\
%mysqlX_if_default %{**}\
%mysqlX_if_default_arched %{**}\
}
%define add_metadata_noarch() %{expand:\
%conflict_with_other_streams %{**}\
%mysqlX_if_default_noarch %{**}\
}
%add_metadata
%add_metadata_arched
%description
MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
@ -307,7 +314,7 @@ Requires: %{pkgname}-common = %{sameevr}
%{?with_provides_community_mysql:Provides: community-mysql-libs%{?_isa}= %community_mysql_version}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-libs <= %obsolete_community_mysql_version}
%add_metadata libs
%add_metadata_arched libs
%description -n %{pkgname}-libs
The mysql-libs package provides the essential shared libraries for any
@ -324,7 +331,7 @@ Summary: The config files required by server and client
%{?with_provides_community_mysql:Provides: community-mysql-config%{?_isa} = %community_mysql_version}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-config <= %obsolete_community_mysql_version}
%add_metadata config
%add_metadata_arched config
%description -n %{pkgname}-config
The package provides the config file my.cnf and my.cnf.d directory used by any
@ -347,7 +354,7 @@ Requires: %{_sysconfdir}/my.cnf
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-common <= %obsolete_community_mysql_version}
# As this package is noarch, it can't use the %%{?_isa} RPM macro
%conflict_with_other_streams common
%add_metadata_noarch common
%description -n %{pkgname}-common
The mysql-common package provides the essential shared files for any
@ -365,7 +372,7 @@ Requires: %{pkgname}-common = %{sameevr}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-errmsg <= %obsolete_community_mysql_version}
# As this package is noarch, it can't use the %%{?_isa} RPM macro
%conflict_with_other_streams errmsg
%add_metadata_noarch errmsg
%description -n %{pkgname}-errmsg
The package provides error messages files for the MySQL daemon
@ -405,16 +412,16 @@ Requires: (mysql-selinux if selinux-policy-targeted)
Suggests: logrotate
%{?with_conflicts_mariadb:Conflicts: mariadb-server}
%{?with_conflicts_mariadb:Conflicts: mariadb-server-utils}
%{?with_conflicts_mariadb:Conflicts: mariadb-server-galera}
%{?with_conflicts_mariadb:Conflicts: mariadb-server-any}
%{?with_conflicts_mariadb:Conflicts: mariadb-server-utils-any}
%{?with_conflicts_mariadb:Conflicts: mariadb-server-galera-any}
# Explicitly disallow installation of mysql + mariadb-server
%{?with_conflicts_mariadb:Conflicts: mariadb}
%{?with_conflicts_mariadb:Conflicts: mariadb-any}
%{?with_provides_community_mysql:Provides: community-mysql-server = %community_mysql_version}
%{?with_provides_community_mysql:Provides: community-mysql-server%{?_isa} = %community_mysql_version}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-server <= %obsolete_community_mysql_version}
%add_metadata server
%add_metadata_arched server
%description -n %{pkgname}-server
MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
@ -430,13 +437,13 @@ Summary: Files for development of MySQL applications
Requires: openssl-devel
Requires: zlib-devel
Requires: libzstd-devel
%{?with_conflicts_mariadb:Conflicts: mariadb-devel}
%{?with_conflicts_mariadb:Conflicts: mariadb-devel-any}
%{?with_conflicts_mariadb:Conflicts: mariadb-connector-c-devel}
%{?with_provides_community_mysql:Provides: community-mysql-devel = %community_mysql_version}
%{?with_provides_community_mysql:Provides: community-mysql-devel%{?_isa} = %community_mysql_version}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-devel <= %obsolete_community_mysql_version}
%add_metadata devel
%add_metadata_arched devel
%description -n %{pkgname}-devel
MySQL is a multi-user, multi-threaded SQL database server. This
@ -473,12 +480,12 @@ Requires: perl(Test::More)
Requires: perl(Time::HiRes)
Requires: perl(File::Compare)
%{?with_conflicts_mariadb:Conflicts: mariadb-test}
%{?with_conflicts_mariadb:Conflicts: mariadb-test-any}
%{?with_provides_community_mysql:Provides: community-mysql-test = %community_mysql_version}
%{?with_provides_community_mysql:Provides: community-mysql-test%{?_isa} = %community_mysql_version}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-test <= %obsolete_community_mysql_version}
%add_metadata test
%add_metadata_arched test
%description -n %{pkgname}-test
MySQL is a multi-user, multi-threaded SQL database server. This
@ -491,7 +498,7 @@ BuildArch: noarch
Requires: %{pkgname}-test = %{sameevr}
# As this package is noarch, it can't use the %%{?_isa} RPM macro
%conflict_with_other_streams test-data
%add_metadata_noarch test-data
%description -n %{pkgname}-test-data
MySQL is a multi-user, multi-threaded SQL database server. This
@ -509,7 +516,6 @@ regression test suite distributed with the MySQL sources.
%patch -P51 -p1
%patch -P52 -p1
%patch -P56 -p1
%patch -P57 -p1
# Patch Boost
pushd extra/boost/boost_$(echo %{boost_bundled_version}| tr . _)
@ -722,11 +728,11 @@ rm %{buildroot}%{_mandir}/man1/mysql_config.1*
%if ! %{with client}
rm %{buildroot}%{_bindir}/{mysql,mysql_config_editor,\
mysql_plugin,mysqladmin,mysqlbinlog,\
mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap,my_print_defaults}
mysqladmin,mysqlbinlog,\
mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}
rm %{buildroot}%{_mandir}/man1/{mysql,mysql_config_editor,\
mysql_plugin,mysqladmin,mysqlbinlog,\
mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap,my_print_defaults}.1*
mysqladmin,mysqlbinlog,\
mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}.1*
%endif
%if %{with config}
@ -812,9 +818,6 @@ popd
%post -n %{pkgname}-server
%systemd_post %{daemon_name}.service
if [ ! -e "%{logfile}" -a ! -h "%{logfile}" ] ; then
install /dev/null -m0640 -omysql -gmysql "%{logfile}"
fi
%preun -n %{pkgname}-server
%systemd_preun %{daemon_name}.service
@ -995,7 +998,6 @@ fi
%attr(0700,mysql,mysql) %dir %{_localstatedir}/lib/mysql-keyring
%attr(0755,mysql,mysql) %dir %{pidfiledir}
%attr(0750,mysql,mysql) %dir %{logfiledir}
%attr(0640,mysql,mysql) %config %ghost %verify(not md5 size mtime) %{logfile}
%config(noreplace) %{logrotateddir}/%{daemon_name}
%if %{with devel}
@ -1131,9 +1133,15 @@ fi
%endif
%changelog
* Sat Jul 05 2025 Andrew Lukoshko <alukoshko@almalinux.org> - 8.4.4-2.alma.1
* Thu Sep 04 2025 Andrew Lukoshko <alukoshko@almalinux.org> - 8.4.6-2.alma.1
- Add riscv64 support
* Thu Jul 24 2025 Pavol Sloboda <psloboda@redhat.com> - 8.4.6-1
- Rebase to 8.4.6
* Mon Apr 28 2025 Pavol Sloboda <psloboda@redhat.com> - 8.4.5-1
- Rebase to 8.4.5
* Fri Feb 14 2025 Michal Schorm <mschorm@redhat.com> - 8.4.4-2
- Rebuilt

View File

@ -1 +1 @@
SHA512 (mysql-8.4.4.tar.gz) = 21f4d8162f57f63a589e3e5e140f89a8cc61f4c55a77dce4601e76192eb3d3fbeaf3bfb78f91345c517ad36bf4267f33202693cfc24812841c517a24fffcfd12
SHA512 (mysql-8.4.6.tar.gz) = 2d498dc71eeede4368bd70fb1d1c012abd774732e341312f469afa3823c3b37489032b3290fa7531fb78c2b36251dbd1b8e1554c9330e18e56407f96fb8d4a1e