Bug 1494910

Summary: package mariadb-libs-3:10.2.8-2.fc28.x86_64 requires mariadb-common(x86-64) = 3:10.2.8-2.fc28, but none of the providers can be installed
Product: [Fedora] Fedora Reporter: Mikhail <mikhail.v.gavrilov>
Component: mariadbAssignee: Michal Schorm <mschorm>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: dciabrin, hhorak, jstanek, mbayer, mikhail.v.gavrilov, mkocka, mmuzila, mschorm, praiskup
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: mariadb-10.2.9-3.fc27 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-10-10 19:29:57 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 Mikhail 2017-09-24 05:23:19 UTC
Description of problem:

# dnf update
Last metadata expiration check: 1:48:31 ago on Sun 24 Sep 2017 08:33:42 AM +05.
Dependencies resolved.

 Problem 1: cannot install both mariadb-common-3:10.2.8-4.fc28.x86_64 and mariadb-common-3:10.2.8-2.fc28.x86_64
  - package mariadb-libs-3:10.2.8-2.fc28.x86_64 requires mariadb-common(x86-64) = 3:10.2.8-2.fc28, but none of the providers can be installed
  - cannot install the best update candidate for package mariadb-common-3:10.2.8-2.fc28.x86_64
  - problem with installed package mariadb-libs-3:10.2.8-2.fc28.x86_64
 Problem 2: cannot install both mariadb-common-3:10.2.8-4.fc28.x86_64 and mariadb-common-3:10.2.8-2.fc28.x86_64
  - package mariadb-libs-3:10.2.8-2.fc28.x86_64 requires mariadb-common(x86-64) = 3:10.2.8-2.fc28, but none of the providers can be installed
  - package mariadb-3:10.2.8-4.fc28.x86_64 requires mariadb-common(x86-64) = 3:10.2.8-4.fc28, but none of the providers can be installed
  - cannot install the best update candidate for package mariadb-libs-3:10.2.8-2.fc28.x86_64
  - cannot install the best update candidate for package mariadb-3:10.2.8-2.fc28.x86_64
===============================================================================
 Package              Arch         Version                 Repository     Size
===============================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 mariadb-common       x86_64       3:10.2.8-4.fc28         rawhide        54 k
Skipping packages with broken dependencies:
 mariadb              x86_64       3:10.2.8-4.fc28         rawhide       6.7 M

Transaction Summary
===============================================================================
Skip  2 Packages

Nothing to do.
Complete!

Comment 1 Michal Schorm 2017-09-25 12:17:57 UTC
Thanks for report,

This is caused by a chnage in MariaDB packaging by me.
I stopped builidng mariadb client library part in the "mariadb" package, which means - for example - that "mariadb-libs" are build no more.

The exact same functionality is now provided by package called "mariadb-connector-c"

There is a tracker for the change: https://bugzilla.redhat.com/show_bug.cgi?id=1486480

---

I'll look more into this issue.
It will be probabbly needed to set some "Obsoletes:" tags around those packages in order to "DNF update" them smoothly.

Comment 2 Pavel Raiskup 2017-09-25 12:45:49 UTC
Then, if mariadb-connector-c provides the mariadb-libs functionality, the new
package should have 'mariadb-libs' artificial provide to have clean upgrade
path.

Comment 4 Michal Schorm 2017-09-25 13:15:12 UTC
Thanks Pavel!

So it will be something like this:


# Provides mariadb-libs for DNF to make update smoothly
# this provides should be removed in >=F29
%if 0%{?fedora} >= 29
#macros can't use '<=', only '>='
%else
%if 0%{?__isa_bits} == 64
Provides: mariadb-libs%{?_isa} = 3:10.2.8-4.fc28
Provides: mysql-libs%{?_isa} = 3:10.2.8-4.fc28
Obsoletes: mariadb-libs%{?_isa} <= 3:10.2.8-3.fc28
Obsoletes: mysql-libs%{?_isa} <= 3:10.2.8-3.fc28
%else
Provides: mariadb-libs = 3:10.2.8-4.fc28
Provides: mysql-libs = 3:10.2.8-4.fc28
Obsoletes: mariadb-libs <= 3:10.2.8-3.fc28
Obsoletes: mysql-libs <= 3:10.2.8-3.fc28
%endif # isa_bits
%endif # f29


---

Can you please review it, Honza? (or Pavel, of course)
( Builds fine: https://koji.fedoraproject.org/koji/taskinfo?taskID=22073033 )

Comment 5 Pavel Raiskup 2017-09-25 14:05:54 UTC
I'm not sure, but the "%if %_isa" dance shouldn't be needed, just use %_isa..
Also I don't think the expanded %release is necessary, simply use the version
like 3:10.2.8

Comment 6 Pavel Raiskup 2017-09-25 14:06:34 UTC
Sorry, release is needed -- just don't expand the %dist macro.

Comment 7 Michal Schorm 2017-09-26 11:26:45 UTC
Ok, after short discussion:

Provides: mariadb-libs = 3:10.2.8-4
Provides: mysql-libs = 3:10.2.8-4
Obsoletes: mariadb-libs <= 3:10.2.8-3
Obsoletes: mysql-libs <= 3:10.2.8-3

---

* The ".fc28" shouldn't be there
* The "isa" stuff shouldn't be needed
* The Provides / Obsoletes should be in all Fedoras

---

However, I think better approchach would be to deal with this issue directly in MariaDB package - which I am doing now.

%if %{without clibrary}
Obsoletes: %{name}-libs%{?_isa} <= %{sameevr}
%endif

Comment 8 Michal Schorm 2017-10-04 16:42:01 UTC
This issue should be solved by the latest update in rawhide.

It may be needed to use "--allowerasing" dnf option.

Please test it and let me know.

Comment 9 Fedora Update System 2017-10-06 08:03:29 UTC
mariadb-10.2.9-3.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2017-dff1218bfa

Comment 10 Pavel Raiskup 2017-10-06 10:14:01 UTC
(In reply to Michal Schorm from comment #7)
> Ok, after short discussion:
> 
> Provides: mariadb-libs = 3:10.2.8-4
> Provides: mysql-libs = 3:10.2.8-4
> Obsoletes: mariadb-libs <= 3:10.2.8-3
> Obsoletes: mysql-libs <= 3:10.2.8-3

Semes to be fine.

> %if %{without clibrary}
> Obsoletes: %{name}-libs%{?_isa} <= %{sameevr}
> %endif

I did not read that far in comment #7 last time and reading now -- but this
seems to be wrong (no point in using %_isa).  Duplicate bug 1498956.

Comment 11 Fedora Update System 2017-10-06 22:26:22 UTC
mariadb-10.2.9-3.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-dff1218bfa

Comment 12 Fedora Update System 2017-10-10 19:29:57 UTC
mariadb-10.2.9-3.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.