Bug 1497314

Summary: dnf install certbot-apache doesn't install the Apache plugin for the Certbot executable
Product: [Fedora] Fedora Reporter: Brad Warren <bmw>
Component: python-certbot-apacheAssignee: James Hogarth <james.hogarth>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 26CC: elyscape, itamar, james.hogarth, nb, nick, rbu
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-certbot-apache-0.19.0-1.fc26 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-10-25 23:08:33 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 Brad Warren 2017-09-29 18:08:03 UTC
Description of problem:

After running `dnf install certbot-apache`, the Apache plugin is not available when using the "certbot" executable placed in the user's PATH. When `dnf install certbot-apache` is run, it appears that it installs both a Python 2 and Python 3 version of Certbot but only a Python 2 version of the plugin. The executable "certbot" is a symlink to "certbot-3", where the Apache plugin was not installed, causing this behavior.


Version-Release number of selected component (if applicable): 0.18.1-1.fc26


How reproducible: Always


Steps to Reproduce:

It's probably easiest to use Docker the official Fedora Docker image.

1. docker pull fedora:26
2. docker run --rm -it fedora:26 sh -c 'dnf install certbot-apache -y && certbot plugins'


Actual results:

```
Saving debug log to /var/log/letsencrypt/letsencrypt.log
* standalone
Description: Spin up a temporary webserver
Interfaces: IAuthenticator, IPlugin
Entry point: standalone = certbot.plugins.standalone:Authenticator

* webroot
Description: Place files in webroot directory
Interfaces: IAuthenticator, IPlugin
Entry point: webroot = certbot.plugins.webroot:Authenticator
```

The Apache plugin is not listed.


Expected results:

``` 
...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
* apache
Description: Apache Web Server plugin - Beta
Interfaces: IAuthenticator, IInstaller, IPlugin
Entry point: apache = certbot_apache.configurator:ApacheConfigurator

* standalone
Description: Spin up a temporary webserver
Interfaces: IAuthenticator, IPlugin
Entry point: standalone = certbot.plugins.standalone:Authenticator

* webroot
Description: Place files in webroot directory
Interfaces: IAuthenticator, IPlugin
Entry point: webroot = certbot.plugins.webroot:Authenticator
```

The Apache plugin is listed.


Additional info:

I'm not sure what other versions of Fedora are affected. This bug was reported to me at https://github.com/certbot/certbot/issues/5132.

Comment 1 Eli Young 2017-10-02 21:37:53 UTC
This is a result of certbot-apache being provided by both python2-certbot-apache
and python3-certbot-apache with the same version number. When you tell dnf to
install certbot-apache, it doesn't try to figure out which of the packages that
satisfy the providespec would result in the fewest changes to the system; it
just tries to find the highest version of the providespec that is available.  As
such, it gets to choose between python2-certbot-apache and
python3-certbot-apache with both offering the same version; in this scenario it
appears to fall back to lexical order, ultimately selecting the python2 package.

There are a number of ways to resolve this, but probably the simplest is, for
Fedora 26+, to only have python3-certbot-apache provide certbot-apache.

Comment 2 Fedora Update System 2017-10-06 23:54:49 UTC
python-certbot-nginx-0.19.0-1.fc26 python-certbot-apache-0.19.0-1.fc26 certbot-0.19.0-1.fc26 python-acme-0.19.0-1.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-821411cf91

Comment 3 Fedora Update System 2017-10-08 04:23:58 UTC
certbot-0.19.0-1.fc26, python-acme-0.19.0-1.fc26, python-certbot-apache-0.19.0-1.fc26, python-certbot-nginx-0.19.0-1.fc26 has been pushed to the Fedora 26 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-821411cf91

Comment 4 Fedora Update System 2017-10-08 06:24:36 UTC
certbot-0.19.0-1.fc27, python-acme-0.19.0-1.fc27, python-certbot-apache-0.19.0-1.fc27, python-certbot-nginx-0.19.0-1.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-8d25f2fe07

Comment 5 Fedora Update System 2017-10-25 23:08:33 UTC
certbot-0.19.0-1.fc26, python-acme-0.19.0-1.fc26, python-certbot-apache-0.19.0-1.fc26, python-certbot-nginx-0.19.0-1.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.

Comment 6 Fedora Update System 2017-11-11 02:49:21 UTC
certbot-0.19.0-1.fc27, python-acme-0.19.0-1.fc27, python-certbot-apache-0.19.0-1.fc27, python-certbot-nginx-0.19.0-1.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.