Bug 1829692 - python3-mod_wsgi no longer providing mod_wsgi
Summary: python3-mod_wsgi no longer providing mod_wsgi
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: mod_wsgi
Version: 8.2
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: 8.0
Assignee: Luboš Uhliarik
QA Contact: RHEL Stacks Subsystem QE
Lenka Špačková
Depends On: 1777393
TreeView+ depends on / blocked
Reported: 2020-04-30 06:11 UTC by adam winberg
Modified: 2020-12-14 13:16 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Known Issue
Doc Text:
.The `mod_wsgi` package name is missing when being installed as a dependency With a change in `mod_wsgi` installation, described in xref:BZ-1779705[BZ#1779705], the `python3-mod_wsgi` package no longer provides the name `mod_wsgi`. When installing the `mod_wsgi` module, you must specify the full package name. This change causes problems with dependencies of third-party packages. If you try to install a third-party package that requires a dependency named `mod_wsgi`, an error similar to the following is returned: ---- Error: Problem: conflicting requests - nothing provides mod_wsgi needed by package-requires-mod_wsgi.el8.noarch ---- To work around this problem, choose one of the following: a. Rebuild the package (or ask the third-party vendor for a new build) to require the full package name `python3-mod_wsgi`. b. Create a meta package with the missing package name: + 1. Build your own empty meta package that provides the name `mod_wsgi`. 2. Add the `module_hotfixes=True` line to the `.repo` configuration file of the repository that includes the meta package. 3. Manually install `python3-mod_wsgi`.
Clone Of:
Last Closed: 2020-05-14 11:04:10 UTC
Type: Bug
Target Upstream Version:

Attachments (Terms of Use)

Description adam winberg 2020-04-30 06:11:41 UTC
Description of problem:
Before RHEL 8.2 the python3-mod_wsgi package had a 'Provides' for 'mod_wsgi'. In RHEL 8.2 this is removed due to the addition of the python38 module. This change is documented in the release notes. 

However, this breaks existing rpm dependencies which is not what I would expect from a minor release update of RHEL. We have a lot of rpm packages with dependencies to 'mod_wsgi' which now wont install on 8.2. We have had to work around this issue by building our own meta package providing mod_wsgi, but that such a breaking change is introduced in a minor release worries me. What other breaking changes of similar type are there that we have not yet seen? Is it OK to introduce such changes in the middle of a RHEL lifecycle now?

Since python3.6 is the default python in RHEL8 it would not have been unexpected behaviour if installation of mod_wsgi installed the python3.6 version. Users who want the python38 version can explicitly install that anyway. 

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

Comment 1 Joe Orton 2020-04-30 07:15:13 UTC
Yes, this was annoying and we did not want to remove or break deps - I'm really sorry for any inconvenience this caused you.

Unfortunately we hit some problems with modularity dependency solving which made it necessary in this case; with the Provides: there, dnf was filtering python3-mod_wsgi out entirely so package became impossible to install in any way.  I'll see if we can open up the private bugs where we discussed this.

I can't think of any other time when we deliberately broke deps like this in the httpd stack within a RHEL major release before, and we certainly don't plan to do it again.

Comment 2 adam winberg 2020-04-30 07:31:07 UTC
That is reassuring, thank you. 

Maybe changes of this type, although rare, should be highlighted better in the release notes, preferably in a separate section ('potential breaking changes'). As it is now it the release notes only describe what the change is, but not the potential effects of the change (such as "this will break any existing dependencies set up against the 'mod_wsgi' package"). That would make it easier for users to understand that they may have to take action before upgrading.

Comment 3 Tomas Orsava 2020-05-04 11:00:07 UTC
I managed to get the private BZ opened to make it transparent why we had to resolve to this workaround of removing the `mod_wsgi` provide.


And I'd like to add my apologies for breaking your workflow. We're working with the docs team right now to improve the documentation.

Comment 4 Tomas Orsava 2020-05-04 11:08:41 UTC
Also, Adam, can I ask what package broke because of this missing dependency?
Was it your own or a third-party package? Or was it a package provided by Red Hat? The latter we could fix.

Thank you.

Comment 5 adam winberg 2020-05-04 11:39:18 UTC
It was our own package with a manually added 'Require' to mod_wsgi. 

Thank you for your response to this bugzilla, I understand the necessity of the change now and appreciate the documentation updates.

Comment 6 Lenka Špačková 2020-05-04 14:09:55 UTC
Hello Adam,
Thank you for your feedback. 

I have added the following known issue to the RHEL 8.2 Release Notes:

Thanks, Tomas, for your help with the doc text.

Comment 7 adam winberg 2020-05-06 17:57:38 UTC
I might add to this that our meta package providing mod_wsgi did not work out of the box, the configuration for the yumrepo where the package is stored needs to contain "module_hotfixes=True", otherwise it is filtered by DNF.

Comment 8 Tomas Orsava 2020-05-07 12:17:41 UTC
(In reply to adam winberg from comment #7)
> I might add to this that our meta package providing mod_wsgi did not work
> out of the box, the configuration for the yumrepo where the package is
> stored needs to contain "module_hotfixes=True", otherwise it is filtered by
> DNF.

That's actually for the same reason the Provide "mod_wsgi" had to dropped in the first place :)

Thanks for the note, we should add it to the docs.

Comment 11 Lenka Špačková 2020-05-11 14:04:43 UTC
Thanks, Adam and Tomas!
I have updated the release note:

Comment 12 Tomas Orsava 2020-05-14 11:04:10 UTC
Thank you too Lenka!

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