Bug 1822959 - python3-certbot depends on python3-mock not available in EPEL
Summary: python3-certbot depends on python3-mock not available in EPEL
Status: CLOSED DUPLICATE of bug 1821439
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: certbot
Version: epel8
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: Felix Schwarz
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2020-04-10 16:33 UTC by Joe Mou
Modified: 2020-04-17 11:55 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2020-04-10 20:12:35 UTC
Type: Bug

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
Red Hat Knowledge Base (Solution) 4995301 None None None 2020-04-17 11:49:45 UTC

Description Joe Mou 2020-04-10 16:33:06 UTC
Description of problem:

python3-certbot appears to now have a dependency on python3-mock, but python3-mock is not in EPEL. So it is not currently possible to install certbot with only EPEL enabled.

I found this bug requesting python3-mock in EPEL: https://bugzilla.redhat.com/show_bug.cgi?id=1772474

So enabling PowerTools would probably work, but I don't think it's intentional that certbot needs EPEL and PowerTools.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:

$ sudo dnf install certbot

Actual results:

Last metadata expiration check: 0:01:42 ago on Fri 10 Apr 2020 09:26:39 AM PDT.
Package certbot-1.1.0-1.el8.noarch is already installed.
 Problem: package certbot-1.3.0-3.el8.noarch requires python3-certbot = 1.3.0-3.el8, but none of the providers can be installed
  - cannot install the best candidate for the job
  - nothing provides python3-mock needed by python3-certbot-1.3.0-3.el8.noarch
  - nothing provides python3.6dist(mock) needed by python3-certbot-1.3.0-3.el8.noarch
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Expected results:

certbot is installed/upgraded

Additional info:

Comment 1 Felix Schwarz 2020-04-10 20:12:35 UTC
tldr: You need to enable the PowerTools repo.

Longer explanation:
certbot provides the "certbot.tests" package which contains helper code to ease test writing for certbot plugins. That package is part of the public api and depends on python3-mock. Unfortunately in RHEL 8 python3-mock is not part of the main repositories but only available in the powertools repo (provided by Red Hat, not enabled by default but can be enabled easily).

The EPEL guidelines recommend that EPEL8 users enable this repo ("on CentOS 8 it is recommended to also enable the PowerTools repository since EPEL packages may depend on packages from it"): https://fedoraproject.org/wiki/EPEL#Quickstart

As you can see in the git history of certbot I tried to create a custom subpackage just for certbot.tests but in the end this became pretty complicated so I reverted the change and just shipped the upstream code with fewer modifications.

The certbot developers are aware of the issue: https://github.com/certbot/certbot/issues/7886

*** This bug has been marked as a duplicate of bug 1821439 ***

Comment 2 Felix Schwarz 2020-04-10 20:14:21 UTC
Joe: I hope you don't mind me pasting the original explanation but mock is actually a "real" dependency of certbot currently. Fixing this requires a bit of actual (upstream) development. If you have further questions please just reopen this bug.

Comment 3 Felix Schwarz 2020-04-17 11:55:06 UTC
Mikel: I noticed you added a Red Hat Knowledge Base here. If dependency issues like python-mock cause a significant number of RH customer requests please get in touch with me so I can evaluate the impact of these changes better. As you are probably aware I'm planning to move certbot in EPEL 7 to use Python 3 and I would like to be aware of potential problems :-)

Note You need to log in before you can comment on or make changes to this bug.