Bug 1804305

Summary: moby-engine does not obsolete proper version of docker, upgrading to Fedora 32 is blocked
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: moby-engineAssignee: Olivier Lemasle <o.lemasle>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 32CC: bcotton, dwalsh, lsm5, o.lemasle, sanjay.ankur
Target Milestone: ---Flags: bcotton: fedora_prioritized_bug+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: moby-engine-19.03.7-2.ce.git7141c19.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-16 20:36:03 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 Miro Hrončok 2020-02-18 16:20:58 UTC
Upgrading to Fedora 32 form Fedora 31:

 Problem: package docker-2:1.13.1-68.git47e2230.fc30.x86_64 requires atomic-registries >= 1.19.1-6, but none of the providers can be installed
  - atomic-registries-1.22.1-28.gitb507039.fc30.x86_64 does not belong to a distupgrade repository
  - problem with installed package docker-2:1.13.1-68.git47e2230.fc30.x86_64

I see that moby-engine obsoletes docker:

$ repoquery --repo=rawhide --obsoletes moby-engine
docker < 18.09.8-3.ce.git0dd43dd.fc32
docker-latest < 18.09.8-3.ce.git0dd43dd.fc32


But it obsoletes it without epoch:

$ rpm -q --info docker | grep ^Epoch
Epoch       : 2

Comment 1 Miro Hrončok 2020-02-26 09:30:33 UTC
Proposing for prioritized bug. A lot of users will carry docker from Fedora 30 and it was working on Fedora 31. This will break updates for them.

As a side note, I'd be happier if docker was obsoleted and provided by podman docker, but it needs to be properly obsoleted by at least something.

Comment 3 Miro Hrončok 2020-03-06 15:14:37 UTC
Olivier, could you please respond?

Comment 4 Miro Hrončok 2020-03-06 15:16:02 UTC
Lokesh, can podman-docker obsolete/provide this instead? I think that provides a better upgrade path.

Comment 5 Lokesh Mandvekar 2020-03-06 18:29:28 UTC
(In reply to Miro Hrončok from comment #4)
> Lokesh, can podman-docker obsolete/provide this instead? I think that
> provides a better upgrade path.

podman-docker already conflicts with both moby-engine and docker. Don't know if obsoletes would help. Maybe we can get a provenpackager to push the change to moby-engine and do a new build.

Comment 6 Miro Hrončok 2020-03-06 18:31:55 UTC
> Maybe we can get a provenpackager to push the change to moby-engine and do a new build.

I can do that. But I don't want docker users to be migrated to a package that is essentially not maintained. Hence I wait if the maintainer responds.


> Don't know if obsoletes would help.

Obsoletes is a way to replace something. So the question here really is:

When users update to Fedora 32, should their docker be:

 - replaced by moby-engine
 - replaced by docker-podman
 - removed without a replacement

?

Comment 7 Lokesh Mandvekar 2020-03-06 18:43:09 UTC
(In reply to Miro Hrončok from comment #6)
> > Maybe we can get a provenpackager to push the change to moby-engine and do a new build.
> 
> I can do that. But I don't want docker users to be migrated to a package
> that is essentially not maintained. Hence I wait if the maintainer responds.
> 
> 
> > Don't know if obsoletes would help.
> 
> Obsoletes is a way to replace something. So the question here really is:
> 
> When users update to Fedora 32, should their docker be:
> 
>  - replaced by moby-engine
>  - replaced by docker-podman
>  - removed without a replacement
> 
> ?

iirc, we've had people who wanted /usr/bin/docker to be Docker Inc's stuff and that's why the Conflicts: docker, docker-ce, moby-engine. So, I'm guessing there'll be some users who will frown upon podman-docker replacing docker.

Dan, WDYT?

Comment 8 Fedora Update System 2020-03-07 23:17:31 UTC
FEDORA-2020-51d613864c has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-51d613864c

Comment 9 Olivier Lemasle 2020-03-08 11:22:20 UTC
Hi, sorry for my late reply, and thanks for reaching me.

I've read the Packaging Guidelines and their part related to Obsoletes and Epoch, but I'm not sure I did the fix right.
Does https://src.fedoraproject.org/rpms/moby-engine/c/3579c2166e301785c763b1c08f00af193e936398?branch=f32 fix the upgrade issue?

I've pushed an update for that: https://bodhi.fedoraproject.org/updates/FEDORA-2020-51d613864c

Comment 10 Miro Hrončok 2020-03-08 11:30:45 UTC
It seems correct, but I haven't yet tested it.

Comment 11 Fedora Update System 2020-03-08 17:15:35 UTC
moby-engine-19.03.7-1.ce.git7141c19.fc32 has been pushed to the Fedora 32 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-2020-51d613864c

Comment 12 Fedora Update System 2020-03-08 19:55:48 UTC
FEDORA-2020-56f58977b7 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-56f58977b7

Comment 13 Miro Hrončok 2020-03-08 23:21:05 UTC
I still see this:

 Problem ?: problem with installed package docker-2:1.13.1-68.git47e2230.fc30.x86_64
  - package moby-engine-19.03.7-1.ce.git7141c19.fc32.x86_64 conflicts with docker-common provided by docker-common-2:1.13.1-68.git47e2230.fc30.x86_64
  - docker-2:1.13.1-68.git47e2230.fc30.x86_64 does not belong to a distupgrade repository
  - problem with installed package docker-common-2:1.13.1-68.git47e2230.fc30.x86_64


But this might still be a mirror problem.

Comment 14 Olivier Lemasle 2020-03-09 07:16:56 UTC
Yes, I also saw this issue after the first update. I've updated the spec to add Obsoletes: docker-common and I will test again when https://bodhi.fedoraproject.org/updates/FEDORA-2020-56f58977b7 reaches testing.

Comment 15 Fedora Update System 2020-03-09 14:53:47 UTC
moby-engine-19.03.7-2.ce.git7141c19.fc32 has been pushed to the Fedora 32 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-2020-56f58977b7

Comment 16 Olivier Lemasle 2020-03-09 17:32:25 UTC
The upgrade now works with https://bodhi.fedoraproject.org/updates/FEDORA-2020-56f58977b7.

Upgrade from f30, with package "docker" installed, to f32.

Without repo "updates-testing":

$ sudo dnf system-upgrade download --refresh --releasever=32
Before you continue ensure that your system is fully upgraded by running "dnf --refresh upgrade". Do you want to continue [y/N]: y
Fedora Modular 32 - x86_64                                                                                                                                                          23 kB/s |  18 kB     00:00    
Fedora Modular 32 - x86_64 - Updates                                                                                                                                                26 kB/s |  21 kB     00:00    
Fedora 32 - x86_64 - Updates                                                                                                                                                        40 kB/s |  21 kB     00:00    
Fedora 32 - x86_64                                                                                                                                                                  30 kB/s |  18 kB     00:00    
Error: 
 Problem: package docker-2:1.13.1-68.git47e2230.fc30.x86_64 requires atomic-registries >= 1.19.1-6, but none of the providers can be installed
  - atomic-registries-1.22.1-28.gitb507039.fc30.x86_64 does not belong to a distupgrade repository
  - problem with installed package docker-2:1.13.1-68.git47e2230.fc30.x86_64
(try to add '--skip-broken' to skip uninstallable packages)


With repo "updates-testing" enabled:

$ sudo dnf system-upgrade download --refresh --releasever=32 --enablerepo updates-testing
Before you continue ensure that your system is fully upgraded by running "dnf --refresh upgrade". Do you want to continue [y/N]: y
Fedora Modular 32 - x86_64                                                                                                                                                          34 kB/s |  18 kB     00:00    
Fedora Modular 32 - x86_64 - Updates                                                                                                                                                39 kB/s |  21 kB     00:00    
Fedora 32 - x86_64 - Test Updates                                                                                                                                                   38 kB/s |  21 kB     00:00    
Fedora 32 - x86_64 - Updates                                                                                                                                                        41 kB/s |  21 kB     00:00    
Fedora 32 - x86_64                                                                                                                                                                  23 kB/s |  18 kB     00:00    
Dependencies resolved.
===================================================================================================================================================================================================================
 Package                                                          Architecture                     Version                                                         Repository                                 Size
===================================================================================================================================================================================================================
Installing:
 moby-engine                                                      x86_64                           19.03.7-2.ce.git7141c19.fc32                                    updates-testing                            51 M
     replacing  docker.x86_64 2:1.13.1-68.git47e2230.fc30
     replacing  docker-common.x86_64 2:1.13.1-68.git47e2230.fc30
Upgrading:
 NetworkManager                                                   x86_64                           1:1.22.8-1.fc32                                                 fedora                                    2.0 M
...

Comment 17 Fedora Update System 2020-03-09 19:29:55 UTC
FEDORA-2020-aa8bed5ad6 has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2020-aa8bed5ad6

Comment 18 Fedora Update System 2020-03-09 20:35:05 UTC
moby-engine-19.03.7-2.ce.git7141c19.fc31 has been pushed to the Fedora 31 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-2020-aa8bed5ad6

Comment 19 Miro Hrončok 2020-03-11 10:17:37 UTC
Fedora 32:

Problem is fixed.


Fedora 31:

I believe that this is not appropriate for Fedora 31. USers have docker and we cannot remove that form their system mid-release.

Comment 20 Olivier Lemasle 2020-03-11 13:25:43 UTC
Oh yes, for f31 I forgot you can still have package "docker" (but "docker" package is blocked in f31 -- https://koschei.fedoraproject.org/package/docker?collection=f31 -- and there's no f31 branch -- https://src.fedoraproject.org/rpms/docker/branches)

Thanks for your input on f32.

Comment 21 Miro Hrončok 2020-03-11 13:36:06 UTC
Yes, docker is retired on f31 but users can still have it since Fedora 30.

Comment 22 Fedora Update System 2020-03-16 20:36:03 UTC
moby-engine-19.03.7-2.ce.git7141c19.fc32 has been pushed to the Fedora 32 stable repository. If problems still persist, please make note of it in this bug report.