F40 Change "MariaDB & MySQL repackaging" - Implement conflicts with 'mariadb' names and provide 'community-mysql' names

As per:
  https://fedoraproject.org/wiki/Changes/F40_MariaDB_MySQL_repackaging
specifically the parts:
 - Rename package 'community-mysql' to 'mysql' and Stop providing 'mysql' symbols by package 'mariadb'
 - Drop cross-installation functionality
This commit is contained in:
Michal Schorm 2023-11-30 14:37:23 +01:00 committed by Lukas Javorsky
parent 6e17c080ef
commit 068e37f35d

View File

@ -61,9 +61,17 @@
%global dbdatadir %{_localstatedir}/lib/mysql %global dbdatadir %{_localstatedir}/lib/mysql
# Provide mysql names for compatibility # Set explicit conflicts with 'mariadb' packages
%bcond_without mysql_names %bcond_without conflicts_mariadb
%bcond_without conflicts # Provide explicitly the 'community-mysql' names
# 'community-mysql' names are deprecated and to be removed in future Fedora
# but we're leaving them here for compatibility reasons
%bcond_without provides_community_mysql
# Obsolete the package 'community-mysql' and all its sub-packages
%bcond_without obsoletes_community_mysql
# This is the last version of the 'community-mysql' package production release
%global obsolete_community_mysql_version 8.0.35-1
# Make long macros shorter # Make long macros shorter
%global sameevr %{?epoch:%{epoch}:}%{version}-%{release} %global sameevr %{?epoch:%{epoch}:}%{version}-%{release}
@ -199,14 +207,11 @@ Requires: %{name}-common = %{sameevr}
Provides: bundled(boost) = %{boost_bundled_version} Provides: bundled(boost) = %{boost_bundled_version}
%if %{with mysql_names} %{?with_conflicts_mariadb:Conflicts: mariadb}
Provides: mysql = %{sameevr} # Explicitly disallow installation of mysql + mariadb-server
Provides: mysql%{?_isa} = %{sameevr} %{?with_conflicts_mariadb:Conflicts: mariadb-server}
Provides: mysql-compat-client = %{sameevr} %{?with_provides_community_mysql:Provides: community-mysql}
Provides: mysql-compat-client%{?_isa} = %{sameevr} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql <= %obsolete_community_mysql_version}
%endif
%{?with_conflicts:Conflicts: mariadb}
%description %description
MySQL is a multi-user, multi-threaded SQL database server. MySQL is a MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
@ -219,10 +224,8 @@ contains the standard MySQL client programs and generic MySQL files.
%package libs %package libs
Summary: The shared libraries required for MySQL clients Summary: The shared libraries required for MySQL clients
Requires: %{name}-common = %{sameevr} Requires: %{name}-common = %{sameevr}
%if %{with mysql_names} %{?with_provides_community_mysql:Provides: community-mysql-libs}
Provides: mysql-libs = %{sameevr} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-libs <= %obsolete_community_mysql_version}
Provides: mysql-libs%{?_isa} = %{sameevr}
%endif
%description libs %description libs
The mysql-libs package provides the essential shared libraries for any The mysql-libs package provides the essential shared libraries for any
@ -235,6 +238,8 @@ MySQL server.
%if %{with config} %if %{with config}
%package config %package config
Summary: The config files required by server and client Summary: The config files required by server and client
%{?with_provides_community_mysql:Provides: community-mysql-config}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-config <= %obsolete_community_mysql_version}
%description config %description config
The package provides the config file my.cnf and my.cnf.d directory used by any The package provides the config file my.cnf and my.cnf.d directory used by any
@ -249,6 +254,8 @@ package itself.
Summary: The shared files required for MySQL server and client Summary: The shared files required for MySQL server and client
BuildArch: noarch BuildArch: noarch
Requires: %{_sysconfdir}/my.cnf Requires: %{_sysconfdir}/my.cnf
%{?with_provides_community_mysql:Provides: community-mysql-common}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-common <= %obsolete_community_mysql_version}
%description common %description common
The mysql-common package provides the essential shared files for any The mysql-common package provides the essential shared files for any
@ -262,6 +269,8 @@ MySQL package.
Summary: The error messages files required by MySQL server Summary: The error messages files required by MySQL server
BuildArch: noarch BuildArch: noarch
Requires: %{name}-common = %{sameevr} Requires: %{name}-common = %{sameevr}
%{?with_provides_community_mysql:Provides: community-mysql-errmsg}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-errmsg <= %obsolete_community_mysql_version}
%description errmsg %description errmsg
The package provides error messages files for the MySQL daemon The package provides error messages files for the MySQL daemon
@ -271,9 +280,7 @@ The package provides error messages files for the MySQL daemon
%package server %package server
Summary: The MySQL server and related files Summary: The MySQL server and related files
# Require any mysql client, but prefer community-mysql client for community-mysql server Requires: %{name}%{?_isa}
Suggests: %{name}%{?_isa} = %{sameevr}
Requires: mysql%{?_isa}
Requires: %{name}-common = %{sameevr} Requires: %{name}-common = %{sameevr}
Requires: %{_sysconfdir}/my.cnf Requires: %{_sysconfdir}/my.cnf
@ -297,14 +304,13 @@ Requires(post): policycoreutils-python-utils
Requires: (mysql-selinux if selinux-policy-targeted) Requires: (mysql-selinux if selinux-policy-targeted)
%endif %endif
%if %{with mysql_names} %{?with_conflicts_mariadb:Conflicts: mariadb-server}
Provides: mysql-server = %{sameevr} %{?with_conflicts_mariadb:Conflicts: mariadb-server-utils}
Provides: mysql-server%{?_isa} = %{sameevr} %{?with_conflicts_mariadb:Conflicts: mariadb-server-galera}
Provides: mysql-compat-server = %{sameevr} # Explicitly disallow installation of mysql + mariadb-server
Provides: mysql-compat-server%{?_isa} = %{sameevr} %{?with_conflicts_mariadb:Conflicts: mariadb}
%endif %{?with_provides_community_mysql:Provides: community-mysql-server}
%{?with_conflicts:Conflicts: mariadb-server} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-server <= %obsolete_community_mysql_version}
%{?with_conflicts:Conflicts: mariadb-galera-server}
%description server %description server
MySQL is a multi-user, multi-threaded SQL database server. MySQL is a MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
@ -320,7 +326,10 @@ Summary: Files for development of MySQL applications
Requires: openssl-devel Requires: openssl-devel
Requires: zlib-devel Requires: zlib-devel
Requires: libzstd-devel Requires: libzstd-devel
%{?with_conflicts:Conflicts: mariadb-devel} %{?with_conflicts_mariadb:Conflicts: mariadb-devel}
%{?with_conflicts_mariadb:Conflicts: mariadb-connector-c-devel}
%{?with_provides_community_mysql:Provides: community-mysql-devel}
%{?with_obsoletes_community_mysql:Obsoletes: community-mysql-devel <= %obsolete_community_mysql_version}
%description devel %description devel
MySQL is a multi-user, multi-threaded SQL database server. This MySQL is a multi-user, multi-threaded SQL database server. This
@ -354,11 +363,10 @@ Requires: perl(Socket)
Requires: perl(Sys::Hostname) Requires: perl(Sys::Hostname)
Requires: perl(Test::More) Requires: perl(Test::More)
Requires: perl(Time::HiRes) Requires: perl(Time::HiRes)
%{?with_conflicts:Conflicts: mariadb-test}
%if %{with mysql_names} %{?with_conflicts_mariadb:Conflicts: mariadb-test}
Provides: mysql-test = %{sameevr} %{?with_provides_community_mysql:Provides: community-mysql-test}
Provides: mysql-test%{?_isa} = %{sameevr} %{?with_obsoletes_community_mysql:Obsoletes: community-mysql-test <= %obsolete_community_mysql_version}
%endif
%description test %description test
MySQL is a multi-user, multi-threaded SQL database server. This MySQL is a multi-user, multi-threaded SQL database server. This