Bug 1282956

Summary: mariadb-server: mysql-server provide in rhel7
Product: Red Hat Enterprise Linux 7 Reporter: Denis Fateyev <denis>
Component: mariadbAssignee: Jakub Dorňák <jdornak>
Status: CLOSED WONTFIX QA Contact: qe-baseos-daemons
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.3CC: databases-maint, hhorak
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-18 09:23:30 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Denis Fateyev 2015-11-17 21:59:48 UTC
Description of problem:
----------------------
Currently "mariadb-server" in rhel7 doesn't provide "mysql-server" which sometimes leads to weird behaviour if a third-party package has a "Require: mysql-server" line.

For example: https://kojipkgs.fedoraproject.org//work/tasks/6493/11886493/root.log
DEBUG util.py:393:  Error: No Package found for mysql-server
DEBUG util.py:515:  Child return code was: 1

Unlike f22, f23, rawhide which all have "mysql-server" provision and work with the same package just fine: https://kojipkgs.fedoraproject.org//work/tasks/6102/11886102/root.log


Details:
--------
The difference is that Fedora obsoletes & provides mysql-server, this is the expected behaviour:

%package          server
...
%if %{with mysql_names}
Provides:         mysql-server = %{sameevr}
Provides:         mysql-server%{?_isa} = %{sameevr}
Provides:         mysql-compat-server = %{sameevr}
Provides:         mysql-compat-server%{?_isa} = %{sameevr}
%endif
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-server < %{obsoleted_mysql_case_evr}}
%{?with_conflicts:Conflicts:        community-mysql-server}
%{?with_conflicts:Conflicts:        mariadb-galera-server}
%{?obsoleted_mysql_evr:Obsoletes: mysql-server < %{obsoleted_mysql_evr}}


Spec in RHEL7 only obsoletes without provide:

%package server
...
Provides: mysql-compat-server = %{epoch}:%{version}-%{release}
Provides: mysql-compat-server%{?_isa} = %{epoch}:%{version}-%{release}
Obsoletes: mysql-server < %{obsoleted_mysql_evr}

Summary:
--------
Of course, it's possible to use "mysql-compat-server" in all cases and it will work. But I doubt that this difference between Fedora and RHEL branches in such popular package is the desired strategy.

Comment 2 Honza Horak 2015-11-18 09:23:30 UTC
(In reply to Denis Fateyev from comment #0)
> Of course, it's possible to use "mysql-compat-server" in all cases and it
> will work. But I doubt that this difference between Fedora and RHEL branches
> in such popular package is the desired strategy.

To be honest it was desired this way. We consulted this topic during RHEL-7 development and decided not to provide mysql-server for mariadb packages, because users must be clear what to use.

Now, with MariaDB 10.x less compatible with MySQL it seems to be the way also in Fedora (i.e. we should remove mysql-server provide for mariadb-server, since it's not 100% compatible any more and it was more meant to overcome transition period). I'm sorry for troubles.